From fbb14a724d9f2649756a34efe3995c2da397b30a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:29:40 +0000 Subject: [PATCH 01/10] chore(deps-dev): Bump @babel/plugin-transform-private-methods Bumps [@babel/plugin-transform-private-methods](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-private-methods) from 7.24.7 to 7.25.4. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.25.4/packages/babel-plugin-transform-private-methods) --- updated-dependencies: - dependency-name: "@babel/plugin-transform-private-methods" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 60 +++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 28 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 129a3bd5c8818..c73911850a556 100644 --- a/package-lock.json +++ b/package-lock.json @@ -90,7 +90,7 @@ }, "devDependencies": { "@babel/node": "^7.24.8", - "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", "@babel/preset-typescript": "^7.24.7", "@cypress/vue2": "^2.1.1", "@cypress/webpack-preprocessor": "^6.0.2", @@ -298,13 +298,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/types": "^7.25.6", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -358,18 +357,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", - "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.0", + "@babel/traverse": "^7.25.4", "semver": "^6.3.1" }, "engines": { @@ -646,12 +644,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", - "license": "MIT", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.25.6" }, "bin": { "parser": "bin/babel-parser.js" @@ -1644,14 +1641,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", - "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2084,17 +2080,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", + "@babel/types": "^7.25.6", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2103,10 +2098,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", - "license": "MIT", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dependencies": { "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", diff --git a/package.json b/package.json index 8b977a9953a73..aacc4aa385d9d 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ }, "devDependencies": { "@babel/node": "^7.24.8", - "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", "@babel/preset-typescript": "^7.24.7", "@cypress/vue2": "^2.1.1", "@cypress/webpack-preprocessor": "^6.0.2", From d9bbd16aa28dee5e4fb13ac4310c29e43a66db81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:31:03 +0000 Subject: [PATCH 02/10] chore(deps-dev): Bump wait-on from 7.2.0 to 8.0.1 Bumps [wait-on](https://github.com/jeffbski/wait-on) from 7.2.0 to 8.0.1. - [Release notes](https://github.com/jeffbski/wait-on/releases) - [Commits](https://github.com/jeffbski/wait-on/compare/v7.2.0...v8.0.1) --- updated-dependencies: - dependency-name: wait-on dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package-lock.json | 32 +++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 129a3bd5c8818..c686845edf6bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -158,7 +158,7 @@ "vitest": "^2.0.5", "vue-loader": "^15.9.8", "vue-template-compiler": "^2.7.16", - "wait-on": "^7.2.0", + "wait-on": "^8.0.1", "webpack": "^5.94.0", "webpack-cli": "^5.0.2", "webpack-merge": "^6.0.1", @@ -3697,6 +3697,25 @@ "cypress": "^13.2.0" } }, + "node_modules/@nextcloud/cypress/node_modules/wait-on": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", + "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "dev": true, + "dependencies": { + "axios": "^1.6.1", + "joi": "^17.11.0", + "lodash": "^4.17.21", + "minimist": "^1.2.8", + "rxjs": "^7.8.1" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@nextcloud/dialogs": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-6.0.0.tgz", @@ -26291,14 +26310,13 @@ } }, "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-8.0.1.tgz", + "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==", "dev": true, - "license": "MIT", "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", + "axios": "^1.7.7", + "joi": "^17.13.3", "lodash": "^4.17.21", "minimist": "^1.2.8", "rxjs": "^7.8.1" diff --git a/package.json b/package.json index 8b977a9953a73..0b41b8c3d19db 100644 --- a/package.json +++ b/package.json @@ -189,7 +189,7 @@ "vitest": "^2.0.5", "vue-loader": "^15.9.8", "vue-template-compiler": "^2.7.16", - "wait-on": "^7.2.0", + "wait-on": "^8.0.1", "webpack": "^5.94.0", "webpack-cli": "^5.0.2", "webpack-merge": "^6.0.1", From 0bdd25eb0f6dc4d8398abd75570a88eb4c5c779f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 19 Sep 2024 10:40:57 +0200 Subject: [PATCH 03/10] fix: add sharding compatible version of share reminder job Signed-off-by: Robin Appelman --- apps/files_sharing/lib/SharesReminderJob.php | 113 ++++++++++++++++-- .../tests/SharesReminderJobTest.php | 4 +- 2 files changed, 104 insertions(+), 13 deletions(-) diff --git a/apps/files_sharing/lib/SharesReminderJob.php b/apps/files_sharing/lib/SharesReminderJob.php index 6780ee77fe3f3..5e15d2851f486 100644 --- a/apps/files_sharing/lib/SharesReminderJob.php +++ b/apps/files_sharing/lib/SharesReminderJob.php @@ -13,6 +13,8 @@ use OCP\DB\Exception; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\Defaults; +use OCP\Files\Cache\ICacheEntry; +use OCP\Files\IMimeTypeLoader; use OCP\Files\NotFoundException; use OCP\IDBConnection; use OCP\IL10N; @@ -33,6 +35,7 @@ class SharesReminderJob extends TimedJob { private const SECONDS_BEFORE_REMINDER = 86400; private const CHUNK_SIZE = 1000; + private int $folderMimeTypeId; public function __construct( ITimeFactory $time, @@ -44,9 +47,11 @@ public function __construct( private readonly IFactory $l10nFactory, private readonly IMailer $mailer, private readonly Defaults $defaults, + IMimeTypeLoader $mimeTypeLoader, ) { parent::__construct($time); $this->setInterval(3600); + $this->folderMimeTypeId = $mimeTypeLoader->getId(ICacheEntry::DIRECTORY_MIMETYPE); } @@ -74,6 +79,30 @@ public function run(mixed $argument): void { * @throws Exception if a database error occurs */ private function getShares(): array|\Iterator { + if ($this->db->getShardDefinition('filecache')) { + $sharesResult = $this->getSharesDataSharded(); + } else { + $sharesResult = $this->getSharesData(); + } + foreach($sharesResult as $share) { + if ($share['share_type'] === IShare::TYPE_EMAIL) { + $id = "ocMailShare:$share[id]"; + } else { + $id = "ocinternal:$share[id]"; + } + + try { + yield $this->shareManager->getShareById($id); + } catch (ShareNotFound) { + $this->logger->error("Share with ID $id not found."); + } + } + } + + /** + * @return list + */ + private function getSharesData(): array { $minDate = new \DateTime(); $maxDate = new \DateTime(); $maxDate->setTimestamp($maxDate->getTimestamp() + self::SECONDS_BEFORE_REMINDER); @@ -103,21 +132,81 @@ private function getShares(): array|\Iterator { ) ->setMaxResults(SharesReminderJob::CHUNK_SIZE); - $sharesResult = $qb->executeQuery(); - while ($share = $sharesResult->fetch()) { - if ((int)$share['share_type'] === IShare::TYPE_EMAIL) { - $id = "ocMailShare:$share[id]"; - } else { - $id = "ocinternal:$share[id]"; - } + $shares = $qb->executeQuery()->fetchAll(); + return array_values(array_map(fn ($share): array => [ + 'id' => (int)$share['id'], + 'share_type' => (int)$share['share_type'], + ], $shares)); + } - try { - yield $this->shareManager->getShareById($id); - } catch (ShareNotFound) { - $this->logger->error("Share with ID $id not found."); + /** + * Sharding compatible version of getSharesData + * + * @return list + */ + private function getSharesDataSharded(): array|\Iterator { + $minDate = new \DateTime(); + $maxDate = new \DateTime(); + $maxDate->setTimestamp($maxDate->getTimestamp() + self::SECONDS_BEFORE_REMINDER); + + $qb = $this->db->getQueryBuilder(); + $qb->select('s.id', 's.share_type', 's.file_source') + ->from('share', 's') + ->where( + $qb->expr()->andX( + $qb->expr()->orX( + $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_USER)), + $qb->expr()->eq('s.share_type', $qb->expr()->literal(IShare::TYPE_EMAIL)) + ), + $qb->expr()->eq('s.item_type', $qb->expr()->literal('folder')), + $qb->expr()->gte('s.expiration', $qb->createNamedParameter($minDate, IQueryBuilder::PARAM_DATE)), + $qb->expr()->lte('s.expiration', $qb->createNamedParameter($maxDate, IQueryBuilder::PARAM_DATE)), + $qb->expr()->eq('s.reminder_sent', $qb->createNamedParameter( + false, IQueryBuilder::PARAM_BOOL + )), + $qb->expr()->eq( + $qb->expr()->bitwiseAnd('s.permissions', Constants::PERMISSION_CREATE), + $qb->createNamedParameter(Constants::PERMISSION_CREATE, IQueryBuilder::PARAM_INT) + ), + ) + ); + + $shares = $qb->executeQuery()->fetchAll(); + $shares = array_values(array_map(fn ($share): array => [ + 'id' => (int)$share['id'], + 'share_type' => (int)$share['share_type'], + 'file_source' => (int)$share['file_source'], + ], $shares)); + return $this->filterSharesWithEmptyFolders($shares, self::CHUNK_SIZE); + } + + /** + * Check which of the supplied file ids is an empty folder until there are `$maxResults` folders + * @param list $shares + * @return list + */ + private function filterSharesWithEmptyFolders(array $shares, int $maxResults): array { + $query = $this->db->getQueryBuilder(); + $query->select('fileid') + ->from('filecache') + ->where($query->expr()->eq('size', $query->createNamedParameter(0), IQueryBuilder::PARAM_INT_ARRAY)) + ->andWhere($query->expr()->eq('mimetype', $query->createNamedParameter($this->folderMimeTypeId, IQueryBuilder::PARAM_INT))) + ->andWhere($query->expr()->in('fileid', $query->createParameter('fileids'))); + $chunks = array_chunk($shares, SharesReminderJob::CHUNK_SIZE); + $results = []; + foreach ($chunks as $chunk) { + $chunkFileIds = array_map(fn ($share): int => $share['file_source'], $chunk); + $chunkByFileId = array_combine($chunkFileIds, $chunk); + $query->setParameter('fileids', $chunkFileIds, IQueryBuilder::PARAM_INT_ARRAY); + $chunkResults = $query->executeQuery()->fetchAll(\PDO::FETCH_COLUMN); + foreach ($chunkResults as $folderId) { + $results[] = $chunkByFileId[$folderId]; + } + if (count($results) >= $maxResults) { + break; } } - $sharesResult->closeCursor(); + return $results; } /** diff --git a/apps/files_sharing/tests/SharesReminderJobTest.php b/apps/files_sharing/tests/SharesReminderJobTest.php index 5f01f4850e9e8..9889ff47c5366 100644 --- a/apps/files_sharing/tests/SharesReminderJobTest.php +++ b/apps/files_sharing/tests/SharesReminderJobTest.php @@ -12,6 +12,7 @@ use OCP\AppFramework\Utility\ITimeFactory; use OCP\Constants; use OCP\Defaults; +use OCP\Files\IMimeTypeLoader; use OCP\Files\IRootFolder; use OCP\IDBConnection; use OCP\IURLGenerator; @@ -71,6 +72,7 @@ protected function setUp(): void { \OC::$server->get(IFactory::class), $this->mailer, \OC::$server->get(Defaults::class), + \OC::$server->get(IMimeTypeLoader::class), ); } @@ -158,7 +160,7 @@ public function testSharesReminder( $testFolder = $user1Folder->newFolder('test'); if (!$isEmpty) { - $testFolder->newFile('some_file.txt'); + $testFolder->newFile('some_file.txt', 'content'); } $share = $this->shareManager->newShare(); From e019eae347704a6e73ad3097ffafdb1fd88f644d Mon Sep 17 00:00:00 2001 From: Josh Richards Date: Wed, 22 May 2024 17:06:06 -0400 Subject: [PATCH 04/10] fix(setupChecks): Having transactional file locking disabled is not supported Signed-off-by: Josh Richards --- apps/settings/lib/SetupChecks/FileLocking.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/settings/lib/SetupChecks/FileLocking.php b/apps/settings/lib/SetupChecks/FileLocking.php index ffd7714ddc163..f683ee05f033e 100644 --- a/apps/settings/lib/SetupChecks/FileLocking.php +++ b/apps/settings/lib/SetupChecks/FileLocking.php @@ -26,7 +26,7 @@ public function __construct( } public function getName(): string { - return $this->l10n->t('File locking'); + return $this->l10n->t('Transactional File Locking'); } public function getCategory(): string { @@ -43,8 +43,8 @@ protected function hasDBFileLocking(): bool { public function run(): SetupResult { if (!$this->hasWorkingFileLocking()) { - return SetupResult::warning( - $this->l10n->t('Transactional file locking is disabled, this might lead to issues with race conditions. Enable "filelocking.enabled" in config.php to avoid these problems.'), + return SetupResult::error( + $this->l10n->t('Transactional File Locking is disabled. This is not a a supported configuraton. It may lead to difficult to isolate problems including file corruption. Please remove the `\'filelocking.enabled\' => false` configuration entry from your `config.php` to avoid these problems.'), $this->urlGenerator->linkToDocs('admin-transactional-locking') ); } From 9836e9b16484582d309c8437ab46d82e34956941 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Thu, 19 Sep 2024 11:10:31 +0200 Subject: [PATCH 05/10] chore(deps): Update nextcloud/coding-standard to v1.3.1 Signed-off-by: provokateurin --- apps/admin_audit/lib/Actions/Action.php | 4 +- apps/admin_audit/lib/Actions/Files.php | 16 +- .../lib/Listener/FileEventListener.php | 2 +- .../Controller/RequestHandlerController.php | 2 +- .../Controller/NotificationsController.php | 2 +- apps/comments/lib/Notification/Listener.php | 2 +- apps/comments/lib/Notification/Notifier.php | 2 +- .../BuildReminderIndexBackgroundJob.php | 2 +- .../BackgroundJob/UserStatusAutomation.php | 6 +- apps/dav/lib/BulkUpload/BulkUploadPlugin.php | 2 +- .../lib/BulkUpload/MultipartRequestParser.php | 4 +- .../CalDAV/BirthdayCalendar/EnablePlugin.php | 2 +- apps/dav/lib/CalDAV/BirthdayService.php | 6 +- .../dav/lib/CalDAV/CachedSubscriptionImpl.php | 2 +- .../lib/CalDAV/CachedSubscriptionProvider.php | 2 +- apps/dav/lib/CalDAV/CalDavBackend.php | 18 +- apps/dav/lib/CalDAV/Calendar.php | 4 +- apps/dav/lib/CalDAV/CalendarHome.php | 2 +- apps/dav/lib/CalDAV/CalendarRoot.php | 2 +- apps/dav/lib/CalDAV/EventReader.php | 14 +- apps/dav/lib/CalDAV/EventReaderRDate.php | 6 +- apps/dav/lib/CalDAV/EventReaderRRule.php | 6 +- .../lib/CalDAV/Publishing/PublishPlugin.php | 10 +- .../lib/CalDAV/Reminder/ReminderService.php | 2 +- apps/dav/lib/CalDAV/Sharing/Backend.php | 3 +- apps/dav/lib/CalDAV/Sharing/Service.php | 4 +- apps/dav/lib/CalDAV/Status/StatusService.php | 6 +- apps/dav/lib/CalDAV/TimezoneService.php | 6 +- .../CalDAV/Trashbin/DeletedCalendarObject.php | 2 +- apps/dav/lib/CalDAV/UpcomingEvent.php | 6 +- apps/dav/lib/CalDAV/UpcomingEventsService.php | 6 +- .../Validation/CalDavValidatePlugin.php | 2 +- .../lib/CalDAV/WebcalCaching/Connection.php | 6 +- .../WebcalCaching/RefreshWebcalService.php | 6 +- .../Security/CardDavRateLimitingPlugin.php | 6 +- apps/dav/lib/CardDAV/Sharing/Backend.php | 3 +- apps/dav/lib/CardDAV/Sharing/Service.php | 4 +- .../Validation/CardDavValidatePlugin.php | 2 +- apps/dav/lib/Command/DeleteCalendar.php | 2 +- .../lib/Command/FixCalendarSyncCommand.php | 6 +- apps/dav/lib/Comments/CommentNode.php | 4 +- apps/dav/lib/Comments/CommentsPlugin.php | 2 +- apps/dav/lib/Comments/EntityCollection.php | 2 +- .../dav/lib/Comments/EntityTypeCollection.php | 2 +- .../Sabre/CommentPropertiesPlugin.php | 2 +- .../lib/Connector/Sabre/FilesReportPlugin.php | 2 +- apps/dav/lib/Connector/Sabre/Node.php | 4 +- .../dav/lib/Connector/Sabre/ServerFactory.php | 2 +- apps/dav/lib/Connector/Sabre/SharesPlugin.php | 2 +- apps/dav/lib/Connector/Sabre/TagsPlugin.php | 2 +- apps/dav/lib/Controller/DirectController.php | 2 +- .../lib/Controller/OutOfOfficeController.php | 2 +- apps/dav/lib/DAV/GroupPrincipalBackend.php | 2 +- apps/dav/lib/DAV/Sharing/Backend.php | 3 +- apps/dav/lib/DAV/Sharing/SharingMapper.php | 4 +- apps/dav/lib/DAV/Sharing/SharingService.php | 4 +- apps/dav/lib/DAV/Sharing/Xml/ShareRequest.php | 2 +- apps/dav/lib/Direct/DirectHome.php | 2 +- apps/dav/lib/Listener/OutOfOfficeListener.php | 2 +- .../BuildCalendarSearchIndexBackgroundJob.php | 4 +- .../BuildSocialSearchIndexBackgroundJob.php | 2 +- .../lib/Migration/DeleteSchedulingObjects.php | 5 +- .../Version1027Date20230504122946.php | 6 +- .../Apple/AppleProvisioningPlugin.php | 2 +- apps/dav/lib/Search/EventsSearchProvider.php | 2 +- .../dav/lib/Settings/AvailabilitySettings.php | 6 +- apps/dav/lib/SystemTag/SystemTagPlugin.php | 2 +- .../SystemTag/SystemTagsByIdCollection.php | 2 +- .../SystemTag/SystemTagsInUseCollection.php | 2 +- .../lib/UserMigration/CalendarMigrator.php | 2 +- .../lib/UserMigration/ContactsMigrator.php | 2 +- .../tests/unit/CalDAV/Schedule/PluginTest.php | 4 +- .../tests/unit/CardDAV/CardDavBackendTest.php | 48 +-- .../tests/unit/Command/DeleteCalendarTest.php | 2 +- .../unit/Connector/Sabre/ObjectTreeTest.php | 2 +- .../unit/Controller/DirectControllerTest.php | 2 +- .../dav/tests/unit/DAV/GroupPrincipalTest.php | 2 +- .../unit/Files/MultipartRequestParserTest.php | 10 +- .../Search/ContactsSearchProviderTest.php | 28 +- .../unit/Search/EventsSearchProviderTest.php | 312 +++++++++--------- .../unit/Search/TasksSearchProviderTest.php | 98 +++--- apps/dav/tests/unit/bootstrap.php | 2 +- .../lib/Command/DropLegacyFileKey.php | 4 +- .../lib/Controller/SettingsController.php | 2 +- .../lib/Controller/StatusController.php | 2 +- apps/encryption/lib/Crypto/Crypt.php | 6 +- apps/encryption/lib/Crypto/DecryptAll.php | 2 +- apps/encryption/lib/Crypto/EncryptAll.php | 2 +- apps/encryption/lib/KeyManager.php | 2 +- apps/encryption/lib/Settings/Admin.php | 2 +- .../tests/Command/FixEncryptedVersionTest.php | 2 +- .../lib/AddressHandler.php | 2 +- .../Controller/RequestHandlerController.php | 2 +- .../lib/Settings/Admin.php | 2 +- .../lib/Settings/Personal.php | 2 +- .../MountPublicLinkControllerTest.php | 2 +- .../tests/NotificationsTest.php | 2 +- .../lib/BackgroundJob/GetSharedSecret.php | 2 +- .../lib/Controller/OCSAuthAPIController.php | 4 +- .../lib/Controller/SettingsController.php | 2 +- apps/federation/lib/DbHandler.php | 2 +- .../lib/SyncFederationAddressBooks.php | 2 +- apps/federation/lib/TrustedServers.php | 2 +- .../DeleteExpiredOpenLocalEditor.php | 2 +- apps/files/lib/BackgroundJob/ScanFiles.php | 2 +- apps/files/lib/Command/ScanAppData.php | 2 +- apps/files/lib/Controller/ApiController.php | 3 +- .../Controller/DirectEditingController.php | 2 +- .../Controller/OpenLocalEditorController.php | 2 +- .../lib/Controller/TemplateController.php | 2 +- .../lib/BackgroundJob/CredentialsCleanup.php | 2 +- apps/files_external/lib/Command/Scan.php | 2 +- .../lib/Controller/ApiController.php | 2 +- .../Controller/GlobalStoragesController.php | 6 +- .../lib/Controller/StoragesController.php | 4 +- .../UserGlobalStoragesController.php | 4 +- .../lib/Controller/UserStoragesController.php | 6 +- .../Lib/Auth/Password/LoginCredentials.php | 2 +- apps/files_external/lib/Lib/PersonalMount.php | 2 +- apps/files_external/lib/MountConfig.php | 2 +- .../lib/Service/BackendService.php | 2 +- .../lib/Service/LegacyStoragesService.php | 2 +- .../lib/Service/StoragesService.php | 4 +- .../lib/Service/UserGlobalStoragesService.php | 2 +- .../lib/Service/UserStoragesService.php | 2 +- apps/files_external/lib/Settings/Admin.php | 2 +- apps/files_external/lib/Settings/Personal.php | 2 +- .../lib/Settings/PersonalSection.php | 2 +- apps/files_external/templates/settings.php | 4 +- .../Controller/StoragesControllerTest.php | 4 +- .../tests/Service/BackendServiceTest.php | 8 +- .../Service/UserGlobalStoragesServiceTest.php | 2 +- apps/files_sharing/lib/Cache.php | 2 +- .../Controller/PublicPreviewController.php | 2 +- .../lib/Controller/ShareAPIController.php | 8 +- .../lib/DeleteOrphanedSharesJob.php | 2 +- apps/files_sharing/lib/External/Manager.php | 2 +- apps/files_sharing/lib/Helper.php | 4 +- .../lib/Listener/LoadSidebarListener.php | 5 +- .../lib/Middleware/SharingCheckMiddleware.php | 2 +- apps/files_sharing/lib/MountProvider.php | 2 +- .../lib/Notification/Listener.php | 2 +- apps/files_sharing/lib/OrphanHelper.php | 2 +- apps/files_sharing/lib/SharedMount.php | 4 +- apps/files_sharing/lib/SharesReminderJob.php | 4 +- apps/files_sharing/tests/ApiTest.php | 32 +- apps/files_sharing/tests/CacheTest.php | 2 +- .../Controller/ShareAPIControllerTest.php | 2 +- apps/files_sharing/tests/ShareTest.php | 4 +- .../tests/SharesReminderJobTest.php | 2 +- apps/files_sharing/tests/UpdaterTest.php | 6 +- .../lib/BackgroundJob/ExpireTrash.php | 2 +- apps/files_trashbin/lib/Command/Size.php | 2 +- .../lib/Controller/PreviewController.php | 2 +- .../lib/Events/BeforeNodeRestoredEvent.php | 6 +- .../lib/Listeners/SyncLivePhotosListener.php | 4 +- .../lib/Sabre/RootCollection.php | 2 +- apps/files_trashbin/lib/Sabre/TrashHome.php | 2 +- .../lib/Sabre/TrashbinPlugin.php | 2 +- apps/files_trashbin/lib/Storage.php | 2 +- apps/files_trashbin/lib/Trashbin.php | 2 +- .../lib/UserMigration/TrashbinMigrator.php | 20 +- .../tests/Command/CleanUpTest.php | 4 +- apps/files_versions/lib/Capabilities.php | 2 +- .../lib/Controller/PreviewController.php | 4 +- .../lib/Sabre/RootCollection.php | 2 +- apps/files_versions/lib/Sabre/VersionFile.php | 2 +- apps/files_versions/lib/Storage.php | 34 +- .../CleanupExpiredAuthorizationCode.php | 1 - .../lib/Controller/OauthApiController.php | 2 +- .../lib/Controller/SettingsController.php | 2 +- apps/oauth2/lib/Db/ClientMapper.php | 4 +- .../Controller/OauthApiControllerTest.php | 6 +- .../lib/Controller/AppsController.php | 2 +- .../lib/Controller/PreferencesController.php | 2 +- .../lib/Controller/UsersController.php | 2 +- .../lib/Controller/VerificationController.php | 2 +- .../tests/Controller/GroupsControllerTest.php | 2 +- .../lib/Command/AdminDelegation/Add.php | 2 +- .../lib/Command/AdminDelegation/Remove.php | 4 +- .../lib/Command/AdminDelegation/Show.php | 2 +- .../lib/Controller/AppSettingsController.php | 2 +- .../lib/Controller/UsersController.php | 2 +- .../UserAddedToGroupActivityListener.php | 2 +- .../UserRemovedFromGroupActivityListener.php | 2 +- .../lib/Settings/Admin/Delegation.php | 2 +- .../lib/Settings/Personal/PersonalInfo.php | 2 +- apps/settings/lib/SetupChecks/CronErrors.php | 2 +- .../SetupChecks/DatabaseHasMissingColumns.php | 4 +- .../DatabaseHasMissingPrimaryKeys.php | 4 +- .../DatabasePendingBigIntConversions.php | 2 +- .../settings/lib/SetupChecks/OcxProviders.php | 2 +- apps/settings/lib/SetupChecks/PhpModules.php | 2 +- .../lib/SetupChecks/SecurityHeaders.php | 16 +- .../lib/SetupChecks/TempSpaceAvailable.php | 2 +- .../lib/UserMigration/AccountMigrator.php | 2 +- .../tests/Controller/UsersControllerTest.php | 4 +- .../tests/SetupChecks/SecurityHeadersTest.php | 2 +- apps/sharebymail/lib/ShareByMailProvider.php | 2 +- apps/systemtags/lib/Activity/Setting.php | 4 +- .../lib/Search/TagSearchProvider.php | 4 +- .../GetDeclarativeSettingsValueListener.php | 4 +- .../SetDeclarativeSettingsValueListener.php | 4 +- .../lib/Locking/FakeDBLockingProvider.php | 2 +- .../theming/lib/Controller/IconController.php | 2 +- apps/theming/lib/IconBuilder.php | 6 +- .../lib/Jobs/MigrateBackgroundImages.php | 4 +- .../lib/Jobs/RestoreBackgroundImageColor.php | 6 +- .../BeforeTemplateRenderedListener.php | 2 +- .../theming/lib/Service/BackgroundService.php | 4 +- apps/theming/lib/Service/ThemesService.php | 3 +- apps/theming/lib/ThemingDefaults.php | 10 +- apps/theming/lib/Util.php | 2 +- .../Controller/ThemingControllerTest.php | 6 +- apps/theming/tests/IconBuilderTest.php | 6 +- apps/updatenotification/lib/Command/Check.php | 2 +- apps/updatenotification/lib/Manager.php | 6 +- .../updatenotification/lib/Settings/Admin.php | 2 +- .../ajax/getNewServerConfigPrefix.php | 2 +- apps/user_ldap/ajax/wizard.php | 2 +- apps/user_ldap/lib/Access.php | 12 +- apps/user_ldap/lib/AppInfo/Application.php | 2 +- apps/user_ldap/lib/Command/CheckGroup.php | 8 +- apps/user_ldap/lib/Command/CheckUser.php | 2 +- apps/user_ldap/lib/Command/PromoteGroup.php | 2 +- apps/user_ldap/lib/Command/Search.php | 2 +- apps/user_ldap/lib/Configuration.php | 6 +- apps/user_ldap/lib/Connection.php | 14 +- .../lib/Controller/ConfigAPIController.php | 2 +- apps/user_ldap/lib/GroupPluginManager.php | 2 +- apps/user_ldap/lib/Group_LDAP.php | 12 +- apps/user_ldap/lib/Jobs/CleanUp.php | 2 +- apps/user_ldap/lib/LDAPProvider.php | 4 +- apps/user_ldap/lib/Proxy.php | 2 +- apps/user_ldap/lib/Settings/Admin.php | 2 +- .../lib/SetupChecks/LdapConnection.php | 6 +- apps/user_ldap/lib/User/DeletedUsersIndex.php | 2 +- apps/user_ldap/lib/User/Manager.php | 2 +- apps/user_ldap/lib/User/OfflineUser.php | 2 +- apps/user_ldap/lib/User/User.php | 32 +- apps/user_ldap/lib/UserPluginManager.php | 4 +- apps/user_ldap/lib/User_LDAP.php | 24 +- apps/user_ldap/lib/Wizard.php | 22 +- .../templates/part.wizard-server.php | 2 +- apps/user_ldap/templates/settings.php | 2 +- apps/user_ldap/tests/AccessTest.php | 2 +- apps/user_ldap/tests/Group_LDAPTest.php | 4 +- .../user_ldap/tests/Integration/Bootstrap.php | 2 +- .../Integration/ExceptionOnLostConnection.php | 2 +- apps/user_ldap/tests/Settings/AdminTest.php | 2 +- apps/user_ldap/tests/User/UserTest.php | 4 +- apps/user_ldap/tests/User_LDAPTest.php | 20 +- .../lib/ContactsMenu/StatusProvider.php | 4 +- .../BeforeTemplateRenderedListener.php | 2 +- .../Listener/OutOfOfficeStatusListener.php | 6 +- .../lib/Listener/UserLiveStatusListener.php | 6 +- .../Version1008Date20230921144701.php | 4 +- apps/user_status/tests/bootstrap.php | 2 +- .../lib/Service/WeatherStatusService.php | 2 +- .../lib/BackgroundJobs/WebhookCall.php | 6 +- .../lib/Db/WebhookListener.php | 2 +- .../lib/Db/WebhookListenerMapper.php | 2 +- .../lib/Service/PHPMongoQuery.php | 10 +- .../lib/Check/FileSystemTags.php | 2 +- .../lib/Controller/AWorkflowController.php | 6 +- .../Controller/UserWorkflowsController.php | 2 +- apps/workflowengine/lib/Entity/File.php | 2 +- apps/workflowengine/lib/Manager.php | 6 +- apps/workflowengine/lib/Service/Logger.php | 2 +- .../lib/Service/RuleMatcher.php | 2 +- .../workflowengine/lib/Settings/ASettings.php | 2 +- .../features/bootstrap/CalDavContext.php | 6 +- .../features/bootstrap/CardDavContext.php | 10 +- .../features/bootstrap/ChecksumsContext.php | 10 +- .../features/bootstrap/FakeSMTPHelper.php | 14 +- .../integration/features/bootstrap/WebDav.php | 34 +- build/license.php | 6 +- core/Command/Background/JobBase.php | 2 +- core/Command/Background/ListCommand.php | 2 +- core/Command/Config/Import.php | 2 +- core/Command/Db/ConvertType.php | 6 +- core/Command/Info/File.php | 8 +- core/Command/Integrity/SignApp.php | 4 +- core/Command/L10n/CreateJs.php | 2 +- core/Command/Log/File.php | 10 +- core/Command/Log/Manage.php | 8 +- core/Command/Maintenance/Install.php | 6 +- .../Mimetype/GenerateMimetypeFileBuilder.php | 4 +- .../Command/Maintenance/Mimetype/UpdateDB.php | 8 +- .../Command/Maintenance/Mimetype/UpdateJS.php | 2 +- core/Command/SetupChecks.php | 10 +- core/Command/SystemTag/Add.php | 2 +- core/Command/SystemTag/Edit.php | 4 +- core/Command/Upgrade.php | 2 +- core/Command/User/AuthTokens/Add.php | 2 +- core/Command/User/SyncAccountDataCommand.php | 2 +- core/Command/User/Welcome.php | 2 +- core/Controller/AppPasswordController.php | 4 +- core/Controller/ClientFlowLoginController.php | 6 +- .../ClientFlowLoginV2Controller.php | 2 +- core/Controller/CssController.php | 4 +- core/Controller/JsController.php | 4 +- core/Controller/OCMController.php | 2 +- core/Controller/SetupController.php | 2 +- .../TaskProcessingApiController.php | 2 +- .../BeforeMessageLoggedEventListener.php | 14 +- core/Service/LoginFlowV2Service.php | 6 +- core/templates/installation.php | 2 +- core/templates/layout.public.php | 2 +- core/templates/layout.user.php | 6 +- cron.php | 2 +- lib/base.php | 16 +- .../Activity/ActivitySettingsAdapter.php | 2 +- lib/private/AllConfig.php | 2 +- .../AppStore/Fetcher/AppDiscoverFetcher.php | 2 +- .../App/AppStore/Fetcher/AppFetcher.php | 3 +- lib/private/AppConfig.php | 24 +- lib/private/AppFramework/Http/Request.php | 4 +- .../PublicShare/PublicShareMiddleware.php | 2 +- .../Middleware/Security/CORSMiddleware.php | 5 +- .../PasswordConfirmationMiddleware.php | 3 +- .../AppFramework/Services/AppConfig.php | 10 +- lib/private/Archive/Archive.php | 6 +- lib/private/Archive/ZIP.php | 8 +- lib/private/Authentication/Login/Chain.php | 2 +- .../Authentication/Login/WebAuthnChain.php | 2 +- .../Authentication/WebAuthn/Manager.php | 2 +- lib/private/Avatar/Avatar.php | 2 +- lib/private/Avatar/UserAvatar.php | 2 +- lib/private/BackgroundJob/JobList.php | 2 +- .../Collaborators/LookupPlugin.php | 2 +- .../Collaboration/Resources/Collection.php | 2 +- .../Collaboration/Resources/Resource.php | 2 +- lib/private/Comments/Comment.php | 2 +- lib/private/Comments/Manager.php | 10 +- lib/private/Config.php | 6 +- lib/private/Console/Application.php | 2 +- .../Contacts/ContactsMenu/ContactsStore.php | 2 +- lib/private/DB/Adapter.php | 2 +- lib/private/DB/AdapterMySQL.php | 2 +- lib/private/DB/AdapterSqlite.php | 2 +- lib/private/DB/Connection.php | 8 +- lib/private/DB/DbDataCollector.php | 2 +- lib/private/DB/MigrationService.php | 2 +- lib/private/DB/MigratorExecuteSqlEvent.php | 2 +- .../DB/QueryBuilder/CompositeExpression.php | 2 +- .../FunctionBuilder/OCIFunctionBuilder.php | 2 +- .../Partitioned/PartitionedResult.php | 2 +- .../Sharded/CrossShardMoveHelper.php | 2 +- lib/private/DirectEditing/Manager.php | 2 +- lib/private/Encryption/DecryptAll.php | 2 +- lib/private/Encryption/EncryptionWrapper.php | 2 +- .../EncryptionHeaderKeyExistsException.php | 2 +- lib/private/Encryption/Keys/Storage.php | 4 +- lib/private/Encryption/Update.php | 2 +- lib/private/EventSource.php | 4 +- .../CloudFederationProviderManager.php | 2 +- .../Federation/CloudFederationShare.php | 2 +- lib/private/Federation/CloudIdManager.php | 2 +- lib/private/Files/Cache/QuerySearchHelper.php | 2 +- lib/private/Files/Cache/Scanner.php | 2 +- lib/private/Files/Cache/SearchBuilder.php | 8 +- .../Files/Config/CachedMountFileInfo.php | 2 +- lib/private/Files/Config/CachedMountInfo.php | 2 +- .../Files/Config/MountProviderCollection.php | 2 +- lib/private/Files/Config/UserMountCache.php | 2 +- lib/private/Files/Mount/HomeMountPoint.php | 2 +- lib/private/Files/Mount/Manager.php | 2 +- lib/private/Files/Mount/MountPoint.php | 2 +- lib/private/Files/Node/HookConnector.php | 2 +- .../Files/ObjectStore/ObjectStoreStorage.php | 4 +- lib/private/Files/ObjectStore/S3Signature.php | 8 +- lib/private/Files/Search/SearchComparison.php | 2 +- lib/private/Files/Search/SearchOrder.php | 2 +- lib/private/Files/Search/SearchQuery.php | 2 +- lib/private/Files/SetupManager.php | 6 +- lib/private/Files/Storage/CommonTest.php | 2 +- lib/private/Files/Storage/DAV.php | 4 +- .../Files/Storage/Wrapper/Encryption.php | 10 +- .../Files/Template/TemplateManager.php | 2 +- .../FilesMetadata/FilesMetadataManager.php | 6 +- .../Job/UpdateSingleMetadata.php | 2 +- .../FilesMetadata/Listener/MetadataDelete.php | 2 +- .../FilesMetadata/Listener/MetadataUpdate.php | 2 +- lib/private/FilesMetadata/MetadataQuery.php | 2 +- .../FilesMetadata/Model/FilesMetadata.php | 2 +- .../Service/IndexRequestService.php | 2 +- .../Service/MetadataRequestService.php | 2 +- lib/private/Group/Manager.php | 2 +- lib/private/Group/MetaData.php | 2 +- lib/private/Http/Client/Client.php | 4 +- lib/private/Http/Client/DnsPinMiddleware.php | 6 +- lib/private/InitialStateService.php | 4 +- lib/private/Installer.php | 20 +- lib/private/IntegrityCheck/Checker.php | 4 +- lib/private/L10N/Factory.php | 2 +- lib/private/Lock/AbstractLockingProvider.php | 4 +- lib/private/Lock/DBLockingProvider.php | 2 +- lib/private/Log.php | 2 +- lib/private/Log/Errorlog.php | 2 +- lib/private/Log/File.php | 6 +- lib/private/Log/LogFactory.php | 2 +- lib/private/Log/Rotate.php | 2 +- lib/private/Log/Systemdlog.php | 4 +- lib/private/Mail/Attachment.php | 2 +- lib/private/Mail/Provider/Manager.php | 6 +- lib/private/Memcache/Factory.php | 2 +- lib/private/MemoryInfo.php | 2 +- lib/private/Migration/MetadataManager.php | 2 +- lib/private/NaturalSort.php | 2 +- lib/private/NavigationManager.php | 2 +- lib/private/OCS/DiscoveryService.php | 2 +- lib/private/OCS/Provider.php | 6 +- lib/private/Preview/BackgroundCleanupJob.php | 2 +- lib/private/Preview/Generator.php | 2 +- lib/private/Preview/MimeIconProvider.php | 4 +- lib/private/PreviewManager.php | 2 +- lib/private/Profiler/FileProfilerStorage.php | 14 +- lib/private/Repair.php | 2 +- lib/private/Repair/Collation.php | 2 +- .../Repair/Events/RepairAdvanceEvent.php | 2 +- .../Repair/Events/RepairErrorEvent.php | 2 +- lib/private/Repair/Events/RepairInfoEvent.php | 2 +- .../Repair/Events/RepairStartEvent.php | 2 +- lib/private/Repair/Events/RepairStepEvent.php | 2 +- .../Repair/Events/RepairWarningEvent.php | 2 +- lib/private/Repair/RepairDavShares.php | 2 +- lib/private/Repair/RepairMimeTypes.php | 2 +- lib/private/RichObjectStrings/Validator.php | 2 +- lib/private/Route/Router.php | 2 +- lib/private/Search/Filter/BooleanFilter.php | 2 +- lib/private/Search/Filter/DateTimeFilter.php | 2 +- lib/private/Search/Filter/FloatFilter.php | 2 +- lib/private/Search/Filter/GroupFilter.php | 2 +- lib/private/Search/Filter/IntegerFilter.php | 2 +- lib/private/Search/Filter/UserFilter.php | 2 +- lib/private/Search/FilterFactory.php | 2 +- lib/private/Search/SearchComposer.php | 10 +- lib/private/Search/UnsupportedFilter.php | 2 +- .../Bruteforce/Backend/MemoryCacheBackend.php | 2 +- .../CSP/ContentSecurityPolicyManager.php | 6 +- lib/private/Security/Crypto.php | 4 +- lib/private/Security/Hasher.php | 2 +- lib/private/Security/Normalizer/IpAddress.php | 6 +- .../RateLimiting/Backend/DatabaseBackend.php | 4 +- .../VerificationToken/VerificationToken.php | 10 +- lib/private/Settings/Manager.php | 2 +- lib/private/Setup.php | 8 +- lib/private/Setup/AbstractDatabase.php | 2 +- lib/private/Setup/MySQL.php | 2 +- lib/private/SetupCheck/SetupCheckManager.php | 4 +- lib/private/Share/Share.php | 4 +- lib/private/Share20/Manager.php | 4 +- lib/private/SystemTag/SystemTagManager.php | 8 +- .../SystemTag/SystemTagsInFilesDetector.php | 2 +- lib/private/Tags.php | 4 +- lib/private/TaskProcessing/Db/Task.php | 2 +- lib/private/TaskProcessing/Manager.php | 8 +- lib/private/Teams/TeamManager.php | 2 +- lib/private/Template/Base.php | 14 +- lib/private/Template/CSSResourceLocator.php | 14 +- lib/private/Template/JSConfigHelper.php | 2 +- lib/private/Template/JSResourceLocator.php | 30 +- lib/private/Template/ResourceLocator.php | 2 +- lib/private/Template/TemplateFileLocator.php | 4 +- lib/private/TemplateLayout.php | 8 +- lib/private/TextProcessing/Db/Task.php | 2 +- lib/private/TextProcessing/Manager.php | 4 +- .../RemoveOldTasksBackgroundJob.php | 1 - lib/private/TextToImage/Db/Task.php | 2 +- lib/private/TextToImage/Db/TaskMapper.php | 2 +- lib/private/TextToImage/Manager.php | 6 +- lib/private/URLGenerator.php | 8 +- lib/private/Updater.php | 22 +- lib/private/User/Manager.php | 2 +- lib/private/User/OutOfOfficeData.php | 6 +- lib/private/User/User.php | 2 +- lib/private/legacy/OC_App.php | 2 +- lib/private/legacy/OC_Defaults.php | 4 +- lib/private/legacy/OC_Files.php | 12 +- lib/private/legacy/OC_Helper.php | 2 +- lib/private/legacy/OC_JSON.php | 2 +- lib/private/legacy/OC_Response.php | 4 +- lib/private/legacy/OC_Template.php | 10 +- lib/private/legacy/OC_Util.php | 4 +- lib/private/legacy/template/functions.php | 14 +- lib/public/App/IAppManager.php | 2 +- .../AuthPublicShareController.php | 2 +- lib/public/AppFramework/Controller.php | 2 +- lib/public/AppFramework/Db/QBMapper.php | 2 +- .../Http/Attribute/AuthorizedAdminSetting.php | 2 +- .../Http/Attribute/BruteForceProtection.php | 2 +- .../Http/EmptyContentSecurityPolicy.php | 2 +- .../BeforeLoginTemplateRenderedEvent.php | 4 +- lib/public/AppFramework/Http/Response.php | 2 +- .../TwoFactorProviderChallengeFailed.php | 3 +- .../TwoFactorProviderChallengePassed.php | 3 +- lib/public/AutoloadNotAllowedException.php | 2 +- lib/public/Comments/ICommentsManager.php | 8 +- .../Files/Events/Node/AbstractNodeEvent.php | 2 +- .../Files/Events/Node/AbstractNodesEvent.php | 2 +- lib/public/Files/Lock/LockContext.php | 2 +- lib/public/Files/Template/Field.php | 2 +- lib/public/Files/Template/FieldFactory.php | 2 +- .../Template/RegisterTemplateCreatorEvent.php | 2 +- .../Files/Template/TemplateFileCreator.php | 2 +- lib/public/FilesMetadata/AMetadataEvent.php | 2 +- .../Event/MetadataNamedEvent.php | 2 +- .../FilesMetadata/IFilesMetadataManager.php | 4 +- lib/public/INavigationManager.php | 2 +- lib/public/Log/RotationTrait.php | 2 +- lib/public/Mail/Provider/Address.php | 6 +- lib/public/Mail/Provider/Attachment.php | 8 +- lib/public/Mail/Provider/IAddress.php | 4 +- lib/public/Mail/Provider/IAttachment.php | 6 +- lib/public/Mail/Provider/IManager.php | 6 +- lib/public/Mail/Provider/IMessage.php | 12 +- lib/public/Mail/Provider/IProvider.php | 4 +- lib/public/Mail/Provider/Message.php | 12 +- .../Attributes/GenericMigrationAttribute.php | 2 +- lib/public/Preview/IMimeIconProvider.php | 2 +- .../DeclarativeSettingsRegisterFormEvent.php | 4 +- lib/public/Share/IShare.php | 2 +- .../Events/AbstractTaskProcessingEvent.php | 2 +- lib/public/TaskProcessing/IManager.php | 2 +- lib/public/Teams/Team.php | 6 +- .../Events/AbstractTextProcessingEvent.php | 2 +- .../Events/AbstractTextToImageEvent.php | 2 +- lib/public/Translation/LanguageTuple.php | 2 +- .../User/Events/OutOfOfficeChangedEvent.php | 4 +- .../User/Events/OutOfOfficeClearedEvent.php | 4 +- .../User/Events/OutOfOfficeEndedEvent.php | 4 +- .../User/Events/OutOfOfficeScheduledEvent.php | 4 +- .../User/Events/OutOfOfficeStartedEvent.php | 4 +- lib/public/UserMigration/IMigrator.php | 6 +- .../TMigratorBasicVersionHandling.php | 2 +- lib/public/Util.php | 4 +- ocs/providers.php | 2 +- ocs/v1.php | 6 +- public.php | 2 +- remote.php | 6 +- tests/Core/Command/Log/FileTest.php | 2 +- tests/Core/Command/Maintenance/ModeTest.php | 2 +- tests/Core/Command/SystemTag/AddTest.php | 2 +- tests/Core/Command/SystemTag/EditTest.php | 6 +- .../Controller/AppPasswordControllerTest.php | 4 +- .../Core/Controller/AvatarControllerTest.php | 26 +- .../ClientFlowLoginControllerTest.php | 8 +- .../ClientFlowLoginV2ControllerTest.php | 2 +- .../Service/LoginFlowV2ServiceUnitTest.php | 2 +- tests/enable_all.php | 2 +- tests/lib/AllConfigTest.php | 2 +- tests/lib/App/AppManagerTest.php | 2 +- .../Fetcher/AppDiscoverFetcherTest.php | 2 +- tests/lib/App/InfoParserTest.php | 2 +- tests/lib/AppConfigTest.php | 4 +- .../Http/DownloadResponseTest.php | 2 +- .../lib/AppFramework/Routing/RoutingTest.php | 2 +- tests/lib/AppTest.php | 4 +- tests/lib/Archive/TestBase.php | 44 +-- tests/lib/Archive/ZIPTest.php | 2 +- .../Token/PublicKeyTokenProviderTest.php | 8 +- .../Collaborators/GroupPluginTest.php | 2 +- .../Collaborators/SearchTest.php | 2 +- .../Collaborators/UserPluginTest.php | 2 +- tests/lib/Comments/FakeManager.php | 6 +- tests/lib/ConfigTest.php | 4 +- tests/lib/ErrorHandlerTest.php | 2 +- tests/lib/Files/Config/UserMountCacheTest.php | 2 +- .../ObjectStore/ObjectStoreStorageTest.php | 4 +- tests/lib/Files/Storage/StoragesTest.php | 8 +- .../Files/Storage/Wrapper/EncodingTest.php | 2 +- .../Files/Storage/Wrapper/EncryptionTest.php | 2 +- tests/lib/Files/ViewTest.php | 4 +- tests/lib/Http/Client/ClientTest.php | 6 +- tests/lib/ImageTest.php | 94 +++--- tests/lib/InfoXmlTest.php | 2 +- tests/lib/IntegrityCheck/CheckerTest.php | 66 ++-- tests/lib/L10N/L10nTest.php | 12 +- tests/lib/Log/LogFactoryTest.php | 6 +- tests/lib/NavigationManagerTest.php | 2 +- .../lib/Preview/BackgroundCleanupJobTest.php | 2 +- tests/lib/Route/RouterTest.php | 2 +- tests/lib/Security/CertificateManagerTest.php | 2 +- tests/lib/Security/CertificateTest.php | 2 +- tests/lib/Security/SecureRandomTest.php | 2 +- tests/lib/Share/Backend.php | 4 +- .../lib/Share20/DefaultShareProviderTest.php | 40 +-- tests/lib/SubAdminTest.php | 4 +- .../lib/TaskProcessing/TaskProcessingTest.php | 4 +- tests/lib/TestCase.php | 2 +- tests/lib/Updater/VersionCheckTest.php | 2 +- tests/preseed-config.php | 2 +- vendor-bin/cs-fixer/composer.json | 2 +- vendor-bin/cs-fixer/composer.lock | 73 +++- 595 files changed, 1655 insertions(+), 1524 deletions(-) diff --git a/apps/admin_audit/lib/Actions/Action.php b/apps/admin_audit/lib/Actions/Action.php index 5d06cf4fbf515..2566025a8ce57 100644 --- a/apps/admin_audit/lib/Actions/Action.php +++ b/apps/admin_audit/lib/Actions/Action.php @@ -32,13 +32,13 @@ public function log(string $text, if (!isset($params[$element])) { if ($obfuscateParameters) { $this->logger->critical( - '$params["'.$element.'"] was missing.', + '$params["' . $element . '"] was missing.', ['app' => 'admin_audit'] ); } else { $this->logger->critical( sprintf( - '$params["'.$element.'"] was missing. Transferred value: %s', + '$params["' . $element . '"] was missing. Transferred value: %s', print_r($params, true) ), ['app' => 'admin_audit'] diff --git a/apps/admin_audit/lib/Actions/Files.php b/apps/admin_audit/lib/Actions/Files.php index 5c08640d2d2af..86eba871ea7cd 100644 --- a/apps/admin_audit/lib/Actions/Files.php +++ b/apps/admin_audit/lib/Actions/Files.php @@ -42,7 +42,7 @@ public function read(BeforeNodeReadEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file read: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file read: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -64,7 +64,7 @@ public function beforeRename(BeforeNodeRenamedEvent $event): void { $this->renamedNodes[$source->getId()] = $source; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file rename: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file rename: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -86,7 +86,7 @@ public function afterRename(NodeRenamedEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file rename: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file rename: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -112,7 +112,7 @@ public function create(NodeCreatedEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file create: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file create: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -141,7 +141,7 @@ public function copy(NodeCopiedEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file copy: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file copy: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -166,7 +166,7 @@ public function write(BeforeNodeWrittenEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file write: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file write: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -194,7 +194,7 @@ public function update(NodeWrittenEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file update: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file update: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } @@ -218,7 +218,7 @@ public function delete(NodeDeletedEvent $event): void { ]; } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file delete: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file delete: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } diff --git a/apps/admin_audit/lib/Listener/FileEventListener.php b/apps/admin_audit/lib/Listener/FileEventListener.php index 74bb2ac836c52..369f97239d7fa 100644 --- a/apps/admin_audit/lib/Listener/FileEventListener.php +++ b/apps/admin_audit/lib/Listener/FileEventListener.php @@ -48,7 +48,7 @@ private function beforePreviewFetched(BeforePreviewFetchedEvent $event): void { ); } catch (InvalidPathException|NotFoundException $e) { \OCP\Server::get(LoggerInterface::class)->error( - 'Exception thrown in file preview: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] + 'Exception thrown in file preview: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e] ); return; } diff --git a/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php b/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php index a49d70b693088..733f02434cd14 100644 --- a/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php +++ b/apps/cloud_federation_api/lib/Controller/RequestHandlerController.php @@ -50,7 +50,7 @@ public function __construct( private ICloudFederationProviderManager $cloudFederationProviderManager, private Config $config, private ICloudFederationFactory $factory, - private ICloudIdManager $cloudIdManager + private ICloudIdManager $cloudIdManager, ) { parent::__construct($appName, $request); } diff --git a/apps/comments/lib/Controller/NotificationsController.php b/apps/comments/lib/Controller/NotificationsController.php index a3228247884ae..2dc94b2e66367 100644 --- a/apps/comments/lib/Controller/NotificationsController.php +++ b/apps/comments/lib/Controller/NotificationsController.php @@ -33,7 +33,7 @@ public function __construct( protected IRootFolder $rootFolder, protected IURLGenerator $urlGenerator, protected IManager $notificationManager, - protected IUserSession $userSession + protected IUserSession $userSession, ) { parent::__construct($appName, $request); } diff --git a/apps/comments/lib/Notification/Listener.php b/apps/comments/lib/Notification/Listener.php index 44fb8fe3f4c4b..43922f85e59c4 100644 --- a/apps/comments/lib/Notification/Listener.php +++ b/apps/comments/lib/Notification/Listener.php @@ -16,7 +16,7 @@ class Listener { public function __construct( protected IManager $notificationManager, - protected IUserManager $userManager + protected IUserManager $userManager, ) { } diff --git a/apps/comments/lib/Notification/Notifier.php b/apps/comments/lib/Notification/Notifier.php index d5563ef7d8557..62562bf42aaca 100644 --- a/apps/comments/lib/Notification/Notifier.php +++ b/apps/comments/lib/Notification/Notifier.php @@ -25,7 +25,7 @@ public function __construct( protected IRootFolder $rootFolder, protected ICommentsManager $commentsManager, protected IURLGenerator $url, - protected IUserManager $userManager + protected IUserManager $userManager, ) { } diff --git a/apps/dav/lib/BackgroundJob/BuildReminderIndexBackgroundJob.php b/apps/dav/lib/BackgroundJob/BuildReminderIndexBackgroundJob.php index c214f8950cb88..abf12f7d58793 100644 --- a/apps/dav/lib/BackgroundJob/BuildReminderIndexBackgroundJob.php +++ b/apps/dav/lib/BackgroundJob/BuildReminderIndexBackgroundJob.php @@ -56,7 +56,7 @@ public function run($argument) { $offset = (int)$argument['offset']; $stopAt = (int)$argument['stopAt']; - $this->logger->info('Building calendar reminder index (' . $offset .'/' . $stopAt . ')'); + $this->logger->info('Building calendar reminder index (' . $offset . '/' . $stopAt . ')'); $offset = $this->buildIndex($offset, $stopAt); diff --git a/apps/dav/lib/BackgroundJob/UserStatusAutomation.php b/apps/dav/lib/BackgroundJob/UserStatusAutomation.php index f9c4d8dcd74be..7cc56698a9fc1 100644 --- a/apps/dav/lib/BackgroundJob/UserStatusAutomation.php +++ b/apps/dav/lib/BackgroundJob/UserStatusAutomation.php @@ -28,14 +28,16 @@ use Sabre\VObject\Recur\RRuleIterator; class UserStatusAutomation extends TimedJob { - public function __construct(private ITimeFactory $timeFactory, + public function __construct( + private ITimeFactory $timeFactory, private IDBConnection $connection, private IJobList $jobList, private LoggerInterface $logger, private IManager $manager, private IConfig $config, private IAvailabilityCoordinator $coordinator, - private IUserManager $userManager) { + private IUserManager $userManager, + ) { parent::__construct($timeFactory); // Interval 0 might look weird, but the last_checked is always moved diff --git a/apps/dav/lib/BulkUpload/BulkUploadPlugin.php b/apps/dav/lib/BulkUpload/BulkUploadPlugin.php index 8a99beaec6a9a..381f6aa9e3350 100644 --- a/apps/dav/lib/BulkUpload/BulkUploadPlugin.php +++ b/apps/dav/lib/BulkUpload/BulkUploadPlugin.php @@ -22,7 +22,7 @@ class BulkUploadPlugin extends ServerPlugin { public function __construct( Folder $userFolder, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->userFolder = $userFolder; $this->logger = $logger; diff --git a/apps/dav/lib/BulkUpload/MultipartRequestParser.php b/apps/dav/lib/BulkUpload/MultipartRequestParser.php index 97aa0597b34ea..107c67ea691b6 100644 --- a/apps/dav/lib/BulkUpload/MultipartRequestParser.php +++ b/apps/dav/lib/BulkUpload/MultipartRequestParser.php @@ -45,8 +45,8 @@ public function __construct( $this->stream = $stream; $boundary = $this->parseBoundaryFromHeaders($contentType); - $this->boundary = '--'.$boundary."\r\n"; - $this->lastBoundary = '--'.$boundary."--\r\n"; + $this->boundary = '--' . $boundary . "\r\n"; + $this->lastBoundary = '--' . $boundary . "--\r\n"; } /** diff --git a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php index de5b1139880e0..933679436d45f 100644 --- a/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php +++ b/apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php @@ -110,7 +110,7 @@ public function httpPost(RequestInterface $request, ResponseInterface $response) $requestBody = $request->getBodyAsString(); $this->server->xml->parse($requestBody, $request->getUrl(), $documentType); - if ($documentType !== '{'.self::NS_Nextcloud.'}enable-birthday-calendar') { + if ($documentType !== '{' . self::NS_Nextcloud . '}enable-birthday-calendar') { return; } diff --git a/apps/dav/lib/CalDAV/BirthdayService.php b/apps/dav/lib/CalDAV/BirthdayService.php index a10d73c4aa005..9a717b96d638a 100644 --- a/apps/dav/lib/CalDAV/BirthdayService.php +++ b/apps/dav/lib/CalDAV/BirthdayService.php @@ -108,7 +108,7 @@ public function onCardDeleted(int $addressBookId, $calendar = $this->ensureCalendarExists($principalUri); foreach (['', '-death', '-anniversary'] as $tag) { - $objectUri = $book['uri'] . '-' . $cardUri . $tag .'.ics'; + $objectUri = $book['uri'] . '-' . $cardUri . $tag . '.ics'; $this->calDavBackEnd->deleteCalendarObject($calendar['id'], $objectUri, CalDavBackend::CALENDAR_TYPE_CALENDAR, true); } } @@ -264,7 +264,7 @@ public function buildDateFromContact(string $cardData, * @param string $user */ public function resetForUser(string $user):void { - $principal = 'principals/users/'.$user; + $principal = 'principals/users/' . $user; $calendar = $this->calDavBackEnd->getCalendarByUri($principal, self::BIRTHDAY_CALENDAR_URI); if (!$calendar) { return; // The user's birthday calendar doesn't exist, no need to purge it @@ -281,7 +281,7 @@ public function resetForUser(string $user):void { * @throws \Sabre\DAV\Exception\BadRequest */ public function syncUser(string $user):void { - $principal = 'principals/users/'.$user; + $principal = 'principals/users/' . $user; $this->ensureCalendarExists($principal); $books = $this->cardDavBackEnd->getAddressBooksForUser($principal); foreach ($books as $book) { diff --git a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php index 17e6f4389cc59..1301fdb600091 100644 --- a/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php +++ b/apps/dav/lib/CalDAV/CachedSubscriptionImpl.php @@ -20,7 +20,7 @@ class CachedSubscriptionImpl implements ICalendar { public function __construct( CachedSubscription $calendar, array $calendarInfo, - CalDavBackend $backend + CalDavBackend $backend, ) { $this->calendar = $calendar; $this->calendarInfo = $calendarInfo; diff --git a/apps/dav/lib/CalDAV/CachedSubscriptionProvider.php b/apps/dav/lib/CalDAV/CachedSubscriptionProvider.php index 73fde0b71a066..d64f039d05b79 100644 --- a/apps/dav/lib/CalDAV/CachedSubscriptionProvider.php +++ b/apps/dav/lib/CalDAV/CachedSubscriptionProvider.php @@ -13,7 +13,7 @@ class CachedSubscriptionProvider implements ICalendarProvider { public function __construct( - private CalDavBackend $calDavBackend + private CalDavBackend $calDavBackend, ) { } diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 8b619712b8253..b8dfe762e35d7 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -354,7 +354,7 @@ public function getCalendarsForUser($principalUri) { $fields = array_column($this->propertyMap, 0); $fields = array_map(function (string $field) { - return 'a.'.$field; + return 'a.' . $field; }, $fields); $fields[] = 'a.id'; $fields[] = 'a.uri'; @@ -1713,19 +1713,19 @@ public function calendarQuery($calendarId, array $filters, $calendarType = self: try { $matches = $this->validateFilterForObject($row, $filters); } catch (ParseException $ex) { - $this->logger->error('Caught parsing exception for calendar data. This usually indicates invalid calendar data. calendar-id:'.$calendarId.' uri:'.$row['uri'], [ + $this->logger->error('Caught parsing exception for calendar data. This usually indicates invalid calendar data. calendar-id:' . $calendarId . ' uri:' . $row['uri'], [ 'app' => 'dav', 'exception' => $ex, ]); continue; } catch (InvalidDataException $ex) { - $this->logger->error('Caught invalid data exception for calendar data. This usually indicates invalid calendar data. calendar-id:'.$calendarId.' uri:'.$row['uri'], [ + $this->logger->error('Caught invalid data exception for calendar data. This usually indicates invalid calendar data. calendar-id:' . $calendarId . ' uri:' . $row['uri'], [ 'app' => 'dav', 'exception' => $ex, ]); continue; } catch (MaxInstancesExceededException $ex) { - $this->logger->warning('Caught max instances exceeded exception for calendar data. This usually indicates too much recurring (more than 3500) event in calendar data. Object uri: '.$row['uri'], [ + $this->logger->warning('Caught max instances exceeded exception for calendar data. This usually indicates too much recurring (more than 3500) event in calendar data. Object uri: ' . $row['uri'], [ 'app' => 'dav', 'exception' => $ex, ]); @@ -1848,7 +1848,7 @@ public function calendarSearch($principalUri, array $filters, $limit = null, $of ->andWhere($compExpr) ->andWhere($propParamExpr) ->andWhere($query->expr()->iLike('i.value', - $query->createNamedParameter('%'.$this->db->escapeLikeParameter($filters['search-term']).'%'))) + $query->createNamedParameter('%' . $this->db->escapeLikeParameter($filters['search-term']) . '%'))) ->andWhere($query->expr()->isNull('deleted_at')); if ($offset) { @@ -1890,7 +1890,7 @@ public function search( array $searchProperties, array $options, $limit, - $offset + $offset, ) { $outerQuery = $this->db->getQueryBuilder(); $innerQuery = $this->db->getQueryBuilder(); @@ -2066,7 +2066,7 @@ public function search( return $calendarObjects; } - private function searchCalendarObjects(IQueryBuilder $query, DateTimeInterface|null $start, DateTimeInterface|null $end): array { + private function searchCalendarObjects(IQueryBuilder $query, ?DateTimeInterface $start, ?DateTimeInterface $end): array { $calendarObjects = []; $filterByTimeRange = ($start instanceof DateTimeInterface) || ($end instanceof DateTimeInterface); @@ -2099,7 +2099,7 @@ private function searchCalendarObjects(IQueryBuilder $query, DateTimeInterface|n 'time-range' => null, ]); } catch (MaxInstancesExceededException $ex) { - $this->logger->warning('Caught max instances exceeded exception for calendar data. This usually indicates too much recurring (more than 3500) event in calendar data. Object uri: '.$row['uri'], [ + $this->logger->warning('Caught max instances exceeded exception for calendar data. This usually indicates too much recurring (more than 3500) event in calendar data. Object uri: ' . $row['uri'], [ 'app' => 'dav', 'exception' => $ex, ]); @@ -2196,7 +2196,7 @@ public function searchPrincipalUri(string $principalUri, array $componentTypes, array $searchProperties, array $searchParameters, - array $options = [] + array $options = [], ): array { return $this->atomic(function () use ($principalUri, $pattern, $componentTypes, $searchProperties, $searchParameters, $options) { $escapePattern = !\array_key_exists('escape_like_param', $options) || $options['escape_like_param'] !== false; diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php index 28267921a6f35..d3e0b3b222662 100644 --- a/apps/dav/lib/CalDAV/Calendar.php +++ b/apps/dav/lib/CalDAV/Calendar.php @@ -189,8 +189,8 @@ public function getACL() { $acl = $this->caldavBackend->applyShareAcl($this->getResourceId(), $acl); $allowedPrincipals = [ $this->getOwner(), - $this->getOwner(). '/calendar-proxy-read', - $this->getOwner(). '/calendar-proxy-write', + $this->getOwner() . '/calendar-proxy-read', + $this->getOwner() . '/calendar-proxy-write', parent::getOwner(), 'principals/system/public' ]; diff --git a/apps/dav/lib/CalDAV/CalendarHome.php b/apps/dav/lib/CalDAV/CalendarHome.php index 59a976ca6bc3d..4ac00578969ac 100644 --- a/apps/dav/lib/CalDAV/CalendarHome.php +++ b/apps/dav/lib/CalDAV/CalendarHome.php @@ -42,7 +42,7 @@ public function __construct( BackendInterface $caldavBackend, array $principalInfo, LoggerInterface $logger, - private bool $returnCachedSubscriptions + private bool $returnCachedSubscriptions, ) { parent::__construct($caldavBackend, $principalInfo); $this->l10n = \OC::$server->getL10N('dav'); diff --git a/apps/dav/lib/CalDAV/CalendarRoot.php b/apps/dav/lib/CalDAV/CalendarRoot.php index 7e57b70c48144..9ab3a4dd43f1e 100644 --- a/apps/dav/lib/CalDAV/CalendarRoot.php +++ b/apps/dav/lib/CalDAV/CalendarRoot.php @@ -20,7 +20,7 @@ public function __construct( PrincipalBackend\BackendInterface $principalBackend, Backend\BackendInterface $caldavBackend, $principalPrefix, - LoggerInterface $logger + LoggerInterface $logger, ) { parent::__construct($principalBackend, $caldavBackend, $principalPrefix); $this->logger = $logger; diff --git a/apps/dav/lib/CalDAV/EventReader.php b/apps/dav/lib/CalDAV/EventReader.php index bdceb184fb01b..6e845c596ae0d 100644 --- a/apps/dav/lib/CalDAV/EventReader.php +++ b/apps/dav/lib/CalDAV/EventReader.php @@ -89,7 +89,7 @@ public function __construct(VCalendar|VEvent|array|string $input, ?string $uid = $events = $input->getByUID($uid); // evaluate if any event where found if (count($events) === 0) { - throw new InvalidArgumentException('This VCALENDAR did not have an event with UID: '.$uid); + throw new InvalidArgumentException('This VCALENDAR did not have an event with UID: ' . $uid); } // extract calendar timezone if (isset($input->VTIMEZONE) && isset($input->VTIMEZONE->TZID)) { @@ -297,7 +297,7 @@ public function recurs(): bool { * * @return string|null R - Relative or A - Absolute */ - public function recurringPattern(): string|null { + public function recurringPattern(): ?string { if ($this->rruleIterator === null && $this->rdateIterator === null) { return null; } @@ -314,7 +314,7 @@ public function recurringPattern(): string|null { * * @return string|null daily, weekly, monthly, yearly, fixed */ - public function recurringPrecision(): string|null { + public function recurringPrecision(): ?string { if ($this->rruleIterator !== null) { return $this->rruleIterator->precision(); } @@ -331,7 +331,7 @@ public function recurringPrecision(): string|null { * * @return int|null */ - public function recurringInterval(): int|null { + public function recurringInterval(): ?int { return $this->rruleIterator?->interval(); } @@ -374,7 +374,7 @@ public function recurringConcludes(): bool { * * @return int|null */ - public function recurringConcludesAfter(): int|null { + public function recurringConcludesAfter(): ?int { // construct count place holder $count = 0; @@ -399,7 +399,7 @@ public function recurringConcludesAfter(): int|null { * * @return DateTime|null */ - public function recurringConcludesOn(): DateTime|null { + public function recurringConcludesOn(): ?DateTime { if ($this->rruleIterator !== null) { // retrieve rrule conclusion date @@ -626,7 +626,7 @@ public function recurringRelativePositionNamed(): array { * * @return DateTime */ - public function recurrenceDate(): DateTime|null { + public function recurrenceDate(): ?DateTime { if ($this->recurrenceCurrentDate !== null) { return DateTime::createFromInterface($this->recurrenceCurrentDate); } else { diff --git a/apps/dav/lib/CalDAV/EventReaderRDate.php b/apps/dav/lib/CalDAV/EventReaderRDate.php index 9d9669dc0f346..20234d06c00d5 100644 --- a/apps/dav/lib/CalDAV/EventReaderRDate.php +++ b/apps/dav/lib/CalDAV/EventReaderRDate.php @@ -13,15 +13,15 @@ class EventReaderRDate extends \Sabre\VObject\Recur\RDateIterator { - public function concludes(): DateTime|null { + public function concludes(): ?DateTime { return $this->concludesOn(); } - public function concludesAfter(): int|null { + public function concludesAfter(): ?int { return !empty($this->dates) ? count($this->dates) : null; } - public function concludesOn(): DateTime|null { + public function concludesOn(): ?DateTime { if (count($this->dates) > 0) { return new DateTime( $this->dates[array_key_last($this->dates)], diff --git a/apps/dav/lib/CalDAV/EventReaderRRule.php b/apps/dav/lib/CalDAV/EventReaderRRule.php index fc229ddcd4464..d2b4968c47940 100644 --- a/apps/dav/lib/CalDAV/EventReaderRRule.php +++ b/apps/dav/lib/CalDAV/EventReaderRRule.php @@ -22,7 +22,7 @@ public function interval(): int { return $this->interval; } - public function concludes(): DateTime|null { + public function concludes(): ?DateTime { // evaluate if until value is a date if ($this->until instanceof DateTimeInterface) { return DateTime::createFromInterface($this->until); @@ -48,11 +48,11 @@ public function concludes(): DateTime|null { return null; } - public function concludesAfter(): int|null { + public function concludesAfter(): ?int { return !empty($this->count) ? $this->count : null; } - public function concludesOn(): DateTime|null { + public function concludesOn(): ?DateTime { return isset($this->until) ? DateTime::createFromInterface($this->until) : null; } diff --git a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php index 1b30884cf12f9..6f8746283d124 100644 --- a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php +++ b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php @@ -97,17 +97,17 @@ public function initialize(Server $server) { public function propFind(PropFind $propFind, INode $node) { if ($node instanceof Calendar) { - $propFind->handle('{'.self::NS_CALENDARSERVER.'}publish-url', function () use ($node) { + $propFind->handle('{' . self::NS_CALENDARSERVER . '}publish-url', function () use ($node) { if ($node->getPublishStatus()) { // We return the publish-url only if the calendar is published. $token = $node->getPublishStatus(); - $publishUrl = $this->urlGenerator->getAbsoluteURL($this->server->getBaseUri().'public-calendars/').$token; + $publishUrl = $this->urlGenerator->getAbsoluteURL($this->server->getBaseUri() . 'public-calendars/') . $token; return new Publisher($publishUrl, true); } }); - $propFind->handle('{'.self::NS_CALENDARSERVER.'}allowed-sharing-modes', function () use ($node) { + $propFind->handle('{' . self::NS_CALENDARSERVER . '}allowed-sharing-modes', function () use ($node) { $canShare = (!$node->isSubscription() && $node->canWrite()); $canPublish = (!$node->isSubscription() && $node->canWrite()); @@ -160,7 +160,7 @@ public function httpPost(RequestInterface $request, ResponseInterface $response) switch ($documentType) { - case '{'.self::NS_CALENDARSERVER.'}publish-calendar': + case '{' . self::NS_CALENDARSERVER . '}publish-calendar': // We can only deal with IShareableCalendar objects if (!$node instanceof Calendar) { @@ -195,7 +195,7 @@ public function httpPost(RequestInterface $request, ResponseInterface $response) // Breaking the event chain return false; - case '{'.self::NS_CALENDARSERVER.'}unpublish-calendar': + case '{' . self::NS_CALENDARSERVER . '}unpublish-calendar': // We can only deal with IShareableCalendar objects if (!$node instanceof Calendar) { diff --git a/apps/dav/lib/CalDAV/Reminder/ReminderService.php b/apps/dav/lib/CalDAV/Reminder/ReminderService.php index b6032e733d991..293ce6a8788f5 100644 --- a/apps/dav/lib/CalDAV/Reminder/ReminderService.php +++ b/apps/dav/lib/CalDAV/Reminder/ReminderService.php @@ -446,7 +446,7 @@ private function getRemindersForVAlarm(VAlarm $valarm, private function writeRemindersToDatabase(array $reminders): void { $uniqueReminders = []; foreach ($reminders as $reminder) { - $key = $reminder['notification_date']. $reminder['event_hash'].$reminder['type']; + $key = $reminder['notification_date'] . $reminder['event_hash'] . $reminder['type']; if (!isset($uniqueReminders[$key])) { $uniqueReminders[$key] = $reminder; } diff --git a/apps/dav/lib/CalDAV/Sharing/Backend.php b/apps/dav/lib/CalDAV/Sharing/Backend.php index 40fb7e03e5f2f..fc5d65b5994b4 100644 --- a/apps/dav/lib/CalDAV/Sharing/Backend.php +++ b/apps/dav/lib/CalDAV/Sharing/Backend.php @@ -17,7 +17,8 @@ class Backend extends SharingBackend { - public function __construct(private IUserManager $userManager, + public function __construct( + private IUserManager $userManager, private IGroupManager $groupManager, private Principal $principalBackend, private ICacheFactory $cacheFactory, diff --git a/apps/dav/lib/CalDAV/Sharing/Service.php b/apps/dav/lib/CalDAV/Sharing/Service.php index 7867b8d1adb9f..4f0554f09bd22 100644 --- a/apps/dav/lib/CalDAV/Sharing/Service.php +++ b/apps/dav/lib/CalDAV/Sharing/Service.php @@ -13,7 +13,9 @@ class Service extends SharingService { protected string $resourceType = 'calendar'; - public function __construct(protected SharingMapper $mapper) { + public function __construct( + protected SharingMapper $mapper, + ) { parent::__construct($mapper); } } diff --git a/apps/dav/lib/CalDAV/Status/StatusService.php b/apps/dav/lib/CalDAV/Status/StatusService.php index 56eec5007b8a3..de19174de58da 100644 --- a/apps/dav/lib/CalDAV/Status/StatusService.php +++ b/apps/dav/lib/CalDAV/Status/StatusService.php @@ -27,13 +27,15 @@ class StatusService { private ICache $cache; - public function __construct(private ITimeFactory $timeFactory, + public function __construct( + private ITimeFactory $timeFactory, private IManager $calendarManager, private IUserManager $userManager, private UserStatusService $userStatusService, private IAvailabilityCoordinator $availabilityCoordinator, private ICacheFactory $cacheFactory, - private LoggerInterface $logger) { + private LoggerInterface $logger, + ) { $this->cache = $cacheFactory->createLocal('CalendarStatusService'); } diff --git a/apps/dav/lib/CalDAV/TimezoneService.php b/apps/dav/lib/CalDAV/TimezoneService.php index 93f19be1b55d1..a7709bde0f9e4 100644 --- a/apps/dav/lib/CalDAV/TimezoneService.php +++ b/apps/dav/lib/CalDAV/TimezoneService.php @@ -20,9 +20,11 @@ class TimezoneService { - public function __construct(private IConfig $config, + public function __construct( + private IConfig $config, private PropertyMapper $propertyMapper, - private IManager $calendarManager) { + private IManager $calendarManager, + ) { } public function getUserTimezone(string $userId): ?string { diff --git a/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObject.php b/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObject.php index 1326a42399b3f..06f4a153bf9b1 100644 --- a/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObject.php +++ b/apps/dav/lib/CalDAV/Trashbin/DeletedCalendarObject.php @@ -72,7 +72,7 @@ public function get() { public function getContentType() { $mime = 'text/calendar; charset=utf-8'; if (isset($this->objectData['component']) && $this->objectData['component']) { - $mime .= '; component='.$this->objectData['component']; + $mime .= '; component=' . $this->objectData['component']; } return $mime; diff --git a/apps/dav/lib/CalDAV/UpcomingEvent.php b/apps/dav/lib/CalDAV/UpcomingEvent.php index 26760ffedd5c7..e8b604f460a26 100644 --- a/apps/dav/lib/CalDAV/UpcomingEvent.php +++ b/apps/dav/lib/CalDAV/UpcomingEvent.php @@ -13,13 +13,15 @@ use OCA\DAV\ResponseDefinitions; class UpcomingEvent implements JsonSerializable { - public function __construct(private string $uri, + public function __construct( + private string $uri, private ?int $recurrenceId, private string $calendarUri, private ?int $start, private ?string $summary, private ?string $location, - private ?string $calendarAppUrl) { + private ?string $calendarAppUrl, + ) { } public function getUri(): string { diff --git a/apps/dav/lib/CalDAV/UpcomingEventsService.php b/apps/dav/lib/CalDAV/UpcomingEventsService.php index 04ab1be19b462..9c054deb4e014 100644 --- a/apps/dav/lib/CalDAV/UpcomingEventsService.php +++ b/apps/dav/lib/CalDAV/UpcomingEventsService.php @@ -17,11 +17,13 @@ use function array_map; class UpcomingEventsService { - public function __construct(private IManager $calendarManager, + public function __construct( + private IManager $calendarManager, private ITimeFactory $timeFactory, private IUserManager $userManager, private IAppManager $appManager, - private IURLGenerator $urlGenerator) { + private IURLGenerator $urlGenerator, + ) { } /** diff --git a/apps/dav/lib/CalDAV/Validation/CalDavValidatePlugin.php b/apps/dav/lib/CalDAV/Validation/CalDavValidatePlugin.php index 4a9721d00eca0..b647e63e67b6c 100644 --- a/apps/dav/lib/CalDAV/Validation/CalDavValidatePlugin.php +++ b/apps/dav/lib/CalDAV/Validation/CalDavValidatePlugin.php @@ -19,7 +19,7 @@ class CalDavValidatePlugin extends ServerPlugin { public function __construct( - private IAppConfig $config + private IAppConfig $config, ) { } diff --git a/apps/dav/lib/CalDAV/WebcalCaching/Connection.php b/apps/dav/lib/CalDAV/WebcalCaching/Connection.php index 9d626f2db6dd6..51d8cff2ed37d 100644 --- a/apps/dav/lib/CalDAV/WebcalCaching/Connection.php +++ b/apps/dav/lib/CalDAV/WebcalCaching/Connection.php @@ -21,9 +21,11 @@ use Sabre\VObject\Reader; class Connection { - public function __construct(private IClientService $clientService, + public function __construct( + private IClientService $clientService, private IAppConfig $config, - private LoggerInterface $logger) { + private LoggerInterface $logger, + ) { } /** diff --git a/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php b/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php index 47fd785d632ca..348a4e5ddbd2f 100644 --- a/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php +++ b/apps/dav/lib/CalDAV/WebcalCaching/RefreshWebcalService.php @@ -30,10 +30,12 @@ class RefreshWebcalService { public const STRIP_ATTACHMENTS = '{http://calendarserver.org/ns/}subscribed-strip-attachments'; public const STRIP_TODOS = '{http://calendarserver.org/ns/}subscribed-strip-todos'; - public function __construct(private CalDavBackend $calDavBackend, + public function __construct( + private CalDavBackend $calDavBackend, private LoggerInterface $logger, private Connection $connection, - private ITimeFactory $time) { + private ITimeFactory $time, + ) { } public function refreshSubscription(string $principalUri, string $uri) { diff --git a/apps/dav/lib/CardDAV/Security/CardDavRateLimitingPlugin.php b/apps/dav/lib/CardDAV/Security/CardDavRateLimitingPlugin.php index 7f0f1e2862325..256d8481ee359 100644 --- a/apps/dav/lib/CardDAV/Security/CardDavRateLimitingPlugin.php +++ b/apps/dav/lib/CardDAV/Security/CardDavRateLimitingPlugin.php @@ -25,12 +25,14 @@ class CardDavRateLimitingPlugin extends ServerPlugin { private ?string $userId; - public function __construct(private Limiter $limiter, + public function __construct( + private Limiter $limiter, private IUserManager $userManager, private CardDavBackend $cardDavBackend, private LoggerInterface $logger, private IAppConfig $config, - ?string $userId) { + ?string $userId, + ) { $this->limiter = $limiter; $this->userManager = $userManager; $this->cardDavBackend = $cardDavBackend; diff --git a/apps/dav/lib/CardDAV/Sharing/Backend.php b/apps/dav/lib/CardDAV/Sharing/Backend.php index 5e03f7699fa7a..557115762fc2c 100644 --- a/apps/dav/lib/CardDAV/Sharing/Backend.php +++ b/apps/dav/lib/CardDAV/Sharing/Backend.php @@ -16,7 +16,8 @@ use Psr\Log\LoggerInterface; class Backend extends SharingBackend { - public function __construct(private IUserManager $userManager, + public function __construct( + private IUserManager $userManager, private IGroupManager $groupManager, private Principal $principalBackend, private ICacheFactory $cacheFactory, diff --git a/apps/dav/lib/CardDAV/Sharing/Service.php b/apps/dav/lib/CardDAV/Sharing/Service.php index 69bcecde227a7..1ab208f7ec3a1 100644 --- a/apps/dav/lib/CardDAV/Sharing/Service.php +++ b/apps/dav/lib/CardDAV/Sharing/Service.php @@ -13,7 +13,9 @@ class Service extends SharingService { protected string $resourceType = 'addressbook'; - public function __construct(protected SharingMapper $mapper) { + public function __construct( + protected SharingMapper $mapper, + ) { parent::__construct($mapper); } } diff --git a/apps/dav/lib/CardDAV/Validation/CardDavValidatePlugin.php b/apps/dav/lib/CardDAV/Validation/CardDavValidatePlugin.php index 7e76b9dac92f2..a5fd80ec124e2 100644 --- a/apps/dav/lib/CardDAV/Validation/CardDavValidatePlugin.php +++ b/apps/dav/lib/CardDAV/Validation/CardDavValidatePlugin.php @@ -19,7 +19,7 @@ class CardDavValidatePlugin extends ServerPlugin { public function __construct( - private IAppConfig $config + private IAppConfig $config, ) { } diff --git a/apps/dav/lib/Command/DeleteCalendar.php b/apps/dav/lib/Command/DeleteCalendar.php index 53cabcfc5ce2e..f6dbed856e69a 100644 --- a/apps/dav/lib/Command/DeleteCalendar.php +++ b/apps/dav/lib/Command/DeleteCalendar.php @@ -54,7 +54,7 @@ protected function configure(): void { protected function execute( InputInterface $input, - OutputInterface $output + OutputInterface $output, ): int { /** @var string $user */ $user = $input->getArgument('uid'); diff --git a/apps/dav/lib/Command/FixCalendarSyncCommand.php b/apps/dav/lib/Command/FixCalendarSyncCommand.php index e94e1dc9c4af3..c10ee7e3da6d2 100644 --- a/apps/dav/lib/Command/FixCalendarSyncCommand.php +++ b/apps/dav/lib/Command/FixCalendarSyncCommand.php @@ -20,8 +20,10 @@ class FixCalendarSyncCommand extends Command { - public function __construct(private IUserManager $userManager, - private CalDavBackend $calDavBackend) { + public function __construct( + private IUserManager $userManager, + private CalDavBackend $calDavBackend, + ) { parent::__construct('dav:fix-missing-caldav-changes'); } diff --git a/apps/dav/lib/Comments/CommentNode.php b/apps/dav/lib/Comments/CommentNode.php index a257611dd1520..d0f0d585888f8 100644 --- a/apps/dav/lib/Comments/CommentNode.php +++ b/apps/dav/lib/Comments/CommentNode.php @@ -55,7 +55,7 @@ public function __construct( IComment $comment, IUserManager $userManager, IUserSession $userSession, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->commentsManager = $commentsManager; $this->comment = $comment; @@ -69,7 +69,7 @@ public function __construct( if ($getter === 'getMentions') { continue; // special treatment } - $name = '{'.self::NS_OWNCLOUD.'}' . lcfirst(substr($getter, 3)); + $name = '{' . self::NS_OWNCLOUD . '}' . lcfirst(substr($getter, 3)); $this->properties[$name] = $getter; } $this->userManager = $userManager; diff --git a/apps/dav/lib/Comments/CommentsPlugin.php b/apps/dav/lib/Comments/CommentsPlugin.php index 3be87460d2167..52e48ec0ed114 100644 --- a/apps/dav/lib/Comments/CommentsPlugin.php +++ b/apps/dav/lib/Comments/CommentsPlugin.php @@ -216,7 +216,7 @@ private function createComment($objectType, $objectId, $data, $contentType = 'ap } } if (is_null($actorId)) { - throw new BadRequest('Invalid actor "' . $actorType .'"'); + throw new BadRequest('Invalid actor "' . $actorType . '"'); } try { diff --git a/apps/dav/lib/Comments/EntityCollection.php b/apps/dav/lib/Comments/EntityCollection.php index 19af2d9c23401..3135449641cea 100644 --- a/apps/dav/lib/Comments/EntityCollection.php +++ b/apps/dav/lib/Comments/EntityCollection.php @@ -46,7 +46,7 @@ public function __construct( ICommentsManager $commentsManager, IUserManager $userManager, IUserSession $userSession, - LoggerInterface $logger + LoggerInterface $logger, ) { foreach (['id', 'name'] as $property) { $$property = trim($$property); diff --git a/apps/dav/lib/Comments/EntityTypeCollection.php b/apps/dav/lib/Comments/EntityTypeCollection.php index da5a18e78c89f..b326805542d39 100644 --- a/apps/dav/lib/Comments/EntityTypeCollection.php +++ b/apps/dav/lib/Comments/EntityTypeCollection.php @@ -38,7 +38,7 @@ public function __construct( IUserManager $userManager, IUserSession $userSession, LoggerInterface $logger, - \Closure $childExistsFunction + \Closure $childExistsFunction, ) { $name = trim($name); if (empty($name)) { diff --git a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php index f2da3782def39..65e77cea2850a 100644 --- a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php @@ -80,7 +80,7 @@ private function cacheDirectory(Directory $directory): void { */ public function handleGetProperties( PropFind $propFind, - \Sabre\DAV\INode $node + \Sabre\DAV\INode $node, ) { if (!($node instanceof File) && !($node instanceof Directory)) { return; diff --git a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php index 581adfa418440..b82fee957bc24 100644 --- a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php @@ -106,7 +106,7 @@ public function __construct(Tree $tree, IUserSession $userSession, IGroupManager $groupManager, Folder $userFolder, - IAppManager $appManager + IAppManager $appManager, ) { $this->tree = $tree; $this->fileView = $view; diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php index 3ca542fee73ed..ac5514e11e140 100644 --- a/apps/dav/lib/Connector/Sabre/Node.php +++ b/apps/dav/lib/Connector/Sabre/Node.php @@ -79,7 +79,7 @@ public function __construct(View $view, FileInfo $info, ?IManager $shareManager protected function refreshInfo(): void { $info = $this->fileView->getFileInfo($this->path); if ($info === false) { - throw new \Sabre\DAV\Exception('Failed to get fileinfo for '. $this->path); + throw new \Sabre\DAV\Exception('Failed to get fileinfo for ' . $this->path); } $this->info = $info; $root = \OC::$server->get(IRootFolder::class); @@ -131,7 +131,7 @@ public function setName($name) { $this->verifyPath($newPath); if (!$this->fileView->rename($this->path, $newPath)) { - throw new \Sabre\DAV\Exception('Failed to rename '. $this->path . ' to ' . $newPath); + throw new \Sabre\DAV\Exception('Failed to rename ' . $this->path . ' to ' . $newPath); } $this->path = $newPath; diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php index 42d3ce1818ace..106b425b121aa 100644 --- a/apps/dav/lib/Connector/Sabre/ServerFactory.php +++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php @@ -49,7 +49,7 @@ public function __construct( IRequest $request, IPreview $previewManager, IEventDispatcher $eventDispatcher, - IL10N $l10n + IL10N $l10n, ) { $this->config = $config; $this->logger = $logger; diff --git a/apps/dav/lib/Connector/Sabre/SharesPlugin.php b/apps/dav/lib/Connector/Sabre/SharesPlugin.php index 20e94e9aedeb0..088cf33d85fa8 100644 --- a/apps/dav/lib/Connector/Sabre/SharesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/SharesPlugin.php @@ -164,7 +164,7 @@ private function getShares(DavNode $sabreNode): array { */ public function handleGetProperties( PropFind $propFind, - \Sabre\DAV\INode $sabreNode + \Sabre\DAV\INode $sabreNode, ) { if (!($sabreNode instanceof DavNode)) { return; diff --git a/apps/dav/lib/Connector/Sabre/TagsPlugin.php b/apps/dav/lib/Connector/Sabre/TagsPlugin.php index 3f5268f513705..a3f2847ee1ac0 100644 --- a/apps/dav/lib/Connector/Sabre/TagsPlugin.php +++ b/apps/dav/lib/Connector/Sabre/TagsPlugin.php @@ -189,7 +189,7 @@ private function updateTags($fileId, $tags) { */ public function handleGetProperties( PropFind $propFind, - \Sabre\DAV\INode $node + \Sabre\DAV\INode $node, ) { if (!($node instanceof \OCA\DAV\Connector\Sabre\Node)) { return; diff --git a/apps/dav/lib/Controller/DirectController.php b/apps/dav/lib/Controller/DirectController.php index 77f5b8f541900..80e00e93ca7c7 100644 --- a/apps/dav/lib/Controller/DirectController.php +++ b/apps/dav/lib/Controller/DirectController.php @@ -117,7 +117,7 @@ public function getUrl(int $fileId, int $expirationTime = 60 * 60 * 8): DataResp $this->mapper->insert($direct); - $url = $this->urlGenerator->getAbsoluteURL('remote.php/direct/'.$token); + $url = $this->urlGenerator->getAbsoluteURL('remote.php/direct/' . $token); return new DataResponse([ 'url' => $url, diff --git a/apps/dav/lib/Controller/OutOfOfficeController.php b/apps/dav/lib/Controller/OutOfOfficeController.php index 4978fb87737c3..e86989929495a 100644 --- a/apps/dav/lib/Controller/OutOfOfficeController.php +++ b/apps/dav/lib/Controller/OutOfOfficeController.php @@ -121,7 +121,7 @@ public function setOutOfOffice( string $status, string $message, ?string $replacementUserId, - ?string $replacementUserDisplayName + ?string $replacementUserDisplayName, ): DataResponse { $user = $this->userSession?->getUser(); diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php index 7ccc3f02594a7..887f3b2d7e9e7 100644 --- a/apps/dav/lib/DAV/GroupPrincipalBackend.php +++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php @@ -40,7 +40,7 @@ public function __construct( IGroupManager $IGroupManager, IUserSession $userSession, IShareManager $shareManager, - IConfig $config + IConfig $config, ) { $this->groupManager = $IGroupManager; $this->userSession = $userSession; diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php index 5630336df4276..06a082628d3eb 100644 --- a/apps/dav/lib/DAV/Sharing/Backend.php +++ b/apps/dav/lib/DAV/Sharing/Backend.php @@ -27,7 +27,8 @@ abstract class Backend { private ICache $shareCache; - public function __construct(private IUserManager $userManager, + public function __construct( + private IUserManager $userManager, private IGroupManager $groupManager, private Principal $principalBackend, private ICacheFactory $cacheFactory, diff --git a/apps/dav/lib/DAV/Sharing/SharingMapper.php b/apps/dav/lib/DAV/Sharing/SharingMapper.php index 59483ac9471a9..0aec5b7fe81d1 100644 --- a/apps/dav/lib/DAV/Sharing/SharingMapper.php +++ b/apps/dav/lib/DAV/Sharing/SharingMapper.php @@ -11,7 +11,9 @@ use OCP\IDBConnection; class SharingMapper { - public function __construct(private IDBConnection $db) { + public function __construct( + private IDBConnection $db, + ) { } protected function getSharesForIdByAccess(int $resourceId, string $resourceType, bool $sharesWithAccess): array { diff --git a/apps/dav/lib/DAV/Sharing/SharingService.php b/apps/dav/lib/DAV/Sharing/SharingService.php index de280d2c34712..b9ac36ea066fa 100644 --- a/apps/dav/lib/DAV/Sharing/SharingService.php +++ b/apps/dav/lib/DAV/Sharing/SharingService.php @@ -9,7 +9,9 @@ abstract class SharingService { protected string $resourceType = ''; - public function __construct(protected SharingMapper $mapper) { + public function __construct( + protected SharingMapper $mapper, + ) { } public function getResourceType(): string { diff --git a/apps/dav/lib/DAV/Sharing/Xml/ShareRequest.php b/apps/dav/lib/DAV/Sharing/Xml/ShareRequest.php index ca9602fb8c200..aa3a880df6b1c 100644 --- a/apps/dav/lib/DAV/Sharing/Xml/ShareRequest.php +++ b/apps/dav/lib/DAV/Sharing/Xml/ShareRequest.php @@ -29,7 +29,7 @@ public function __construct(array $set, array $remove) { public static function xmlDeserialize(Reader $reader) { $elements = $reader->parseInnerTree([ - '{' . Plugin::NS_OWNCLOUD. '}set' => 'Sabre\\Xml\\Element\\KeyValue', + '{' . Plugin::NS_OWNCLOUD . '}set' => 'Sabre\\Xml\\Element\\KeyValue', '{' . Plugin::NS_OWNCLOUD . '}remove' => 'Sabre\\Xml\\Element\\KeyValue', ]); diff --git a/apps/dav/lib/Direct/DirectHome.php b/apps/dav/lib/Direct/DirectHome.php index 36ff8b213cb80..66fe6f0f3d437 100644 --- a/apps/dav/lib/Direct/DirectHome.php +++ b/apps/dav/lib/Direct/DirectHome.php @@ -46,7 +46,7 @@ public function __construct( ITimeFactory $timeFactory, IThrottler $throttler, IRequest $request, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { $this->rootFolder = $rootFolder; $this->mapper = $mapper; diff --git a/apps/dav/lib/Listener/OutOfOfficeListener.php b/apps/dav/lib/Listener/OutOfOfficeListener.php index e0997e8182b67..45728aa35d31d 100644 --- a/apps/dav/lib/Listener/OutOfOfficeListener.php +++ b/apps/dav/lib/Listener/OutOfOfficeListener.php @@ -39,7 +39,7 @@ public function __construct( private ServerFactory $serverFactory, private IConfig $appConfig, private TimezoneService $timezoneService, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php b/apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php index 4c87e25c6986d..da8f31e7d3d59 100644 --- a/apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php +++ b/apps/dav/lib/Migration/BuildCalendarSearchIndexBackgroundJob.php @@ -21,7 +21,7 @@ public function __construct( private CalDavBackend $calDavBackend, private LoggerInterface $logger, private IJobList $jobList, - ITimeFactory $timeFactory + ITimeFactory $timeFactory, ) { parent::__construct($timeFactory); } @@ -30,7 +30,7 @@ public function run($arguments) { $offset = (int)$arguments['offset']; $stopAt = (int)$arguments['stopAt']; - $this->logger->info('Building calendar index (' . $offset .'/' . $stopAt . ')'); + $this->logger->info('Building calendar index (' . $offset . '/' . $stopAt . ')'); $startTime = $this->time->getTime(); while (($this->time->getTime() - $startTime) < 15) { diff --git a/apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php b/apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php index 138f764f1e6c0..072a4feacc62e 100644 --- a/apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php +++ b/apps/dav/lib/Migration/BuildSocialSearchIndexBackgroundJob.php @@ -31,7 +31,7 @@ public function run($arguments) { $offset = $arguments['offset']; $stopAt = $arguments['stopAt']; - $this->logger->info('Indexing social profile data (' . $offset .'/' . $stopAt . ')'); + $this->logger->info('Indexing social profile data (' . $offset . '/' . $stopAt . ')'); $offset = $this->buildIndex($offset, $stopAt); diff --git a/apps/dav/lib/Migration/DeleteSchedulingObjects.php b/apps/dav/lib/Migration/DeleteSchedulingObjects.php index 3919236788bb3..3cb3c9c9b109b 100644 --- a/apps/dav/lib/Migration/DeleteSchedulingObjects.php +++ b/apps/dav/lib/Migration/DeleteSchedulingObjects.php @@ -16,9 +16,10 @@ use OCP\Migration\IRepairStep; class DeleteSchedulingObjects implements IRepairStep { - public function __construct(private IJobList $jobList, + public function __construct( + private IJobList $jobList, private ITimeFactory $time, - private CalDavBackend $calDavBackend + private CalDavBackend $calDavBackend, ) { } diff --git a/apps/dav/lib/Migration/Version1027Date20230504122946.php b/apps/dav/lib/Migration/Version1027Date20230504122946.php index 9e1d1701934d1..f294cf192c267 100644 --- a/apps/dav/lib/Migration/Version1027Date20230504122946.php +++ b/apps/dav/lib/Migration/Version1027Date20230504122946.php @@ -20,10 +20,12 @@ use Throwable; class Version1027Date20230504122946 extends SimpleMigrationStep { - public function __construct(private SyncService $syncService, + public function __construct( + private SyncService $syncService, private LoggerInterface $logger, private IUserManager $userManager, - private IConfig $config) { + private IConfig $config, + ) { } /** * @param IOutput $output diff --git a/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php b/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php index 54818a890f393..1a02457d65370 100644 --- a/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php +++ b/apps/dav/lib/Provisioning/Apple/AppleProvisioningPlugin.php @@ -59,7 +59,7 @@ public function __construct( \OC_Defaults $themingDefaults, IRequest $request, IL10N $l10n, - \Closure $uuidClosure + \Closure $uuidClosure, ) { $this->userSession = $userSession; $this->urlGenerator = $urlGenerator; diff --git a/apps/dav/lib/Search/EventsSearchProvider.php b/apps/dav/lib/Search/EventsSearchProvider.php index 4747635bd7ea4..55fba40918a1b 100644 --- a/apps/dav/lib/Search/EventsSearchProvider.php +++ b/apps/dav/lib/Search/EventsSearchProvider.php @@ -194,7 +194,7 @@ protected function getDeepLinkToCalendarApp( protected function getDavUrlForCalendarObject( string $principalUri, string $calendarUri, - string $calendarObjectUri + string $calendarObjectUri, ): string { [,, $principalId] = explode('/', $principalUri, 3); diff --git a/apps/dav/lib/Settings/AvailabilitySettings.php b/apps/dav/lib/Settings/AvailabilitySettings.php index dba4662a5cea2..6afb03bda8ddd 100644 --- a/apps/dav/lib/Settings/AvailabilitySettings.php +++ b/apps/dav/lib/Settings/AvailabilitySettings.php @@ -24,12 +24,14 @@ class AvailabilitySettings implements ISettings { protected IInitialState $initialState; protected ?string $userId; - public function __construct(IConfig $config, + public function __construct( + IConfig $config, IInitialState $initialState, ?string $userId, private LoggerInterface $logger, private IAvailabilityCoordinator $coordinator, - private AbsenceMapper $absenceMapper) { + private AbsenceMapper $absenceMapper, + ) { $this->config = $config; $this->initialState = $initialState; $this->userId = $userId; diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php index ec2014163b376..bf7e5e00053f6 100644 --- a/apps/dav/lib/SystemTag/SystemTagPlugin.php +++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php @@ -216,7 +216,7 @@ private function createTag($data, $contentType = 'application/json') { */ public function handleGetProperties( PropFind $propFind, - \Sabre\DAV\INode $node + \Sabre\DAV\INode $node, ) { if ($node instanceof Node) { $this->propfindForFile($propFind, $node); diff --git a/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php b/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php index c591001179f26..13e79c99b65a8 100644 --- a/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php +++ b/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php @@ -44,7 +44,7 @@ class SystemTagsByIdCollection implements ICollection { public function __construct( ISystemTagManager $tagManager, IUserSession $userSession, - IGroupManager $groupManager + IGroupManager $groupManager, ) { $this->tagManager = $tagManager; $this->userSession = $userSession; diff --git a/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php b/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php index fbe393a7d97b6..0431acc553af8 100644 --- a/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php +++ b/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php @@ -33,7 +33,7 @@ public function __construct( IRootFolder $rootFolder, ISystemTagManager $systemTagManager, SystemTagsInFilesDetector $systemTagsInFilesDetector, - string $mediaType = '' + string $mediaType = '', ) { $this->userSession = $userSession; $this->rootFolder = $rootFolder; diff --git a/apps/dav/lib/UserMigration/CalendarMigrator.php b/apps/dav/lib/UserMigration/CalendarMigrator.php index 80b564e24eebe..7e5bdcd789076 100644 --- a/apps/dav/lib/UserMigration/CalendarMigrator.php +++ b/apps/dav/lib/UserMigration/CalendarMigrator.php @@ -67,7 +67,7 @@ public function __construct( ICalendarManager $calendarManager, ICSExportPlugin $icsExportPlugin, Defaults $defaults, - IL10N $l10n + IL10N $l10n, ) { $this->calDavBackend = $calDavBackend; $this->calendarManager = $calendarManager; diff --git a/apps/dav/lib/UserMigration/ContactsMigrator.php b/apps/dav/lib/UserMigration/ContactsMigrator.php index a14d3bc5e1ccd..50787dc4e5dc4 100644 --- a/apps/dav/lib/UserMigration/ContactsMigrator.php +++ b/apps/dav/lib/UserMigration/ContactsMigrator.php @@ -55,7 +55,7 @@ class ContactsMigrator implements IMigrator, ISizeEstimationMigrator { public function __construct( CardDavBackend $cardDavBackend, - IL10N $l10n + IL10N $l10n, ) { $this->cardDavBackend = $cardDavBackend; $this->l10n = $l10n; diff --git a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php index 8d98a765fc1bd..06261ca6fa5ae 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php @@ -380,7 +380,7 @@ public function testPropFindDefaultCalendarUrl(string $principalUri, ?string $ca $this->server->expects($this->once()) ->method('getPropertiesForPath') - ->with($calendarHome .'/' . $calendarUri, [], 1) + ->with($calendarHome . '/' . $calendarUri, [], 1) ->willReturn($properties); $this->plugin->propFindDefaultCalendarUrl($propFind, $node); @@ -392,7 +392,7 @@ public function testPropFindDefaultCalendarUrl(string $principalUri, ?string $ca /** @var LocalHref $result */ $result = $propFind->get(Plugin::SCHEDULE_DEFAULT_CALENDAR_URL); - $this->assertEquals('/remote.php/dav/'. $calendarHome . '/' . $calendarUri, $result->getHref()); + $this->assertEquals('/remote.php/dav/' . $calendarHome . '/' . $calendarUri, $result->getHref()); } /** diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index 91d7cc5f49e86..96968909d1cc6 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -72,35 +72,35 @@ class CardDavBackendTest extends TestCase { public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1'; public const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group'; - private $vcardTest0 = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'UID:Test'.PHP_EOL. - 'FN:Test'.PHP_EOL. - 'N:Test;;;;'.PHP_EOL. + private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'UID:Test' . PHP_EOL . + 'FN:Test' . PHP_EOL . + 'N:Test;;;;' . PHP_EOL . 'END:VCARD'; - private $vcardTest1 = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'UID:Test2'.PHP_EOL. - 'FN:Test2'.PHP_EOL. - 'N:Test2;;;;'.PHP_EOL. + private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'UID:Test2' . PHP_EOL . + 'FN:Test2' . PHP_EOL . + 'N:Test2;;;;' . PHP_EOL . 'END:VCARD'; - private $vcardTest2 = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'UID:Test3'.PHP_EOL. - 'FN:Test3'.PHP_EOL. - 'N:Test3;;;;'.PHP_EOL. + private $vcardTest2 = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'UID:Test3' . PHP_EOL . + 'FN:Test3' . PHP_EOL . + 'N:Test3;;;;' . PHP_EOL . 'END:VCARD'; - private $vcardTestNoUID = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'FN:TestNoUID'.PHP_EOL. - 'N:TestNoUID;;;;'.PHP_EOL. + private $vcardTestNoUID = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'FN:TestNoUID' . PHP_EOL . + 'N:TestNoUID;;;;' . PHP_EOL . 'END:VCARD'; protected function setUp(): void { @@ -332,7 +332,7 @@ public function testMultiCard(): void { $this->assertArrayHasKey('lastmodified', $card); $this->assertArrayHasKey('etag', $card); $this->assertArrayHasKey('size', $card); - $this->assertEquals($this->{ 'vcardTest'.($index + 1) }, $card['carddata']); + $this->assertEquals($this->{ 'vcardTest' . ($index + 1) }, $card['carddata']); } // delete the card diff --git a/apps/dav/tests/unit/Command/DeleteCalendarTest.php b/apps/dav/tests/unit/Command/DeleteCalendarTest.php index 583673c9d3086..b621e6737d546 100644 --- a/apps/dav/tests/unit/Command/DeleteCalendarTest.php +++ b/apps/dav/tests/unit/Command/DeleteCalendarTest.php @@ -100,7 +100,7 @@ public function testNoCalendarName(): void { public function testInvalidCalendar(): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage( - 'User <' . self::USER . '> has no calendar named <' . self::NAME . '>.'); + 'User <' . self::USER . '> has no calendar named <' . self::NAME . '>.'); $this->userManager->expects($this->once()) ->method('userExists') diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php index 5010f7698b5cd..4f2e5174325db 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php @@ -127,7 +127,7 @@ public function testGetNodeForPath( $inputFileName, $fileInfoQueryPath, $outputFileName, - $type + $type, ): void { $rootNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() diff --git a/apps/dav/tests/unit/Controller/DirectControllerTest.php b/apps/dav/tests/unit/Controller/DirectControllerTest.php index 2476681251c70..faaf67d266b24 100644 --- a/apps/dav/tests/unit/Controller/DirectControllerTest.php +++ b/apps/dav/tests/unit/Controller/DirectControllerTest.php @@ -136,7 +136,7 @@ public function testGetUrlValid(): void { $this->urlGenerator->method('getAbsoluteURL') ->willReturnCallback(function (string $url) { - return 'https://my.nextcloud/'.$url; + return 'https://my.nextcloud/' . $url; }); $result = $this->controller->getUrl(101); diff --git a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php index 92c89fc62f83b..bfc4c5b24930b 100644 --- a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php +++ b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php @@ -349,7 +349,7 @@ private function mockGroup($gid) { $fooGroup ->expects($this->exactly(1)) ->method('getDisplayName') - ->willReturn('Group '.$gid); + ->willReturn('Group ' . $gid); return $fooGroup; } } diff --git a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php index ebe2a0b172e87..e6325ab8ad1e0 100644 --- a/apps/dav/tests/unit/Files/MultipartRequestParserTest.php +++ b/apps/dav/tests/unit/Files/MultipartRequestParserTest.php @@ -36,7 +36,7 @@ private function getMultipartParser(array $parts, array $headers = [], string $b ->disableOriginalConstructor() ->getMock(); - $headers = array_merge(['Content-Type' => 'multipart/related; boundary='.$boundary], $headers); + $headers = array_merge(['Content-Type' => 'multipart/related; boundary=' . $boundary], $headers); $request->expects($this->any()) ->method('getHeader') ->willReturnCallback(function (string $key) use (&$headers) { @@ -45,17 +45,17 @@ private function getMultipartParser(array $parts, array $headers = [], string $b $body = ''; foreach ($parts as $part) { - $body .= '--'.$boundary."\r\n"; + $body .= '--' . $boundary . "\r\n"; foreach ($part['headers'] as $headerKey => $headerPart) { - $body .= $headerKey.': '.$headerPart."\r\n"; + $body .= $headerKey . ': ' . $headerPart . "\r\n"; } $body .= "\r\n"; - $body .= $part['content']."\r\n"; + $body .= $part['content'] . "\r\n"; } - $body .= '--'.$boundary.'--'; + $body .= '--' . $boundary . '--'; $stream = fopen('php://temp', 'r+'); fwrite($stream, $body); diff --git a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php index bfc57dc61d70c..0a83d238f0f5d 100644 --- a/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php +++ b/apps/dav/tests/unit/Search/ContactsSearchProviderTest.php @@ -37,22 +37,22 @@ class ContactsSearchProviderTest extends TestCase { /** @var ContactsSearchProvider */ private $provider; - private $vcardTest0 = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'UID:Test'.PHP_EOL. - 'FN:FN of Test'.PHP_EOL. - 'N:Test;;;;'.PHP_EOL. - 'EMAIL:forrestgump@example.com'.PHP_EOL. + private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'UID:Test' . PHP_EOL . + 'FN:FN of Test' . PHP_EOL . + 'N:Test;;;;' . PHP_EOL . + 'EMAIL:forrestgump@example.com' . PHP_EOL . 'END:VCARD'; - private $vcardTest1 = 'BEGIN:VCARD'.PHP_EOL. - 'VERSION:3.0'.PHP_EOL. - 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN'.PHP_EOL. - 'PHOTO;ENCODING=b;TYPE=image/jpeg:'.PHP_EOL. - 'UID:Test2'.PHP_EOL. - 'FN:FN of Test2'.PHP_EOL. - 'N:Test2;;;;'.PHP_EOL. + private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL . + 'VERSION:3.0' . PHP_EOL . + 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL . + 'PHOTO;ENCODING=b;TYPE=image/jpeg:' . PHP_EOL . + 'UID:Test2' . PHP_EOL . + 'FN:FN of Test2' . PHP_EOL . + 'N:Test2;;;;' . PHP_EOL . 'END:VCARD'; protected function setUp(): void { diff --git a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php index d194b7fa7c659..0eafe0782e5a9 100644 --- a/apps/dav/tests/unit/Search/EventsSearchProviderTest.php +++ b/apps/dav/tests/unit/Search/EventsSearchProviderTest.php @@ -38,183 +38,183 @@ class EventsSearchProviderTest extends TestCase { private $provider; // NO SUMMARY - private $vEvent0 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20161004T144433Z'.PHP_EOL. - 'UID:85560E76-1B0D-47E1-A735-21625767FCA4'.PHP_EOL. - 'DTEND;VALUE=DATE:20161008'.PHP_EOL. - 'TRANSP:TRANSPARENT'.PHP_EOL. - 'DTSTART;VALUE=DATE:20161005'.PHP_EOL. - 'DTSTAMP:20161004T144437Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent0 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20161004T144433Z' . PHP_EOL . + 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL . + 'DTEND;VALUE=DATE:20161008' . PHP_EOL . + 'TRANSP:TRANSPARENT' . PHP_EOL . + 'DTSTART;VALUE=DATE:20161005' . PHP_EOL . + 'DTSTAMP:20161004T144437Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // TIMED SAME DAY - private $vEvent1 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Tests//'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VTIMEZONE'.PHP_EOL. - 'TZID:Europe/Berlin'.PHP_EOL. - 'BEGIN:DAYLIGHT'.PHP_EOL. - 'TZOFFSETFROM:+0100'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19810329T020000'.PHP_EOL. - 'TZNAME:GMT+2'.PHP_EOL. - 'TZOFFSETTO:+0200'.PHP_EOL. - 'END:DAYLIGHT'.PHP_EOL. - 'BEGIN:STANDARD'.PHP_EOL. - 'TZOFFSETFROM:+0200'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19961027T030000'.PHP_EOL. - 'TZNAME:GMT+1'.PHP_EOL. - 'TZOFFSETTO:+0100'.PHP_EOL. - 'END:STANDARD'.PHP_EOL. - 'END:VTIMEZONE'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20160809T163629Z'.PHP_EOL. - 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02'.PHP_EOL. - 'DTEND;TZID=Europe/Berlin:20160816T100000'.PHP_EOL. - 'TRANSP:OPAQUE'.PHP_EOL. - 'SUMMARY:Test Europe Berlin'.PHP_EOL. - 'DTSTART;TZID=Europe/Berlin:20160816T090000'.PHP_EOL. - 'DTSTAMP:20160809T163632Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent1 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Tests//' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VTIMEZONE' . PHP_EOL . + 'TZID:Europe/Berlin' . PHP_EOL . + 'BEGIN:DAYLIGHT' . PHP_EOL . + 'TZOFFSETFROM:+0100' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19810329T020000' . PHP_EOL . + 'TZNAME:GMT+2' . PHP_EOL . + 'TZOFFSETTO:+0200' . PHP_EOL . + 'END:DAYLIGHT' . PHP_EOL . + 'BEGIN:STANDARD' . PHP_EOL . + 'TZOFFSETFROM:+0200' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19961027T030000' . PHP_EOL . + 'TZNAME:GMT+1' . PHP_EOL . + 'TZOFFSETTO:+0100' . PHP_EOL . + 'END:STANDARD' . PHP_EOL . + 'END:VTIMEZONE' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20160809T163629Z' . PHP_EOL . + 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL . + 'DTEND;TZID=Europe/Berlin:20160816T100000' . PHP_EOL . + 'TRANSP:OPAQUE' . PHP_EOL . + 'SUMMARY:Test Europe Berlin' . PHP_EOL . + 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL . + 'DTSTAMP:20160809T163632Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // TIMED DIFFERENT DAY - private $vEvent2 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Tests//'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VTIMEZONE'.PHP_EOL. - 'TZID:Europe/Berlin'.PHP_EOL. - 'BEGIN:DAYLIGHT'.PHP_EOL. - 'TZOFFSETFROM:+0100'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19810329T020000'.PHP_EOL. - 'TZNAME:GMT+2'.PHP_EOL. - 'TZOFFSETTO:+0200'.PHP_EOL. - 'END:DAYLIGHT'.PHP_EOL. - 'BEGIN:STANDARD'.PHP_EOL. - 'TZOFFSETFROM:+0200'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19961027T030000'.PHP_EOL. - 'TZNAME:GMT+1'.PHP_EOL. - 'TZOFFSETTO:+0100'.PHP_EOL. - 'END:STANDARD'.PHP_EOL. - 'END:VTIMEZONE'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20160809T163629Z'.PHP_EOL. - 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02'.PHP_EOL. - 'DTEND;TZID=Europe/Berlin:20160817T100000'.PHP_EOL. - 'TRANSP:OPAQUE'.PHP_EOL. - 'SUMMARY:Test Europe Berlin'.PHP_EOL. - 'DTSTART;TZID=Europe/Berlin:20160816T090000'.PHP_EOL. - 'DTSTAMP:20160809T163632Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent2 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Tests//' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VTIMEZONE' . PHP_EOL . + 'TZID:Europe/Berlin' . PHP_EOL . + 'BEGIN:DAYLIGHT' . PHP_EOL . + 'TZOFFSETFROM:+0100' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19810329T020000' . PHP_EOL . + 'TZNAME:GMT+2' . PHP_EOL . + 'TZOFFSETTO:+0200' . PHP_EOL . + 'END:DAYLIGHT' . PHP_EOL . + 'BEGIN:STANDARD' . PHP_EOL . + 'TZOFFSETFROM:+0200' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19961027T030000' . PHP_EOL . + 'TZNAME:GMT+1' . PHP_EOL . + 'TZOFFSETTO:+0100' . PHP_EOL . + 'END:STANDARD' . PHP_EOL . + 'END:VTIMEZONE' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20160809T163629Z' . PHP_EOL . + 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL . + 'DTEND;TZID=Europe/Berlin:20160817T100000' . PHP_EOL . + 'TRANSP:OPAQUE' . PHP_EOL . + 'SUMMARY:Test Europe Berlin' . PHP_EOL . + 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL . + 'DTSTAMP:20160809T163632Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // ALL-DAY ONE-DAY - private $vEvent3 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20161004T144433Z'.PHP_EOL. - 'UID:85560E76-1B0D-47E1-A735-21625767FCA4'.PHP_EOL. - 'DTEND;VALUE=DATE:20161006'.PHP_EOL. - 'TRANSP:TRANSPARENT'.PHP_EOL. - 'DTSTART;VALUE=DATE:20161005'.PHP_EOL. - 'DTSTAMP:20161004T144437Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent3 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20161004T144433Z' . PHP_EOL . + 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL . + 'DTEND;VALUE=DATE:20161006' . PHP_EOL . + 'TRANSP:TRANSPARENT' . PHP_EOL . + 'DTSTART;VALUE=DATE:20161005' . PHP_EOL . + 'DTSTAMP:20161004T144437Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // ALL-DAY MULTIPLE DAYS - private $vEvent4 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20161004T144433Z'.PHP_EOL. - 'UID:85560E76-1B0D-47E1-A735-21625767FCA4'.PHP_EOL. - 'DTEND;VALUE=DATE:20161008'.PHP_EOL. - 'TRANSP:TRANSPARENT'.PHP_EOL. - 'DTSTART;VALUE=DATE:20161005'.PHP_EOL. - 'DTSTAMP:20161004T144437Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent4 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20161004T144433Z' . PHP_EOL . + 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL . + 'DTEND;VALUE=DATE:20161008' . PHP_EOL . + 'TRANSP:TRANSPARENT' . PHP_EOL . + 'DTSTART;VALUE=DATE:20161005' . PHP_EOL . + 'DTSTAMP:20161004T144437Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // DURATION - private $vEvent5 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20161004T144433Z'.PHP_EOL. - 'UID:85560E76-1B0D-47E1-A735-21625767FCA4'.PHP_EOL. - 'DURATION:P5D'.PHP_EOL. - 'TRANSP:TRANSPARENT'.PHP_EOL. - 'DTSTART;VALUE=DATE:20161005'.PHP_EOL. - 'DTSTAMP:20161004T144437Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent5 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20161004T144433Z' . PHP_EOL . + 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL . + 'DURATION:P5D' . PHP_EOL . + 'TRANSP:TRANSPARENT' . PHP_EOL . + 'DTSTART;VALUE=DATE:20161005' . PHP_EOL . + 'DTSTAMP:20161004T144437Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // NO DTEND - DATE - private $vEvent6 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20161004T144433Z'.PHP_EOL. - 'UID:85560E76-1B0D-47E1-A735-21625767FCA4'.PHP_EOL. - 'TRANSP:TRANSPARENT'.PHP_EOL. - 'DTSTART;VALUE=DATE:20161005'.PHP_EOL. - 'DTSTAMP:20161004T144437Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent6 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Apple Inc.//Mac OS X 10.11.6//EN' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20161004T144433Z' . PHP_EOL . + 'UID:85560E76-1B0D-47E1-A735-21625767FCA4' . PHP_EOL . + 'TRANSP:TRANSPARENT' . PHP_EOL . + 'DTSTART;VALUE=DATE:20161005' . PHP_EOL . + 'DTSTAMP:20161004T144437Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; // NO DTEND - DATE-TIME - private $vEvent7 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'PRODID:-//Tests//'.PHP_EOL. - 'CALSCALE:GREGORIAN'.PHP_EOL. - 'BEGIN:VTIMEZONE'.PHP_EOL. - 'TZID:Europe/Berlin'.PHP_EOL. - 'BEGIN:DAYLIGHT'.PHP_EOL. - 'TZOFFSETFROM:+0100'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19810329T020000'.PHP_EOL. - 'TZNAME:GMT+2'.PHP_EOL. - 'TZOFFSETTO:+0200'.PHP_EOL. - 'END:DAYLIGHT'.PHP_EOL. - 'BEGIN:STANDARD'.PHP_EOL. - 'TZOFFSETFROM:+0200'.PHP_EOL. - 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU'.PHP_EOL. - 'DTSTART:19961027T030000'.PHP_EOL. - 'TZNAME:GMT+1'.PHP_EOL. - 'TZOFFSETTO:+0100'.PHP_EOL. - 'END:STANDARD'.PHP_EOL. - 'END:VTIMEZONE'.PHP_EOL. - 'BEGIN:VEVENT'.PHP_EOL. - 'CREATED:20160809T163629Z'.PHP_EOL. - 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02'.PHP_EOL. - 'TRANSP:OPAQUE'.PHP_EOL. - 'SUMMARY:Test Europe Berlin'.PHP_EOL. - 'DTSTART;TZID=Europe/Berlin:20160816T090000'.PHP_EOL. - 'DTSTAMP:20160809T163632Z'.PHP_EOL. - 'SEQUENCE:0'.PHP_EOL. - 'END:VEVENT'.PHP_EOL. + private $vEvent7 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'PRODID:-//Tests//' . PHP_EOL . + 'CALSCALE:GREGORIAN' . PHP_EOL . + 'BEGIN:VTIMEZONE' . PHP_EOL . + 'TZID:Europe/Berlin' . PHP_EOL . + 'BEGIN:DAYLIGHT' . PHP_EOL . + 'TZOFFSETFROM:+0100' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19810329T020000' . PHP_EOL . + 'TZNAME:GMT+2' . PHP_EOL . + 'TZOFFSETTO:+0200' . PHP_EOL . + 'END:DAYLIGHT' . PHP_EOL . + 'BEGIN:STANDARD' . PHP_EOL . + 'TZOFFSETFROM:+0200' . PHP_EOL . + 'RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU' . PHP_EOL . + 'DTSTART:19961027T030000' . PHP_EOL . + 'TZNAME:GMT+1' . PHP_EOL . + 'TZOFFSETTO:+0100' . PHP_EOL . + 'END:STANDARD' . PHP_EOL . + 'END:VTIMEZONE' . PHP_EOL . + 'BEGIN:VEVENT' . PHP_EOL . + 'CREATED:20160809T163629Z' . PHP_EOL . + 'UID:0AD16F58-01B3-463B-A215-FD09FC729A02' . PHP_EOL . + 'TRANSP:OPAQUE' . PHP_EOL . + 'SUMMARY:Test Europe Berlin' . PHP_EOL . + 'DTSTART;TZID=Europe/Berlin:20160816T090000' . PHP_EOL . + 'DTSTAMP:20160809T163632Z' . PHP_EOL . + 'SEQUENCE:0' . PHP_EOL . + 'END:VEVENT' . PHP_EOL . 'END:VCALENDAR'; protected function setUp(): void { diff --git a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php index 18b6f0a593019..0b1bf1ba0d79c 100644 --- a/apps/dav/tests/unit/Search/TasksSearchProviderTest.php +++ b/apps/dav/tests/unit/Search/TasksSearchProviderTest.php @@ -38,67 +38,67 @@ class TasksSearchProviderTest extends TestCase { private $provider; // NO DUE NOR COMPLETED NOR SUMMARY - private $vTodo0 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'PRODID:TEST'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'BEGIN:VTODO'.PHP_EOL. - 'UID:20070313T123432Z-456553@example.com'.PHP_EOL. - 'DTSTAMP:20070313T123432Z'.PHP_EOL. - 'STATUS:NEEDS-ACTION'.PHP_EOL. - 'END:VTODO'.PHP_EOL. + private $vTodo0 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'PRODID:TEST' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'BEGIN:VTODO' . PHP_EOL . + 'UID:20070313T123432Z-456553@example.com' . PHP_EOL . + 'DTSTAMP:20070313T123432Z' . PHP_EOL . + 'STATUS:NEEDS-ACTION' . PHP_EOL . + 'END:VTODO' . PHP_EOL . 'END:VCALENDAR'; // DUE AND COMPLETED - private $vTodo1 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'PRODID:TEST'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'BEGIN:VTODO'.PHP_EOL. - 'UID:20070313T123432Z-456553@example.com'.PHP_EOL. - 'DTSTAMP:20070313T123432Z'.PHP_EOL. - 'COMPLETED:20070707T100000Z'.PHP_EOL. - 'DUE;VALUE=DATE:20070501'.PHP_EOL. - 'SUMMARY:Task title'.PHP_EOL. - 'STATUS:NEEDS-ACTION'.PHP_EOL. - 'END:VTODO'.PHP_EOL. + private $vTodo1 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'PRODID:TEST' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'BEGIN:VTODO' . PHP_EOL . + 'UID:20070313T123432Z-456553@example.com' . PHP_EOL . + 'DTSTAMP:20070313T123432Z' . PHP_EOL . + 'COMPLETED:20070707T100000Z' . PHP_EOL . + 'DUE;VALUE=DATE:20070501' . PHP_EOL . + 'SUMMARY:Task title' . PHP_EOL . + 'STATUS:NEEDS-ACTION' . PHP_EOL . + 'END:VTODO' . PHP_EOL . 'END:VCALENDAR'; // COMPLETED ONLY - private $vTodo2 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'PRODID:TEST'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'BEGIN:VTODO'.PHP_EOL. - 'UID:20070313T123432Z-456553@example.com'.PHP_EOL. - 'DTSTAMP:20070313T123432Z'.PHP_EOL. - 'COMPLETED:20070707T100000Z'.PHP_EOL. - 'SUMMARY:Task title'.PHP_EOL. - 'STATUS:NEEDS-ACTION'.PHP_EOL. - 'END:VTODO'.PHP_EOL. + private $vTodo2 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'PRODID:TEST' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'BEGIN:VTODO' . PHP_EOL . + 'UID:20070313T123432Z-456553@example.com' . PHP_EOL . + 'DTSTAMP:20070313T123432Z' . PHP_EOL . + 'COMPLETED:20070707T100000Z' . PHP_EOL . + 'SUMMARY:Task title' . PHP_EOL . + 'STATUS:NEEDS-ACTION' . PHP_EOL . + 'END:VTODO' . PHP_EOL . 'END:VCALENDAR'; // DUE DATE - private $vTodo3 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'PRODID:TEST'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'BEGIN:VTODO'.PHP_EOL. - 'UID:20070313T123432Z-456553@example.com'.PHP_EOL. - 'DTSTAMP:20070313T123432Z'.PHP_EOL. - 'DUE;VALUE=DATE:20070501'.PHP_EOL. - 'SUMMARY:Task title'.PHP_EOL. - 'STATUS:NEEDS-ACTION'.PHP_EOL. - 'END:VTODO'.PHP_EOL. + private $vTodo3 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'PRODID:TEST' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'BEGIN:VTODO' . PHP_EOL . + 'UID:20070313T123432Z-456553@example.com' . PHP_EOL . + 'DTSTAMP:20070313T123432Z' . PHP_EOL . + 'DUE;VALUE=DATE:20070501' . PHP_EOL . + 'SUMMARY:Task title' . PHP_EOL . + 'STATUS:NEEDS-ACTION' . PHP_EOL . + 'END:VTODO' . PHP_EOL . 'END:VCALENDAR'; // DUE DATETIME - private $vTodo4 = 'BEGIN:VCALENDAR'.PHP_EOL. - 'PRODID:TEST'.PHP_EOL. - 'VERSION:2.0'.PHP_EOL. - 'BEGIN:VTODO'.PHP_EOL. - 'UID:20070313T123432Z-456553@example.com'.PHP_EOL. - 'DTSTAMP:20070313T123432Z'.PHP_EOL. - 'DUE:20070709T130000Z'.PHP_EOL. - 'SUMMARY:Task title'.PHP_EOL. - 'STATUS:NEEDS-ACTION'.PHP_EOL. - 'END:VTODO'.PHP_EOL. + private $vTodo4 = 'BEGIN:VCALENDAR' . PHP_EOL . + 'PRODID:TEST' . PHP_EOL . + 'VERSION:2.0' . PHP_EOL . + 'BEGIN:VTODO' . PHP_EOL . + 'UID:20070313T123432Z-456553@example.com' . PHP_EOL . + 'DTSTAMP:20070313T123432Z' . PHP_EOL . + 'DUE:20070709T130000Z' . PHP_EOL . + 'SUMMARY:Task title' . PHP_EOL . + 'STATUS:NEEDS-ACTION' . PHP_EOL . + 'END:VTODO' . PHP_EOL . 'END:VCALENDAR'; protected function setUp(): void { diff --git a/apps/dav/tests/unit/bootstrap.php b/apps/dav/tests/unit/bootstrap.php index 61dbda35ae252..886a7f0b859f2 100644 --- a/apps/dav/tests/unit/bootstrap.php +++ b/apps/dav/tests/unit/bootstrap.php @@ -9,7 +9,7 @@ define('PHPUNIT_RUN', 1); } -require_once __DIR__.'/../../../../lib/base.php'; +require_once __DIR__ . '/../../../../lib/base.php'; \OC::$composerAutoloader->addPsr4('Test\\', OC::$SERVERROOT . '/tests/lib/', true); diff --git a/apps/encryption/lib/Command/DropLegacyFileKey.php b/apps/encryption/lib/Command/DropLegacyFileKey.php index 03c24fe8a22af..a9add1ad93b45 100644 --- a/apps/encryption/lib/Command/DropLegacyFileKey.php +++ b/apps/encryption/lib/Command/DropLegacyFileKey.php @@ -114,10 +114,10 @@ private function migrateSinglefile(string $path, FileInfo $fileInfo, OutputInter $copyResource = $this->rootView->fopen($target, 'r'); $sourceResource = $this->rootView->fopen($source, 'w'); if ($copyResource === false || $sourceResource === false) { - throw new DecryptionFailedException('Failed to open '.$source.' or '.$target); + throw new DecryptionFailedException('Failed to open ' . $source . ' or ' . $target); } if (stream_copy_to_stream($copyResource, $sourceResource) === false) { - $output->writeln('Failed to copy '.$target.' data into '.$source.''); + $output->writeln('Failed to copy ' . $target . ' data into ' . $source . ''); $output->writeln('Leaving both files in there to avoid data loss'); return; } diff --git a/apps/encryption/lib/Controller/SettingsController.php b/apps/encryption/lib/Controller/SettingsController.php index 251f385127a3d..df896e52fa54d 100644 --- a/apps/encryption/lib/Controller/SettingsController.php +++ b/apps/encryption/lib/Controller/SettingsController.php @@ -69,7 +69,7 @@ public function __construct($AppName, Crypt $crypt, Session $session, ISession $ocSession, - Util $util + Util $util, ) { parent::__construct($AppName, $request); $this->l = $l10n; diff --git a/apps/encryption/lib/Controller/StatusController.php b/apps/encryption/lib/Controller/StatusController.php index b5b54ee2f6d71..5c6a950d0a33c 100644 --- a/apps/encryption/lib/Controller/StatusController.php +++ b/apps/encryption/lib/Controller/StatusController.php @@ -37,7 +37,7 @@ public function __construct($AppName, IRequest $request, IL10N $l10n, Session $session, - IManager $encryptionManager + IManager $encryptionManager, ) { parent::__construct($AppName, $request); $this->l = $l10n; diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php index 92d6ed6a44393..b38734dd06139 100644 --- a/apps/encryption/lib/Crypto/Crypt.php +++ b/apps/encryption/lib/Crypto/Crypt.php @@ -155,7 +155,7 @@ public function symmetricEncryptFileContent(string $plainContent, string $passPh $this->getCipher()); // Create a signature based on the key as well as the current version - $sig = $this->createSignature($encryptedContent, $passPhrase.'_'.$version.'_'.$position); + $sig = $this->createSignature($encryptedContent, $passPhrase . '_' . $version . '_' . $position); // combine content to encrypt the IV identifier and actual IV $catFile = $this->concatIV($encryptedContent, $iv); @@ -760,7 +760,7 @@ private function opensslOpen(string $data, string &$output, string $encrypted_ke $result = (strlen($output) === strlen($data)); } } else { - throw new DecryptionFailedException('Unsupported cipher '.$cipher_algo); + throw new DecryptionFailedException('Unsupported cipher ' . $cipher_algo); } return $result; @@ -807,7 +807,7 @@ private function opensslSeal(string $data, string &$sealed_data, array &$encrypt } } } else { - throw new EncryptionFailedException('Unsupported cipher '.$cipher_algo); + throw new EncryptionFailedException('Unsupported cipher ' . $cipher_algo); } return $result; diff --git a/apps/encryption/lib/Crypto/DecryptAll.php b/apps/encryption/lib/Crypto/DecryptAll.php index 80c187571b7db..e153712fb9959 100644 --- a/apps/encryption/lib/Crypto/DecryptAll.php +++ b/apps/encryption/lib/Crypto/DecryptAll.php @@ -45,7 +45,7 @@ public function __construct( KeyManager $keyManager, Crypt $crypt, Session $session, - QuestionHelper $questionHelper + QuestionHelper $questionHelper, ) { $this->util = $util; $this->keyManager = $keyManager; diff --git a/apps/encryption/lib/Crypto/EncryptAll.php b/apps/encryption/lib/Crypto/EncryptAll.php index 310f37aba838a..e9db5034baaea 100644 --- a/apps/encryption/lib/Crypto/EncryptAll.php +++ b/apps/encryption/lib/Crypto/EncryptAll.php @@ -82,7 +82,7 @@ public function __construct( IL10N $l, IFactory $l10nFactory, QuestionHelper $questionHelper, - ISecureRandom $secureRandom + ISecureRandom $secureRandom, ) { $this->userSetup = $userSetup; $this->userManager = $userManager; diff --git a/apps/encryption/lib/KeyManager.php b/apps/encryption/lib/KeyManager.php index 9fd6c7655afd5..0c9c02760a897 100644 --- a/apps/encryption/lib/KeyManager.php +++ b/apps/encryption/lib/KeyManager.php @@ -211,7 +211,7 @@ public function storeKeyPair($uid, $password, $keyPair) { */ public function setRecoveryKey($password, $keyPair) { // Save Public Key - $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId(). + $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId() . '.' . $this->publicKeyId, $keyPair['publicKey'], Encryption::ID); diff --git a/apps/encryption/lib/Settings/Admin.php b/apps/encryption/lib/Settings/Admin.php index 4f695f61b1b0f..e8290b778ada2 100644 --- a/apps/encryption/lib/Settings/Admin.php +++ b/apps/encryption/lib/Settings/Admin.php @@ -25,7 +25,7 @@ public function __construct( private IUserSession $userSession, private IConfig $config, private IUserManager $userManager, - private ISession $session + private ISession $session, ) { } diff --git a/apps/encryption/tests/Command/FixEncryptedVersionTest.php b/apps/encryption/tests/Command/FixEncryptedVersionTest.php index fd6e27e030bd3..e5079b9a8afb8 100644 --- a/apps/encryption/tests/Command/FixEncryptedVersionTest.php +++ b/apps/encryption/tests/Command/FixEncryptedVersionTest.php @@ -251,7 +251,7 @@ public function testRepairUnencryptedFileWhenVersionIsSet(): void { $cacheInfo = ['encryptedVersion' => 1, 'encrypted' => 1]; $cache1->put($fileCache1->getPath(), $cacheInfo); - $absPath = $storage1->getSourcePath('').$fileInfo1->getInternalPath(); + $absPath = $storage1->getSourcePath('') . $fileInfo1->getInternalPath(); // create unencrypted file on disk, the version stays file_put_contents($absPath, 'hello contents'); diff --git a/apps/federatedfilesharing/lib/AddressHandler.php b/apps/federatedfilesharing/lib/AddressHandler.php index 320f65c2b4255..d96c956eb1154 100644 --- a/apps/federatedfilesharing/lib/AddressHandler.php +++ b/apps/federatedfilesharing/lib/AddressHandler.php @@ -38,7 +38,7 @@ class AddressHandler { public function __construct( IURLGenerator $urlGenerator, IL10N $il10n, - ICloudIdManager $cloudIdManager + ICloudIdManager $cloudIdManager, ) { $this->l = $il10n; $this->urlGenerator = $urlGenerator; diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php index 71661efa384b1..8d4f6fd3af857 100644 --- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php +++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php @@ -84,7 +84,7 @@ public function __construct(string $appName, LoggerInterface $logger, ICloudFederationFactory $cloudFederationFactory, ICloudFederationProviderManager $cloudFederationProviderManager, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { parent::__construct($appName, $request); diff --git a/apps/federatedfilesharing/lib/Settings/Admin.php b/apps/federatedfilesharing/lib/Settings/Admin.php index 90ee9a8c74835..a7bdc545413d5 100644 --- a/apps/federatedfilesharing/lib/Settings/Admin.php +++ b/apps/federatedfilesharing/lib/Settings/Admin.php @@ -28,7 +28,7 @@ public function __construct( IConfig $globalScaleConfig, IL10N $l, IURLGenerator $urlGenerator, - IInitialState $initialState + IInitialState $initialState, ) { $this->fedShareProvider = $fedShareProvider; $this->gsConfig = $globalScaleConfig; diff --git a/apps/federatedfilesharing/lib/Settings/Personal.php b/apps/federatedfilesharing/lib/Settings/Personal.php index bee6cc538c66b..93ca36ab4204c 100644 --- a/apps/federatedfilesharing/lib/Settings/Personal.php +++ b/apps/federatedfilesharing/lib/Settings/Personal.php @@ -28,7 +28,7 @@ public function __construct( IUserSession $userSession, Defaults $defaults, IInitialState $initialState, - IURLGenerator $urlGenerator + IURLGenerator $urlGenerator, ) { $this->federatedShareProvider = $federatedShareProvider; $this->userSession = $userSession; diff --git a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php index 6eb7ce302746b..9caafb35bb3ab 100644 --- a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php @@ -129,7 +129,7 @@ public function testCreateFederatedShare($shareWith, $validToken, $createSuccessful, $expectedReturnData, - $permissions + $permissions, ): void { $this->federatedShareProvider->expects($this->any()) ->method('isOutgoingServer2serverShareEnabled') diff --git a/apps/federatedfilesharing/tests/NotificationsTest.php b/apps/federatedfilesharing/tests/NotificationsTest.php index 868591cb4dde4..7ac4e964362c0 100644 --- a/apps/federatedfilesharing/tests/NotificationsTest.php +++ b/apps/federatedfilesharing/tests/NotificationsTest.php @@ -113,7 +113,7 @@ public function testSendUpdateToRemote($try, $httpRequestResult, $expected): voi $instance->expects($this->any())->method('getTimestamp')->willReturn($timestamp); $instance->expects($this->once())->method('tryHttpPostToShareEndpoint') - ->with($remote, '/'.$id.'/unshare', ['token' => $token, 'data1Key' => 'data1Value', 'remoteId' => $id], $action) + ->with($remote, '/' . $id . '/unshare', ['token' => $token, 'data1Key' => 'data1Value', 'remoteId' => $id], $action) ->willReturn($httpRequestResult); // only add background job on first try diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php index 1a23d58a7d100..92196e68e0124 100644 --- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php @@ -47,7 +47,7 @@ public function __construct( TrustedServers $trustedServers, LoggerInterface $logger, IDiscoveryService $ocsDiscoveryService, - ITimeFactory $timeFactory + ITimeFactory $timeFactory, ) { parent::__construct($timeFactory); $this->logger = $logger; diff --git a/apps/federation/lib/Controller/OCSAuthAPIController.php b/apps/federation/lib/Controller/OCSAuthAPIController.php index 8412868da42c8..221a9321cd7bf 100644 --- a/apps/federation/lib/Controller/OCSAuthAPIController.php +++ b/apps/federation/lib/Controller/OCSAuthAPIController.php @@ -50,7 +50,7 @@ public function __construct( DbHandler $dbHandler, LoggerInterface $logger, ITimeFactory $timeFactory, - IThrottler $throttler + IThrottler $throttler, ) { parent::__construct($appName, $request); @@ -165,7 +165,7 @@ public function getSharedSecret(string $url, string $token): DataResponse { $this->throttler->registerAttempt('federationSharedSecret', $this->request->getRemoteAddress()); $expectedToken = $this->dbHandler->getToken($url); $this->logger->error( - 'remote server (' . $url . ') didn\'t send a valid token (got "' . $token . '" but expected "'. $expectedToken . '") while getting shared secret', + 'remote server (' . $url . ') didn\'t send a valid token (got "' . $token . '" but expected "' . $expectedToken . '") while getting shared secret', ['app' => 'federation'] ); throw new OCSForbiddenException(); diff --git a/apps/federation/lib/Controller/SettingsController.php b/apps/federation/lib/Controller/SettingsController.php index f5131581d94b7..18ebc516cb8dd 100644 --- a/apps/federation/lib/Controller/SettingsController.php +++ b/apps/federation/lib/Controller/SettingsController.php @@ -23,7 +23,7 @@ class SettingsController extends Controller { public function __construct(string $AppName, IRequest $request, IL10N $l10n, - TrustedServers $trustedServers + TrustedServers $trustedServers, ) { parent::__construct($AppName, $request); $this->l = $l10n; diff --git a/apps/federation/lib/DbHandler.php b/apps/federation/lib/DbHandler.php index 8a189dc56f7ac..4b7fc1a8da1d5 100644 --- a/apps/federation/lib/DbHandler.php +++ b/apps/federation/lib/DbHandler.php @@ -31,7 +31,7 @@ class DbHandler { public function __construct( IDBConnection $connection, - IL10N $il10n + IL10N $il10n, ) { $this->connection = $connection; $this->IL10N = $il10n; diff --git a/apps/federation/lib/SyncFederationAddressBooks.php b/apps/federation/lib/SyncFederationAddressBooks.php index aaed6ca9d9469..8060a78ada73d 100644 --- a/apps/federation/lib/SyncFederationAddressBooks.php +++ b/apps/federation/lib/SyncFederationAddressBooks.php @@ -22,7 +22,7 @@ class SyncFederationAddressBooks { public function __construct(DbHandler $dbHandler, SyncService $syncService, IDiscoveryService $ocsDiscoveryService, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->syncService = $syncService; $this->dbHandler = $dbHandler; diff --git a/apps/federation/lib/TrustedServers.php b/apps/federation/lib/TrustedServers.php index 48cffd2d274f8..e59f281df0bc3 100644 --- a/apps/federation/lib/TrustedServers.php +++ b/apps/federation/lib/TrustedServers.php @@ -51,7 +51,7 @@ public function __construct( ISecureRandom $secureRandom, IConfig $config, IEventDispatcher $dispatcher, - ITimeFactory $timeFactory + ITimeFactory $timeFactory, ) { $this->dbHandler = $dbHandler; $this->httpClientService = $httpClientService; diff --git a/apps/files/lib/BackgroundJob/DeleteExpiredOpenLocalEditor.php b/apps/files/lib/BackgroundJob/DeleteExpiredOpenLocalEditor.php index 81f3d229bc01f..ce2de9a74bbb9 100644 --- a/apps/files/lib/BackgroundJob/DeleteExpiredOpenLocalEditor.php +++ b/apps/files/lib/BackgroundJob/DeleteExpiredOpenLocalEditor.php @@ -22,7 +22,7 @@ class DeleteExpiredOpenLocalEditor extends TimedJob { public function __construct( ITimeFactory $time, - OpenLocalEditorMapper $mapper + OpenLocalEditorMapper $mapper, ) { parent::__construct($time); $this->mapper = $mapper; diff --git a/apps/files/lib/BackgroundJob/ScanFiles.php b/apps/files/lib/BackgroundJob/ScanFiles.php index b7e6e8db10ecb..88b45033255f3 100644 --- a/apps/files/lib/BackgroundJob/ScanFiles.php +++ b/apps/files/lib/BackgroundJob/ScanFiles.php @@ -37,7 +37,7 @@ public function __construct( IEventDispatcher $dispatcher, LoggerInterface $logger, IDBConnection $connection, - ITimeFactory $time + ITimeFactory $time, ) { parent::__construct($time); // Run once per 10 minutes diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php index 5360d38bdb629..22de2f6d19f9c 100644 --- a/apps/files/lib/Command/ScanAppData.php +++ b/apps/files/lib/Command/ScanAppData.php @@ -238,6 +238,6 @@ private function getAppDataFolder(): Node { throw new NotFoundException(); } - return $this->rootFolder->get('appdata_'.$instanceId); + return $this->rootFolder->get('appdata_' . $instanceId); } } diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php index 62ae4e6b0f049..0ca4a1efd4b5c 100644 --- a/apps/files/lib/Controller/ApiController.php +++ b/apps/files/lib/Controller/ApiController.php @@ -47,7 +47,8 @@ * @package OCA\Files\Controller */ class ApiController extends Controller { - public function __construct(string $appName, + public function __construct( + string $appName, IRequest $request, private IUserSession $userSession, private TagService $tagService, diff --git a/apps/files/lib/Controller/DirectEditingController.php b/apps/files/lib/Controller/DirectEditingController.php index 693587f9c8a56..63f29d3ba2a69 100644 --- a/apps/files/lib/Controller/DirectEditingController.php +++ b/apps/files/lib/Controller/DirectEditingController.php @@ -29,7 +29,7 @@ public function __construct( private IURLGenerator $urlGenerator, private IManager $directEditingManager, private DirectEditingService $directEditingService, - private LoggerInterface $logger + private LoggerInterface $logger, ) { parent::__construct($appName, $request, $corsMethods, $corsAllowedHeaders, $corsMaxAge); } diff --git a/apps/files/lib/Controller/OpenLocalEditorController.php b/apps/files/lib/Controller/OpenLocalEditorController.php index 0c13af2a6d2c4..1982569e7d28f 100644 --- a/apps/files/lib/Controller/OpenLocalEditorController.php +++ b/apps/files/lib/Controller/OpenLocalEditorController.php @@ -42,7 +42,7 @@ public function __construct( OpenLocalEditorMapper $mapper, ISecureRandom $secureRandom, LoggerInterface $logger, - ?string $userId + ?string $userId, ) { parent::__construct($appName, $request); diff --git a/apps/files/lib/Controller/TemplateController.php b/apps/files/lib/Controller/TemplateController.php index d4232763235cf..f3272d70d6880 100644 --- a/apps/files/lib/Controller/TemplateController.php +++ b/apps/files/lib/Controller/TemplateController.php @@ -62,7 +62,7 @@ public function create( string $filePath, string $templatePath = '', string $templateType = 'user', - array $templateFields = [] + array $templateFields = [], ): DataResponse { try { return new DataResponse($this->templateManager->createFromTemplate( diff --git a/apps/files_external/lib/BackgroundJob/CredentialsCleanup.php b/apps/files_external/lib/BackgroundJob/CredentialsCleanup.php index 1ae80735972c8..5fd233d232e55 100644 --- a/apps/files_external/lib/BackgroundJob/CredentialsCleanup.php +++ b/apps/files_external/lib/BackgroundJob/CredentialsCleanup.php @@ -27,7 +27,7 @@ public function __construct( ITimeFactory $time, ICredentialsManager $credentialsManager, UserGlobalStoragesService $userGlobalStoragesService, - IUserManager $userManager + IUserManager $userManager, ) { parent::__construct($time); diff --git a/apps/files_external/lib/Command/Scan.php b/apps/files_external/lib/Command/Scan.php index 575ee5989f543..374566ce211b9 100644 --- a/apps/files_external/lib/Command/Scan.php +++ b/apps/files_external/lib/Command/Scan.php @@ -24,7 +24,7 @@ class Scan extends StorageAuthBase { public function __construct( GlobalStoragesService $globalService, - IUserManager $userManager + IUserManager $userManager, ) { parent::__construct($globalService, $userManager); } diff --git a/apps/files_external/lib/Controller/ApiController.php b/apps/files_external/lib/Controller/ApiController.php index 10fd120c3d92f..d326e1f7f444b 100644 --- a/apps/files_external/lib/Controller/ApiController.php +++ b/apps/files_external/lib/Controller/ApiController.php @@ -31,7 +31,7 @@ public function __construct( string $appName, IRequest $request, UserGlobalStoragesService $userGlobalStorageService, - UserStoragesService $userStorageService + UserStoragesService $userStorageService, ) { parent::__construct($appName, $request); $this->userGlobalStoragesService = $userGlobalStorageService; diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php index d773f3ea5e245..05cfd4684d8bd 100644 --- a/apps/files_external/lib/Controller/GlobalStoragesController.php +++ b/apps/files_external/lib/Controller/GlobalStoragesController.php @@ -41,7 +41,7 @@ public function __construct( LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, ) { parent::__construct( $AppName, @@ -77,7 +77,7 @@ public function create( $mountOptions, $applicableUsers, $applicableGroups, - $priority + $priority, ) { $canCreateNewLocalStorage = $this->config->getSystemValue('files_external_allow_create_new_local', true); if (!$canCreateNewLocalStorage && $backend === 'local') { @@ -144,7 +144,7 @@ public function update( $applicableUsers, $applicableGroups, $priority, - $testOnly = true + $testOnly = true, ) { $storage = $this->createStorage( $mountPoint, diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php index ab580987b0e74..fcd3863e65888 100644 --- a/apps/files_external/lib/Controller/StoragesController.php +++ b/apps/files_external/lib/Controller/StoragesController.php @@ -44,7 +44,7 @@ public function __construct( protected LoggerInterface $logger, protected IUserSession $userSession, protected IGroupManager $groupManager, - protected IConfig $config + protected IConfig $config, ) { parent::__construct($AppName, $request); } @@ -71,7 +71,7 @@ protected function createStorage( $mountOptions = null, $applicableUsers = null, $applicableGroups = null, - $priority = null + $priority = null, ) { $canCreateNewLocalStorage = $this->config->getSystemValue('files_external_allow_create_new_local', true); if (!$canCreateNewLocalStorage && $backend === 'local') { diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php index 3d364fff57dc5..60159e1bc5420 100644 --- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php +++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php @@ -47,7 +47,7 @@ public function __construct( LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, ) { parent::__construct( $AppName, @@ -139,7 +139,7 @@ public function show($id, $testOnly = true) { public function update( $id, $backendOptions, - $testOnly = true + $testOnly = true, ) { try { $storage = $this->service->getStorage($id); diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php index a85aa3faa96f3..ac806fe219c8c 100644 --- a/apps/files_external/lib/Controller/UserStoragesController.php +++ b/apps/files_external/lib/Controller/UserStoragesController.php @@ -44,7 +44,7 @@ public function __construct( LoggerInterface $logger, IUserSession $userSession, IGroupManager $groupManager, - IConfig $config + IConfig $config, ) { parent::__construct( $AppName, @@ -104,7 +104,7 @@ public function create( $backend, $authMechanism, $backendOptions, - $mountOptions + $mountOptions, ) { $canCreateNewLocalStorage = $this->config->getSystemValue('files_external_allow_create_new_local', true); if (!$canCreateNewLocalStorage && $backend === 'local') { @@ -161,7 +161,7 @@ public function update( $authMechanism, $backendOptions, $mountOptions, - $testOnly = true + $testOnly = true, ) { $storage = $this->createStorage( $mountPoint, diff --git a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php index ea42b0275f71f..5c36f8433070b 100644 --- a/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php +++ b/apps/files_external/lib/Lib/Auth/Password/LoginCredentials.php @@ -46,7 +46,7 @@ public function __construct( ICredentialsManager $credentialsManager, CredentialsStore $credentialsStore, IEventDispatcher $eventDispatcher, - ILDAPProviderFactory $ldapFactory + ILDAPProviderFactory $ldapFactory, ) { $this->session = $session; $this->credentialsManager = $credentialsManager; diff --git a/apps/files_external/lib/Lib/PersonalMount.php b/apps/files_external/lib/Lib/PersonalMount.php index 64e8fdcea695e..610807bc7a251 100644 --- a/apps/files_external/lib/Lib/PersonalMount.php +++ b/apps/files_external/lib/Lib/PersonalMount.php @@ -39,7 +39,7 @@ public function __construct( $arguments = null, $loader = null, $mountOptions = null, - $mountId = null + $mountId = null, ) { parent::__construct($storageConfig, $storage, $mountpoint, $arguments, $loader, $mountOptions, $mountId); $this->storagesService = $storagesService; diff --git a/apps/files_external/lib/MountConfig.php b/apps/files_external/lib/MountConfig.php index b057fb810bd08..1cbd6e14ebea2 100644 --- a/apps/files_external/lib/MountConfig.php +++ b/apps/files_external/lib/MountConfig.php @@ -41,7 +41,7 @@ class MountConfig { public function __construct( UserGlobalStoragesService $userGlobalStorageService, UserStoragesService $userStorageService, - GlobalStoragesService $globalStorageService + GlobalStoragesService $globalStorageService, ) { $this->userGlobalStorageService = $userGlobalStorageService; $this->userStorageService = $userStorageService; diff --git a/apps/files_external/lib/Service/BackendService.php b/apps/files_external/lib/Service/BackendService.php index 5eb0276be6500..a72179a337343 100644 --- a/apps/files_external/lib/Service/BackendService.php +++ b/apps/files_external/lib/Service/BackendService.php @@ -62,7 +62,7 @@ class BackendService { * @param IConfig $config */ public function __construct( - IConfig $config + IConfig $config, ) { $this->config = $config; diff --git a/apps/files_external/lib/Service/LegacyStoragesService.php b/apps/files_external/lib/Service/LegacyStoragesService.php index ac9273f2afcad..1f5cf8cdf2881 100644 --- a/apps/files_external/lib/Service/LegacyStoragesService.php +++ b/apps/files_external/lib/Service/LegacyStoragesService.php @@ -37,7 +37,7 @@ protected function populateStorageConfigWithLegacyOptions( &$storageConfig, $mountType, $applicable, - $storageOptions + $storageOptions, ) { $backend = $this->backendService->getBackend($storageOptions['backend']); if (!$backend) { diff --git a/apps/files_external/lib/Service/StoragesService.php b/apps/files_external/lib/Service/StoragesService.php index 09f7ea954b494..40bf5bfe1a80a 100644 --- a/apps/files_external/lib/Service/StoragesService.php +++ b/apps/files_external/lib/Service/StoragesService.php @@ -50,7 +50,7 @@ public function __construct( BackendService $backendService, DBConfigService $dbConfigService, IUserMountCache $userMountCache, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { $this->backendService = $backendService; $this->dbConfig = $dbConfigService; @@ -282,7 +282,7 @@ public function createStorage( $mountOptions = null, $applicableUsers = null, $applicableGroups = null, - $priority = null + $priority = null, ) { $backend = $this->backendService->getBackend($backendIdentifier); if (!$backend) { diff --git a/apps/files_external/lib/Service/UserGlobalStoragesService.php b/apps/files_external/lib/Service/UserGlobalStoragesService.php index 58590b8d682d1..6fc37ea99b324 100644 --- a/apps/files_external/lib/Service/UserGlobalStoragesService.php +++ b/apps/files_external/lib/Service/UserGlobalStoragesService.php @@ -37,7 +37,7 @@ public function __construct( IUserSession $userSession, IGroupManager $groupManager, IUserMountCache $userMountCache, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { parent::__construct($backendService, $dbConfig, $userMountCache, $eventDispatcher); $this->userSession = $userSession; diff --git a/apps/files_external/lib/Service/UserStoragesService.php b/apps/files_external/lib/Service/UserStoragesService.php index ba67815636828..b461451389b38 100644 --- a/apps/files_external/lib/Service/UserStoragesService.php +++ b/apps/files_external/lib/Service/UserStoragesService.php @@ -34,7 +34,7 @@ public function __construct( DBConfigService $dbConfig, IUserSession $userSession, IUserMountCache $userMountCache, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { $this->userSession = $userSession; parent::__construct($backendService, $dbConfig, $userMountCache, $eventDispatcher); diff --git a/apps/files_external/lib/Settings/Admin.php b/apps/files_external/lib/Settings/Admin.php index 63a420e749e6a..707f7704702c3 100644 --- a/apps/files_external/lib/Settings/Admin.php +++ b/apps/files_external/lib/Settings/Admin.php @@ -30,7 +30,7 @@ public function __construct( IManager $encryptionManager, GlobalStoragesService $globalStoragesService, BackendService $backendService, - GlobalAuth $globalAuth + GlobalAuth $globalAuth, ) { $this->encryptionManager = $encryptionManager; $this->globalStoragesService = $globalStoragesService; diff --git a/apps/files_external/lib/Settings/Personal.php b/apps/files_external/lib/Settings/Personal.php index ecd56e632a98b..f84051626a222 100644 --- a/apps/files_external/lib/Settings/Personal.php +++ b/apps/files_external/lib/Settings/Personal.php @@ -35,7 +35,7 @@ public function __construct( UserGlobalStoragesService $userGlobalStoragesService, BackendService $backendService, GlobalAuth $globalAuth, - IUserSession $userSession + IUserSession $userSession, ) { $this->encryptionManager = $encryptionManager; $this->userGlobalStoragesService = $userGlobalStoragesService; diff --git a/apps/files_external/lib/Settings/PersonalSection.php b/apps/files_external/lib/Settings/PersonalSection.php index 41db1fcd9062f..f72ef95ad7f04 100644 --- a/apps/files_external/lib/Settings/PersonalSection.php +++ b/apps/files_external/lib/Settings/PersonalSection.php @@ -26,7 +26,7 @@ public function __construct( IL10N $l, IUserSession $userSession, UserGlobalStoragesService $userGlobalStoragesService, - BackendService $backendService + BackendService $backendService, ) { parent::__construct($url, $l); $this->userSession = $userSession; diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index c4d14ecb2b4ed..0ebb5800d29e0 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -116,7 +116,7 @@ function writeParameterInput($parameter, $options, $classes = []) {

t('External storage enables you to mount external storage services and devices as secondary Nextcloud storage devices. You may also allow people to mount their own external storage services.')); ?>

'> @@ -127,7 +127,7 @@ function writeParameterInput($parameter, $options, $classes = []) { '.$l->t('Available for').''); + print_unescaped(''); } ?> diff --git a/apps/files_external/tests/Controller/StoragesControllerTest.php b/apps/files_external/tests/Controller/StoragesControllerTest.php index 9e9595152aded..94512c56cadc8 100644 --- a/apps/files_external/tests/Controller/StoragesControllerTest.php +++ b/apps/files_external/tests/Controller/StoragesControllerTest.php @@ -47,7 +47,7 @@ protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB' $backend->method('getStorageClass') ->willReturn($storageClass); $backend->method('getIdentifier') - ->willReturn('identifier:'.$class); + ->willReturn('identifier:' . $class); $backend->method('getParameters') ->willReturn([]); return $backend; @@ -63,7 +63,7 @@ protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_Extern $authMech->method('getScheme') ->willReturn($scheme); $authMech->method('getIdentifier') - ->willReturn('identifier:'.$class); + ->willReturn('identifier:' . $class); $authMech->method('getParameters') ->willReturn([]); diff --git a/apps/files_external/tests/Service/BackendServiceTest.php b/apps/files_external/tests/Service/BackendServiceTest.php index 6d9754a533579..74a4b223a96d2 100644 --- a/apps/files_external/tests/Service/BackendServiceTest.php +++ b/apps/files_external/tests/Service/BackendServiceTest.php @@ -32,8 +32,8 @@ protected function getBackendMock($class) { $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); - $backend->method('getIdentifier')->willReturn('identifier:'.$class); - $backend->method('getIdentifierAliases')->willReturn(['identifier:'.$class]); + $backend->method('getIdentifier')->willReturn('identifier:' . $class); + $backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]); return $backend; } @@ -46,8 +46,8 @@ protected function getAuthMechanismMock($class) { $backend = $this->getMockBuilder(AuthMechanism::class) ->disableOriginalConstructor() ->getMock(); - $backend->method('getIdentifier')->willReturn('identifier:'.$class); - $backend->method('getIdentifierAliases')->willReturn(['identifier:'.$class]); + $backend->method('getIdentifier')->willReturn('identifier:' . $class); + $backend->method('getIdentifierAliases')->willReturn(['identifier:' . $class]); return $backend; } diff --git a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php index 992960a6ea10c..ff8d5f4e49492 100644 --- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php +++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php @@ -243,7 +243,7 @@ public function getUniqueStoragesProvider() { public function testGetUniqueStorages( $priority1, $applicableUsers1, $applicableGroups1, $priority2, $applicableUsers2, $applicableGroups2, - $expectedPrecedence + $expectedPrecedence, ): void { $backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\SMB'); $backend->method('isVisibleFor') diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 26a9bc7b5248c..94427f7a97974 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -43,7 +43,7 @@ public function __construct( $storage, ICacheEntry $sourceRootInfo, CacheDependencies $dependencies, - IShare $share + IShare $share, ) { $this->storage = $storage; $this->sourceRootInfo = $sourceRootInfo; diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php index 4dc3989f866d3..a2e244c7ba08c 100644 --- a/apps/files_sharing/lib/Controller/PublicPreviewController.php +++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php @@ -83,7 +83,7 @@ public function getPreview( string $file = '', int $x = 32, int $y = 32, - $a = false + $a = false, ) { if ($token === '' || $x === 0 || $y === 0) { return new DataResponse([], Http::STATUS_BAD_REQUEST); diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index 9ca9774013c18..cf83587467724 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -88,7 +88,7 @@ public function __construct( private LoggerInterface $logger, private IProviderFactory $factory, private IMailer $mailer, - ?string $userId = null + ?string $userId = null, ) { parent::__construct($appName, $request); $this->currentUser = $userId; @@ -565,7 +565,7 @@ public function createShare( string $note = '', string $label = '', ?string $attributes = null, - ?string $sendMail = null + ?string $sendMail = null, ): DataResponse { $share = $this->shareManager->newShare(); @@ -930,7 +930,7 @@ public function getShares( string $reshares = 'false', string $subfiles = 'false', string $path = '', - string $include_tags = 'false' + string $include_tags = 'false', ): DataResponse { $node = null; if ($path !== '') { @@ -978,7 +978,7 @@ private function getFormattedShares( bool $sharedWithMe = false, bool $reShares = false, bool $subFiles = false, - bool $includeTags = false + bool $includeTags = false, ): array { if ($sharedWithMe) { return $this->getSharedWithMe($node, $includeTags); diff --git a/apps/files_sharing/lib/DeleteOrphanedSharesJob.php b/apps/files_sharing/lib/DeleteOrphanedSharesJob.php index 2315ff5c12070..4ab95c2587bc5 100644 --- a/apps/files_sharing/lib/DeleteOrphanedSharesJob.php +++ b/apps/files_sharing/lib/DeleteOrphanedSharesJob.php @@ -38,7 +38,7 @@ class DeleteOrphanedSharesJob extends TimedJob { public function __construct( ITimeFactory $time, IDBConnection $db, - LoggerInterface $logger + LoggerInterface $logger, ) { parent::__construct($time); diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php index a3226e9f3dd5b..86c9ae830e4ab 100644 --- a/apps/files_sharing/lib/External/Manager.php +++ b/apps/files_sharing/lib/External/Manager.php @@ -84,7 +84,7 @@ public function __construct( IUserManager $userManager, IUserSession $userSession, IEventDispatcher $eventDispatcher, - LoggerInterface $logger + LoggerInterface $logger, ) { $user = $userSession->getUser(); $this->connection = $connection; diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php index f2f92679e2f91..3f1937396a01e 100644 --- a/apps/files_sharing/lib/Helper.php +++ b/apps/files_sharing/lib/Helper.php @@ -28,12 +28,12 @@ public static function registerHooks() { */ public static function generateUniqueTarget($path, $excludeList, $view) { $pathinfo = pathinfo($path); - $ext = isset($pathinfo['extension']) ? '.'.$pathinfo['extension'] : ''; + $ext = isset($pathinfo['extension']) ? '.' . $pathinfo['extension'] : ''; $name = $pathinfo['filename']; $dir = $pathinfo['dirname']; $i = 2; while ($view->file_exists($path) || in_array($path, $excludeList)) { - $path = Filesystem::normalizePath($dir . '/' . $name . ' ('.$i.')' . $ext); + $path = Filesystem::normalizePath($dir . '/' . $name . ' (' . $i . ')' . $ext); $i++; } diff --git a/apps/files_sharing/lib/Listener/LoadSidebarListener.php b/apps/files_sharing/lib/Listener/LoadSidebarListener.php index 7fd10b3877922..b00e937d6754d 100644 --- a/apps/files_sharing/lib/Listener/LoadSidebarListener.php +++ b/apps/files_sharing/lib/Listener/LoadSidebarListener.php @@ -22,7 +22,10 @@ */ class LoadSidebarListener implements IEventListener { - public function __construct(private IInitialState $initialState, private IManager $shareManager) { + public function __construct( + private IInitialState $initialState, + private IManager $shareManager, + ) { } public function handle(Event $event): void { diff --git a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php index e13c3354f27ca..009692c566762 100644 --- a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php +++ b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php @@ -47,7 +47,7 @@ public function __construct(string $appName, IAppManager $appManager, IControllerMethodReflector $reflector, IManager $shareManager, - IRequest $request + IRequest $request, ) { $this->appName = $appName; $this->config = $config; diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php index 64847bf5a5f1d..5313f40ff6bbe 100644 --- a/apps/files_sharing/lib/MountProvider.php +++ b/apps/files_sharing/lib/MountProvider.php @@ -30,7 +30,7 @@ public function __construct( protected IManager $shareManager, protected LoggerInterface $logger, protected IEventDispatcher $eventDispatcher, - protected ICacheFactory $cacheFactory + protected ICacheFactory $cacheFactory, ) { } diff --git a/apps/files_sharing/lib/Notification/Listener.php b/apps/files_sharing/lib/Notification/Listener.php index aaac32897d79b..e925ca75fb8e8 100644 --- a/apps/files_sharing/lib/Notification/Listener.php +++ b/apps/files_sharing/lib/Notification/Listener.php @@ -30,7 +30,7 @@ class Listener { public function __construct( INotificationManager $notificationManager, IShareManager $shareManager, - IGroupManager $groupManager + IGroupManager $groupManager, ) { $this->notificationManager = $notificationManager; $this->shareManager = $shareManager; diff --git a/apps/files_sharing/lib/OrphanHelper.php b/apps/files_sharing/lib/OrphanHelper.php index 94fe4f0831838..c5ad93a354f54 100644 --- a/apps/files_sharing/lib/OrphanHelper.php +++ b/apps/files_sharing/lib/OrphanHelper.php @@ -19,7 +19,7 @@ class OrphanHelper { public function __construct( IDBConnection $connection, - IRootFolder $rootFolder + IRootFolder $rootFolder, ) { $this->connection = $connection; $this->rootFolder = $rootFolder; diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php index 6c7178132adf3..ddd6af3845da6 100644 --- a/apps/files_sharing/lib/SharedMount.php +++ b/apps/files_sharing/lib/SharedMount.php @@ -55,7 +55,7 @@ public function __construct( CappedMemoryCache $folderExistCache, IEventDispatcher $eventDispatcher, IUser $user, - ICache $cache + ICache $cache, ) { $this->user = $user; $this->recipientView = $recipientView; @@ -81,7 +81,7 @@ public function __construct( private function verifyMountPoint( \OCP\Share\IShare $share, array $mountpoints, - CappedMemoryCache $folderExistCache + CappedMemoryCache $folderExistCache, ) { $cacheKey = $this->user->getUID() . '/' . $share->getId() . '/' . $share->getTarget(); $cached = $this->cache->get($cacheKey); diff --git a/apps/files_sharing/lib/SharesReminderJob.php b/apps/files_sharing/lib/SharesReminderJob.php index 5e15d2851f486..af279bbc146d2 100644 --- a/apps/files_sharing/lib/SharesReminderJob.php +++ b/apps/files_sharing/lib/SharesReminderJob.php @@ -84,7 +84,7 @@ private function getShares(): array|\Iterator { } else { $sharesResult = $this->getSharesData(); } - foreach($sharesResult as $share) { + foreach ($sharesResult as $share) { if ($share['share_type'] === IShare::TYPE_EMAIL) { $id = "ocMailShare:$share[id]"; } else { @@ -216,7 +216,7 @@ private function filterSharesWithEmptyFolders(array $shares, int $maxResults): a * @param IShare $share Share that was obtained with {@link getShares} * @return array|null Info needed to send a reminder */ - private function prepareReminder(IShare $share): array|null { + private function prepareReminder(IShare $share): ?array { $sharedWith = $share->getSharedWith(); $reminderInfo = []; if ($share->getShareType() == IShare::TYPE_USER) { diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php index fe0739cfcde6c..4d50fb4065eba 100644 --- a/apps/files_sharing/tests/ApiTest.php +++ b/apps/files_sharing/tests/ApiTest.php @@ -63,7 +63,7 @@ protected function setUp(): void { $this->view->mkdir($this->folder); $this->view->mkdir($this->folder . $this->subfolder); $this->view->mkdir($this->folder . $this->subfolder . $this->subsubfolder); - $this->view->file_put_contents($this->folder.$this->filename, $this->data); + $this->view->file_put_contents($this->folder . $this->filename, $this->data); $this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data); $mount = $this->view->getMount($this->filename); $mount->getStorage()->getScanner()->scan('', Scanner::SCAN_RECURSIVE); @@ -135,7 +135,7 @@ public function testCreateShareUserFile(): void { $this->assertEquals(19, $data['permissions']); $this->assertEmpty($data['expiration']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -152,7 +152,7 @@ public function testCreateShareUserFolder(): void { $this->assertEquals(31, $data['permissions']); $this->assertEmpty($data['expiration']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -169,7 +169,7 @@ public function testCreateShareGroupFile(): void { $this->assertEquals(19, $data['permissions']); $this->assertEmpty($data['expiration']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -185,7 +185,7 @@ public function testCreateShareGroupFolder(): void { $this->assertEquals(31, $data['permissions']); $this->assertEmpty($data['expiration']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -210,7 +210,7 @@ public function testCreateShareLink(): void { $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); $this->assertEquals($url, $data['url']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -241,7 +241,7 @@ public function testCreateShareLinkPublicUpload(): void { $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); $this->assertEquals($url, $data['url']); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -313,7 +313,7 @@ public function testSharePermissions(): void { $data = $result->getData(); - $this->shareManager->getShareById('ocinternal:'.$data['id']); + $this->shareManager->getShareById('ocinternal:' . $data['id']); $ocs = $this->createOCS(self::TEST_FILES_SHARING_API_USER1); $ocs->deleteShare($data['id']); @@ -571,7 +571,7 @@ public function testGetShareFromFolder(): void { ->setPermissions(19); $share1 = $this->shareManager->createShare($share1); - $node2 = $this->userFolder->get($this->folder.'/'.$this->filename); + $node2 = $this->userFolder->get($this->folder . '/' . $this->filename); $share2 = $this->shareManager->newShare(); $share2->setNode($node2) ->setSharedBy(self::TEST_FILES_SHARING_API_USER1) @@ -629,7 +629,7 @@ public function testGetShareFromFolderReshares(): void { $share1->setStatus(IShare::STATUS_ACCEPTED); $this->shareManager->updateShare($share1); - $node2 = $this->userFolder->get($this->folder.'/'.$this->filename); + $node2 = $this->userFolder->get($this->folder . '/' . $this->filename); $share2 = $this->shareManager->newShare(); $share2->setNode($node2) ->setSharedBy(self::TEST_FILES_SHARING_API_USER2) @@ -639,7 +639,7 @@ public function testGetShareFromFolderReshares(): void { $share2->setStatus(IShare::STATUS_ACCEPTED); $this->shareManager->updateShare($share2); - $node3 = $this->userFolder->get($this->folder.'/'.$this->subfolder.'/'.$this->filename); + $node3 = $this->userFolder->get($this->folder . '/' . $this->subfolder . '/' . $this->filename); $share3 = $this->shareManager->newShare(); $share3->setNode($node3) ->setSharedBy(self::TEST_FILES_SHARING_API_USER2) @@ -850,7 +850,7 @@ public function testGetShareMultipleSharedFolder(): void { $s2 = reset($data2); $this->assertEquals($this->subfolder, $s1['path']); - $this->assertEquals($this->folder.$this->subfolder, $s2['path']); + $this->assertEquals($this->folder . $this->subfolder, $s2['path']); $this->shareManager->deleteShare($share1); $this->shareManager->deleteShare($share2); @@ -1141,7 +1141,7 @@ public function testDeleteReshare(): void { $this->shareManager->updateShare($share1); $user2folder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER2); - $node2 = $user2folder->get($this->folder.'/'.$this->filename); + $node2 = $user2folder->get($this->folder . '/' . $this->filename); $share2 = $this->shareManager->newShare(); $share2->setNode($node2) ->setSharedBy(self::TEST_FILES_SHARING_API_USER2) @@ -1184,7 +1184,7 @@ public function testShareFolderWithAMountPoint(): void { $view->mkdir('localDir'); // move mount point to the folder "localDir" - $result = $view->rename($this->folder, 'localDir/'.$this->folder); + $result = $view->rename($this->folder, 'localDir/' . $this->folder); $this->assertTrue($result !== false); // try to share "localDir" @@ -1308,7 +1308,7 @@ public function testPublicLinkExpireDate($date, $valid): void { $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); $this->assertEquals($url, $data['url']); - $share = $this->shareManager->getShareById('ocinternal:'.$data['id']); + $share = $this->shareManager->getShareById('ocinternal:' . $data['id']); $this->assertEquals($date, $share->getExpirationDate()->format('Y-m-d H:i:s')); @@ -1340,7 +1340,7 @@ public function testCreatePublicLinkExpireDateValid(): void { $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); $this->assertEquals($url, $data['url']); - $share = $this->shareManager->getShareById('ocinternal:'.$data['id']); + $share = $this->shareManager->getShareById('ocinternal:' . $data['id']); $date->setTime(0, 0, 0); $this->assertEquals($date, $share->getExpirationDate()); diff --git a/apps/files_sharing/tests/CacheTest.php b/apps/files_sharing/tests/CacheTest.php index 4db3adf34a644..ebcfc43edadae 100644 --- a/apps/files_sharing/tests/CacheTest.php +++ b/apps/files_sharing/tests/CacheTest.php @@ -50,7 +50,7 @@ protected function setUp(): void { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); - $this->user2View = new \OC\Files\View('/'. self::TEST_FILES_SHARING_API_USER2 . '/files'); + $this->user2View = new \OC\Files\View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files'); // prepare user1's dir structure $this->view->mkdir('container'); diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 67aa15d82faa7..f741bb64c8186 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -512,7 +512,7 @@ public function createShare($id, $shareType, $sharedWith, $sharedBy, $shareOwner if ($shareType === IShare::TYPE_USER || $shareType === IShare::TYPE_GROUP || $shareType === IShare::TYPE_LINK) { - $share->method('getFullId')->willReturn('ocinternal:'.$id); + $share->method('getFullId')->willReturn('ocinternal:' . $id); } return $share; diff --git a/apps/files_sharing/tests/ShareTest.php b/apps/files_sharing/tests/ShareTest.php index 651341a560764..6956093a0c16c 100644 --- a/apps/files_sharing/tests/ShareTest.php +++ b/apps/files_sharing/tests/ShareTest.php @@ -34,7 +34,7 @@ protected function setUp(): void { $this->view->mkdir($this->folder); $this->view->mkdir($this->folder . $this->subfolder); $this->view->mkdir($this->folder . $this->subfolder . $this->subsubfolder); - $this->view->file_put_contents($this->folder.$this->filename, $this->data); + $this->view->file_put_contents($this->folder . $this->filename, $this->data); $this->view->file_put_contents($this->folder . $this->subfolder . $this->filename, $this->data); } @@ -103,7 +103,7 @@ public function testUnshareFromSelf(): void { public function verifyDirContent($content, $expected) { foreach ($content as $c) { if (!in_array($c['name'], $expected)) { - $this->assertTrue(false, "folder should only contain '" . implode(',', $expected) . "', found: " .$c['name']); + $this->assertTrue(false, "folder should only contain '" . implode(',', $expected) . "', found: " . $c['name']); } } } diff --git a/apps/files_sharing/tests/SharesReminderJobTest.php b/apps/files_sharing/tests/SharesReminderJobTest.php index 9889ff47c5366..d68a9d30182d3 100644 --- a/apps/files_sharing/tests/SharesReminderJobTest.php +++ b/apps/files_sharing/tests/SharesReminderJobTest.php @@ -152,7 +152,7 @@ public function dataSharesReminder() { * @param bool $shouldBeReminded */ public function testSharesReminder( - \DateTime|null $expirationDate, string $email, bool $isEmpty, int $permissions, bool $shouldBeReminded + ?\DateTime $expirationDate, string $email, bool $isEmpty, int $permissions, bool $shouldBeReminded, ): void { $this->loginAsUser($this->user1); diff --git a/apps/files_sharing/tests/UpdaterTest.php b/apps/files_sharing/tests/UpdaterTest.php index 9d26ff873a5ab..8aee8d7ddfc6a 100644 --- a/apps/files_sharing/tests/UpdaterTest.php +++ b/apps/files_sharing/tests/UpdaterTest.php @@ -85,7 +85,7 @@ public function testDeleteParentFolder(): void { // share mount point should now be moved to the subfolder $this->assertFalse($view->file_exists($this->folder)); - $this->assertTrue($view->file_exists('localFolder/' .$this->folder)); + $this->assertTrue($view->file_exists('localFolder/' . $this->folder)); $view->unlink('localFolder'); @@ -290,7 +290,7 @@ public function testMovedIntoShareChangeOwner(): void { ); // user2 moves folder2 into folder1 - $viewUser2->rename($folder2, $folder1.'/'.$folder2); + $viewUser2->rename($folder2, $folder1 . '/' . $folder2); $folder2Share = $this->shareManager->getShareById($folder2Share->getFullId()); $file1Share = $this->shareManager->getShareById($file1Share->getFullId()); $subfolder1Share = $this->shareManager->getShareById($subfolder1Share->getFullId()); @@ -308,7 +308,7 @@ public function testMovedIntoShareChangeOwner(): void { $this->assertEquals(\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE, $file2Share->getPermissions()); // user2 moves folder2 out of folder1 - $viewUser2->rename($folder1.'/'.$folder2, $folder2); + $viewUser2->rename($folder1 . '/' . $folder2, $folder2); $folder2Share = $this->shareManager->getShareById($folder2Share->getFullId()); $file1Share = $this->shareManager->getShareById($file1Share->getFullId()); $subfolder1Share = $this->shareManager->getShareById($subfolder1Share->getFullId()); diff --git a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php index e458039bf4f1d..18172560893a7 100644 --- a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php +++ b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php @@ -24,7 +24,7 @@ public function __construct( IConfig $config, IUserManager $userManager, Expiration $expiration, - ITimeFactory $time + ITimeFactory $time, ) { parent::__construct($time); // Run once per 30 minutes diff --git a/apps/files_trashbin/lib/Command/Size.php b/apps/files_trashbin/lib/Command/Size.php index 48ee2ced6cb7e..81ae82c02d309 100644 --- a/apps/files_trashbin/lib/Command/Size.php +++ b/apps/files_trashbin/lib/Command/Size.php @@ -26,7 +26,7 @@ class Size extends Base { public function __construct( IConfig $config, IUserManager $userManager, - IBus $commandBus + IBus $commandBus, ) { parent::__construct(); diff --git a/apps/files_trashbin/lib/Controller/PreviewController.php b/apps/files_trashbin/lib/Controller/PreviewController.php index 19eb15b733a8e..b006ba5e5aca4 100644 --- a/apps/files_trashbin/lib/Controller/PreviewController.php +++ b/apps/files_trashbin/lib/Controller/PreviewController.php @@ -50,7 +50,7 @@ public function __construct( IUserSession $userSession, IMimeTypeDetector $mimeTypeDetector, IPreview $previewManager, - ITimeFactory $time + ITimeFactory $time, ) { parent::__construct($appName, $request); diff --git a/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php b/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php index 2aabd101d28c3..0bc6b37c35b95 100644 --- a/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php +++ b/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php @@ -16,7 +16,11 @@ * @since 28.0.0 */ class BeforeNodeRestoredEvent extends AbstractNodesEvent { - public function __construct(Node $source, Node $target, private bool &$run) { + public function __construct( + Node $source, + Node $target, + private bool &$run, + ) { parent::__construct($source, $target); } diff --git a/apps/files_trashbin/lib/Listeners/SyncLivePhotosListener.php b/apps/files_trashbin/lib/Listeners/SyncLivePhotosListener.php index db9a43be6fc48..2cb3a94aa1dc8 100644 --- a/apps/files_trashbin/lib/Listeners/SyncLivePhotosListener.php +++ b/apps/files_trashbin/lib/Listeners/SyncLivePhotosListener.php @@ -113,8 +113,8 @@ private function handleRestore(BeforeNodeRestoredEvent $event, Node $peerFile): */ private function getTrashItem(array $trashFolder, string $path): ?ITrashItem { foreach ($trashFolder as $trashItem) { - if (str_starts_with($path, 'files_trashbin/files'.$trashItem->getTrashPath())) { - if ($path === 'files_trashbin/files'.$trashItem->getTrashPath()) { + if (str_starts_with($path, 'files_trashbin/files' . $trashItem->getTrashPath())) { + if ($path === 'files_trashbin/files' . $trashItem->getTrashPath()) { return $trashItem; } diff --git a/apps/files_trashbin/lib/Sabre/RootCollection.php b/apps/files_trashbin/lib/Sabre/RootCollection.php index f626bfd7ee150..11c44266c3d61 100644 --- a/apps/files_trashbin/lib/Sabre/RootCollection.php +++ b/apps/files_trashbin/lib/Sabre/RootCollection.php @@ -21,7 +21,7 @@ class RootCollection extends AbstractPrincipalCollection { public function __construct( ITrashManager $trashManager, PrincipalBackend\BackendInterface $principalBackend, - IConfig $config + IConfig $config, ) { parent::__construct($principalBackend, 'principals/users'); diff --git a/apps/files_trashbin/lib/Sabre/TrashHome.php b/apps/files_trashbin/lib/Sabre/TrashHome.php index edea2744e6f8d..2c7fe749be5f6 100644 --- a/apps/files_trashbin/lib/Sabre/TrashHome.php +++ b/apps/files_trashbin/lib/Sabre/TrashHome.php @@ -27,7 +27,7 @@ class TrashHome implements ICollection { public function __construct( array $principalInfo, ITrashManager $trashManager, - IUser $user + IUser $user, ) { $this->principalInfo = $principalInfo; $this->trashManager = $trashManager; diff --git a/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php b/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php index 3299c2d6126e2..83564d2a783db 100644 --- a/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php +++ b/apps/files_trashbin/lib/Sabre/TrashbinPlugin.php @@ -32,7 +32,7 @@ class TrashbinPlugin extends ServerPlugin { private $previewManager; public function __construct( - IPreview $previewManager + IPreview $previewManager, ) { $this->previewManager = $previewManager; } diff --git a/apps/files_trashbin/lib/Storage.php b/apps/files_trashbin/lib/Storage.php index d146f23d70a8d..412b9f44df935 100644 --- a/apps/files_trashbin/lib/Storage.php +++ b/apps/files_trashbin/lib/Storage.php @@ -43,7 +43,7 @@ public function __construct( ?IUserManager $userManager = null, ?LoggerInterface $logger = null, ?IEventDispatcher $eventDispatcher = null, - ?IRootFolder $rootFolder = null + ?IRootFolder $rootFolder = null, ) { $this->mountPoint = $parameters['mountPoint']; $this->trashManager = $trashManager; diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php index 544bc877d70a6..29e4d5e8a3c10 100644 --- a/apps/files_trashbin/lib/Trashbin.php +++ b/apps/files_trashbin/lib/Trashbin.php @@ -990,7 +990,7 @@ private static function getVersionsFromTrash($filename, $timestamp, string $user Server::get(IDBConnection::class)->getQueryBuilder(), Server::get(IFilesMetadataManager::class), ); - $normalizedParentPath = ltrim(Filesystem::normalizePath(dirname('files_trashbin/versions/'. $filename)), '/'); + $normalizedParentPath = ltrim(Filesystem::normalizePath(dirname('files_trashbin/versions/' . $filename)), '/'); $parentId = $cache->getId($normalizedParentPath); if ($parentId === -1) { return []; diff --git a/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php index 277c176d191ec..87c8647450fb4 100644 --- a/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php +++ b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php @@ -28,8 +28,8 @@ class TrashbinMigrator implements IMigrator, ISizeEstimationMigrator { use TMigratorBasicVersionHandling; - protected const PATH_FILES_FOLDER = Application::APP_ID.'/files'; - protected const PATH_LOCATIONS_FILE = Application::APP_ID.'/locations.json'; + protected const PATH_FILES_FOLDER = Application::APP_ID . '/files'; + protected const PATH_LOCATIONS_FILE = Application::APP_ID . '/locations.json'; protected IRootFolder $root; @@ -40,7 +40,7 @@ class TrashbinMigrator implements IMigrator, ISizeEstimationMigrator { public function __construct( IRootFolder $rootFolder, IDBConnection $dbc, - IL10N $l10n + IL10N $l10n, ) { $this->root = $rootFolder; $this->dbc = $dbc; @@ -54,7 +54,7 @@ public function getEstimatedExportSize(IUser $user): int|float { $uid = $user->getUID(); try { - $trashbinFolder = $this->root->get('/'.$uid.'/files_trashbin'); + $trashbinFolder = $this->root->get('/' . $uid . '/files_trashbin'); if (!$trashbinFolder instanceof Folder) { return 0; } @@ -73,9 +73,9 @@ public function export(IUser $user, IExportDestination $exportDestination, Outpu $uid = $user->getUID(); try { - $trashbinFolder = $this->root->get('/'.$uid.'/files_trashbin'); + $trashbinFolder = $this->root->get('/' . $uid . '/files_trashbin'); if (!$trashbinFolder instanceof Folder) { - throw new UserMigrationException('/'.$uid.'/files_trashbin is not a folder'); + throw new UserMigrationException('/' . $uid . '/files_trashbin is not a folder'); } $output->writeln('Exporting trashbin files…'); $exportDestination->copyFolder($trashbinFolder, static::PATH_FILES_FOLDER); @@ -92,7 +92,7 @@ public function export(IUser $user, IExportDestination $exportDestination, Outpu } catch (NotFoundException $e) { $output->writeln('No trashbin to export…'); } catch (\Throwable $e) { - throw new UserMigrationException('Could not export trashbin: '.$e->getMessage(), 0, $e); + throw new UserMigrationException('Could not export trashbin: ' . $e->getMessage(), 0, $e); } } @@ -111,12 +111,12 @@ public function import(IUser $user, IImportSource $importSource, OutputInterface if ($importSource->pathExists(static::PATH_FILES_FOLDER)) { try { - $trashbinFolder = $this->root->get('/'.$uid.'/files_trashbin'); + $trashbinFolder = $this->root->get('/' . $uid . '/files_trashbin'); if (!$trashbinFolder instanceof Folder) { - throw new UserMigrationException('Could not import trashbin, /'.$uid.'/files_trashbin is not a folder'); + throw new UserMigrationException('Could not import trashbin, /' . $uid . '/files_trashbin is not a folder'); } } catch (NotFoundException $e) { - $trashbinFolder = $this->root->newFolder('/'.$uid.'/files_trashbin'); + $trashbinFolder = $this->root->newFolder('/' . $uid . '/files_trashbin'); } $output->writeln('Importing trashbin files…'); try { diff --git a/apps/files_trashbin/tests/Command/CleanUpTest.php b/apps/files_trashbin/tests/Command/CleanUpTest.php index 49ae103ea303c..6299400a65a73 100644 --- a/apps/files_trashbin/tests/Command/CleanUpTest.php +++ b/apps/files_trashbin/tests/Command/CleanUpTest.php @@ -64,10 +64,10 @@ public function initTable() { for ($i = 0; $i < 10; $i++) { $query->insert($this->trashTable) ->values([ - 'id' => $query->expr()->literal('file'.$i), + 'id' => $query->expr()->literal('file' . $i), 'timestamp' => $query->expr()->literal($i), 'location' => $query->expr()->literal('.'), - 'user' => $query->expr()->literal('user'.$i % 2) + 'user' => $query->expr()->literal('user' . $i % 2) ])->execute(); } $getAllQuery = $this->dbConnection->getQueryBuilder(); diff --git a/apps/files_versions/lib/Capabilities.php b/apps/files_versions/lib/Capabilities.php index ce7239a4bf56c..3566b82842ad8 100644 --- a/apps/files_versions/lib/Capabilities.php +++ b/apps/files_versions/lib/Capabilities.php @@ -16,7 +16,7 @@ class Capabilities implements ICapability { public function __construct( IConfig $config, - IAppManager $appManager + IAppManager $appManager, ) { $this->config = $config; $this->appManager = $appManager; diff --git a/apps/files_versions/lib/Controller/PreviewController.php b/apps/files_versions/lib/Controller/PreviewController.php index 8416503c6432b..4cda69beb9695 100644 --- a/apps/files_versions/lib/Controller/PreviewController.php +++ b/apps/files_versions/lib/Controller/PreviewController.php @@ -38,7 +38,7 @@ public function __construct( IRootFolder $rootFolder, IUserSession $userSession, IVersionManager $versionManager, - IPreview $previewManager + IPreview $previewManager, ) { parent::__construct($appName, $request); @@ -67,7 +67,7 @@ public function getPreview( string $file = '', int $x = 44, int $y = 44, - string $version = '' + string $version = '', ) { if ($file === '' || $version === '' || $x === 0 || $y === 0) { return new DataResponse([], Http::STATUS_BAD_REQUEST); diff --git a/apps/files_versions/lib/Sabre/RootCollection.php b/apps/files_versions/lib/Sabre/RootCollection.php index 8ed397069f7af..2d59acdada07d 100644 --- a/apps/files_versions/lib/Sabre/RootCollection.php +++ b/apps/files_versions/lib/Sabre/RootCollection.php @@ -34,7 +34,7 @@ public function __construct( IConfig $config, IUserManager $userManager, IVersionManager $versionManager, - IUserSession $userSession + IUserSession $userSession, ) { parent::__construct($principalBackend, 'principals/users'); diff --git a/apps/files_versions/lib/Sabre/VersionFile.php b/apps/files_versions/lib/Sabre/VersionFile.php index 94fc101f05e35..faa0347364891 100644 --- a/apps/files_versions/lib/Sabre/VersionFile.php +++ b/apps/files_versions/lib/Sabre/VersionFile.php @@ -23,7 +23,7 @@ class VersionFile implements IFile { public function __construct( private IVersion $version, - private IVersionManager $versionManager + private IVersionManager $versionManager, ) { } diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php index 41f04b5a1d1b1..af14f8e4b9f2a 100644 --- a/apps/files_versions/lib/Storage.php +++ b/apps/files_versions/lib/Storage.php @@ -91,7 +91,7 @@ public static function getUidAndFilename($filename) { Filesystem::initMountPoints($uid); if ($uid !== OC_User::getUser()) { $info = Filesystem::getFileInfo($filename); - $ownerView = new View('/'.$uid.'/files'); + $ownerView = new View('/' . $uid . '/files'); try { $filename = $ownerView->getPath($info['fileid']); // make sure that the file name doesn't end with a trailing slash @@ -303,7 +303,7 @@ public static function renameOrCopy($sourcePath, $targetPath, $operation) { // does the directory exists for versions too ? if ($rootView->is_dir('/' . $sourceOwner . '/files_versions/' . $sourcePath)) { // create missing dirs if necessary - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); + self::createMissingDirectories($targetPath, new View('/' . $targetOwner)); // move the directory containing the versions $rootView->$operation( @@ -313,13 +313,13 @@ public static function renameOrCopy($sourcePath, $targetPath, $operation) { } } elseif ($versions = Storage::getVersions($sourceOwner, '/' . $sourcePath)) { // create missing dirs if necessary - self::createMissingDirectories($targetPath, new View('/'. $targetOwner)); + self::createMissingDirectories($targetPath, new View('/' . $targetOwner)); foreach ($versions as $v) { // move each version one by one to the target directory $rootView->$operation( - '/' . $sourceOwner . '/files_versions/' . $sourcePath.'.v' . $v['version'], - '/' . $targetOwner . '/files_versions/' . $targetPath.'.v' . $v['version'] + '/' . $sourceOwner . '/files_versions/' . $sourcePath . '.v' . $v['version'], + '/' . $targetOwner . '/files_versions/' . $targetPath . '.v' . $v['version'] ); } } @@ -345,8 +345,8 @@ public static function rollback(string $file, int $revision, IUser $user) { $root = \OC::$server->get(IRootFolder::class); $userFolder = $root->getUserFolder($user->getUID()); - $users_view = new View('/'.$user->getUID()); - $files_view = new View('/'. $user->getUID().'/files'); + $users_view = new View('/' . $user->getUID()); + $files_view = new View('/' . $user->getUID() . '/files'); $versionCreated = false; @@ -358,9 +358,9 @@ public static function rollback(string $file, int $revision, IUser $user) { } //first create a new version - $version = 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename); + $version = 'files_versions' . $filename . '.v' . $users_view->filemtime('files' . $filename); if (!$users_view->file_exists($version)) { - $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename)); + $users_view->copy('files' . $filename, 'files_versions' . $filename . '.v' . $users_view->filemtime('files' . $filename)); $versionCreated = true; } @@ -562,7 +562,7 @@ public static function expireOlderThanMaxForUser($uid) { } try { - $node = $userFolder->get(substr($path, 0, -strlen('.v'.$version))); + $node = $userFolder->get(substr($path, 0, -strlen('.v' . $version))); $versionEntity = $versionsMapper->findVersionForFileId($node->getId(), $version); $versionEntities[$info->getId()] = $versionEntity; @@ -668,7 +668,7 @@ private static function getAllVersions($uid) { ]; foreach ($versions as $key => $value) { - $size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']); + $size = $view->filesize(self::VERSIONS_ROOT . '/' . $value['path'] . '.v' . $value['timestamp']); $filename = $value['path']; $result['all'][$key]['version'] = $value['timestamp']; @@ -703,7 +703,7 @@ protected static function getExpireList($time, $versions, $quotaExceeded = false foreach ($versions as $key => $version) { if (!is_numeric($version['version'])) { \OC::$server->get(LoggerInterface::class)->error( - 'Found a non-numeric timestamp version: '. json_encode($version), + 'Found a non-numeric timestamp version: ' . json_encode($version), ['app' => 'files_versions']); continue; } @@ -753,7 +753,7 @@ protected static function getAutoExpireList($time, $versions) { //distance between two version too small, mark to delete $toDelete[$key] = $version['path'] . '.v' . $version['version']; $size += $version['size']; - \OC::$server->get(LoggerInterface::class)->info('Mark to expire '. $version['path'] .' next version should be ' . $nextVersion . ' or smaller. (prevTimestamp: ' . $prevTimestamp . '; step: ' . $step, ['app' => 'files_versions']); + \OC::$server->get(LoggerInterface::class)->info('Mark to expire ' . $version['path'] . ' next version should be ' . $nextVersion . ' or smaller. (prevTimestamp: ' . $prevTimestamp . '; step: ' . $step, ['app' => 'files_versions']); } else { $nextVersion = $version['version'] - $step; $prevTimestamp = $version['version']; @@ -833,7 +833,7 @@ public static function expire($filename, $uid) { // file maybe renamed or deleted return false; } - $versionsFileview = new View('/'.$uid.'/files_versions'); + $versionsFileview = new View('/' . $uid . '/files_versions'); $softQuota = true; $quota = $user->getQuota(); @@ -925,10 +925,10 @@ public static function expire($filename, $uid) { reset($allVersions); while ($availableSpace < 0 && $i < $numOfVersions) { $version = current($allVersions); - \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); + \OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $version['path'] . '.v' . $version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); self::deleteVersion($versionsFileview, $version['path'] . '.v' . $version['version']); - \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $version['path'].'.v'.$version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); - $logger->info('running out of space! Delete oldest version: ' . $version['path'].'.v'.$version['version'], ['app' => 'files_versions']); + \OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $version['path'] . '.v' . $version['version'], 'trigger' => self::DELETE_TRIGGER_QUOTA_EXCEEDED]); + $logger->info('running out of space! Delete oldest version: ' . $version['path'] . '.v' . $version['version'], ['app' => 'files_versions']); $versionsSize -= $version['size']; $availableSpace += $version['size']; next($allVersions); diff --git a/apps/oauth2/lib/BackgroundJob/CleanupExpiredAuthorizationCode.php b/apps/oauth2/lib/BackgroundJob/CleanupExpiredAuthorizationCode.php index 84d62ab6b459b..d1647381ffa76 100644 --- a/apps/oauth2/lib/BackgroundJob/CleanupExpiredAuthorizationCode.php +++ b/apps/oauth2/lib/BackgroundJob/CleanupExpiredAuthorizationCode.php @@ -23,7 +23,6 @@ public function __construct( ITimeFactory $timeFactory, private AccessTokenMapper $accessTokenMapper, private LoggerInterface $logger, - ) { parent::__construct($timeFactory); // 30 days diff --git a/apps/oauth2/lib/Controller/OauthApiController.php b/apps/oauth2/lib/Controller/OauthApiController.php index d763779053a35..2e0732a109970 100644 --- a/apps/oauth2/lib/Controller/OauthApiController.php +++ b/apps/oauth2/lib/Controller/OauthApiController.php @@ -68,7 +68,7 @@ public function __construct( #[BruteForceProtection(action: 'oauth2GetToken')] public function getToken( string $grant_type, ?string $code, ?string $refresh_token, - ?string $client_id, ?string $client_secret + ?string $client_id, ?string $client_secret, ): JSONResponse { // We only handle two types diff --git a/apps/oauth2/lib/Controller/SettingsController.php b/apps/oauth2/lib/Controller/SettingsController.php index f16b26696c4ab..9cbb978123172 100644 --- a/apps/oauth2/lib/Controller/SettingsController.php +++ b/apps/oauth2/lib/Controller/SettingsController.php @@ -35,7 +35,7 @@ public function __construct( private IL10N $l, private IAuthTokenProvider $tokenProvider, private IUserManager $userManager, - private ICrypto $crypto + private ICrypto $crypto, ) { parent::__construct($appName, $request); } diff --git a/apps/oauth2/lib/Db/ClientMapper.php b/apps/oauth2/lib/Db/ClientMapper.php index dc19c93c4e103..c5ca2989d0fde 100644 --- a/apps/oauth2/lib/Db/ClientMapper.php +++ b/apps/oauth2/lib/Db/ClientMapper.php @@ -41,7 +41,7 @@ public function getByIdentifier(string $clientIdentifier): Client { try { $client = $this->findEntity($qb); } catch (IMapperException $e) { - throw new ClientNotFoundException('could not find client '.$clientIdentifier, 0, $e); + throw new ClientNotFoundException('could not find client ' . $clientIdentifier, 0, $e); } return $client; } @@ -61,7 +61,7 @@ public function getByUid(int $id): Client { try { $client = $this->findEntity($qb); } catch (IMapperException $e) { - throw new ClientNotFoundException('could not find client with id '.$id, 0, $e); + throw new ClientNotFoundException('could not find client with id ' . $id, 0, $e); } return $client; } diff --git a/apps/oauth2/tests/Controller/OauthApiControllerTest.php b/apps/oauth2/tests/Controller/OauthApiControllerTest.php index fa8c90843e6d3..8d13265ec9e8d 100644 --- a/apps/oauth2/tests/Controller/OauthApiControllerTest.php +++ b/apps/oauth2/tests/Controller/OauthApiControllerTest.php @@ -352,7 +352,7 @@ public function testRefreshTokenValidAppToken(): void { $this->secureRandom->method('generate') ->willReturnCallback(function ($len) { - return 'random'.$len; + return 'random' . $len; }); $this->tokenProvider->expects($this->once()) @@ -448,7 +448,7 @@ public function testRefreshTokenValidAppTokenBasicAuth(): void { $this->secureRandom->method('generate') ->willReturnCallback(function ($len) { - return 'random'.$len; + return 'random' . $len; }); $this->tokenProvider->expects($this->once()) @@ -547,7 +547,7 @@ public function testRefreshTokenExpiredAppToken(): void { $this->secureRandom->method('generate') ->willReturnCallback(function ($len) { - return 'random'.$len; + return 'random' . $len; }); $this->tokenProvider->expects($this->once()) diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php index d60a85f374039..955c2bc39abfd 100644 --- a/apps/provisioning_api/lib/Controller/AppsController.php +++ b/apps/provisioning_api/lib/Controller/AppsController.php @@ -25,7 +25,7 @@ class AppsController extends OCSController { public function __construct( string $appName, IRequest $request, - IAppManager $appManager + IAppManager $appManager, ) { parent::__construct($appName, $request); diff --git a/apps/provisioning_api/lib/Controller/PreferencesController.php b/apps/provisioning_api/lib/Controller/PreferencesController.php index 2a31e076c838a..f230d1d781fc4 100644 --- a/apps/provisioning_api/lib/Controller/PreferencesController.php +++ b/apps/provisioning_api/lib/Controller/PreferencesController.php @@ -31,7 +31,7 @@ public function __construct( IRequest $request, IConfig $config, IUserSession $userSession, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { parent::__construct($appName, $request); $this->config = $config; diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index e65585902bcad..9b90f95d84206 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -787,7 +787,7 @@ public function editUserMultiValue( string $userId, string $collectionName, string $key, - string $value + string $value, ): DataResponse { $currentLoggedInUser = $this->userSession->getUser(); if ($currentLoggedInUser === null) { diff --git a/apps/provisioning_api/lib/Controller/VerificationController.php b/apps/provisioning_api/lib/Controller/VerificationController.php index 18113484c8a4e..33b5bb0020f6b 100644 --- a/apps/provisioning_api/lib/Controller/VerificationController.php +++ b/apps/provisioning_api/lib/Controller/VerificationController.php @@ -49,7 +49,7 @@ public function __construct( IL10N $l10n, IUserSession $userSession, IAccountManager $accountManager, - Crypto $crypto + Crypto $crypto, ) { parent::__construct($appName, $request); $this->verificationToken = $verificationToken; diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php index 8bbc8a29c29fc..f9c0848fb7249 100644 --- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php +++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php @@ -90,7 +90,7 @@ private function createGroup($gid) { ->willReturn($gid); $group ->method('getDisplayName') - ->willReturn($gid.'-name'); + ->willReturn($gid . '-name'); $group ->method('count') ->willReturn(123); diff --git a/apps/settings/lib/Command/AdminDelegation/Add.php b/apps/settings/lib/Command/AdminDelegation/Add.php index 26a13b2cd6eb6..5cbef5c5d157b 100644 --- a/apps/settings/lib/Command/AdminDelegation/Add.php +++ b/apps/settings/lib/Command/AdminDelegation/Add.php @@ -52,7 +52,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $this->authorizedGroupService->create($groupId, $settingClass); - $io->success('Administration of '.$settingClass.' delegated to '.$groupId.'.'); + $io->success('Administration of ' . $settingClass . ' delegated to ' . $groupId . '.'); return 0; } diff --git a/apps/settings/lib/Command/AdminDelegation/Remove.php b/apps/settings/lib/Command/AdminDelegation/Remove.php index 584b9201193c9..6b5347ce89f6e 100644 --- a/apps/settings/lib/Command/AdminDelegation/Remove.php +++ b/apps/settings/lib/Command/AdminDelegation/Remove.php @@ -43,12 +43,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int foreach ($groups as $group) { if ($group->getGroupId() === $groupId) { $this->authorizedGroupService->delete($group->getId()); - $io->success('Removed delegation of '.$settingClass.' to '.$groupId.'.'); + $io->success('Removed delegation of ' . $settingClass . ' to ' . $groupId . '.'); return 0; } } - $io->success('Group '.$groupId.' didn’t have delegation for '.$settingClass.'.'); + $io->success('Group ' . $groupId . ' didn’t have delegation for ' . $settingClass . '.'); return 0; } diff --git a/apps/settings/lib/Command/AdminDelegation/Show.php b/apps/settings/lib/Command/AdminDelegation/Show.php index 73f89ad0eadff..9aba6bc0cb7c7 100644 --- a/apps/settings/lib/Command/AdminDelegation/Show.php +++ b/apps/settings/lib/Command/AdminDelegation/Show.php @@ -47,7 +47,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int continue; } - $io->section('Section: '.$section->getID()); + $io->section('Section: ' . $section->getID()); $io->table($headers, array_map(function (IDelegatedSettings $setting) use ($section) { $className = get_class($setting); $groups = array_map( diff --git a/apps/settings/lib/Controller/AppSettingsController.php b/apps/settings/lib/Controller/AppSettingsController.php index 2c682ac460035..930c1c0f7e278 100644 --- a/apps/settings/lib/Controller/AppSettingsController.php +++ b/apps/settings/lib/Controller/AppSettingsController.php @@ -437,7 +437,7 @@ private function getAppsForCategory($requestedCategory = ''): array { 'missingMaxOwnCloudVersion' => false, 'missingMinOwnCloudVersion' => false, 'canInstall' => true, - 'screenshot' => isset($app['screenshots'][0]['url']) ? 'https://usercontent.apps.nextcloud.com/'.base64_encode($app['screenshots'][0]['url']) : '', + 'screenshot' => isset($app['screenshots'][0]['url']) ? 'https://usercontent.apps.nextcloud.com/' . base64_encode($app['screenshots'][0]['url']) : '', 'score' => $app['ratingOverall'], 'ratingNumOverall' => $app['ratingNumOverall'], 'ratingNumThresholdReached' => $app['ratingNumOverall'] > 5, diff --git a/apps/settings/lib/Controller/UsersController.php b/apps/settings/lib/Controller/UsersController.php index eb401f855360e..71f256f57d69d 100644 --- a/apps/settings/lib/Controller/UsersController.php +++ b/apps/settings/lib/Controller/UsersController.php @@ -336,7 +336,7 @@ public function setUserSettings(?string $avatarScope = null, ?string $birthdate = null, ?string $birthdateScope = null, ?string $pronouns = null, - ?string $pronounsScope = null + ?string $pronounsScope = null, ) { $user = $this->userSession->getUser(); if (!$user instanceof IUser) { diff --git a/apps/settings/lib/Listener/UserAddedToGroupActivityListener.php b/apps/settings/lib/Listener/UserAddedToGroupActivityListener.php index 7369f54bf371f..36feeaa1035a4 100644 --- a/apps/settings/lib/Listener/UserAddedToGroupActivityListener.php +++ b/apps/settings/lib/Listener/UserAddedToGroupActivityListener.php @@ -32,7 +32,7 @@ class UserAddedToGroupActivityListener implements IEventListener { public function __construct( Manager $groupManager, IManager $activityManager, - IUserSession $userSession + IUserSession $userSession, ) { $this->groupManager = $groupManager; $this->activityManager = $activityManager; diff --git a/apps/settings/lib/Listener/UserRemovedFromGroupActivityListener.php b/apps/settings/lib/Listener/UserRemovedFromGroupActivityListener.php index 711f78212bc1e..82302f748eccb 100644 --- a/apps/settings/lib/Listener/UserRemovedFromGroupActivityListener.php +++ b/apps/settings/lib/Listener/UserRemovedFromGroupActivityListener.php @@ -32,7 +32,7 @@ class UserRemovedFromGroupActivityListener implements IEventListener { public function __construct( Manager $groupManager, IManager $activityManager, - IUserSession $userSession + IUserSession $userSession, ) { $this->groupManager = $groupManager; $this->activityManager = $activityManager; diff --git a/apps/settings/lib/Settings/Admin/Delegation.php b/apps/settings/lib/Settings/Admin/Delegation.php index e38507b4fc148..72798a30673aa 100644 --- a/apps/settings/lib/Settings/Admin/Delegation.php +++ b/apps/settings/lib/Settings/Admin/Delegation.php @@ -28,7 +28,7 @@ public function __construct( IInitialState $initialStateService, IGroupManager $groupManager, AuthorizedGroupService $authorizedGroupService, - IURLGenerator $urlGenerator + IURLGenerator $urlGenerator, ) { $this->settingManager = $settingManager; $this->initialStateService = $initialStateService; diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php index 232fea8bd73ef..9aa0f9ee80775 100644 --- a/apps/settings/lib/Settings/Personal/PersonalInfo.php +++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php @@ -71,7 +71,7 @@ public function __construct( IFactory $l10nFactory, IL10N $l, IInitialState $initialStateService, - IManager $manager + IManager $manager, ) { $this->config = $config; $this->userManager = $userManager; diff --git a/apps/settings/lib/SetupChecks/CronErrors.php b/apps/settings/lib/SetupChecks/CronErrors.php index 9a5c5b8af7158..dc625b0447707 100644 --- a/apps/settings/lib/SetupChecks/CronErrors.php +++ b/apps/settings/lib/SetupChecks/CronErrors.php @@ -35,7 +35,7 @@ public function run(): SetupResult { return SetupResult::error( $this->l10n->t( "It was not possible to execute the cron job via CLI. The following technical errors have appeared:\n%s", - implode("\n", array_map(fn (array $error) => '- '.$error['error'].' '.$error['hint'], $errors)) + implode("\n", array_map(fn (array $error) => '- ' . $error['error'] . ' ' . $error['hint'], $errors)) ) ); } else { diff --git a/apps/settings/lib/SetupChecks/DatabaseHasMissingColumns.php b/apps/settings/lib/SetupChecks/DatabaseHasMissingColumns.php index b004c5ada3590..ec004f7302145 100644 --- a/apps/settings/lib/SetupChecks/DatabaseHasMissingColumns.php +++ b/apps/settings/lib/SetupChecks/DatabaseHasMissingColumns.php @@ -62,10 +62,10 @@ public function run(): SetupResult { } else { $list = ''; foreach ($missingColumns as $missingColumn) { - $list .= "\n".$this->l10n->t('Missing optional column "%s" in table "%s".', [$missingColumn['columnName'], $missingColumn['tableName']]); + $list .= "\n" . $this->l10n->t('Missing optional column "%s" in table "%s".', [$missingColumn['columnName'], $missingColumn['tableName']]); } return SetupResult::warning( - $this->l10n->t('The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running "occ db:add-missing-columns" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.').$list + $this->l10n->t('The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running "occ db:add-missing-columns" those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.') . $list ); } } diff --git a/apps/settings/lib/SetupChecks/DatabaseHasMissingPrimaryKeys.php b/apps/settings/lib/SetupChecks/DatabaseHasMissingPrimaryKeys.php index 8e2a0d18e4181..03810ca8faf9e 100644 --- a/apps/settings/lib/SetupChecks/DatabaseHasMissingPrimaryKeys.php +++ b/apps/settings/lib/SetupChecks/DatabaseHasMissingPrimaryKeys.php @@ -62,10 +62,10 @@ public function run(): SetupResult { } else { $list = ''; foreach ($missingPrimaryKeys as $missingPrimaryKey) { - $list .= "\n".$this->l10n->t('Missing primary key on table "%s".', [$missingPrimaryKey['tableName']]); + $list .= "\n" . $this->l10n->t('Missing primary key on table "%s".', [$missingPrimaryKey['tableName']]); } return SetupResult::warning( - $this->l10n->t('The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.').$list + $this->l10n->t('The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.') . $list ); } } diff --git a/apps/settings/lib/SetupChecks/DatabasePendingBigIntConversions.php b/apps/settings/lib/SetupChecks/DatabasePendingBigIntConversions.php index dc9f00e844883..bb9794c1e03c0 100644 --- a/apps/settings/lib/SetupChecks/DatabasePendingBigIntConversions.php +++ b/apps/settings/lib/SetupChecks/DatabasePendingBigIntConversions.php @@ -74,7 +74,7 @@ public function run(): SetupResult { } $list .= "\n"; return SetupResult::info( - $this->l10n->t('Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running "occ db:convert-filecache-bigint" those pending changes could be applied manually. This operation needs to be made while the instance is offline.').$list, + $this->l10n->t('Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running "occ db:convert-filecache-bigint" those pending changes could be applied manually. This operation needs to be made while the instance is offline.') . $list, $this->urlGenerator->linkToDocs('admin-bigint-conversion') ); } diff --git a/apps/settings/lib/SetupChecks/OcxProviders.php b/apps/settings/lib/SetupChecks/OcxProviders.php index 191341b0ee431..c53e8087bd959 100644 --- a/apps/settings/lib/SetupChecks/OcxProviders.php +++ b/apps/settings/lib/SetupChecks/OcxProviders.php @@ -76,7 +76,7 @@ public function run(): SetupResult { $this->l10n->t('Your web server is not properly set up to resolve %1$s. This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in ".htaccess" for Apache or the provided one in the documentation for Nginx. -On Nginx those are typically the lines starting with "location ~" that need an update.', [join(', ', array_map(fn ($s) => '"'.$s.'"', $missingProviders))]), +On Nginx those are typically the lines starting with "location ~" that need an update.', [join(', ', array_map(fn ($s) => '"' . $s . '"', $missingProviders))]), $this->urlGenerator->linkToDocs('admin-nginx'), ); } diff --git a/apps/settings/lib/SetupChecks/PhpModules.php b/apps/settings/lib/SetupChecks/PhpModules.php index 6d4246ffdaec8..60c14757301d0 100644 --- a/apps/settings/lib/SetupChecks/PhpModules.php +++ b/apps/settings/lib/SetupChecks/PhpModules.php @@ -77,7 +77,7 @@ public function run(): SetupResult { $moduleList = implode( "\n", array_map( - fn (string $module) => '- '.$module.' '.$this->getRecommendedModuleDescription($module), + fn (string $module) => '- ' . $module . ' ' . $this->getRecommendedModuleDescription($module), $missingRecommendedModules ) ); diff --git a/apps/settings/lib/SetupChecks/SecurityHeaders.php b/apps/settings/lib/SetupChecks/SecurityHeaders.php index b85ab9b401804..ed4e56218da58 100644 --- a/apps/settings/lib/SetupChecks/SecurityHeaders.php +++ b/apps/settings/lib/SetupChecks/SecurityHeaders.php @@ -65,16 +65,16 @@ public function run(): SetupResult { $value = preg_replace('/,\s+/', ',', strtolower($response->getHeader($header))); if ($value !== $expected) { if ($accepted !== null && $value === $accepted) { - $msg .= $this->l10n->t('- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.', [$header, $expected])."\n"; + $msg .= $this->l10n->t('- The `%1$s` HTTP header is not set to `%2$s`. Some features might not work correctly, as it is recommended to adjust this setting accordingly.', [$header, $expected]) . "\n"; } else { - $msg .= $this->l10n->t('- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.', [$header, $expected])."\n"; + $msg .= $this->l10n->t('- The `%1$s` HTTP header is not set to `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.', [$header, $expected]) . "\n"; } } } $xssFields = array_map('trim', explode(';', $response->getHeader('X-XSS-Protection'))); if (!in_array('1', $xssFields) || !in_array('mode=block', $xssFields)) { - $msg .= $this->l10n->t('- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.', ['X-XSS-Protection', '1; mode=block'])."\n"; + $msg .= $this->l10n->t('- The `%1$s` HTTP header does not contain `%2$s`. This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly.', ['X-XSS-Protection', '1; mode=block']) . "\n"; } $referrerPolicy = $response->getHeader('Referrer-Policy'); @@ -89,7 +89,7 @@ public function run(): SetupResult { 'strict-origin-when-cross-origin', 'same-origin', ] - )."\n"; + ) . "\n"; $msgParameters['w3c-recommendation'] = [ 'type' => 'highlight', 'id' => 'w3c-recommendation', @@ -103,17 +103,17 @@ public function run(): SetupResult { if (preg_match('/^max-age=(\d+)(;.*)?$/', $transportSecurityValidity, $m)) { $transportSecurityValidity = (int)$m[1]; if ($transportSecurityValidity < $minimumSeconds) { - $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.', [$minimumSeconds, $transportSecurityValidity])."\n"; + $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is not set to at least `%d` seconds (current value: `%d`). For enhanced security, it is recommended to use a long HSTS policy.', [$minimumSeconds, $transportSecurityValidity]) . "\n"; } } elseif (!empty($transportSecurityValidity)) { - $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.', [$transportSecurityValidity])."\n"; + $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is malformed: `%s`. For enhanced security, it is recommended to enable HSTS.', [$transportSecurityValidity]) . "\n"; } else { - $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS.', [$minimumSeconds])."\n"; + $msg .= $this->l10n->t('- The `Strict-Transport-Security` HTTP header is not set (should be at least `%d` seconds). For enhanced security, it is recommended to enable HSTS.', [$minimumSeconds]) . "\n"; } if (!empty($msg)) { return SetupResult::warning( - $this->l10n->t('Some headers are not set correctly on your instance')."\n".$msg, + $this->l10n->t('Some headers are not set correctly on your instance') . "\n" . $msg, $this->urlGenerator->linkToDocs('admin-security'), $msgParameters, ); diff --git a/apps/settings/lib/SetupChecks/TempSpaceAvailable.php b/apps/settings/lib/SetupChecks/TempSpaceAvailable.php index ef51ffe0e07a1..49dc0d377e74d 100644 --- a/apps/settings/lib/SetupChecks/TempSpaceAvailable.php +++ b/apps/settings/lib/SetupChecks/TempSpaceAvailable.php @@ -85,7 +85,7 @@ public function run(): SetupResult { return SetupResult::error($this->l10n->t('Error while checking the available disk space of temporary PHP path or no free disk space returned. Temporary path: %s', [$nextcloudTempPath])); } $freeSpaceInNextcloudTempInGB = $freeSpaceInNextcloudTemp / 1024 / 1024 / 1024; - $spaceDetail .= "\n".$this->l10n->t('- %.1f GiB available in %s (Nextcloud temporary directory)', [round($freeSpaceInNextcloudTempInGB, 1),$nextcloudTempPath]); + $spaceDetail .= "\n" . $this->l10n->t('- %.1f GiB available in %s (Nextcloud temporary directory)', [round($freeSpaceInNextcloudTempInGB, 1),$nextcloudTempPath]); } if (!$this->isPrimaryStorageS3()) { diff --git a/apps/settings/lib/UserMigration/AccountMigrator.php b/apps/settings/lib/UserMigration/AccountMigrator.php index dc5ca2691f7b2..81107cd81c599 100644 --- a/apps/settings/lib/UserMigration/AccountMigrator.php +++ b/apps/settings/lib/UserMigration/AccountMigrator.php @@ -55,7 +55,7 @@ public function __construct( IAvatarManager $avatarManager, ProfileManager $profileManager, ProfileConfigMapper $configMapper, - IL10N $l10n + IL10N $l10n, ) { $this->accountManager = $accountManager; $this->avatarManager = $avatarManager; diff --git a/apps/settings/tests/Controller/UsersControllerTest.php b/apps/settings/tests/Controller/UsersControllerTest.php index e8ae965b3bbaa..80eb252f98866 100644 --- a/apps/settings/tests/Controller/UsersControllerTest.php +++ b/apps/settings/tests/Controller/UsersControllerTest.php @@ -669,7 +669,7 @@ public function dataTestSetUserSettingsSubset() { */ public function testSaveUserSettings($data, $oldEmailAddress, - $oldDisplayName + $oldDisplayName, ): void { $controller = $this->getController(); $user = $this->createMock(IUser::class); @@ -792,7 +792,7 @@ public function testSaveUserSettingsException( string $oldEmailAddress, string $oldDisplayName, bool $setDisplayNameResult, - bool $canChangeEmail + bool $canChangeEmail, ): void { $this->expectException(ForbiddenException::class); diff --git a/apps/settings/tests/SetupChecks/SecurityHeadersTest.php b/apps/settings/tests/SetupChecks/SecurityHeadersTest.php index 2bc5aa69b9c91..d8bb51d47c670 100644 --- a/apps/settings/tests/SetupChecks/SecurityHeadersTest.php +++ b/apps/settings/tests/SetupChecks/SecurityHeadersTest.php @@ -176,7 +176,7 @@ public function testFailure(array $headers, string $msg): void { $result = $this->setupcheck->run(); $this->assertEquals( - 'Some headers are not set correctly on your instance'."\n$msg", + 'Some headers are not set correctly on your instance' . "\n$msg", $result->getDescription() ); $this->assertEquals(SetupResult::WARNING, $result->getSeverity()); diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index 744837717620d..fd43e7c089e9a 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -684,7 +684,7 @@ protected function addShareToDB( ?\DateTimeInterface $expirationTime, ?string $note = '', ?IAttributes $attributes = null, - ?bool $mailSend = true + ?bool $mailSend = true, ): int { $qb = $this->dbConnection->getQueryBuilder(); $qb->insert('share') diff --git a/apps/systemtags/lib/Activity/Setting.php b/apps/systemtags/lib/Activity/Setting.php index c65cf3d404a58..95001e95cf3ab 100644 --- a/apps/systemtags/lib/Activity/Setting.php +++ b/apps/systemtags/lib/Activity/Setting.php @@ -9,7 +9,9 @@ use OCP\IL10N; class Setting extends ActivitySettings { - public function __construct(protected IL10N $l) { + public function __construct( + protected IL10N $l, + ) { } /** diff --git a/apps/systemtags/lib/Search/TagSearchProvider.php b/apps/systemtags/lib/Search/TagSearchProvider.php index 80f9d39c141ce..6e6f587d36638 100644 --- a/apps/systemtags/lib/Search/TagSearchProvider.php +++ b/apps/systemtags/lib/Search/TagSearchProvider.php @@ -52,7 +52,7 @@ public function __construct( IMimeTypeDetector $mimeTypeDetector, IRootFolder $rootFolder, ISystemTagObjectMapper $objectMapper, - ISystemTagManager $tagManager + ISystemTagManager $tagManager, ) { $this->l10n = $l10n; $this->urlGenerator = $urlGenerator; @@ -118,7 +118,7 @@ public function search(IUser $user, ISearchQuery $query): SearchResult { $thumbnailUrl = ''; $link = $this->urlGenerator->linkToRoute('files.view.indexView', [ 'view' => 'tags', - ]) . '?dir='.$tag->getId(); + ]) . '?dir=' . $tag->getId(); $searchResultEntry = new SearchResultEntry( $thumbnailUrl, $this->l10n->t('All tagged %s …', [$tag->getName()]), diff --git a/apps/testing/lib/Listener/GetDeclarativeSettingsValueListener.php b/apps/testing/lib/Listener/GetDeclarativeSettingsValueListener.php index 312f49e5f5c66..0df5816800759 100644 --- a/apps/testing/lib/Listener/GetDeclarativeSettingsValueListener.php +++ b/apps/testing/lib/Listener/GetDeclarativeSettingsValueListener.php @@ -17,7 +17,9 @@ */ class GetDeclarativeSettingsValueListener implements IEventListener { - public function __construct(private IConfig $config) { + public function __construct( + private IConfig $config, + ) { } public function handle(Event $event): void { diff --git a/apps/testing/lib/Listener/SetDeclarativeSettingsValueListener.php b/apps/testing/lib/Listener/SetDeclarativeSettingsValueListener.php index 19f1ae79b7b76..0058e7df43ef8 100644 --- a/apps/testing/lib/Listener/SetDeclarativeSettingsValueListener.php +++ b/apps/testing/lib/Listener/SetDeclarativeSettingsValueListener.php @@ -17,7 +17,9 @@ */ class SetDeclarativeSettingsValueListener implements IEventListener { - public function __construct(private IConfig $config) { + public function __construct( + private IConfig $config, + ) { } public function handle(Event $event): void { diff --git a/apps/testing/lib/Locking/FakeDBLockingProvider.php b/apps/testing/lib/Locking/FakeDBLockingProvider.php index 2c4d394fb0d4e..6e2fd9a77d822 100644 --- a/apps/testing/lib/Locking/FakeDBLockingProvider.php +++ b/apps/testing/lib/Locking/FakeDBLockingProvider.php @@ -21,7 +21,7 @@ class FakeDBLockingProvider extends DBLockingProvider { public function __construct( IDBConnection $connection, - ITimeFactory $timeFactory + ITimeFactory $timeFactory, ) { parent::__construct($connection, $timeFactory); $this->db = $connection; diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php index bdd5a43ddc3c6..7ba9e801d9b43 100644 --- a/apps/theming/lib/Controller/IconController.php +++ b/apps/theming/lib/Controller/IconController.php @@ -40,7 +40,7 @@ public function __construct( IconBuilder $iconBuilder, ImageManager $imageManager, FileAccessHelper $fileAccessHelper, - IAppManager $appManager + IAppManager $appManager, ) { parent::__construct($appName, $request); diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php index e7e83a0b4c04b..5e8754dec833c 100644 --- a/apps/theming/lib/IconBuilder.php +++ b/apps/theming/lib/IconBuilder.php @@ -27,7 +27,7 @@ class IconBuilder { public function __construct( ThemingDefaults $themingDefaults, Util $util, - ImageManager $imageManager + ImageManager $imageManager, ) { $this->themingDefaults = $themingDefaults; $this->util = $util; @@ -127,12 +127,12 @@ public function renderAppIcon($app, $size) { $cornerRadius = 0.2 * $size; $background = '' . '' . - '' . + '' . ''; // resize svg magic as this seems broken in Imagemagick if ($mime === 'image/svg+xml' || substr($appIconContent, 0, 4) === 'appDataFactory = $appDataFactory; @@ -54,7 +54,7 @@ public function __construct( protected function run(mixed $argument): void { if (!is_array($argument) || !isset($argument['stage'])) { - throw new \Exception('Job '.self::class.' called with wrong argument'); + throw new \Exception('Job ' . self::class . ' called with wrong argument'); } switch ($argument['stage']) { diff --git a/apps/theming/lib/Jobs/RestoreBackgroundImageColor.php b/apps/theming/lib/Jobs/RestoreBackgroundImageColor.php index 1ec659d0646df..42662dacef2a1 100644 --- a/apps/theming/lib/Jobs/RestoreBackgroundImageColor.php +++ b/apps/theming/lib/Jobs/RestoreBackgroundImageColor.php @@ -42,7 +42,7 @@ public function __construct( protected function run(mixed $argument): void { if (!is_array($argument) || !isset($argument['stage'])) { - throw new \Exception('Job '.self::class.' called with wrong argument'); + throw new \Exception('Job ' . self::class . ' called with wrong argument'); } switch ($argument['stage']) { @@ -69,7 +69,7 @@ protected function runPreparation(): void { // Get those users, that have a background_image set - not the default, but no background_color. $result = $qb->selectDistinct('a.userid') ->from('preferences', 'a') - ->leftJoin('a', $qb->createFunction('('.$innerSQL->getSQL().')'), 'b', 'a.userid = b.userid') + ->leftJoin('a', $qb->createFunction('(' . $innerSQL->getSQL() . ')'), 'b', 'a.userid = b.userid') ->where($qb2->expr()->eq('a.configkey', $qb->createNamedParameter('background_image'))) ->andWhere($qb2->expr()->neq('a.configvalue', $qb->createNamedParameter(BackgroundService::BACKGROUND_DEFAULT))) ->andWhere($qb2->expr()->isNull('b.userid')) @@ -101,7 +101,7 @@ protected function runMigration(): void { } $background = $this->config->getUserValue($userId, Application::APP_ID, 'background_image'); - switch($background) { + switch ($background) { case BackgroundService::BACKGROUND_DEFAULT: $this->service->setDefaultBackground($userId); break; diff --git a/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php b/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php index cb72e46360ec2..2ad495b02397d 100644 --- a/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php +++ b/apps/theming/lib/Listener/BeforeTemplateRenderedListener.php @@ -35,7 +35,7 @@ public function __construct( ContainerInterface $container, ThemeInjectionService $themeInjectionService, IUserSession $userSession, - IConfig $config + IConfig $config, ) { $this->initialState = $initialState; $this->container = $container; diff --git a/apps/theming/lib/Service/BackgroundService.php b/apps/theming/lib/Service/BackgroundService.php index a0158dcb667e1..bf6508744487c 100644 --- a/apps/theming/lib/Service/BackgroundService.php +++ b/apps/theming/lib/Service/BackgroundService.php @@ -321,7 +321,7 @@ public function getBackground(): ?ISimpleFile { * @param resource|string $path * @return string|null The fallback background color - if any */ - public function setGlobalBackground($path): string|null { + public function setGlobalBackground($path): ?string { $image = new \OCP\Image(); $handle = is_resource($path) ? $path : fopen($path, 'rb'); @@ -347,7 +347,7 @@ function toHex(int $channel): string { $hex = dechex($channel); return match (strlen($hex)) { 0 => '00', - 1 => '0'.$hex, + 1 => '0' . $hex, 2 => $hex, default => 'ff', }; diff --git a/apps/theming/lib/Service/ThemesService.php b/apps/theming/lib/Service/ThemesService.php index 49cd72d4255a9..ef8d1ff44ffcf 100644 --- a/apps/theming/lib/Service/ThemesService.php +++ b/apps/theming/lib/Service/ThemesService.php @@ -31,7 +31,8 @@ public function __construct( private DarkTheme $darkTheme, HighContrastTheme $highContrastTheme, DarkHighContrastTheme $darkHighContrastTheme, - DyslexiaFont $dyslexiaFont) { + DyslexiaFont $dyslexiaFont, + ) { // Register themes $this->themesProviders = [ diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 9be830a61fda9..42c96557ba76e 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -123,7 +123,7 @@ public function getShortFooter() { $footer = '' . $entity . ''; } else { - $footer = '' .$entity . ''; + $footer = '' . $entity . ''; } } $footer .= ($slogan !== '' ? ' – ' . $slogan : ''); @@ -340,10 +340,10 @@ public function getScssVariables() { 'theming-favicon-mime' => "'" . $this->config->getAppValue('theming', 'faviconMime') . "'" ]; - $variables['image-logo'] = "url('".$this->imageManager->getImageUrl('logo')."')"; - $variables['image-logoheader'] = "url('".$this->imageManager->getImageUrl('logoheader')."')"; - $variables['image-favicon'] = "url('".$this->imageManager->getImageUrl('favicon')."')"; - $variables['image-login-background'] = "url('".$this->imageManager->getImageUrl('background')."')"; + $variables['image-logo'] = "url('" . $this->imageManager->getImageUrl('logo') . "')"; + $variables['image-logoheader'] = "url('" . $this->imageManager->getImageUrl('logoheader') . "')"; + $variables['image-favicon'] = "url('" . $this->imageManager->getImageUrl('favicon') . "')"; + $variables['image-login-background'] = "url('" . $this->imageManager->getImageUrl('background') . "')"; $variables['image-login-plain'] = 'false'; if ($this->appConfig->getValueString(Application::APP_ID, 'primary_color', '') !== '') { diff --git a/apps/theming/lib/Util.php b/apps/theming/lib/Util.php index 809ff53f5e1af..839ef1d0b465e 100644 --- a/apps/theming/lib/Util.php +++ b/apps/theming/lib/Util.php @@ -189,7 +189,7 @@ public function hexToRGB(string $color): array { */ public function generateRadioButton($color) { $radioButtonIcon = '' . - ''; + ''; return base64_encode($radioButtonIcon); } diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index d69ceefa0e551..6ce808253a0a3 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -256,7 +256,7 @@ public function testUploadSVGFaviconWithoutImagemagick(): void { ->method('getUploadedFile') ->with('image') ->willReturn([ - 'tmp_name' => __DIR__ . '/../../../../tests/data/testimagelarge.svg', + 'tmp_name' => __DIR__ . '/../../../../tests/data/testimagelarge.svg', 'type' => 'image/svg', 'name' => 'testimagelarge.svg', 'error' => 0, @@ -297,7 +297,7 @@ public function testUpdateLogoInvalidMimeType(): void { ->method('getUploadedFile') ->with('image') ->willReturn([ - 'tmp_name' => __DIR__ . '/../../../../tests/data/lorem.txt', + 'tmp_name' => __DIR__ . '/../../../../tests/data/lorem.txt', 'type' => 'application/pdf', 'name' => 'logo.pdf', 'error' => 0, @@ -443,7 +443,7 @@ public function testUpdateLogoLoginScreenUploadWithInvalidImage(): void { $tmpLogo = \OC::$server->getTempManager()->getTemporaryFolder() . '/logo.svg'; touch($tmpLogo); - file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/data.zip')); + file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/data.zip')); $this->request ->expects($this->once()) ->method('getParam') diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php index 942bcf399fa98..bef48448bfa1b 100644 --- a/apps/theming/tests/IconBuilderTest.php +++ b/apps/theming/tests/IconBuilderTest.php @@ -84,7 +84,7 @@ public function testRenderAppIcon($app, $color, $file): void { ->with('global/images') ->willThrowException(new NotFoundException()); - $expectedIcon = new \Imagick(realpath(__DIR__). '/data/' . $file); + $expectedIcon = new \Imagick(realpath(__DIR__) . '/data/' . $file); $icon = $this->iconBuilder->renderAppIcon($app, 512); $this->assertEquals(true, $icon->valid()); @@ -113,7 +113,7 @@ public function testGetTouchIcon($app, $color, $file): void { ->with('global/images') ->willThrowException(new NotFoundException()); - $expectedIcon = new \Imagick(realpath(__DIR__). '/data/' . $file); + $expectedIcon = new \Imagick(realpath(__DIR__) . '/data/' . $file); $icon = new \Imagick(); $icon->readImageBlob($this->iconBuilder->getTouchIcon($app)); @@ -146,7 +146,7 @@ public function testGetFavicon($app, $color, $file): void { ->with('global/images') ->willThrowException(new NotFoundException()); - $expectedIcon = new \Imagick(realpath(__DIR__). '/data/' . $file); + $expectedIcon = new \Imagick(realpath(__DIR__) . '/data/' . $file); $actualIcon = $this->iconBuilder->getFavicon($app); $icon = new \Imagick(); diff --git a/apps/updatenotification/lib/Command/Check.php b/apps/updatenotification/lib/Command/Check.php index 75e42904515f1..a66e729e8a7e8 100644 --- a/apps/updatenotification/lib/Command/Check.php +++ b/apps/updatenotification/lib/Command/Check.php @@ -52,7 +52,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int // Server $r = $this->updateChecker->getUpdateState(); if (isset($r['updateAvailable']) && $r['updateAvailable']) { - $output->writeln($r['updateVersionString'] . ' is available. Get more information on how to update at '. $r['updateLink'] . '.'); + $output->writeln($r['updateVersionString'] . ' is available. Get more information on how to update at ' . $r['updateLink'] . '.'); $updatesAvailableCount += 1; } diff --git a/apps/updatenotification/lib/Manager.php b/apps/updatenotification/lib/Manager.php index f2e75eedfa44f..b6f455f93fe7a 100644 --- a/apps/updatenotification/lib/Manager.php +++ b/apps/updatenotification/lib/Manager.php @@ -34,7 +34,7 @@ public function __construct( * @param ?string $languageCode The language in which to query the changelog (defaults to current user language and fallsback to English) * @return string|null Either the changelog entry or null if no changelog is found */ - public function getChangelog(string $appId, string $version, ?string $languageCode = null): string|null { + public function getChangelog(string $appId, string $version, ?string $languageCode = null): ?string { if ($languageCode === null) { $languageCode = $this->l10NFactory->getUserLanguage($this->currentUser); } @@ -55,7 +55,7 @@ public function getChangelog(string $appId, string $version, ?string $languageCo * @param string $languageCode The language code to search * @return string|null Either the file path or null if not found */ - public function getChangelogFile(string $appId, string $languageCode): string|null { + public function getChangelogFile(string $appId, string $languageCode): ?string { try { $appPath = $this->appManager->getAppPath($appId); $files = ["CHANGELOG.$languageCode.md", 'CHANGELOG.en.md']; @@ -76,7 +76,7 @@ public function getChangelogFile(string $appId, string $languageCode): string|nu * @param string $path The path to the changlog file * @param string $version The version to query (make sure to only pass in "{major}.{minor}(.{patch}" format) */ - protected function retrieveChangelogEntry(string $path, string $version): string|null { + protected function retrieveChangelogEntry(string $path, string $version): ?string { $matches = []; $content = file_get_contents($path); if ($content === false) { diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php index 6e39a40ad8d8a..4a74993f0a57c 100644 --- a/apps/updatenotification/lib/Settings/Admin.php +++ b/apps/updatenotification/lib/Settings/Admin.php @@ -35,7 +35,7 @@ public function __construct( private IRegistry $subscriptionRegistry, private IUserManager $userManager, private LoggerInterface $logger, - private IInitialState $initialState + private IInitialState $initialState, ) { } diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index 8064ce928333e..ccd96250d524f 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -15,7 +15,7 @@ sort($serverConnections); $lk = array_pop($serverConnections); $ln = (int)str_replace('s', '', $lk); -$nk = 's'.str_pad($ln + 1, 2, '0', STR_PAD_LEFT); +$nk = 's' . str_pad($ln + 1, 2, '0', STR_PAD_LEFT); $resultData = ['configPrefix' => $nk]; diff --git a/apps/user_ldap/ajax/wizard.php b/apps/user_ldap/ajax/wizard.php index 5c2cddc767295..f177867732712 100644 --- a/apps/user_ldap/ajax/wizard.php +++ b/apps/user_ldap/ajax/wizard.php @@ -98,7 +98,7 @@ $setParameters = []; $configuration->setConfiguration($cfg, $setParameters); if (!in_array($key, $setParameters)) { - \OC_JSON::error(['message' => $l->t($key. + \OC_JSON::error(['message' => $l->t($key . ' Could not set configuration %s', $setParameters[0])]); exit; } diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index dab8db20c9915..81f3dc6cb707d 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -624,7 +624,7 @@ public function mapAndAnnounceIfApplicable( string $fdn, string $name, string $uuid, - bool $isUser + bool $isUser, ): bool { if ($mapper->map($fdn, $name, $uuid)) { if ($isUser) { @@ -1118,7 +1118,7 @@ private function executeSearch( string $base, ?array &$attr, ?int $pageSize, - ?int $offset + ?int $offset, ) { // See if we have a resource, in case not cancel with message $cr = $this->connection->getConnectionResource(); @@ -1158,7 +1158,7 @@ private function processPagedSearchStatus( int $foundItems, int $limit, bool $pagedSearchOK, - bool $skipHandling + bool $skipHandling, ): bool { $cookie = ''; if ($pagedSearchOK) { @@ -1213,7 +1213,7 @@ private function count( ?array $attr = null, int $limit = 0, int $offset = 0, - bool $skipHandling = false + bool $skipHandling = false, ) { $this->logger->debug('Count filter: {filter}', [ 'app' => 'user_ldap', @@ -1278,7 +1278,7 @@ public function search( ?array $attr = null, ?int $limit = null, ?int $offset = null, - bool $skipHandling = false + bool $skipHandling = false, ): array { $limitPerPage = (int)$this->connection->ldapPagingSize; if (!is_null($limit) && $limit < $limitPerPage && $limit > 0) { @@ -1983,7 +1983,7 @@ private function initPagedSearch( string $base, ?array $attr, int $pageSize, - int $offset + int $offset, ): array { $pagedSearchOK = false; if ($pageSize !== 0) { diff --git a/apps/user_ldap/lib/AppInfo/Application.php b/apps/user_ldap/lib/AppInfo/Application.php index 400315442bb93..e3f6f56152c49 100644 --- a/apps/user_ldap/lib/AppInfo/Application.php +++ b/apps/user_ldap/lib/AppInfo/Application.php @@ -109,7 +109,7 @@ public function boot(IBootContext $context): void { IGroupManager $groupManager, User_Proxy $userBackend, Group_Proxy $groupBackend, - Helper $helper + Helper $helper, ) { $configPrefixes = $helper->getServerConfigurationPrefixes(true); if (count($configPrefixes) > 0) { diff --git a/apps/user_ldap/lib/Command/CheckGroup.php b/apps/user_ldap/lib/Command/CheckGroup.php index c376d0f890aa5..9c7ccb9d3b3ec 100644 --- a/apps/user_ldap/lib/Command/CheckGroup.php +++ b/apps/user_ldap/lib/Command/CheckGroup.php @@ -99,25 +99,25 @@ protected function execute(InputInterface $input, OutputInterface $output): int throw new \Exception('The given group is not a recognized LDAP group.'); } catch (\Exception $e) { - $output->writeln('' . $e->getMessage(). ''); + $output->writeln('' . $e->getMessage() . ''); return self::FAILURE; } } public function onGroupCreatedEvent(GroupCreatedEvent $event, OutputInterface $output): void { - $output->writeln('The group '.$event->getGroup()->getGID().' was added to Nextcloud with '.$event->getGroup()->count().' users'); + $output->writeln('The group ' . $event->getGroup()->getGID() . ' was added to Nextcloud with ' . $event->getGroup()->count() . ' users'); } public function onUserAddedEvent(UserAddedEvent $event, OutputInterface $output): void { $user = $event->getUser(); $group = $event->getGroup(); - $output->writeln('The user '.$user->getUID().' was added to group '.$group->getGID().''); + $output->writeln('The user ' . $user->getUID() . ' was added to group ' . $group->getGID() . ''); } public function onUserRemovedEvent(UserRemovedEvent $event, OutputInterface $output): void { $user = $event->getUser(); $group = $event->getGroup(); - $output->writeln('The user '.$user->getUID().' was removed from group '.$group->getGID().''); + $output->writeln('The user ' . $user->getUID() . ' was removed from group ' . $group->getGID() . ''); } /** diff --git a/apps/user_ldap/lib/Command/CheckUser.php b/apps/user_ldap/lib/Command/CheckUser.php index ebb416c24a6a7..d5bd0235b2cec 100644 --- a/apps/user_ldap/lib/Command/CheckUser.php +++ b/apps/user_ldap/lib/Command/CheckUser.php @@ -84,7 +84,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int throw new \Exception('The given user is not a recognized LDAP user.'); } catch (\Exception $e) { - $output->writeln('' . $e->getMessage(). ''); + $output->writeln('' . $e->getMessage() . ''); return self::FAILURE; } } diff --git a/apps/user_ldap/lib/Command/PromoteGroup.php b/apps/user_ldap/lib/Command/PromoteGroup.php index bb5362e470047..b203a910b1498 100644 --- a/apps/user_ldap/lib/Command/PromoteGroup.php +++ b/apps/user_ldap/lib/Command/PromoteGroup.php @@ -22,7 +22,7 @@ class PromoteGroup extends Command { public function __construct( private IGroupManager $groupManager, - private Group_Proxy $backend + private Group_Proxy $backend, ) { parent::__construct(); } diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php index 4886e0c763855..fe1b9f3498835 100644 --- a/apps/user_ldap/lib/Command/Search.php +++ b/apps/user_ldap/lib/Command/Search.php @@ -106,7 +106,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $result = $proxy->$getMethod($input->getArgument('search'), $limit, $offset); foreach ($result as $id => $name) { - $line = $name . ($printID ? ' ('.$id.')' : ''); + $line = $name . ($printID ? ' (' . $id . ')' : ''); $output->writeln($line); } return self::SUCCESS; diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php index 9de180cad767c..989d0bd3929d8 100644 --- a/apps/user_ldap/lib/Configuration.php +++ b/apps/user_ldap/lib/Configuration.php @@ -241,7 +241,7 @@ public function setConfiguration(array $config, ?array &$applied = null): void { case 'homeFolderNamingRule': $trimmedVal = trim($val); if ($trimmedVal !== '' && !str_contains($val, 'attr:')) { - $val = 'attr:'.$trimmedVal; + $val = 'attr:' . $trimmedVal; } break; case 'ldapBase': @@ -450,7 +450,7 @@ protected function getValue(string $varName): string { $defaults = $this->getDefaults(); } return \OC::$server->getConfig()->getAppValue('user_ldap', - $this->configPrefix.$varName, + $this->configPrefix . $varName, $defaults[$varName]); } @@ -480,7 +480,7 @@ protected function setRawValue(string $varName, $value): void { protected function saveValue(string $varName, string $value): bool { \OC::$server->getConfig()->setAppValue( 'user_ldap', - $this->configPrefix.$varName, + $this->configPrefix . $varName, $value ); return true; diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php index b74c964eb7247..757ba2d8e8a10 100644 --- a/apps/user_ldap/lib/Connection.php +++ b/apps/user_ldap/lib/Connection.php @@ -259,11 +259,11 @@ public function resetConnectionResource(): void { * @param string|null $key */ private function getCacheKey($key): string { - $prefix = 'LDAP-'.$this->configID.'-'.$this->configPrefix.'-'; + $prefix = 'LDAP-' . $this->configID . '-' . $this->configPrefix . '-'; if (is_null($key)) { return $prefix; } - return $prefix.hash('sha256', $key); + return $prefix . hash('sha256', $key); } /** @@ -410,7 +410,7 @@ private function doSoftValidation(): void { $this->configuration->$effectiveSetting = 'auto'; $this->configuration->saveConfiguration(); $this->logger->info( - 'Illegal value for the '.$effectiveSetting.', reset to autodetect.', + 'Illegal value for the ' . $effectiveSetting . ', reset to autodetect.', ['app' => 'user_ldap'] ); } @@ -480,7 +480,7 @@ private function doCriticalValidation(): bool { } $configurationOK = false; $this->logger->warning( - $errorStr.'No '.$subj.' given!', + $errorStr . 'No ' . $subj . ' given!', ['app' => 'user_ldap'] ); } @@ -494,7 +494,7 @@ private function doCriticalValidation(): bool { || ($agent !== '' && $pwd === '') ) { $this->logger->warning( - $errorStr.'either no password is given for the user ' . + $errorStr . 'either no password is given for the user ' . 'agent or a password is given, but not an LDAP agent.', ['app' => 'user_ldap'] ); @@ -507,7 +507,7 @@ private function doCriticalValidation(): bool { if (empty($base) && empty($baseUsers) && empty($baseGroups)) { $this->logger->warning( - $errorStr.'Not a single Base DN given.', + $errorStr . 'Not a single Base DN given.', ['app' => 'user_ldap'] ); $configurationOK = false; @@ -516,7 +516,7 @@ private function doCriticalValidation(): bool { if (mb_strpos((string)$this->configuration->ldapLoginFilter, '%uid', 0, 'UTF-8') === false) { $this->logger->warning( - $errorStr.'login filter does not contain %uid place holder.', + $errorStr . 'login filter does not contain %uid place holder.', ['app' => 'user_ldap'] ); $configurationOK = false; diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php index 978aa005559f0..f4f55217ef17d 100644 --- a/apps/user_ldap/lib/Controller/ConfigAPIController.php +++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php @@ -33,7 +33,7 @@ public function __construct( Manager $keyManager, private Helper $ldapHelper, private LoggerInterface $logger, - private ConnectionFactory $connectionFactory + private ConnectionFactory $connectionFactory, ) { parent::__construct( $appName, diff --git a/apps/user_ldap/lib/GroupPluginManager.php b/apps/user_ldap/lib/GroupPluginManager.php index fca9f37d09225..37622a5348068 100644 --- a/apps/user_ldap/lib/GroupPluginManager.php +++ b/apps/user_ldap/lib/GroupPluginManager.php @@ -41,7 +41,7 @@ public function register(ILDAPGroupPlugin $plugin) { foreach ($this->which as $action => $v) { if ((bool)($respondToActions & $action)) { $this->which[$action] = $plugin; - \OCP\Server::get(LoggerInterface::class)->debug('Registered action '.$action.' to plugin '.get_class($plugin), ['app' => 'user_ldap']); + \OCP\Server::get(LoggerInterface::class)->debug('Registered action ' . $action . ' to plugin ' . get_class($plugin), ['app' => 'user_ldap']); } } } diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index d4d67b546d67a..5fe5abf4c13a7 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -46,7 +46,7 @@ public function __construct( Access $access, GroupPluginManager $groupPluginManager, IConfig $config, - IUserManager $ncUserManager + IUserManager $ncUserManager, ) { $this->access = $access; $filter = $this->access->connection->ldapGroupFilter; @@ -454,7 +454,7 @@ public function getUsersInGidNumber( string $groupDN, string $search = '', ?int $limit = -1, - ?int $offset = 0 + ?int $offset = 0, ): array { try { $filter = $this->prepareFilterForUsersHasGidNumber($groupDN, $search); @@ -578,7 +578,7 @@ public function getUsersInPrimaryGroup( string $groupDN, string $search = '', ?int $limit = -1, - ?int $offset = 0 + ?int $offset = 0, ): array { try { $filter = $this->prepareFilterForUsersInPrimaryGroup($groupDN, $search); @@ -603,7 +603,7 @@ public function countUsersInPrimaryGroup( string $groupDN, string $search = '', int $limit = -1, - int $offset = 0 + int $offset = 0, ): int { try { $filter = $this->prepareFilterForUsersInPrimaryGroup($groupDN, $search); @@ -1266,7 +1266,7 @@ public function deleteGroup(string $gid): bool { // Getting dn, if false the group is not mapped $dn = $this->access->groupname2dn($gid); if (!$dn) { - throw new Exception('Could not delete unknown group '.$gid.' in LDAP backend.'); + throw new Exception('Could not delete unknown group ' . $gid . ' in LDAP backend.'); } if (!$this->groupExists($gid)) { @@ -1276,7 +1276,7 @@ public function deleteGroup(string $gid): bool { return true; } - throw new Exception('Could not delete existing group '.$gid.' in LDAP backend.'); + throw new Exception('Could not delete existing group ' . $gid . ' in LDAP backend.'); } /** diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php index 22c878ed067a9..b04dc67ef4923 100644 --- a/apps/user_ldap/lib/Jobs/CleanUp.php +++ b/apps/user_ldap/lib/Jobs/CleanUp.php @@ -50,7 +50,7 @@ class CleanUp extends TimedJob { public function __construct( ITimeFactory $timeFactory, User_Proxy $userBackend, - DeletedUsersIndex $dui + DeletedUsersIndex $dui, ) { parent::__construct($timeFactory); $minutes = \OC::$server->getConfig()->getSystemValue( diff --git a/apps/user_ldap/lib/LDAPProvider.php b/apps/user_ldap/lib/LDAPProvider.php index 3b1568d174832..e7c507a265f2c 100644 --- a/apps/user_ldap/lib/LDAPProvider.php +++ b/apps/user_ldap/lib/LDAPProvider.php @@ -37,7 +37,7 @@ public function __construct(IServerContainer $serverContainer, Helper $helper, D $userBackendFound = false; $groupBackendFound = false; foreach ($serverContainer->getUserManager()->getBackends() as $backend) { - $this->logger->debug('instance '.get_class($backend).' user backend.', ['app' => 'user_ldap']); + $this->logger->debug('instance ' . get_class($backend) . ' user backend.', ['app' => 'user_ldap']); if ($backend instanceof IUserLDAP) { $this->userBackend = $backend; $userBackendFound = true; @@ -45,7 +45,7 @@ public function __construct(IServerContainer $serverContainer, Helper $helper, D } } foreach ($serverContainer->getGroupManager()->getBackends() as $backend) { - $this->logger->debug('instance '.get_class($backend).' group backend.', ['app' => 'user_ldap']); + $this->logger->debug('instance ' . get_class($backend) . ' group backend.', ['app' => 'user_ldap']); if ($backend instanceof IGroupLDAP) { $this->groupBackend = $backend; $groupBackendFound = true; diff --git a/apps/user_ldap/lib/Proxy.php b/apps/user_ldap/lib/Proxy.php index 285427bfd4d09..88a55f6462d53 100644 --- a/apps/user_ldap/lib/Proxy.php +++ b/apps/user_ldap/lib/Proxy.php @@ -22,7 +22,7 @@ abstract class Proxy { public function __construct( ILDAPWrapper $ldap, - AccessFactory $accessFactory + AccessFactory $accessFactory, ) { $this->ldap = $ldap; $this->accessFactory = $accessFactory; diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php index 71532846b9118..8fc0915c6fe42 100644 --- a/apps/user_ldap/lib/Settings/Admin.php +++ b/apps/user_ldap/lib/Settings/Admin.php @@ -55,7 +55,7 @@ public function getForm() { } $defaults = $config->getDefaults(); foreach ($defaults as $key => $default) { - $parameters[$key.'_default'] = $default; + $parameters[$key . '_default'] = $default; } return new TemplateResponse('user_ldap', 'settings', $parameters); diff --git a/apps/user_ldap/lib/SetupChecks/LdapConnection.php b/apps/user_ldap/lib/SetupChecks/LdapConnection.php index a33dd10f063d2..ee8c4ddd5959d 100644 --- a/apps/user_ldap/lib/SetupChecks/LdapConnection.php +++ b/apps/user_ldap/lib/SetupChecks/LdapConnection.php @@ -61,7 +61,7 @@ public function run(): SetupResult { 'Binding failed for %n LDAP configurations: %s', count($bindFailedConfigurations), [implode(',', $bindFailedConfigurations)] - )."\n"; + ) . "\n"; } if (!empty($searchFailedConfigurations)) { $output .= $this->l10n->n( @@ -69,7 +69,7 @@ public function run(): SetupResult { 'Searching failed for %n LDAP configurations: %s', count($searchFailedConfigurations), [implode(',', $searchFailedConfigurations)] - )."\n"; + ) . "\n"; } if (!empty($inactiveConfigurations)) { $output .= $this->l10n->n( @@ -77,7 +77,7 @@ public function run(): SetupResult { 'There are %n inactive LDAP configurations: %s', count($inactiveConfigurations), [implode(',', $inactiveConfigurations)] - )."\n"; + ) . "\n"; } if (!empty($bindFailedConfigurations) || !empty($searchFailedConfigurations)) { return SetupResult::error($output); diff --git a/apps/user_ldap/lib/User/DeletedUsersIndex.php b/apps/user_ldap/lib/User/DeletedUsersIndex.php index 4b5bb26fa96ec..515233b382569 100644 --- a/apps/user_ldap/lib/User/DeletedUsersIndex.php +++ b/apps/user_ldap/lib/User/DeletedUsersIndex.php @@ -22,7 +22,7 @@ class DeletedUsersIndex { public function __construct( IConfig $config, UserMapping $mapping, - IManager $shareManager + IManager $shareManager, ) { $this->config = $config; $this->mapping = $mapping; diff --git a/apps/user_ldap/lib/User/Manager.php b/apps/user_ldap/lib/User/Manager.php index bf1da54823ccc..5d5ad8b26585f 100644 --- a/apps/user_ldap/lib/User/Manager.php +++ b/apps/user_ldap/lib/User/Manager.php @@ -49,7 +49,7 @@ public function __construct( Image $image, IUserManager $userManager, INotificationManager $notificationManager, - IManager $shareManager + IManager $shareManager, ) { $this->ocConfig = $ocConfig; $this->ocFilesystem = $ocFilesystem; diff --git a/apps/user_ldap/lib/User/OfflineUser.php b/apps/user_ldap/lib/User/OfflineUser.php index 24f11a5a1f9c3..eed715ccc1cc3 100644 --- a/apps/user_ldap/lib/User/OfflineUser.php +++ b/apps/user_ldap/lib/User/OfflineUser.php @@ -70,7 +70,7 @@ public function __construct( $ocName, IConfig $config, UserMapping $mapping, - IManager $shareManager + IManager $shareManager, ) { $this->ocName = $ocName; $this->config = $config; diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php index f2a9ba49f2f81..0688a843bd7e2 100644 --- a/apps/user_ldap/lib/User/User.php +++ b/apps/user_ldap/lib/User/User.php @@ -201,7 +201,7 @@ public function processAttributes($ldapEntry) { } //memberOf groups - $cacheKey = 'getMemberOf'.$this->getUsername(); + $cacheKey = 'getMemberOf' . $this->getUsername(); $groups = false; if (isset($ldapEntry['memberof'])) { $groups = $ldapEntry['memberof']; @@ -217,7 +217,7 @@ public function processAttributes($ldapEntry) { // check for cached profile data $username = $this->getUsername(); // buffer variable, to save resource - $cacheKey = 'getUserProfile-'.$username; + $cacheKey = 'getUserProfile-' . $username; $profileCached = $this->connection->getFromCache($cacheKey); // honoring profile disabled in config.php and check if user profile was refreshed if ($this->config->getSystemValueBool('profile.enabled', true) && @@ -404,7 +404,7 @@ public function getHomePath($valueFromLDAP = null) { && $path[1] === ':' && ($path[2] === '\\' || $path[2] === '/')) ) { $path = $this->config->getSystemValue('datadirectory', - \OC::$SERVERROOT.'/data') . '/' . $path; + \OC::$SERVERROOT . '/data') . '/' . $path; } //we need it to store it in the DB as well in case a user gets //deleted so we can clean up afterwards @@ -427,7 +427,7 @@ public function getHomePath($valueFromLDAP = null) { } public function getMemberOfGroups() { - $cacheKey = 'getMemberOf'.$this->getUsername(); + $cacheKey = 'getMemberOf' . $this->getUsername(); $memberOfGroups = $this->connection->getFromCache($cacheKey); if (!is_null($memberOfGroups)) { return $memberOfGroups; @@ -637,7 +637,7 @@ private function updateProfile(array $profileValues): void { // fetch/prepare user $user = $this->userManager->get($this->uid); if (is_null($user)) { - $this->logger->error('could not get user for uid='.$this->uid.'', ['app' => 'user_ldap']); + $this->logger->error('could not get user for uid=' . $this->uid . '', ['app' => 'user_ldap']); return; } // prepare AccountManager and Account @@ -654,22 +654,22 @@ private function updateProfile(array $profileValues): void { $currentValue = $accountProperty->getValue(); $scope = ($accountProperty->getScope() ?: $defaultScopes[$property]); } catch (PropertyDoesNotExistException $e) { // thrown at getProperty - $this->logger->error('property does not exist: '.$property - .' for uid='.$this->uid.'', ['app' => 'user_ldap', 'exception' => $e]); + $this->logger->error('property does not exist: ' . $property + . ' for uid=' . $this->uid . '', ['app' => 'user_ldap', 'exception' => $e]); $currentValue = ''; $scope = $defaultScopes[$property]; } $verified = IAccountManager::VERIFIED; // trust the LDAP admin knew what he put there if ($currentValue !== $value) { $account->setProperty($property, $value, $scope, $verified); - $this->logger->debug('update user profile: '.$property.'='.$value - .' for uid='.$this->uid.'', ['app' => 'user_ldap']); + $this->logger->debug('update user profile: ' . $property . '=' . $value + . ' for uid=' . $this->uid . '', ['app' => 'user_ldap']); } } try { $accountManager->updateAccount($account); // may throw InvalidArgumentException } catch (\InvalidArgumentException $e) { - $this->logger->error('invalid data from LDAP: for uid='.$this->uid.'', ['app' => 'user_ldap', 'func' => 'updateProfile' + $this->logger->error('invalid data from LDAP: for uid=' . $this->uid . '', ['app' => 'user_ldap', 'func' => 'updateProfile' , 'exception' => $e]); } } @@ -735,7 +735,7 @@ private function avatarExists(): bool { */ private function setOwnCloudAvatar() { if (!$this->image->valid()) { - $this->logger->error('avatar image data from LDAP invalid for '.$this->dn, ['app' => 'user_ldap']); + $this->logger->error('avatar image data from LDAP invalid for ' . $this->dn, ['app' => 'user_ldap']); return false; } @@ -743,7 +743,7 @@ private function setOwnCloudAvatar() { //make sure it is a square and not bigger than 512x512 $size = min([$this->image->width(), $this->image->height(), 512]); if (!$this->image->centerCrop($size)) { - $this->logger->error('croping image for avatar failed for '.$this->dn, ['app' => 'user_ldap']); + $this->logger->error('croping image for avatar failed for ' . $this->dn, ['app' => 'user_ldap']); return false; } @@ -845,10 +845,10 @@ public function handlePasswordExpiry($params) { if (!empty($pwdGraceAuthNLimit) && count($pwdGraceUseTime) < (int)$pwdGraceAuthNLimit[0]) { //at least one more grace login available? $this->config->setUserValue($uid, 'user_ldap', 'needsPasswordReset', 'true'); - header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute( + header('Location: ' . \OC::$server->getURLGenerator()->linkToRouteAbsolute( 'user_ldap.renewPassword.showRenewPasswordForm', ['user' => $uid])); } else { //no more grace login available - header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute( + header('Location: ' . \OC::$server->getURLGenerator()->linkToRouteAbsolute( 'user_ldap.renewPassword.showLoginFormInvalidPassword', ['user' => $uid])); } exit(); @@ -856,7 +856,7 @@ public function handlePasswordExpiry($params) { //handle pwdReset attribute if (!empty($pwdReset) && $pwdReset[0] === 'TRUE') { //user must change his password $this->config->setUserValue($uid, 'user_ldap', 'needsPasswordReset', 'true'); - header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute( + header('Location: ' . \OC::$server->getURLGenerator()->linkToRouteAbsolute( 'user_ldap.renewPassword.showRenewPasswordForm', ['user' => $uid])); exit(); } @@ -868,7 +868,7 @@ public function handlePasswordExpiry($params) { $pwdExpireWarningInt = (int)$pwdExpireWarning[0]; if ($pwdMaxAgeInt > 0 && $pwdExpireWarningInt > 0) { $pwdChangedTimeDt = \DateTime::createFromFormat('YmdHisZ', $pwdChangedTime[0]); - $pwdChangedTimeDt->add(new \DateInterval('PT'.$pwdMaxAgeInt.'S')); + $pwdChangedTimeDt->add(new \DateInterval('PT' . $pwdMaxAgeInt . 'S')); $currentDateTime = new \DateTime(); $secondsToExpiry = $pwdChangedTimeDt->getTimestamp() - $currentDateTime->getTimestamp(); if ($secondsToExpiry <= $pwdExpireWarningInt) { diff --git a/apps/user_ldap/lib/UserPluginManager.php b/apps/user_ldap/lib/UserPluginManager.php index ddf23ddfe3e51..4a36794bca523 100644 --- a/apps/user_ldap/lib/UserPluginManager.php +++ b/apps/user_ldap/lib/UserPluginManager.php @@ -43,12 +43,12 @@ public function register(ILDAPUserPlugin $plugin) { foreach ($this->which as $action => $v) { if (is_int($action) && (bool)($respondToActions & $action)) { $this->which[$action] = $plugin; - \OCP\Server::get(LoggerInterface::class)->debug('Registered action '.$action.' to plugin '.get_class($plugin), ['app' => 'user_ldap']); + \OCP\Server::get(LoggerInterface::class)->debug('Registered action ' . $action . ' to plugin ' . get_class($plugin), ['app' => 'user_ldap']); } } if (method_exists($plugin, 'deleteUser')) { $this->which['deleteUser'] = $plugin; - \OCP\Server::get(LoggerInterface::class)->debug('Registered action deleteUser to plugin '.get_class($plugin), ['app' => 'user_ldap']); + \OCP\Server::get(LoggerInterface::class)->debug('Registered action deleteUser to plugin ' . get_class($plugin), ['app' => 'user_ldap']); } } diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index b1065fcf7a78d..e34f0fcb18506 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -217,7 +217,7 @@ public function setPassword($uid, $password) { */ public function getUsers($search = '', $limit = 10, $offset = 0) { $search = $this->access->escapeFilterPart($search, true); - $cachekey = 'getUsers-'.$search.'-'.$limit.'-'.$offset; + $cachekey = 'getUsers-' . $search . '-' . $limit . '-' . $offset; //check if users are cached, if so return $ldap_users = $this->access->connection->getFromCache($cachekey); @@ -237,7 +237,7 @@ public function getUsers($search = '', $limit = 10, $offset = 0) { ]); $this->logger->debug( - 'getUsers: Options: search '.$search.' limit '.$limit.' offset '.$offset.' Filter: '.$filter, + 'getUsers: Options: search ' . $search . ' limit ' . $limit . ' offset ' . $offset . ' Filter: ' . $filter, ['app' => 'user_ldap'] ); //do the search and translate results to Nextcloud names @@ -247,7 +247,7 @@ public function getUsers($search = '', $limit = 10, $offset = 0) { $limit, $offset); $ldap_users = $this->access->nextcloudUserNames($ldap_users); $this->logger->debug( - 'getUsers: '.count($ldap_users). ' Users found', + 'getUsers: ' . count($ldap_users) . ' Users found', ['app' => 'user_ldap'] ); @@ -318,7 +318,7 @@ public function userExistsOnLDAP($user, bool $ignoreCache = false): bool { * @throws \Exception when connection could not be established */ public function userExists($uid) { - $userExists = $this->access->connection->getFromCache('userExists'.$uid); + $userExists = $this->access->connection->getFromCache('userExists' . $uid); if (!is_null($userExists)) { return (bool)$userExists; } @@ -326,14 +326,14 @@ public function userExists($uid) { if (!$userExists) { $this->logger->debug( - 'No DN found for '.$uid.' on '.$this->access->connection->ldapHost, + 'No DN found for ' . $uid . ' on ' . $this->access->connection->ldapHost, ['app' => 'user_ldap'] ); - $this->access->connection->writeToCache('userExists'.$uid, false); + $this->access->connection->writeToCache('userExists' . $uid, false); return false; } - $this->access->connection->writeToCache('userExists'.$uid, true); + $this->access->connection->writeToCache('userExists' . $uid, true); return true; } @@ -367,7 +367,7 @@ public function deleteUser($uid) { } if (!$marked) { $this->logger->notice( - 'User '.$uid . ' is not marked as deleted, not cleaning up.', + 'User ' . $uid . ' is not marked as deleted, not cleaning up.', ['app' => 'user_ldap'] ); return false; @@ -400,7 +400,7 @@ public function getHome($uid) { return $this->userPluginManager->getHome($uid); } - $cacheKey = 'getHome'.$uid; + $cacheKey = 'getHome' . $uid; $path = $this->access->connection->getFromCache($cacheKey); if (!is_null($path)) { return $path; @@ -432,7 +432,7 @@ public function getDisplayName($uid) { return false; } - $cacheKey = 'getDisplayName'.$uid; + $cacheKey = 'getDisplayName' . $uid; if (!is_null($displayName = $this->access->connection->getFromCache($cacheKey))) { return $displayName; } @@ -495,7 +495,7 @@ public function setDisplayName($uid, $displayName) { * @return array an array of all displayNames (value) and the corresponding uids (key) */ public function getDisplayNames($search = '', $limit = null, $offset = null) { - $cacheKey = 'getDisplayNames-'.$search.'-'.$limit.'-'.$offset; + $cacheKey = 'getDisplayNames-' . $search . '-' . $limit . '-' . $offset; if (!is_null($displayNames = $this->access->connection->getFromCache($cacheKey))) { return $displayNames; } @@ -546,7 +546,7 @@ public function countUsers() { } $filter = $this->access->getFilterForUserCount(); - $cacheKey = 'countUsers-'.$filter; + $cacheKey = 'countUsers-' . $filter; if (!is_null($entries = $this->access->connection->getFromCache($cacheKey))) { return $entries; } diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php index fd5f12ce0cf4a..87f0d04f4974a 100644 --- a/apps/user_ldap/lib/Wizard.php +++ b/apps/user_ldap/lib/Wizard.php @@ -37,7 +37,7 @@ class Wizard extends LDAPUtility { public function __construct( Configuration $configuration, ILDAPWrapper $ldap, - Access $access + Access $access, ) { parent::__construct($ldap); $this->configuration = $configuration; @@ -262,7 +262,7 @@ public function detectEmailAttribute() { $this->applyFind('ldap_email_attr', $winner); if ($writeLog) { $this->logger->info( - 'The mail attribute has automatically been reset, '. + 'The mail attribute has automatically been reset, ' . 'because the original value did not return any results.', ['app' => 'user_ldap'] ); @@ -402,7 +402,7 @@ public function fetchGroups(string $dbKey, string $confKey): array { $filterParts = []; foreach ($obclasses as $obclass) { - $filterParts[] = 'objectclass='.$obclass; + $filterParts[] = 'objectclass=' . $obclass; } //we filter for everything //- that looks like a group and @@ -647,7 +647,7 @@ public function guessPortAndTLS() { $p = $setting['port']; $t = $setting['tls']; $this->logger->debug( - 'Wiz: trying port '. $p . ', TLS '. $t, + 'Wiz: trying port ' . $p . ', TLS ' . $t, ['app' => 'user_ldap'] ); //connectAndBind may throw Exception, it needs to be caught by the @@ -755,7 +755,7 @@ private function checkHost(): void { //removes Port from Host if (is_array($hostInfo) && isset($hostInfo['port'])) { $port = $hostInfo['port']; - $host = str_replace(':'.$port, '', $host); + $host = str_replace(':' . $port, '', $host); $this->applyFind('ldap_host', $host); $this->applyFind('ldap_port', (string)$port); } @@ -824,7 +824,7 @@ private function testBaseDN(string $base): bool { $errorNo = $this->ldap->errno($cr); $errorMsg = $this->ldap->error($cr); $this->logger->info( - 'Wiz: Could not search base '.$base.' Error '.$errorNo.': '.$errorMsg, + 'Wiz: Could not search base ' . $base . ' Error ' . $errorNo . ': ' . $errorMsg, ['app' => 'user_ldap'] ); return false; @@ -902,7 +902,7 @@ private function composeLdapFilter(int $filterType): string { $filterPart = '(memberof=' . ldap_escape($dn, '', LDAP_ESCAPE_FILTER) . ')'; if (isset($attrs['primaryGroupToken'])) { $pgt = $attrs['primaryGroupToken'][0]; - $primaryFilterPart = '(primaryGroupID=' . ldap_escape($pgt, '', LDAP_ESCAPE_FILTER) .')'; + $primaryFilterPart = '(primaryGroupID=' . ldap_escape($pgt, '', LDAP_ESCAPE_FILTER) . ')'; $filterPart = '(|' . $filterPart . $primaryFilterPart . ')'; } $filter .= $filterPart; @@ -1002,12 +1002,12 @@ private function composeLdapFilter(int $filterType): string { $filterLogin .= ')'; } - $filter = '(&'.$ulf.$filterLogin.')'; + $filter = '(&' . $ulf . $filterLogin . ')'; break; } $this->logger->debug( - 'Wiz: Final filter '.$filter, + 'Wiz: Final filter ' . $filter, ['app' => 'user_ldap'] ); @@ -1069,7 +1069,7 @@ private function connectAndBind(int $port, bool $tls): bool { if ($login === true) { $this->logger->debug( - 'Wiz: Bind successful to Port '. $port . ' TLS ' . (int)$tls, + 'Wiz: Bind successful to Port ' . $port . ' TLS ' . (int)$tls, ['app' => 'user_ldap'] ); return true; @@ -1203,7 +1203,7 @@ private function determineFeature(array $objectclasses, string $attr, string $db } $p = 'objectclass='; foreach ($objectclasses as $key => $value) { - $objectclasses[$key] = $p.$value; + $objectclasses[$key] = $p . $value; } $maxEntryObjC = ''; diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php index 94bd59f7b96f0..9fb67342247cc 100644 --- a/apps/user_ldap/templates/part.wizard-server.php +++ b/apps/user_ldap/templates/part.wizard-server.php @@ -15,7 +15,7 @@ foreach ($_['serverConfigurationPrefixes'] as $prefix) { ?> + $sel = ''; ?>>t('%s. Server:', [$i++])); ?> diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index 4be24095e9915..9117a9f533caa 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -73,7 +73,7 @@ '.$l->t('Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.').'

'); + print_unescaped('

' . $l->t('Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.') . '

'); } ?> diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index 79c0f3216a210..a9eeceeb86b3d 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -526,7 +526,7 @@ protected function prepareMocksForSearchTests( $base, $fakeConnection, $fakeSearchResultResource, - $fakeLdapEntries + $fakeLdapEntries, ) { $this->connection ->expects($this->any()) diff --git a/apps/user_ldap/tests/Group_LDAPTest.php b/apps/user_ldap/tests/Group_LDAPTest.php index 580066274103f..13c5d35dce4aa 100644 --- a/apps/user_ldap/tests/Group_LDAPTest.php +++ b/apps/user_ldap/tests/Group_LDAPTest.php @@ -1033,10 +1033,10 @@ public function testGetGroupsByMember(bool $nestedGroups): void { $this->assertTrue(str_contains($filter, $groupFilter)); } [$memberFilter] = explode('&', $filter); - if ($memberFilter === 'member='.$dn) { + if ($memberFilter === 'member=' . $dn) { return [$group1, $group2]; return []; - } elseif ($memberFilter === 'member='.$group2['dn'][0]) { + } elseif ($memberFilter === 'member=' . $group2['dn'][0]) { return [$group3]; } else { return []; diff --git a/apps/user_ldap/tests/Integration/Bootstrap.php b/apps/user_ldap/tests/Integration/Bootstrap.php index 872e06139ff31..1e270aa6f8a1f 100644 --- a/apps/user_ldap/tests/Integration/Bootstrap.php +++ b/apps/user_ldap/tests/Integration/Bootstrap.php @@ -4,5 +4,5 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ define('CLI_TEST_RUN', true); -require_once __DIR__ . '/../../../../lib/base.php'; +require_once __DIR__ . '/../../../../lib/base.php'; require_once __DIR__ . '/setup-scripts/config.php'; diff --git a/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php b/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php index f42c6d4bccde6..4618179f8abc0 100644 --- a/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php +++ b/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php @@ -77,7 +77,7 @@ public function __destruct() { * @throws \Exception */ public function setUp(): void { - require_once __DIR__ . '/../../../../lib/base.php'; + require_once __DIR__ . '/../../../../lib/base.php'; \OC_App::loadApps(['user_ldap']); $ch = $this->getCurl(); diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php index e06563d1856da..099cc09c06854 100644 --- a/apps/user_ldap/tests/Settings/AdminTest.php +++ b/apps/user_ldap/tests/Settings/AdminTest.php @@ -52,7 +52,7 @@ public function testGetForm(): void { $config = new Configuration('', false); $defaults = $config->getDefaults(); foreach ($defaults as $key => $default) { - $parameters[$key.'_default'] = $default; + $parameters[$key . '_default'] = $default; } $expected = new TemplateResponse('user_ldap', 'settings', $parameters); diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php index aca4e2434e2e0..d596402d32296 100644 --- a/apps/user_ldap/tests/User/UserTest.php +++ b/apps/user_ldap/tests/User/UserTest.php @@ -1110,7 +1110,7 @@ public function testHandlePasswordExpiryWarningDefaultPolicy(): void { if ($base === $this->dn) { return [ [ - 'pwdchangedtime' => [(new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis').'Z'], + 'pwdchangedtime' => [(new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis') . 'Z'], 'pwdgraceusetime' => [], ], ]; @@ -1174,7 +1174,7 @@ public function testHandlePasswordExpiryWarningCustomPolicy(): void { return [ [ 'pwdpolicysubentry' => ['cn=custom,ou=policies,dc=foo,dc=bar'], - 'pwdchangedtime' => [(new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis').'Z'], + 'pwdchangedtime' => [(new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis') . 'Z'], 'pwdgraceusetime' => [], ] ]; diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php index 90166beccff59..f766c7f583aeb 100644 --- a/apps/user_ldap/tests/User_LDAPTest.php +++ b/apps/user_ldap/tests/User_LDAPTest.php @@ -654,7 +654,7 @@ public function testGetHomeRelative(): void { $this->prepareMockForUserExists(); $dataDir = \OC::$server->getConfig()->getSystemValue( - 'datadirectory', \OC::$SERVERROOT.'/data'); + 'datadirectory', \OC::$SERVERROOT . '/data'); $this->connection->expects($this->any()) ->method('__get') @@ -689,7 +689,7 @@ public function testGetHomeRelative(): void { ->willReturn('dnOfLadyOfShadows,dc=test'); $user->expects($this->any()) ->method('getHomePath') - ->willReturn($dataDir.'/susannah/'); + ->willReturn($dataDir . '/susannah/'); $this->userManager->expects($this->atLeastOnce()) ->method('get') @@ -701,7 +701,7 @@ public function testGetHomeRelative(): void { /** @noinspection PhpUnhandledExceptionInspection */ $result = $backend->getHome('ladyofshadows'); - $this->assertEquals($dataDir.'/susannah/', $result); + $this->assertEquals($dataDir . '/susannah/', $result); } @@ -1078,11 +1078,11 @@ public function testLoginName2UserNameSuccess(): void { $this->connection->expects($this->exactly(2)) ->method('getFromCache') - ->with($this->equalTo('loginName2UserName-'.$loginName)) + ->with($this->equalTo('loginName2UserName-' . $loginName)) ->willReturnOnConsecutiveCalls(null, $username); $this->connection->expects($this->once()) ->method('writeToCache') - ->with($this->equalTo('loginName2UserName-'.$loginName), $this->equalTo($username)); + ->with($this->equalTo('loginName2UserName-' . $loginName), $this->equalTo($username)); $backend = new UserLDAP($this->access, $this->notificationManager, $this->pluginManager, $this->logger, $this->deletedUsersIndex); $user = $this->createMock(User::class); @@ -1121,11 +1121,11 @@ public function testLoginName2UserNameNoUsersOnLDAP(): void { $this->connection->expects($this->exactly(2)) ->method('getFromCache') - ->with($this->equalTo('loginName2UserName-'.$loginName)) + ->with($this->equalTo('loginName2UserName-' . $loginName)) ->willReturnOnConsecutiveCalls(null, false); $this->connection->expects($this->once()) ->method('writeToCache') - ->with($this->equalTo('loginName2UserName-'.$loginName), false); + ->with($this->equalTo('loginName2UserName-' . $loginName), false); $this->userManager->expects($this->any()) ->method('getAttributes') @@ -1154,11 +1154,11 @@ public function testLoginName2UserNameOfflineUser(): void { $this->connection->expects($this->exactly(2)) ->method('getFromCache') - ->with($this->equalTo('loginName2UserName-'.$loginName)) + ->with($this->equalTo('loginName2UserName-' . $loginName)) ->willReturnOnConsecutiveCalls(null, false); $this->connection->expects($this->once()) ->method('writeToCache') - ->with($this->equalTo('loginName2UserName-'.$loginName), $this->equalTo(false)); + ->with($this->equalTo('loginName2UserName-' . $loginName), $this->equalTo(false)); $this->userManager->expects($this->any()) ->method('get') @@ -1196,7 +1196,7 @@ private function prepareAccessForSetPassword($enablePasswordChange = true) { $this->connection->expects($this->any()) ->method('getFromCache') ->willReturnCallback(function ($uid) { - if ($uid === 'userExists'.'roland') { + if ($uid === 'userExists' . 'roland') { return true; } return null; diff --git a/apps/user_status/lib/ContactsMenu/StatusProvider.php b/apps/user_status/lib/ContactsMenu/StatusProvider.php index 023b4402fc264..6a6949b46bad2 100644 --- a/apps/user_status/lib/ContactsMenu/StatusProvider.php +++ b/apps/user_status/lib/ContactsMenu/StatusProvider.php @@ -19,7 +19,9 @@ class StatusProvider implements IBulkProvider { - public function __construct(private StatusService $statusService) { + public function __construct( + private StatusService $statusService, + ) { } public function process(array $entries): void { diff --git a/apps/user_status/lib/Listener/BeforeTemplateRenderedListener.php b/apps/user_status/lib/Listener/BeforeTemplateRenderedListener.php index 8b639169b0704..49ac93573dd96 100644 --- a/apps/user_status/lib/Listener/BeforeTemplateRenderedListener.php +++ b/apps/user_status/lib/Listener/BeforeTemplateRenderedListener.php @@ -46,7 +46,7 @@ public function __construct( ProfileManager $profileManager, IUserSession $userSession, IInitialStateService $initialState, - JSDataService $jsDataService + JSDataService $jsDataService, ) { $this->profileManager = $profileManager; $this->userSession = $userSession; diff --git a/apps/user_status/lib/Listener/OutOfOfficeStatusListener.php b/apps/user_status/lib/Listener/OutOfOfficeStatusListener.php index 23dec45292819..6337d637896a3 100644 --- a/apps/user_status/lib/Listener/OutOfOfficeStatusListener.php +++ b/apps/user_status/lib/Listener/OutOfOfficeStatusListener.php @@ -28,9 +28,11 @@ * */ class OutOfOfficeStatusListener implements IEventListener { - public function __construct(private IJobList $jobsList, + public function __construct( + private IJobList $jobsList, private ITimeFactory $time, - private IManager $manager) { + private IManager $manager, + ) { } /** diff --git a/apps/user_status/lib/Listener/UserLiveStatusListener.php b/apps/user_status/lib/Listener/UserLiveStatusListener.php index ea8d995b8a3ef..79305a99b05bf 100644 --- a/apps/user_status/lib/Listener/UserLiveStatusListener.php +++ b/apps/user_status/lib/Listener/UserLiveStatusListener.php @@ -33,11 +33,13 @@ class UserLiveStatusListener implements IEventListener { private StatusService $statusService; private ITimeFactory $timeFactory; - public function __construct(UserStatusMapper $mapper, + public function __construct( + UserStatusMapper $mapper, StatusService $statusService, ITimeFactory $timeFactory, private CalendarStatusService $calendarStatusService, - private LoggerInterface $logger) { + private LoggerInterface $logger, + ) { $this->mapper = $mapper; $this->statusService = $statusService; $this->timeFactory = $timeFactory; diff --git a/apps/user_status/lib/Migration/Version1008Date20230921144701.php b/apps/user_status/lib/Migration/Version1008Date20230921144701.php index 561dfd343cf6e..30ebbf37b0e55 100644 --- a/apps/user_status/lib/Migration/Version1008Date20230921144701.php +++ b/apps/user_status/lib/Migration/Version1008Date20230921144701.php @@ -18,7 +18,9 @@ class Version1008Date20230921144701 extends SimpleMigrationStep { - public function __construct(private IDBConnection $connection) { + public function __construct( + private IDBConnection $connection, + ) { } public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { diff --git a/apps/user_status/tests/bootstrap.php b/apps/user_status/tests/bootstrap.php index 6abfa6019438d..c24f86c7cbeab 100644 --- a/apps/user_status/tests/bootstrap.php +++ b/apps/user_status/tests/bootstrap.php @@ -10,7 +10,7 @@ define('PHPUNIT_RUN', 1); } -require_once __DIR__.'/../../../lib/base.php'; +require_once __DIR__ . '/../../../lib/base.php'; \OC::$composerAutoloader->addPsr4('Test\\', OC::$SERVERROOT . '/tests/lib/', true); diff --git a/apps/weather_status/lib/Service/WeatherStatusService.php b/apps/weather_status/lib/Service/WeatherStatusService.php index 1ffb3e5cff26a..9d9972e84efc9 100644 --- a/apps/weather_status/lib/Service/WeatherStatusService.php +++ b/apps/weather_status/lib/Service/WeatherStatusService.php @@ -49,7 +49,7 @@ public function __construct( private IUserManager $userManager, private IAppManager $appManager, private ICacheFactory $cacheFactory, - private ?string $userId + private ?string $userId, ) { $this->version = $appManager->getAppVersion(Application::APP_ID); $this->client = $clientService->newClient(); diff --git a/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php b/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php index efc9401f44f8d..c78be6e4e6b5d 100644 --- a/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php +++ b/apps/webhook_listeners/lib/BackgroundJobs/WebhookCall.php @@ -81,12 +81,12 @@ protected function run($argument): void { } $statusCode = $response->getStatusCode(); if ($statusCode >= 200 && $statusCode < 300) { - $this->logger->debug('Webhook returned status code '.$statusCode, ['body' => $response->getBody()]); + $this->logger->debug('Webhook returned status code ' . $statusCode, ['body' => $response->getBody()]); } else { - $this->logger->warning('Webhook(' . $webhookId . ') returned unexpected status code '.$statusCode, ['body' => $response->getBody()]); + $this->logger->warning('Webhook(' . $webhookId . ') returned unexpected status code ' . $statusCode, ['body' => $response->getBody()]); } } catch (\Exception $e) { - $this->logger->error('Webhook(' . $webhookId . ') call failed: '.$e->getMessage(), ['exception' => $e]); + $this->logger->error('Webhook(' . $webhookId . ') call failed: ' . $e->getMessage(), ['exception' => $e]); } } } diff --git a/apps/webhook_listeners/lib/Db/WebhookListener.php b/apps/webhook_listeners/lib/Db/WebhookListener.php index fd592fda1695c..4f226a3407ca7 100644 --- a/apps/webhook_listeners/lib/Db/WebhookListener.php +++ b/apps/webhook_listeners/lib/Db/WebhookListener.php @@ -118,7 +118,7 @@ public function getAuthDataClear(): array { public function setAuthDataClear( #[\SensitiveParameter] - ?array $data + ?array $data, ): void { if ($data === null) { if ($this->getAuthMethodEnum() === AuthMethod::Header) { diff --git a/apps/webhook_listeners/lib/Db/WebhookListenerMapper.php b/apps/webhook_listeners/lib/Db/WebhookListenerMapper.php index c0d96891ecc2b..75456cc0b7555 100644 --- a/apps/webhook_listeners/lib/Db/WebhookListenerMapper.php +++ b/apps/webhook_listeners/lib/Db/WebhookListenerMapper.php @@ -256,6 +256,6 @@ public function getByUri(string $uri): array { } private function buildCacheKey(?string $userIdFilter): string { - return self::EVENTS_CACHE_KEY_PREFIX.'_'.($userIdFilter ?? ''); + return self::EVENTS_CACHE_KEY_PREFIX . '_' . ($userIdFilter ?? ''); } } diff --git a/apps/webhook_listeners/lib/Service/PHPMongoQuery.php b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php index 43429ce9393de..d2668d1764487 100644 --- a/apps/webhook_listeners/lib/Service/PHPMongoQuery.php +++ b/apps/webhook_listeners/lib/Service/PHPMongoQuery.php @@ -76,7 +76,7 @@ public static function executeQuery($query, array &$document, array $options = [ */ private static function _executeQuery(array $query, array &$document, array $options = [], string $logicalOperator = '$and'): bool { if ($logicalOperator !== '$and' && (!count($query) || !isset($query[0]))) { - throw new Exception($logicalOperator.' requires nonempty array'); + throw new Exception($logicalOperator . ' requires nonempty array'); } if ($options['_debug'] && $options['_shouldLog']) { $options['logger']->debug('_executeQuery called', ['query' => $query, 'document' => $document, 'logicalOperator' => $logicalOperator]); @@ -180,7 +180,7 @@ private static function _isEqual($v, $operatorValue): bool { return in_array($operatorValue, $v); } if (is_string($operatorValue) && preg_match('/^\/(.*?)\/([a-z]*)$/i', $operatorValue, $matches)) { - return (bool)preg_match('/'.$matches[1].'/'.$matches[2], $v); + return (bool)preg_match('/' . $matches[1] . '/' . $matches[2], $v); } return $operatorValue === $v; } @@ -303,15 +303,15 @@ private static function _executeOperatorOnElement(string $operator, $operatorVal default: if (empty($options['unknownOperatorCallback']) || !is_callable($options['unknownOperatorCallback'])) { - throw new Exception('Operator '.$operator.' is unknown'); + throw new Exception('Operator ' . $operator . ' is unknown'); } $res = call_user_func($options['unknownOperatorCallback'], $operator, $operatorValue, $element, $document); if ($res === null) { - throw new Exception('Operator '.$operator.' is unknown'); + throw new Exception('Operator ' . $operator . ' is unknown'); } if (!is_bool($res)) { - throw new Exception('Return value of unknownOperatorCallback must be boolean, actual value '.$res); + throw new Exception('Return value of unknownOperatorCallback must be boolean, actual value ' . $res); } return $res; } diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php index ca81eb828dc48..e8d27c1c4ad0b 100644 --- a/apps/workflowengine/lib/Check/FileSystemTags.php +++ b/apps/workflowengine/lib/Check/FileSystemTags.php @@ -47,7 +47,7 @@ public function __construct( ISystemTagManager $systemTagManager, ISystemTagObjectMapper $systemTagObjectMapper, IUserSession $userSession, - IGroupManager $groupManager + IGroupManager $groupManager, ) { $this->l = $l; $this->systemTagManager = $systemTagManager; diff --git a/apps/workflowengine/lib/Controller/AWorkflowController.php b/apps/workflowengine/lib/Controller/AWorkflowController.php index a738d55dae82e..6863cd12ab59d 100644 --- a/apps/workflowengine/lib/Controller/AWorkflowController.php +++ b/apps/workflowengine/lib/Controller/AWorkflowController.php @@ -32,7 +32,7 @@ public function __construct( $appName, IRequest $request, Manager $manager, - LoggerInterface $logger + LoggerInterface $logger, ) { parent::__construct($appName, $request); @@ -92,7 +92,7 @@ public function create( array $checks, string $operation, string $entity, - array $events + array $events, ): DataResponse { $context = $this->getScopeContext(); try { @@ -121,7 +121,7 @@ public function update( array $checks, string $operation, string $entity, - array $events + array $events, ): DataResponse { try { $context = $this->getScopeContext(); diff --git a/apps/workflowengine/lib/Controller/UserWorkflowsController.php b/apps/workflowengine/lib/Controller/UserWorkflowsController.php index 10197a6f117fc..a615a280f322e 100644 --- a/apps/workflowengine/lib/Controller/UserWorkflowsController.php +++ b/apps/workflowengine/lib/Controller/UserWorkflowsController.php @@ -33,7 +33,7 @@ public function __construct( IRequest $request, Manager $manager, IUserSession $session, - LoggerInterface $logger + LoggerInterface $logger, ) { parent::__construct($appName, $request, $manager, $logger); diff --git a/apps/workflowengine/lib/Entity/File.php b/apps/workflowengine/lib/Entity/File.php index 25cefcd9314d7..f9234926e4d9f 100644 --- a/apps/workflowengine/lib/Entity/File.php +++ b/apps/workflowengine/lib/Entity/File.php @@ -68,7 +68,7 @@ public function __construct( ISystemTagManager $tagManager, IUserManager $userManager, UserMountCache $userMountCache, - IMountManager $mountManager + IMountManager $mountManager, ) { $this->l10n = $l10n; $this->urlGenerator = $urlGenerator; diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php index b51e85bdea785..f03f84a33c01d 100644 --- a/apps/workflowengine/lib/Manager.php +++ b/apps/workflowengine/lib/Manager.php @@ -238,7 +238,7 @@ protected function insertOperation( array $checkIds, string $operation, string $entity, - array $events + array $events, ): int { $query = $this->connection->getQueryBuilder(); $query->insert('flow_operations') @@ -273,7 +273,7 @@ public function addOperation( string $operation, ScopeContext $scope, string $entity, - array $events + array $events, ) { $this->validateOperation($class, $name, $checks, $operation, $scope, $entity, $events); @@ -342,7 +342,7 @@ public function updateOperation( string $operation, ScopeContext $scopeContext, string $entity, - array $events + array $events, ): array { if (!$this->canModify($id, $scopeContext)) { throw new \DomainException('Target operation not within scope'); diff --git a/apps/workflowengine/lib/Service/Logger.php b/apps/workflowengine/lib/Service/Logger.php index 13ac36659e569..494240bc40385 100644 --- a/apps/workflowengine/lib/Service/Logger.php +++ b/apps/workflowengine/lib/Service/Logger.php @@ -128,7 +128,7 @@ public function logEventDone(LogContext $logContext) { protected function log( string $message, array $context, - LogContext $logContext + LogContext $logContext, ): void { if (!isset($context['app'])) { $context['app'] = Application::APP_ID; diff --git a/apps/workflowengine/lib/Service/RuleMatcher.php b/apps/workflowengine/lib/Service/RuleMatcher.php index 1712b3b2a3286..467584562051f 100644 --- a/apps/workflowengine/lib/Service/RuleMatcher.php +++ b/apps/workflowengine/lib/Service/RuleMatcher.php @@ -53,7 +53,7 @@ public function __construct( IServerContainer $container, IL10N $l, Manager $manager, - Logger $logger + Logger $logger, ) { $this->session = $session; $this->manager = $manager; diff --git a/apps/workflowengine/lib/Settings/ASettings.php b/apps/workflowengine/lib/Settings/ASettings.php index 390682a2f0669..8b875db043c6d 100644 --- a/apps/workflowengine/lib/Settings/ASettings.php +++ b/apps/workflowengine/lib/Settings/ASettings.php @@ -41,7 +41,7 @@ public function __construct( Manager $manager, IInitialState $initialStateService, IConfig $config, - IURLGenerator $urlGenerator + IURLGenerator $urlGenerator, ) { $this->appName = $appName; $this->l10n = $l; diff --git a/build/integration/features/bootstrap/CalDavContext.php b/build/integration/features/bootstrap/CalDavContext.php index 11486bbbc97b1..80f8c53fc4e4a 100644 --- a/build/integration/features/bootstrap/CalDavContext.php +++ b/build/integration/features/bootstrap/CalDavContext.php @@ -41,7 +41,7 @@ public function setUpScenario() { /** @AfterScenario */ public function afterScenario() { - $davUrl = $this->baseUrl. '/remote.php/dav/calendars/admin/MyCalendar'; + $davUrl = $this->baseUrl . '/remote.php/dav/calendars/admin/MyCalendar'; try { $this->client->delete( $davUrl, @@ -266,7 +266,7 @@ public function theErrorMessageIs($message) { * @param string $name */ public function createsACalendarNamed($user, $name) { - $davUrl = $this->baseUrl . '/remote.php/dav/calendars/'.$user.'/'.$name; + $davUrl = $this->baseUrl . '/remote.php/dav/calendars/' . $user . '/' . $name; $password = ($user === 'admin') ? 'admin' : '123456'; $this->response = $this->client->request( @@ -289,7 +289,7 @@ public function createsACalendarNamed($user, $name) { * @param string $name */ public function publiclySharesTheCalendarNamed($user, $name) { - $davUrl = $this->baseUrl . '/remote.php/dav/calendars/'.$user.'/'.$name; + $davUrl = $this->baseUrl . '/remote.php/dav/calendars/' . $user . '/' . $name; $password = ($user === 'admin') ? 'admin' : '123456'; $this->response = $this->client->request( diff --git a/build/integration/features/bootstrap/CardDavContext.php b/build/integration/features/bootstrap/CardDavContext.php index 36337814e2d66..a59f0d56f9634 100644 --- a/build/integration/features/bootstrap/CardDavContext.php +++ b/build/integration/features/bootstrap/CardDavContext.php @@ -110,7 +110,7 @@ public function requestsAddressbookWithStatuscodeOnTheEndpoint($user, $addressBo * @throws \Exception */ public function createsAnAddressbookNamedWithStatuscode($user, $addressBook, $statusCode) { - $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/'.$user.'/'.$addressBook; + $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/' . $user . '/' . $addressBook; $password = ($user === 'admin') ? 'admin' : '123456'; $this->response = $this->client->request( @@ -123,7 +123,7 @@ public function createsAnAddressbookNamedWithStatuscode($user, $addressBook, $st , - ,'.$addressBook.' + ,' . $addressBook . ' ', @@ -190,7 +190,7 @@ public function theCarddavErrorMessageIs($message) { * @Given :user uploads the contact :fileName to the addressbook :addressbook */ public function uploadsTheContactToTheAddressbook($user, $fileName, $addressBook) { - $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/'.$user.'/'.$addressBook . '/' . $fileName; + $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/' . $user . '/' . $addressBook . '/' . $fileName; $password = ($user === 'admin') ? 'admin' : '123456'; $this->response = $this->client->request( @@ -223,7 +223,7 @@ public function uploadsTheContactToTheAddressbook($user, $fileName, $addressBook * @When Exporting the picture of contact :fileName from addressbook :addressBook as user :user */ public function whenExportingThePictureOfContactFromAddressbookAsUser($fileName, $addressBook, $user) { - $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/'.$user.'/'.$addressBook . '/' . $fileName . '?photo=true'; + $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/' . $user . '/' . $addressBook . '/' . $fileName . '?photo=true'; $password = ($user === 'admin') ? 'admin' : '123456'; try { @@ -249,7 +249,7 @@ public function whenExportingThePictureOfContactFromAddressbookAsUser($fileName, * @When Downloading the contact :fileName from addressbook :addressBook as user :user */ public function whenDownloadingTheContactFromAddressbookAsUser($fileName, $addressBook, $user) { - $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/'.$user.'/'.$addressBook . '/' . $fileName; + $davUrl = $this->baseUrl . '/remote.php/dav/addressbooks/users/' . $user . '/' . $addressBook . '/' . $fileName; $password = ($user === 'admin') ? 'admin' : '123456'; try { diff --git a/build/integration/features/bootstrap/ChecksumsContext.php b/build/integration/features/bootstrap/ChecksumsContext.php index d72e321ed7ea6..3392f8545d9dc 100644 --- a/build/integration/features/bootstrap/ChecksumsContext.php +++ b/build/integration/features/bootstrap/ChecksumsContext.php @@ -87,7 +87,7 @@ public function userUploadsFileToWithChecksum($user, $source, $destination, $che */ public function theWebdavResponseShouldHaveAStatusCode($statusCode) { if ((int)$statusCode !== $this->response->getStatusCode()) { - throw new \Exception("Expected $statusCode, got ".$this->response->getStatusCode()); + throw new \Exception("Expected $statusCode, got " . $this->response->getStatusCode()); } } @@ -131,7 +131,7 @@ public function theWebdavChecksumShouldMatch($checksum) { $checksums = $parsed[0]['value'][1]['value'][0]['value'][0]; if ($checksums['value'][0]['value'] !== $checksum) { - throw new \Exception("Expected $checksum, got ".$checksums['value'][0]['value']); + throw new \Exception("Expected $checksum, got " . $checksums['value'][0]['value']); } } @@ -159,7 +159,7 @@ public function userDownloadsTheFile($user, $path) { */ public function theHeaderChecksumShouldMatch($checksum) { if ($this->response->getHeader('OC-Checksum')[0] !== $checksum) { - throw new \Exception("Expected $checksum, got ".$this->response->getHeader('OC-Checksum')[0]); + throw new \Exception("Expected $checksum, got " . $this->response->getHeader('OC-Checksum')[0]); } } @@ -199,7 +199,7 @@ public function theWebdavChecksumShouldBeEmpty() { $status = $parsed[0]['value'][1]['value'][1]['value']; if ($status !== 'HTTP/1.1 404 Not Found') { - throw new \Exception("Expected 'HTTP/1.1 404 Not Found', got ".$status); + throw new \Exception("Expected 'HTTP/1.1 404 Not Found', got " . $status); } } @@ -208,7 +208,7 @@ public function theWebdavChecksumShouldBeEmpty() { */ public function theOcChecksumHeaderShouldNotBeThere() { if ($this->response->hasHeader('OC-Checksum')) { - throw new \Exception('Expected no checksum header but got '.$this->response->getHeader('OC-Checksum')[0]); + throw new \Exception('Expected no checksum header but got ' . $this->response->getHeader('OC-Checksum')[0]); } } } diff --git a/build/integration/features/bootstrap/FakeSMTPHelper.php b/build/integration/features/bootstrap/FakeSMTPHelper.php index 2d90494b82c23..caf2139faab5d 100644 --- a/build/integration/features/bootstrap/FakeSMTPHelper.php +++ b/build/integration/features/bootstrap/FakeSMTPHelper.php @@ -34,7 +34,7 @@ public function receive() { $hasValidTo = false; $receivingData = false; $header = true; - $this->reply('220 '.$this->serverHello); + $this->reply('220 ' . $this->serverHello); $this->mail['ipaddress'] = $this->detectIP(); while ($data = fgets($this->fd)) { $data = preg_replace('@\r\n@', "\n", $data); @@ -60,7 +60,7 @@ public function receive() { $this->reply('250 2.1.5 Ok'); $hasValidTo = true; } else { - $this->reply('501 5.1.3 Bad recipient address syntax '.$match[1]); + $this->reply('501 5.1.3 Bad recipient address syntax ' . $match[1]); } } } elseif (!$receivingData && preg_match('/^RSET$/i', trim($data))) { @@ -70,7 +70,7 @@ public function receive() { } elseif (!$receivingData && preg_match('/^NOOP$/i', trim($data))) { $this->reply('250 2.0.0 Ok'); } elseif (!$receivingData && preg_match('/^VRFY (.*)/i', trim($data), $match)) { - $this->reply('250 2.0.0 '.$match[1]); + $this->reply('250 2.0.0 ' . $match[1]); } elseif (!$receivingData && preg_match('/^DATA/i', trim($data))) { if (!$hasValidTo) { $this->reply('503 5.5.1 Error: need RCPT command'); @@ -79,7 +79,7 @@ public function receive() { $receivingData = true; } } elseif (!$receivingData && preg_match('/^(HELO|EHLO)/i', $data)) { - $this->reply('250 HELO '.$this->mail['ipaddress']); + $this->reply('250 HELO ' . $this->mail['ipaddress']); } elseif (!$receivingData && preg_match('/^QUIT/i', trim($data))) { break; } elseif (!$receivingData) { @@ -88,7 +88,7 @@ public function receive() { } elseif ($receivingData && $data == ".\n") { /* Email Received, now let's look at it */ $receivingData = false; - $this->reply('250 2.0.0 Ok: queued as '.$this->generateRandom(10)); + $this->reply('250 2.0.0 Ok: queued as ' . $this->generateRandom(10)); $splitmail = explode("\n\n", $this->mail['rawEmail'], 2); if (count($splitmail) == 2) { $this->mail['emailHeaders'] = $splitmail[0]; @@ -109,14 +109,14 @@ public function receive() { } } /* Say good bye */ - $this->reply('221 2.0.0 Bye '.$this->mail['ipaddress']); + $this->reply('221 2.0.0 Bye ' . $this->mail['ipaddress']); fclose($this->fd); } public function log($s) { if ($this->logFile) { - file_put_contents($this->logFile, trim($s)."\n", FILE_APPEND); + file_put_contents($this->logFile, trim($s) . "\n", FILE_APPEND); } } diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php index 803099c9c5971..6c0c1767e73bf 100644 --- a/build/integration/features/bootstrap/WebDav.php +++ b/build/integration/features/bootstrap/WebDav.php @@ -74,7 +74,7 @@ public function makeDavRequest($user, $method, $path, $headers, $body = null, $t } elseif ($type === 'uploads') { $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . "$path"; } else { - $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . '/' . $type . "$path"; + $fullUrl = substr($this->baseUrl, 0, -4) . $this->davPath . '/' . $type . "$path"; } $client = new GClient(); $options = [ @@ -197,7 +197,7 @@ public function downloadedContentShouldBe($content) { */ public function checkPropForFile($file, $prefix, $prop, $value) { $elementList = $this->propfindFile($this->currentUser, $file, "<$prefix:$prop/>"); - $property = $elementList['/'.$this->getDavFilesPath($this->currentUser).$file][200]["{DAV:}$prop"]; + $property = $elementList['/' . $this->getDavFilesPath($this->currentUser) . $file][200]["{DAV:}$prop"]; Assert::assertEquals($property, $value); } @@ -563,7 +563,7 @@ public function makeSabrePath($user, $path, $type = 'files') { if ($type === 'files') { return $this->encodePath($this->getDavFilesPath($user) . $path); } else { - return $this->encodePath($this->davPath . '/' . $type . '/' . $user . '/' . $path); + return $this->encodePath($this->davPath . '/' . $type . '/' . $user . '/' . $path); } } @@ -705,28 +705,28 @@ public function userUploadsBulkedFiles($user, $name1, $content1, $name2, $conten $boundary = 'boundary_azertyuiop'; $body = ''; - $body .= '--'.$boundary."\r\n"; - $body .= 'X-File-Path: '.$name1."\r\n"; + $body .= '--' . $boundary . "\r\n"; + $body .= 'X-File-Path: ' . $name1 . "\r\n"; $body .= "X-File-MD5: f6a6263167c92de8644ac998b3c4e4d1\r\n"; $body .= "X-OC-Mtime: 1111111111\r\n"; - $body .= 'Content-Length: '.strlen($content1)."\r\n"; + $body .= 'Content-Length: ' . strlen($content1) . "\r\n"; $body .= "\r\n"; - $body .= $content1."\r\n"; - $body .= '--'.$boundary."\r\n"; - $body .= 'X-File-Path: '.$name2."\r\n"; + $body .= $content1 . "\r\n"; + $body .= '--' . $boundary . "\r\n"; + $body .= 'X-File-Path: ' . $name2 . "\r\n"; $body .= "X-File-MD5: 87c7d4068be07d390a1fffd21bf1e944\r\n"; $body .= "X-OC-Mtime: 2222222222\r\n"; - $body .= 'Content-Length: '.strlen($content2)."\r\n"; + $body .= 'Content-Length: ' . strlen($content2) . "\r\n"; $body .= "\r\n"; - $body .= $content2."\r\n"; - $body .= '--'.$boundary."\r\n"; - $body .= 'X-File-Path: '.$name3."\r\n"; + $body .= $content2 . "\r\n"; + $body .= '--' . $boundary . "\r\n"; + $body .= 'X-File-Path: ' . $name3 . "\r\n"; $body .= "X-File-MD5: e86a1cf0678099986a901c79086f5617\r\n"; $body .= "X-File-Mtime: 3333333333\r\n"; - $body .= 'Content-Length: '.strlen($content3)."\r\n"; + $body .= 'Content-Length: ' . strlen($content3) . "\r\n"; $body .= "\r\n"; - $body .= $content3."\r\n"; - $body .= '--'.$boundary."--\r\n"; + $body .= $content3 . "\r\n"; + $body .= '--' . $boundary . "--\r\n"; $stream = fopen('php://temp', 'r+'); fwrite($stream, $body); @@ -736,7 +736,7 @@ public function userUploadsBulkedFiles($user, $name1, $content1, $name2, $conten $options = [ 'auth' => [$user, $this->regularUser], 'headers' => [ - 'Content-Type' => 'multipart/related; boundary='.$boundary, + 'Content-Type' => 'multipart/related; boundary=' . $boundary, 'Content-Length' => (string)strlen($body), ], 'body' => $body diff --git a/build/license.php b/build/license.php index 6737caa8eec7e..b21f5b263fc65 100644 --- a/build/license.php +++ b/build/license.php @@ -119,10 +119,10 @@ public function writeAuthorsFile() { … '; $authors = implode(PHP_EOL, array_map(function ($author) { - return ' - '.$author; + return ' - ' . $author; }, $this->authors)); $template = str_replace('@AUTHORS@', $authors, $template); - file_put_contents(__DIR__.'/../AUTHORS', $template); + file_put_contents(__DIR__ . '/../AUTHORS', $template); } public function handleFile($path, $gitRoot) { @@ -422,7 +422,7 @@ private function checkCoreMailMap($author) { private function fixInvalidEmail($author) { preg_match('/<(.*)>/', $author, $mailMatch); if (count($mailMatch) === 2 && !filter_var($mailMatch[1], FILTER_VALIDATE_EMAIL)) { - $author = str_replace('<'.$mailMatch[1].'>', '"'.$mailMatch[1].'"', $author); + $author = str_replace('<' . $mailMatch[1] . '>', '"' . $mailMatch[1] . '"', $author); } return $author; } diff --git a/core/Command/Background/JobBase.php b/core/Command/Background/JobBase.php index 7229d7589eea7..d92bb77d4b6fb 100644 --- a/core/Command/Background/JobBase.php +++ b/core/Command/Background/JobBase.php @@ -19,7 +19,7 @@ abstract class JobBase extends \OC\Core\Command\Base { public function __construct( protected IJobList $jobList, - protected LoggerInterface $logger + protected LoggerInterface $logger, ) { parent::__construct(); } diff --git a/core/Command/Background/ListCommand.php b/core/Command/Background/ListCommand.php index 005f041857975..c8efbfef5c722 100644 --- a/core/Command/Background/ListCommand.php +++ b/core/Command/Background/ListCommand.php @@ -53,7 +53,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $jobsInfo = $this->formatJobs($this->jobList->getJobsIterator($input->getOption('class'), $limit, (int)$input->getOption('offset'))); $this->writeTableInOutputFormat($input, $output, $jobsInfo); if ($input->getOption('output') === self::OUTPUT_FORMAT_PLAIN && count($jobsInfo) >= $limit) { - $output->writeln("\nOutput is currently limited to " . $limit . ' jobs. Specify `-l, --limit[=LIMIT]` to override.'); + $output->writeln("\nOutput is currently limited to " . $limit . ' jobs. Specify `-l, --limit[=LIMIT]` to override.'); } return 0; } diff --git a/core/Command/Config/Import.php b/core/Command/Config/Import.php index 9974b11e19c97..b58abec33908a 100644 --- a/core/Command/Config/Import.php +++ b/core/Command/Config/Import.php @@ -49,7 +49,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int try { $configs = $this->validateFileContent($content); } catch (\UnexpectedValueException $e) { - $output->writeln('' . $e->getMessage(). ''); + $output->writeln('' . $e->getMessage() . ''); return 1; } diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php index 031d5a83d121f..43b2d62a90013 100644 --- a/core/Command/Db/ConvertType.php +++ b/core/Command/Db/ConvertType.php @@ -215,7 +215,7 @@ protected function createSchema(Connection $fromDB, Connection $toDB, InputInter $apps = $input->getOption('all-apps') ? \OC_App::getAllApps() : \OC_App::getEnabledApps(); foreach ($apps as $app) { - $output->writeln(' - '.$app.''); + $output->writeln(' - ' . $app . ''); // Make sure autoloading works... \OC_App::loadApp($app); $fromMS = new MigrationService($app, $fromDB); @@ -404,7 +404,7 @@ protected function convertDB(Connection $fromDB, Connection $toDB, array $tables try { // copy table rows foreach ($tables as $table) { - $output->writeln(' - '.$table.''); + $output->writeln(' - ' . $table . ''); $this->copyTable($fromDB, $toDB, $schema->getTable($table), $input, $output); } if ($input->getArgument('type') === 'pgsql') { @@ -427,7 +427,7 @@ protected function saveDBInfo(InputInterface $input) { $dbName = $input->getArgument('database'); $password = $input->getOption('password'); if ($input->getOption('port')) { - $dbHost .= ':'.$input->getOption('port'); + $dbHost .= ':' . $input->getOption('port'); } $this->config->setSystemValues([ diff --git a/core/Command/Info/File.php b/core/Command/Info/File.php index 76fbd38712c2b..2a557b6768ee9 100644 --- a/core/Command/Info/File.php +++ b/core/Command/Info/File.php @@ -33,7 +33,7 @@ class File extends Command { public function __construct( IFactory $l10nFactory, private FileUtils $fileUtils, - private \OC\Encryption\Util $encryptionUtil + private \OC\Encryption\Util $encryptionUtil, ) { $this->l10n = $l10nFactory->get('core'); parent::__construct(); @@ -85,7 +85,7 @@ public function execute(InputInterface $input, OutputInterface $output): int { return $node->getSize(); }, $children)); if ($childSize != $node->getSize()) { - $output->writeln(' warning: folder has a size of ' . Util::humanFileSize($node->getSize()) ." but it's children sum up to " . Util::humanFileSize($childSize) . '.'); + $output->writeln(' warning: folder has a size of ' . Util::humanFileSize($node->getSize()) . " but it's children sum up to " . Util::humanFileSize($childSize) . '.'); $output->writeln(' Run occ files:scan --path ' . $node->getPath() . ' to attempt to resolve this.'); } if ($showChildren) { @@ -164,10 +164,10 @@ private function outputStorageDetails(IMountPoint $mountPoint, Node $node, Input } if ($input->getOption('storage-tree')) { $storageTmp = $storage; - $storageClass = get_class($storageTmp).' (cache:'.get_class($storageTmp->getCache()).')'; + $storageClass = get_class($storageTmp) . ' (cache:' . get_class($storageTmp->getCache()) . ')'; while ($storageTmp instanceof \OC\Files\Storage\Wrapper\Wrapper) { $storageTmp = $storageTmp->getWrapperStorage(); - $storageClass .= "\n\t".'> '.get_class($storageTmp).' (cache:'.get_class($storageTmp->getCache()).')'; + $storageClass .= "\n\t" . '> ' . get_class($storageTmp) . ' (cache:' . get_class($storageTmp->getCache()) . ')'; } $output->writeln(' storage wrapping: ' . $storageClass); } diff --git a/core/Command/Integrity/SignApp.php b/core/Command/Integrity/SignApp.php index 6df8466238888..d307bc589859c 100644 --- a/core/Command/Integrity/SignApp.php +++ b/core/Command/Integrity/SignApp.php @@ -51,7 +51,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $documentationUrl = $this->urlGenerator->linkToDocs('developer-code-integrity'); $output->writeln('This command requires the --path, --privateKey and --certificate.'); $output->writeln('Example: ./occ integrity:sign-app --path="/Users/lukasreschke/Programming/myapp/" --privateKey="/Users/lukasreschke/private/myapp.key" --certificate="/Users/lukasreschke/public/mycert.crt"'); - $output->writeln('For more information please consult the documentation: '. $documentationUrl); + $output->writeln('For more information please consult the documentation: ' . $documentationUrl); return 1; } @@ -75,7 +75,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $x509->setPrivateKey($rsa); try { $this->checker->writeAppSignature($path, $x509, $rsa); - $output->writeln('Successfully signed "'.$path.'"'); + $output->writeln('Successfully signed "' . $path . '"'); } catch (\Exception $e) { $output->writeln('Error: ' . $e->getMessage()); return 1; diff --git a/core/Command/L10n/CreateJs.php b/core/Command/L10n/CreateJs.php index 7d45fbe91f891..64a21e6d48c31 100644 --- a/core/Command/L10n/CreateJs.php +++ b/core/Command/L10n/CreateJs.php @@ -153,7 +153,7 @@ public function completeArgumentValues($argumentName, CompletionContext $context $appName = $context->getWordAtIndex($context->getWordIndex() - 1); try { return $this->getAllLanguages($this->appManager->getAppPath($appName)); - } catch(AppPathNotFoundException) { + } catch (AppPathNotFoundException) { return []; } } diff --git a/core/Command/Log/File.php b/core/Command/Log/File.php index e04d19f51cf36..8b4a38db61159 100644 --- a/core/Command/Log/File.php +++ b/core/Command/Log/File.php @@ -79,11 +79,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int } else { $enabledText = 'disabled'; } - $output->writeln('Log backend file: '.$enabledText); + $output->writeln('Log backend file: ' . $enabledText); - $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data'); - $defaultLogFile = rtrim($dataDir, '/').'/nextcloud.log'; - $output->writeln('Log file: '.$this->config->getSystemValue('logfile', $defaultLogFile)); + $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data'); + $defaultLogFile = rtrim($dataDir, '/') . '/nextcloud.log'; + $output->writeln('Log file: ' . $this->config->getSystemValue('logfile', $defaultLogFile)); $rotateSize = $this->config->getSystemValue('log_rotate_size', 100 * 1024 * 1024); if ($rotateSize) { @@ -91,7 +91,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int } else { $rotateString = 'disabled'; } - $output->writeln('Rotate at: '.$rotateString); + $output->writeln('Rotate at: ' . $rotateString); return 0; } diff --git a/core/Command/Log/Manage.php b/core/Command/Log/Manage.php index e68720a1280c1..f67f0d969f633 100644 --- a/core/Command/Log/Manage.php +++ b/core/Command/Log/Manage.php @@ -84,14 +84,14 @@ protected function execute(InputInterface $input, OutputInterface $output): int // display configuration $backend = $this->config->getSystemValue('log_type', self::DEFAULT_BACKEND); - $output->writeln('Enabled logging backend: '.$backend); + $output->writeln('Enabled logging backend: ' . $backend); $levelNum = $this->config->getSystemValue('loglevel', self::DEFAULT_LOG_LEVEL); $level = $this->convertLevelNumber($levelNum); - $output->writeln('Log level: '.$level.' ('.$levelNum.')'); + $output->writeln('Log level: ' . $level . ' (' . $levelNum . ')'); $timezone = $this->config->getSystemValue('logtimezone', self::DEFAULT_TIMEZONE); - $output->writeln('Log timezone: '.$timezone); + $output->writeln('Log timezone: ' . $timezone); return 0; } @@ -100,7 +100,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int * @throws \InvalidArgumentException */ protected function validateBackend($backend) { - if (!class_exists('OC\\Log\\'.ucfirst($backend))) { + if (!class_exists('OC\\Log\\' . ucfirst($backend))) { throw new \InvalidArgumentException('Invalid backend'); } } diff --git a/core/Command/Maintenance/Install.php b/core/Command/Maintenance/Install.php index a954beb406d00..31f6d1cd79d3f 100644 --- a/core/Command/Maintenance/Install.php +++ b/core/Command/Maintenance/Install.php @@ -46,7 +46,7 @@ protected function configure(): void { ->addOption('admin-user', null, InputOption::VALUE_REQUIRED, 'Login of the admin account', 'admin') ->addOption('admin-pass', null, InputOption::VALUE_REQUIRED, 'Password of the admin account') ->addOption('admin-email', null, InputOption::VALUE_OPTIONAL, 'E-Mail of the admin account') - ->addOption('data-dir', null, InputOption::VALUE_REQUIRED, 'Path to data directory', \OC::$SERVERROOT.'/data'); + ->addOption('data-dir', null, InputOption::VALUE_REQUIRED, 'Path to data directory', \OC::$SERVERROOT . '/data'); } protected function execute(InputInterface $input, OutputInterface $output): int { @@ -134,7 +134,7 @@ protected function validateInput(InputInterface $input, OutputInterface $output, if (is_null($dbPass)) { /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); - $question = new Question('What is the password to access the database with user <'.$dbUser.'>?'); + $question = new Question('What is the password to access the database with user <' . $dbUser . '>?'); $question->setHidden(true); $question->setHiddenFallback(false); $dbPass = $helper->ask($input, $output, $question); @@ -144,7 +144,7 @@ protected function validateInput(InputInterface $input, OutputInterface $output, if (is_null($adminPassword)) { /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); - $question = new Question('What is the password you like to use for the admin account <'.$adminLogin.'>?'); + $question = new Question('What is the password you like to use for the admin account <' . $adminLogin . '>?'); $question->setHidden(true); $question->setHiddenFallback(false); $adminPassword = $helper->ask($input, $output, $question); diff --git a/core/Command/Maintenance/Mimetype/GenerateMimetypeFileBuilder.php b/core/Command/Maintenance/Mimetype/GenerateMimetypeFileBuilder.php index 1a6c39334615b..283809a903184 100644 --- a/core/Command/Maintenance/Mimetype/GenerateMimetypeFileBuilder.php +++ b/core/Command/Maintenance/Mimetype/GenerateMimetypeFileBuilder.php @@ -22,7 +22,7 @@ public function generateFile(array $aliases): string { }, ARRAY_FILTER_USE_KEY); // Fetch all files - $dir = new \DirectoryIterator(\OC::$SERVERROOT.'/core/img/filetypes'); + $dir = new \DirectoryIterator(\OC::$SERVERROOT . '/core/img/filetypes'); $files = []; foreach ($dir as $fileInfo) { @@ -38,7 +38,7 @@ public function generateFile(array $aliases): string { // Fetch all themes! $themes = []; - $dirs = new \DirectoryIterator(\OC::$SERVERROOT.'/themes/'); + $dirs = new \DirectoryIterator(\OC::$SERVERROOT . '/themes/'); foreach ($dirs as $dir) { //Valid theme dir if ($dir->isFile() || $dir->isDot()) { diff --git a/core/Command/Maintenance/Mimetype/UpdateDB.php b/core/Command/Maintenance/Mimetype/UpdateDB.php index fd448cf862a30..9ba535ef658c3 100644 --- a/core/Command/Maintenance/Mimetype/UpdateDB.php +++ b/core/Command/Maintenance/Mimetype/UpdateDB.php @@ -55,21 +55,21 @@ protected function execute(InputInterface $input, OutputInterface $output): int $mimetypeId = $this->mimetypeLoader->getId($mimetype); if (!$existing) { - $output->writeln('Added mimetype "'.$mimetype.'" to database'); + $output->writeln('Added mimetype "' . $mimetype . '" to database'); $totalNewMimetypes++; } if (!$existing || $input->getOption('repair-filecache')) { $touchedFilecacheRows = $this->mimetypeLoader->updateFilecache($ext, $mimetypeId); if ($touchedFilecacheRows > 0) { - $output->writeln('Updated '.$touchedFilecacheRows.' filecache rows for mimetype "'.$mimetype.'"'); + $output->writeln('Updated ' . $touchedFilecacheRows . ' filecache rows for mimetype "' . $mimetype . '"'); } $totalFilecacheUpdates += $touchedFilecacheRows; } } - $output->writeln('Added '.$totalNewMimetypes.' new mimetypes'); - $output->writeln('Updated '.$totalFilecacheUpdates.' filecache rows'); + $output->writeln('Added ' . $totalNewMimetypes . ' new mimetypes'); + $output->writeln('Updated ' . $totalFilecacheUpdates . ' filecache rows'); return 0; } } diff --git a/core/Command/Maintenance/Mimetype/UpdateJS.php b/core/Command/Maintenance/Mimetype/UpdateJS.php index a1559024f2e67..35633f1635546 100644 --- a/core/Command/Maintenance/Mimetype/UpdateJS.php +++ b/core/Command/Maintenance/Mimetype/UpdateJS.php @@ -32,7 +32,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int // Output the JS $generatedMimetypeFile = new GenerateMimetypeFileBuilder(); - file_put_contents(\OC::$SERVERROOT.'/core/js/mimetypelist.js', $generatedMimetypeFile->generateFile($aliases)); + file_put_contents(\OC::$SERVERROOT . '/core/js/mimetypelist.js', $generatedMimetypeFile->generateFile($aliases)); $output->writeln('mimetypelist.js is updated'); return 0; diff --git a/core/Command/SetupChecks.php b/core/Command/SetupChecks.php index fda463b8f6d1a..60517e224b320 100644 --- a/core/Command/SetupChecks.php +++ b/core/Command/SetupChecks.php @@ -61,11 +61,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int $description = $this->richTextFormatter->richToParsed($description, $descriptionParameters); } $output->writeln( - "\t\t". - ($styleTag !== null ? "<{$styleTag}>" : ''). - "{$emoji} ". - ($check->getName() ?? $check::class). - ($description !== null ? ': '.$description : ''). + "\t\t" . + ($styleTag !== null ? "<{$styleTag}>" : '') . + "{$emoji} " . + ($check->getName() ?? $check::class) . + ($description !== null ? ': ' . $description : '') . ($styleTag !== null ? "" : ''), $verbosity ); diff --git a/core/Command/SystemTag/Add.php b/core/Command/SystemTag/Add.php index 9d8f7ae05e428..92ed42c37bccf 100644 --- a/core/Command/SystemTag/Add.php +++ b/core/Command/SystemTag/Add.php @@ -73,7 +73,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int ]); return 0; } catch (TagAlreadyExistsException $e) { - $output->writeln(''.$e->getMessage().''); + $output->writeln('' . $e->getMessage() . ''); return 2; } } diff --git a/core/Command/SystemTag/Edit.php b/core/Command/SystemTag/Edit.php index 7ac74cbc53a8b..eb6412b763991 100644 --- a/core/Command/SystemTag/Edit.php +++ b/core/Command/SystemTag/Edit.php @@ -82,13 +82,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int try { $this->systemTagManager->updateTag($input->getArgument('id'), $name, $userVisible, $userAssignable); - $output->writeln('Tag updated ("' . $name . '", '. $userVisible . ', ' . $userAssignable . ')'); + $output->writeln('Tag updated ("' . $name . '", ' . $userVisible . ', ' . $userAssignable . ')'); return 0; } catch (TagNotFoundException $e) { $output->writeln('Tag not found'); return 1; } catch (TagAlreadyExistsException $e) { - $output->writeln(''.$e->getMessage().''); + $output->writeln('' . $e->getMessage() . ''); return 2; } } diff --git a/core/Command/Upgrade.php b/core/Command/Upgrade.php index 7b1526766f345..a9ed4cf2fd1be 100644 --- a/core/Command/Upgrade.php +++ b/core/Command/Upgrade.php @@ -35,7 +35,7 @@ class Upgrade extends Command { public const ERROR_FAILURE = 5; public function __construct( - private IConfig $config + private IConfig $config, ) { parent::__construct(); } diff --git a/core/Command/User/AuthTokens/Add.php b/core/Command/User/AuthTokens/Add.php index 43386b7709a94..ad4bf732bd008 100644 --- a/core/Command/User/AuthTokens/Add.php +++ b/core/Command/User/AuthTokens/Add.php @@ -81,7 +81,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $output->writeln('No password provided. The generated app password will therefore have limited capabilities. Any operation that requires the login password will fail.'); } - $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $generatedToken = $this->tokenProvider->generateToken( $token, $user->getUID(), diff --git a/core/Command/User/SyncAccountDataCommand.php b/core/Command/User/SyncAccountDataCommand.php index e8fcccdaa28f7..640b66581e1f3 100644 --- a/core/Command/User/SyncAccountDataCommand.php +++ b/core/Command/User/SyncAccountDataCommand.php @@ -21,7 +21,7 @@ class SyncAccountDataCommand extends Base { public function __construct( IUserManager $userManager, - IAccountManager $accountManager + IAccountManager $accountManager, ) { $this->userManager = $userManager; $this->accountManager = $accountManager; diff --git a/core/Command/User/Welcome.php b/core/Command/User/Welcome.php index ba1c88a26c5bf..c383811f982cc 100644 --- a/core/Command/User/Welcome.php +++ b/core/Command/User/Welcome.php @@ -27,7 +27,7 @@ class Welcome extends Base { */ public function __construct( IUserManager $userManager, - NewUserMailHelper $newUserMailHelper + NewUserMailHelper $newUserMailHelper, ) { parent::__construct(); diff --git a/core/Controller/AppPasswordController.php b/core/Controller/AppPasswordController.php index 7cab4c5380b18..b43f0077507d3 100644 --- a/core/Controller/AppPasswordController.php +++ b/core/Controller/AppPasswordController.php @@ -78,7 +78,7 @@ public function getAppPassword(): DataResponse { $userAgent = $this->request->getHeader('USER_AGENT'); - $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $generatedToken = $this->tokenProvider->generateToken( $token, @@ -149,7 +149,7 @@ public function rotateAppPassword(): DataResponse { throw new OCSForbiddenException('could not rotate apptoken'); } - $newToken = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $newToken = $this->random->generate(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $this->tokenProvider->rotate($token, $appPassword, $newToken); return new DataResponse([ diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php index a7205abc0fc2c..93eec8921fe56 100644 --- a/core/Controller/ClientFlowLoginController.php +++ b/core/Controller/ClientFlowLoginController.php @@ -118,7 +118,7 @@ public function showAuthPickerPage(string $clientIdentifier = '', string $user = $stateToken = $this->random->generate( 64, - ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS ); $this->session->set(self::STATE_NAME, $stateToken); @@ -247,7 +247,7 @@ public function generateAppPassword(string $stateToken, $clientName = $client->getName(); } - $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $token = $this->random->generate(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $uid = $this->userSession->getUser()->getUID(); $generatedToken = $this->tokenProvider->generateToken( $token, @@ -260,7 +260,7 @@ public function generateAppPassword(string $stateToken, ); if ($client) { - $code = $this->random->generate(128, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $code = $this->random->generate(128, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $accessToken = new AccessToken(); $accessToken->setClientId($client->getId()); $accessToken->setEncryptedToken($this->crypto->encrypt($token, $code)); diff --git a/core/Controller/ClientFlowLoginV2Controller.php b/core/Controller/ClientFlowLoginV2Controller.php index e6e1c282d2b6b..43eac012be1a0 100644 --- a/core/Controller/ClientFlowLoginV2Controller.php +++ b/core/Controller/ClientFlowLoginV2Controller.php @@ -110,7 +110,7 @@ public function showAuthPickerPage(string $user = '', int $direct = 0): Standalo $stateToken = $this->random->generate( 64, - ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS ); $this->session->set(self::STATE_NAME, $stateToken); diff --git a/core/Controller/CssController.php b/core/Controller/CssController.php index 345b70fe2d332..37e7edc530ff5 100644 --- a/core/Controller/CssController.php +++ b/core/Controller/CssController.php @@ -65,11 +65,11 @@ public function getCss(string $fileName, string $appName): Response { } $ttl = 31536000; - $response->addHeader('Cache-Control', 'max-age='.$ttl.', immutable'); + $response->addHeader('Cache-Control', 'max-age=' . $ttl . ', immutable'); $expires = new \DateTime(); $expires->setTimestamp($this->timeFactory->getTime()); - $expires->add(new \DateInterval('PT'.$ttl.'S')); + $expires->add(new \DateInterval('PT' . $ttl . 'S')); $response->addHeader('Expires', $expires->format(\DateTime::RFC1123)); return $response; } diff --git a/core/Controller/JsController.php b/core/Controller/JsController.php index f5fe381688d51..5754c554e5046 100644 --- a/core/Controller/JsController.php +++ b/core/Controller/JsController.php @@ -65,11 +65,11 @@ public function getJs(string $fileName, string $appName): Response { } $ttl = 31536000; - $response->addHeader('Cache-Control', 'max-age='.$ttl.', immutable'); + $response->addHeader('Cache-Control', 'max-age=' . $ttl . ', immutable'); $expires = new \DateTime(); $expires->setTimestamp($this->timeFactory->getTime()); - $expires->add(new \DateInterval('PT'.$ttl.'S')); + $expires->add(new \DateInterval('PT' . $ttl . 'S')); $response->addHeader('Expires', $expires->format(\DateTime::RFC1123)); return $response; } diff --git a/core/Controller/OCMController.php b/core/Controller/OCMController.php index d79b5b1669e43..b53dc08fecf32 100644 --- a/core/Controller/OCMController.php +++ b/core/Controller/OCMController.php @@ -32,7 +32,7 @@ class OCMController extends Controller { public function __construct( IRequest $request, private IConfig $config, - private LoggerInterface $logger + private LoggerInterface $logger, ) { parent::__construct('core', $request); } diff --git a/core/Controller/SetupController.php b/core/Controller/SetupController.php index e5f92eed1a980..eb78d74dd4e0f 100644 --- a/core/Controller/SetupController.php +++ b/core/Controller/SetupController.php @@ -18,7 +18,7 @@ public function __construct( protected Setup $setupHelper, protected LoggerInterface $logger, ) { - $this->autoConfigFile = \OC::$configDir.'autoconfig.php'; + $this->autoConfigFile = \OC::$configDir . 'autoconfig.php'; } public function run(array $post): void { diff --git a/core/Controller/TaskProcessingApiController.php b/core/Controller/TaskProcessingApiController.php index b459143aa7edc..cc685d34bf048 100644 --- a/core/Controller/TaskProcessingApiController.php +++ b/core/Controller/TaskProcessingApiController.php @@ -121,7 +121,7 @@ public function taskTypes(): DataResponse { #[ApiRoute(verb: 'POST', url: '/schedule', root: '/taskprocessing')] public function schedule( array $input, string $type, string $appId, string $customId = '', - ?string $webhookUri = null, ?string $webhookMethod = null + ?string $webhookUri = null, ?string $webhookMethod = null, ): DataResponse { $task = new Task($type, $input, $appId, $this->userId, $customId); $task->setWebhookUri($webhookUri); diff --git a/core/Listener/BeforeMessageLoggedEventListener.php b/core/Listener/BeforeMessageLoggedEventListener.php index ef771ca0a81bd..9010f7755eb4c 100644 --- a/core/Listener/BeforeMessageLoggedEventListener.php +++ b/core/Listener/BeforeMessageLoggedEventListener.php @@ -40,11 +40,11 @@ public function handle(Event $event): void { 2 => '[warning]', 3 => '[error]', 4 => '[fatal]', - default => '['.$event->getLevel().']', + default => '[' . $event->getLevel() . ']', } - .' ['.$event->getApp().'] ' - .$event->getMessage()['message'] - ."\n"; + . ' [' . $event->getApp() . '] ' + . $event->getMessage()['message'] + . "\n"; } /** @@ -55,10 +55,10 @@ public static function setup(): void { $argv = $_SERVER['argv']; $level = 0; foreach ($argv as $key => $arg) { - if ($arg === '--'.ReservedOptions::DEBUG_LOG) { + if ($arg === '--' . ReservedOptions::DEBUG_LOG) { unset($argv[$key]); - } elseif (str_starts_with($arg, '--'.ReservedOptions::DEBUG_LOG_LEVEL.'=')) { - $level = (int)substr($arg, strlen('--'.ReservedOptions::DEBUG_LOG_LEVEL.'=')); + } elseif (str_starts_with($arg, '--' . ReservedOptions::DEBUG_LOG_LEVEL . '=')) { + $level = (int)substr($arg, strlen('--' . ReservedOptions::DEBUG_LOG_LEVEL . '=')); unset($argv[$key]); } } diff --git a/core/Service/LoginFlowV2Service.php b/core/Service/LoginFlowV2Service.php index 89c89f50b3ec1..e67a602e7b5e6 100644 --- a/core/Service/LoginFlowV2Service.php +++ b/core/Service/LoginFlowV2Service.php @@ -126,7 +126,7 @@ public function flowDone(string $loginToken, string $sessionId, string $server, return false; } - $appPassword = $this->random->generate(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS); + $appPassword = $this->random->generate(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS); $this->tokenProvider->generateToken( $appPassword, $userId, @@ -166,8 +166,8 @@ public function flowDoneWithAppPassword(string $loginToken, string $server, stri public function createTokens(string $userAgent): LoginFlowV2Tokens { $flow = new LoginFlowV2(); - $pollToken = $this->random->generate(128, ISecureRandom::CHAR_DIGITS.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER); - $loginToken = $this->random->generate(128, ISecureRandom::CHAR_DIGITS.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER); + $pollToken = $this->random->generate(128, ISecureRandom::CHAR_DIGITS . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER); + $loginToken = $this->random->generate(128, ISecureRandom::CHAR_DIGITS . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER); $flow->setPollToken($this->hashToken($pollToken)); $flow->setLoginToken($loginToken); $flow->setStarted(0); diff --git a/core/templates/installation.php b/core/templates/installation.php index 5343464edbc78..d03bc3cb174d3 100644 --- a/core/templates/installation.php +++ b/core/templates/installation.php @@ -67,7 +67,7 @@
diff --git a/core/templates/layout.public.php b/core/templates/layout.public.php index d3c558ec04fbb..e2ed47d071662 100644 --- a/core/templates/layout.public.php +++ b/core/templates/layout.public.php @@ -10,7 +10,7 @@ <?php - p(!empty($_['application']) ? $_['application'].' - ' : ''); + p(!empty($_['application']) ? $_['application'] . ' - ' : ''); p($theme->getTitle()); ?> diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index f820a2f3ace47..fc0f3af2d090c 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -24,8 +24,8 @@ <?php - p(!empty($_['pageTitle']) && $_['pageTitle'] !== $_['application'] ? $_['pageTitle'].' - ' : ''); -p(!empty($_['application']) ? $_['application'].' - ' : ''); + p(!empty($_['pageTitle']) && $_['pageTitle'] !== $_['application'] ? $_['pageTitle'] . ' - ' : ''); +p(!empty($_['application']) ? $_['application'] . ' - ' : ''); p($theme->getTitle()); ?> @@ -84,7 +84,7 @@

getName()) ); ?>

diff --git a/cron.php b/cron.php index 5ff93fdf1d8c6..ebc0ca358a7a2 100644 --- a/cron.php +++ b/cron.php @@ -189,7 +189,7 @@ } if ($memoryAfter - $memoryBefore > 50_000_000) { - $message = 'Used memory grew by more than 50 MB when executing job ' . $jobDetails . ': ' . Util::humanFileSize($memoryAfter). ' (before: ' . Util::humanFileSize($memoryBefore) . ')'; + $message = 'Used memory grew by more than 50 MB when executing job ' . $jobDetails . ': ' . Util::humanFileSize($memoryAfter) . ' (before: ' . Util::humanFileSize($memoryBefore) . ')'; $logger->warning($message, ['app' => 'cron']); if ($verbose) { echo $message . PHP_EOL; diff --git a/lib/base.php b/lib/base.php index 1f9caf473e266..ec5cf3759f2b4 100644 --- a/lib/base.php +++ b/lib/base.php @@ -141,7 +141,7 @@ public static function initPaths(): void { // slash which is required by URL generation. if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] === \OC::$WEBROOT && substr($_SERVER['REQUEST_URI'], -1) !== '/') { - header('Location: '.\OC::$WEBROOT.'/'); + header('Location: ' . \OC::$WEBROOT . '/'); exit(); } } @@ -183,7 +183,7 @@ public static function checkConfig(): void { $l = Server::get(\OCP\L10N\IFactory::class)->get('lib'); // Create config if it does not already exist - $configFilePath = self::$configDir .'/config.php'; + $configFilePath = self::$configDir . '/config.php'; if (!file_exists($configFilePath)) { @touch($configFilePath); } @@ -195,11 +195,11 @@ public static function checkConfig(): void { $urlGenerator = Server::get(IURLGenerator::class); if (self::$CLI) { - echo $l->t('Cannot write into "config" directory!')."\n"; - echo $l->t('This can usually be fixed by giving the web server write access to the config directory.')."\n"; + echo $l->t('Cannot write into "config" directory!') . "\n"; + echo $l->t('This can usually be fixed by giving the web server write access to the config directory.') . "\n"; echo "\n"; - echo $l->t('But, if you prefer to keep config.php file read only, set the option "config_is_read_only" to true in it.')."\n"; - echo $l->t('See %s', [ $urlGenerator->linkToDocs('admin-config') ])."\n"; + echo $l->t('But, if you prefer to keep config.php file read only, set the option "config_is_read_only" to true in it.') . "\n"; + echo $l->t('See %s', [ $urlGenerator->linkToDocs('admin-config') ]) . "\n"; exit; } else { OC_Template::printErrorPage( @@ -568,7 +568,7 @@ public static function init(): void { try { self::initPaths(); // setup 3rdparty autoloader - $vendorAutoLoad = OC::$SERVERROOT. '/3rdparty/autoload.php'; + $vendorAutoLoad = OC::$SERVERROOT . '/3rdparty/autoload.php'; if (!file_exists($vendorAutoLoad)) { throw new \RuntimeException('Composer autoloader not found, unable to continue. Check the folder "3rdparty". Running "git submodule update --init" will initialize the git submodule that handles the subfolder "3rdparty".'); } @@ -587,7 +587,7 @@ public static function init(): void { self::$server = new \OC\Server(\OC::$WEBROOT, self::$config); self::$server->boot(); - if (self::$CLI && in_array('--'.\OCP\Console\ReservedOptions::DEBUG_LOG, $_SERVER['argv'])) { + if (self::$CLI && in_array('--' . \OCP\Console\ReservedOptions::DEBUG_LOG, $_SERVER['argv'])) { \OC\Core\Listener\BeforeMessageLoggedEventListener::setup(); } diff --git a/lib/private/Activity/ActivitySettingsAdapter.php b/lib/private/Activity/ActivitySettingsAdapter.php index 5579685ccb82f..27c85ee555456 100644 --- a/lib/private/Activity/ActivitySettingsAdapter.php +++ b/lib/private/Activity/ActivitySettingsAdapter.php @@ -19,7 +19,7 @@ class ActivitySettingsAdapter extends ActivitySettings { public function __construct( private ISetting $oldSettings, - private IL10N $l10n + private IL10N $l10n, ) { } diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php index f08e5125a478f..46b53e3c1b21d 100644 --- a/lib/private/AllConfig.php +++ b/lib/private/AllConfig.php @@ -41,7 +41,7 @@ class AllConfig implements IConfig { private CappedMemoryCache $userCache; public function __construct( - private SystemConfig $systemConfig + private SystemConfig $systemConfig, ) { $this->userCache = new CappedMemoryCache(); } diff --git a/lib/private/App/AppStore/Fetcher/AppDiscoverFetcher.php b/lib/private/App/AppStore/Fetcher/AppDiscoverFetcher.php index 1174c7d240b60..2537d1dcec906 100644 --- a/lib/private/App/AppStore/Fetcher/AppDiscoverFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppDiscoverFetcher.php @@ -81,7 +81,7 @@ public function get($allowUnstable = false) { }); } - public function getETag(): string|null { + public function getETag(): ?string { $rootFolder = $this->appData->getFolder('/'); try { diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php index e7ab2f9c377be..352646c3f5ed0 100644 --- a/lib/private/App/AppStore/Fetcher/AppFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php @@ -18,7 +18,8 @@ class AppFetcher extends Fetcher { /** @var bool */ private $ignoreMaxVersion; - public function __construct(Factory $appDataFactory, + public function __construct( + Factory $appDataFactory, IClientService $clientService, ITimeFactory $timeFactory, IConfig $config, diff --git a/lib/private/AppConfig.php b/lib/private/AppConfig.php index f6361ff2ac68d..828d83bc67aca 100644 --- a/lib/private/AppConfig.php +++ b/lib/private/AppConfig.php @@ -281,7 +281,7 @@ public function getValueMixed( string $app, string $key, string $default = '', - ?bool $lazy = false + ?bool $lazy = false, ): string { try { $lazy = ($lazy === null) ? $this->isLazy($app, $key) : $lazy; @@ -316,7 +316,7 @@ public function getValueString( string $app, string $key, string $default = '', - bool $lazy = false + bool $lazy = false, ): string { return $this->getTypedValue($app, $key, $default, $lazy, self::VALUE_STRING); } @@ -339,7 +339,7 @@ public function getValueInt( string $app, string $key, int $default = 0, - bool $lazy = false + bool $lazy = false, ): int { return (int)$this->getTypedValue($app, $key, (string)$default, $lazy, self::VALUE_INT); } @@ -399,7 +399,7 @@ public function getValueArray( string $app, string $key, array $default = [], - bool $lazy = false + bool $lazy = false, ): array { try { $defaultJson = json_encode($default, JSON_THROW_ON_ERROR); @@ -427,7 +427,7 @@ private function getTypedValue( string $key, string $default, bool $lazy, - int $type + int $type, ): string { $this->assertParams($app, $key, valueType: $type); $this->loadConfig($lazy); @@ -526,7 +526,7 @@ public function setValueMixed( string $key, string $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->setTypedValue( $app, @@ -557,7 +557,7 @@ public function setValueString( string $key, string $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->setTypedValue( $app, @@ -587,7 +587,7 @@ public function setValueInt( string $key, int $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { if ($value > 2000000000) { $this->logger->debug('You are trying to store an integer value around/above 2,147,483,647. This is a reminder that reaching this theoretical limit on 32 bits system will throw an exception.'); @@ -621,7 +621,7 @@ public function setValueFloat( string $key, float $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->setTypedValue( $app, @@ -649,7 +649,7 @@ public function setValueBool( string $app, string $key, bool $value, - bool $lazy = false + bool $lazy = false, ): bool { return $this->setTypedValue( $app, @@ -680,7 +680,7 @@ public function setValueArray( string $key, array $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { try { return $this->setTypedValue( @@ -718,7 +718,7 @@ private function setTypedValue( string $key, string $value, bool $lazy, - int $type + int $type, ): bool { $this->assertParams($app, $key); $this->loadConfig($lazy); diff --git a/lib/private/AppFramework/Http/Request.php b/lib/private/AppFramework/Http/Request.php index 4bbeabb7aae04..d177221556c66 100644 --- a/lib/private/AppFramework/Http/Request.php +++ b/lib/private/AppFramework/Http/Request.php @@ -484,7 +484,7 @@ protected function getProtectedCookieName(string $name): string { $prefix = '__Host-'; } - return $prefix.$name; + return $prefix . $name; } /** @@ -606,7 +606,7 @@ public function getRemoteAddress(): string { * @return bool */ private function isOverwriteCondition(): bool { - $regex = '/' . $this->config->getSystemValueString('overwritecondaddr', '') . '/'; + $regex = '/' . $this->config->getSystemValueString('overwritecondaddr', '') . '/'; $remoteAddr = isset($this->server['REMOTE_ADDR']) ? $this->server['REMOTE_ADDR'] : ''; return $regex === '//' || preg_match($regex, $remoteAddr) === 1; } diff --git a/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php b/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php index 34291dfef100f..2b3025fccff5b 100644 --- a/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php +++ b/lib/private/AppFramework/Middleware/PublicShare/PublicShareMiddleware.php @@ -24,7 +24,7 @@ public function __construct( private IRequest $request, private ISession $session, private IConfig $config, - private IThrottler $throttler + private IThrottler $throttler, ) { } diff --git a/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php b/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php index 10c8f8c7aee99..d8f00f3109633 100644 --- a/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/CORSMiddleware.php @@ -40,7 +40,8 @@ class CORSMiddleware extends Middleware { /** @var IThrottler */ private $throttler; - public function __construct(IRequest $request, + public function __construct( + IRequest $request, ControllerMethodReflector $reflector, Session $session, IThrottler $throttler, @@ -135,7 +136,7 @@ public function afterController($controller, $methodName, Response $response) { foreach ($response->getHeaders() as $header => $value) { if (strtolower($header) === 'access-control-allow-credentials' && strtolower(trim($value)) === 'true') { - $msg = 'Access-Control-Allow-Credentials must not be '. + $msg = 'Access-Control-Allow-Credentials must not be ' . 'set to true in order to prevent CSRF'; throw new SecurityException($msg); } diff --git a/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php b/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php index 34933e13ecd2e..f5416ff652ad1 100644 --- a/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php @@ -44,7 +44,8 @@ class PasswordConfirmationMiddleware extends Middleware { * @param IUserSession $userSession * @param ITimeFactory $timeFactory */ - public function __construct(ControllerMethodReflector $reflector, + public function __construct( + ControllerMethodReflector $reflector, ISession $session, IUserSession $userSession, ITimeFactory $timeFactory, diff --git a/lib/private/AppFramework/Services/AppConfig.php b/lib/private/AppFramework/Services/AppConfig.php index e47bbc429d034..423a9eb5814ea 100644 --- a/lib/private/AppFramework/Services/AppConfig.php +++ b/lib/private/AppFramework/Services/AppConfig.php @@ -116,7 +116,7 @@ public function setAppValueString( string $key, string $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->appConfig->setValueString($this->appName, $key, $value, $lazy, $sensitive); } @@ -138,7 +138,7 @@ public function setAppValueInt( string $key, int $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->appConfig->setValueInt($this->appName, $key, $value, $lazy, $sensitive); } @@ -160,7 +160,7 @@ public function setAppValueFloat( string $key, float $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->appConfig->setValueFloat($this->appName, $key, $value, $lazy, $sensitive); } @@ -180,7 +180,7 @@ public function setAppValueFloat( public function setAppValueBool( string $key, bool $value, - bool $lazy = false + bool $lazy = false, ): bool { return $this->appConfig->setValueBool($this->appName, $key, $value, $lazy); } @@ -203,7 +203,7 @@ public function setAppValueArray( string $key, array $value, bool $lazy = false, - bool $sensitive = false + bool $sensitive = false, ): bool { return $this->appConfig->setValueArray($this->appName, $key, $value, $lazy, $sensitive); } diff --git a/lib/private/Archive/Archive.php b/lib/private/Archive/Archive.php index 26b940be4104a..874087fb16727 100644 --- a/lib/private/Archive/Archive.php +++ b/lib/private/Archive/Archive.php @@ -92,10 +92,10 @@ public function addRecursive(string $path, string $source): void { if ($file === '.' || $file === '..') { continue; } - if (is_dir($source.'/'.$file)) { - $this->addRecursive($path.'/'.$file, $source.'/'.$file); + if (is_dir($source . '/' . $file)) { + $this->addRecursive($path . '/' . $file, $source . '/' . $file); } else { - $this->addFile($path.'/'.$file, $source.'/'.$file); + $this->addFile($path . '/' . $file, $source . '/' . $file); } } } diff --git a/lib/private/Archive/ZIP.php b/lib/private/Archive/ZIP.php index 52352f9505e45..61fd25d071d66 100644 --- a/lib/private/Archive/ZIP.php +++ b/lib/private/Archive/ZIP.php @@ -26,7 +26,7 @@ public function __construct(string $source) { $this->zip = new \ZipArchive(); if ($this->zip->open($source, \ZipArchive::CREATE)) { } else { - \OC::$server->get(LoggerInterface::class)->warning('Error while opening archive '.$source, ['app' => 'files_archive']); + \OC::$server->get(LoggerInterface::class)->warning('Error while opening archive ' . $source, ['app' => 'files_archive']); } } @@ -169,15 +169,15 @@ public function extract(string $dest): bool { * check if a file or folder exists in the archive */ public function fileExists(string $path): bool { - return ($this->zip->locateName($path) !== false) or ($this->zip->locateName($path.'/') !== false); + return ($this->zip->locateName($path) !== false) or ($this->zip->locateName($path . '/') !== false); } /** * remove a file or folder from the archive */ public function remove(string $path): bool { - if ($this->fileExists($path.'/')) { - return $this->zip->deleteName($path.'/'); + if ($this->fileExists($path . '/')) { + return $this->zip->deleteName($path . '/'); } else { return $this->zip->deleteName($path); } diff --git a/lib/private/Authentication/Login/Chain.php b/lib/private/Authentication/Login/Chain.php index abd24287a6ccf..3cba396afdd3e 100644 --- a/lib/private/Authentication/Login/Chain.php +++ b/lib/private/Authentication/Login/Chain.php @@ -56,7 +56,7 @@ public function __construct(PreLoginHookCommand $preLoginHookCommand, UpdateLastPasswordConfirmCommand $updateLastPasswordConfirmCommand, SetUserTimezoneCommand $setUserTimezoneCommand, TwoFactorCommand $twoFactorCommand, - FinishRememberedLoginCommand $finishRememberedLoginCommand + FinishRememberedLoginCommand $finishRememberedLoginCommand, ) { $this->preLoginHookCommand = $preLoginHookCommand; $this->userDisabledCheckCommand = $userDisabledCheckCommand; diff --git a/lib/private/Authentication/Login/WebAuthnChain.php b/lib/private/Authentication/Login/WebAuthnChain.php index c31e39de28cb6..ae523c43da67b 100644 --- a/lib/private/Authentication/Login/WebAuthnChain.php +++ b/lib/private/Authentication/Login/WebAuthnChain.php @@ -48,7 +48,7 @@ public function __construct(UserDisabledCheckCommand $userDisabledCheckCommand, UpdateLastPasswordConfirmCommand $updateLastPasswordConfirmCommand, SetUserTimezoneCommand $setUserTimezoneCommand, TwoFactorCommand $twoFactorCommand, - FinishRememberedLoginCommand $finishRememberedLoginCommand + FinishRememberedLoginCommand $finishRememberedLoginCommand, ) { $this->userDisabledCheckCommand = $userDisabledCheckCommand; $this->webAuthnLoginCommand = $webAuthnLoginCommand; diff --git a/lib/private/Authentication/WebAuthn/Manager.php b/lib/private/Authentication/WebAuthn/Manager.php index 7aa7a3c8f3a20..e65002632d8d5 100644 --- a/lib/private/Authentication/WebAuthn/Manager.php +++ b/lib/private/Authentication/WebAuthn/Manager.php @@ -53,7 +53,7 @@ public function __construct( CredentialRepository $repository, PublicKeyCredentialMapper $credentialMapper, LoggerInterface $logger, - IConfig $config + IConfig $config, ) { $this->repository = $repository; $this->credentialMapper = $credentialMapper; diff --git a/lib/private/Avatar/Avatar.php b/lib/private/Avatar/Avatar.php index bf29d57b88d01..7aa2d220b88b8 100644 --- a/lib/private/Avatar/Avatar.php +++ b/lib/private/Avatar/Avatar.php @@ -183,7 +183,7 @@ protected function imageTTFCenter( string $text, string $font, int $size, - int $angle = 0 + int $angle = 0, ): array { // Image width & height $xi = imagesx($image); diff --git a/lib/private/Avatar/UserAvatar.php b/lib/private/Avatar/UserAvatar.php index c5a146a48b659..51c44b23a55b1 100644 --- a/lib/private/Avatar/UserAvatar.php +++ b/lib/private/Avatar/UserAvatar.php @@ -217,7 +217,7 @@ public function getFile(int $size, bool $darkTheme = false): ISimpleFile { if ($size === -1) { $path = 'avatar' . ($darkTheme ? '-dark' : '') . '.' . $ext; } else { - $path = 'avatar' . ($darkTheme ? '-dark' : '') . '.' . $size . '.' . $ext; + $path = 'avatar' . ($darkTheme ? '-dark' : '') . '.' . $size . '.' . $ext; } } else { if ($size === -1) { diff --git a/lib/private/BackgroundJob/JobList.php b/lib/private/BackgroundJob/JobList.php index dc8e33c743c0f..f6410269d6726 100644 --- a/lib/private/BackgroundJob/JobList.php +++ b/lib/private/BackgroundJob/JobList.php @@ -27,7 +27,7 @@ public function __construct( protected IDBConnection $connection, protected IConfig $config, protected ITimeFactory $timeFactory, - protected LoggerInterface $logger + protected LoggerInterface $logger, ) { } diff --git a/lib/private/Collaboration/Collaborators/LookupPlugin.php b/lib/private/Collaboration/Collaborators/LookupPlugin.php index 3cc4e93a486ef..8b46ad5e07266 100644 --- a/lib/private/Collaboration/Collaborators/LookupPlugin.php +++ b/lib/private/Collaboration/Collaborators/LookupPlugin.php @@ -63,7 +63,7 @@ public function search($search, $limit, $offset, ISearchResult $searchResult): b try { $remote = $this->cloudIdManager->resolveCloudId($lookup['federationId'])->getRemote(); } catch (\Exception $e) { - $this->logger->error('Can not parse federated cloud ID "' . $lookup['federationId'] . '"', [ + $this->logger->error('Can not parse federated cloud ID "' . $lookup['federationId'] . '"', [ 'exception' => $e, ]); continue; diff --git a/lib/private/Collaboration/Resources/Collection.php b/lib/private/Collaboration/Resources/Collection.php index 2c5cc28ef28df..d652305016fc3 100644 --- a/lib/private/Collaboration/Resources/Collection.php +++ b/lib/private/Collaboration/Resources/Collection.php @@ -28,7 +28,7 @@ public function __construct( protected int $id, protected string $name, protected ?IUser $userForAccess = null, - protected ?bool $access = null + protected ?bool $access = null, ) { } diff --git a/lib/private/Collaboration/Resources/Resource.php b/lib/private/Collaboration/Resources/Resource.php index 34f68aeee1121..19da3da7e7d27 100644 --- a/lib/private/Collaboration/Resources/Resource.php +++ b/lib/private/Collaboration/Resources/Resource.php @@ -23,7 +23,7 @@ public function __construct( protected string $type, protected string $id, protected ?IUser $userForAccess = null, - protected ?bool $access = null + protected ?bool $access = null, ) { } diff --git a/lib/private/Comments/Comment.php b/lib/private/Comments/Comment.php index ac022cd4c3c4a..0308d01ab9a89 100644 --- a/lib/private/Comments/Comment.php +++ b/lib/private/Comments/Comment.php @@ -175,7 +175,7 @@ public function setMessage($message, $maxLength = self::MAX_MESSAGE_LENGTH): ICo } $message = trim($message); if ($maxLength && mb_strlen($message, 'UTF-8') > $maxLength) { - throw new MessageTooLongException('Comment message must not exceed ' . $maxLength. ' characters'); + throw new MessageTooLongException('Comment message must not exceed ' . $maxLength . ' characters'); } $this->data['message'] = $message; return $this; diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 8b7f43c03a2e5..41e0c6622128f 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -320,7 +320,7 @@ public function getForObject( $objectId, $limit = 0, $offset = 0, - ?\DateTime $notOlderThan = null + ?\DateTime $notOlderThan = null, ) { $comments = []; @@ -372,7 +372,7 @@ public function getForObjectSince( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array { return $this->getCommentsWithVerbForObjectSinceComment( $objectType, @@ -403,7 +403,7 @@ public function getCommentsWithVerbForObjectSinceComment( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array { $comments = []; @@ -575,7 +575,7 @@ public function searchForObjects(string $search, string $objectType, array $obje if ($search !== '') { $query->where($query->expr()->iLike('message', $query->createNamedParameter( - '%' . $this->dbConn->escapeLikeParameter($search). '%' + '%' . $this->dbConn->escapeLikeParameter($search) . '%' ))); } @@ -769,7 +769,7 @@ public function getLastCommentDateByActor( string $objectId, string $verb, string $actorType, - array $actors + array $actors, ): array { $lastComments = []; diff --git a/lib/private/Config.php b/lib/private/Config.php index 08f9b028856b7..d9b1683269870 100644 --- a/lib/private/Config.php +++ b/lib/private/Config.php @@ -35,7 +35,7 @@ class Config { */ public function __construct($configDir, $fileName = 'config.php') { $this->configDir = $configDir; - $this->configFilePath = $this->configDir.$fileName; + $this->configFilePath = $this->configDir . $fileName; $this->configFileName = $fileName; $this->readData(); $this->isReadOnly = $this->getValue('config_is_read_only', false); @@ -171,7 +171,7 @@ private function readData() { $configFiles = [$this->configFilePath]; // Add all files in the config dir ending with the same file name - $extra = glob($this->configDir.'*.'.$this->configFileName); + $extra = glob($this->configDir . '*.' . $this->configFileName); if (is_array($extra)) { natsort($extra); $configFiles = array_merge($configFiles, $extra); @@ -248,7 +248,7 @@ private function readData() { private function writeData() { $this->checkReadOnly(); - if (!is_file(\OC::$configDir.'/CAN_INSTALL') && !isset($this->cache['version'])) { + if (!is_file(\OC::$configDir . '/CAN_INSTALL') && !isset($this->cache['version'])) { throw new HintException(sprintf('Configuration was not read or initialized correctly, not overwriting %s', $this->configFilePath)); } diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php index 22dc8d0c65eb3..1b6200897367e 100644 --- a/lib/private/Console/Application.php +++ b/lib/private/Console/Application.php @@ -47,7 +47,7 @@ public function __construct( */ public function loadCommands( InputInterface $input, - ConsoleOutputInterface $output + ConsoleOutputInterface $output, ): void { // $application is required to be defined in the register_command scripts $application = $this->application; diff --git a/lib/private/Contacts/ContactsMenu/ContactsStore.php b/lib/private/Contacts/ContactsMenu/ContactsStore.php index d15e6e35706e9..a502a58366d7f 100644 --- a/lib/private/Contacts/ContactsMenu/ContactsStore.php +++ b/lib/private/Contacts/ContactsMenu/ContactsStore.php @@ -163,7 +163,7 @@ public function getContacts(IUser $user, ?string $filter, ?int $limit = null, ?i private function filterContacts( IUser $self, array $entries, - ?string $filter + ?string $filter, ): array { $disallowEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') !== 'yes'; $restrictEnumerationGroup = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes'; diff --git a/lib/private/DB/Adapter.php b/lib/private/DB/Adapter.php index 71824bda9e8a3..8f1b8e6d75f48 100644 --- a/lib/private/DB/Adapter.php +++ b/lib/private/DB/Adapter.php @@ -51,7 +51,7 @@ public function fixupStatement($statement) { */ public function lockTable(string $tableName) { $this->conn->beginTransaction(); - $this->conn->executeUpdate('LOCK TABLE `' .$tableName . '` IN EXCLUSIVE MODE'); + $this->conn->executeUpdate('LOCK TABLE `' . $tableName . '` IN EXCLUSIVE MODE'); } /** diff --git a/lib/private/DB/AdapterMySQL.php b/lib/private/DB/AdapterMySQL.php index 598dbc4de20b5..63c75607379a3 100644 --- a/lib/private/DB/AdapterMySQL.php +++ b/lib/private/DB/AdapterMySQL.php @@ -15,7 +15,7 @@ class AdapterMySQL extends Adapter { * @param string $tableName */ public function lockTable($tableName) { - $this->conn->executeUpdate('LOCK TABLES `' .$tableName . '` WRITE'); + $this->conn->executeUpdate('LOCK TABLES `' . $tableName . '` WRITE'); } public function unlockTable() { diff --git a/lib/private/DB/AdapterSqlite.php b/lib/private/DB/AdapterSqlite.php index 0023ee1536415..aeadf55ecf7b5 100644 --- a/lib/private/DB/AdapterSqlite.php +++ b/lib/private/DB/AdapterSqlite.php @@ -50,7 +50,7 @@ public function insertIfNotExist($table, $input, ?array $compare = null) { } $fieldList = '`' . implode('`,`', array_keys($input)) . '`'; $query = "INSERT INTO `$table` ($fieldList) SELECT " - . str_repeat('?,', count($input) - 1).'? ' + . str_repeat('?,', count($input) - 1) . '? ' . " WHERE NOT EXISTS (SELECT 1 FROM `$table` WHERE "; $inserts = array_values($input); diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php index ecc6d09bc9536..55e61a7be141e 100644 --- a/lib/private/DB/Connection.php +++ b/lib/private/DB/Connection.php @@ -117,7 +117,7 @@ public function __construct( private array $params, Driver $driver, ?Configuration $config = null, - ?EventManager $eventManager = null + ?EventManager $eventManager = null, ) { if (!isset($params['adapter'])) { throw new \Exception('adapter not set'); @@ -664,9 +664,9 @@ public function getError() { $msg = $this->errorCode() . ': '; $errorInfo = $this->errorInfo(); if (!empty($errorInfo)) { - $msg .= 'SQLSTATE = '.$errorInfo[0] . ', '; - $msg .= 'Driver Code = '.$errorInfo[1] . ', '; - $msg .= 'Driver Message = '.$errorInfo[2]; + $msg .= 'SQLSTATE = ' . $errorInfo[0] . ', '; + $msg .= 'Driver Code = ' . $errorInfo[1] . ', '; + $msg .= 'Driver Message = ' . $errorInfo[2]; } return $msg; } diff --git a/lib/private/DB/DbDataCollector.php b/lib/private/DB/DbDataCollector.php index fcaa74daeab7c..e3c7cd3585512 100644 --- a/lib/private/DB/DbDataCollector.php +++ b/lib/private/DB/DbDataCollector.php @@ -111,7 +111,7 @@ private function sanitizeParam($var, ?\Throwable $error): array { } if ($error) { - return ['⚠ '.$error->getMessage(), false, false]; + return ['⚠ ' . $error->getMessage(), false, false]; } if (\is_array($var)) { diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php index 61a6d2baf1662..0b59509eaabd4 100644 --- a/lib/private/DB/MigrationService.php +++ b/lib/private/DB/MigrationService.php @@ -396,7 +396,7 @@ public function migrate(string $to = 'latest', bool $schemaOnly = false): void { } catch (\Exception $e) { // The exception itself does not contain the name of the migration, // so we wrap it here, to make debugging easier. - throw new \Exception('Database error when running migration ' . $version . ' for app ' . $this->getApp() . PHP_EOL. $e->getMessage(), 0, $e); + throw new \Exception('Database error when running migration ' . $version . ' for app ' . $this->getApp() . PHP_EOL . $e->getMessage(), 0, $e); } } } diff --git a/lib/private/DB/MigratorExecuteSqlEvent.php b/lib/private/DB/MigratorExecuteSqlEvent.php index cfcfe7fa512da..340cd63630093 100644 --- a/lib/private/DB/MigratorExecuteSqlEvent.php +++ b/lib/private/DB/MigratorExecuteSqlEvent.php @@ -18,7 +18,7 @@ class MigratorExecuteSqlEvent extends Event { public function __construct( string $sql, int $current, - int $max + int $max, ) { $this->sql = $sql; $this->current = $current; diff --git a/lib/private/DB/QueryBuilder/CompositeExpression.php b/lib/private/DB/QueryBuilder/CompositeExpression.php index 6edf385360c36..bcdbce8c5cb3b 100644 --- a/lib/private/DB/QueryBuilder/CompositeExpression.php +++ b/lib/private/DB/QueryBuilder/CompositeExpression.php @@ -16,7 +16,7 @@ class CompositeExpression implements ICompositeExpression, \Countable { public function __construct( private string $type, - private array $parts = [] + private array $parts = [], ) { } diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php index a8dc4d8cf14f4..6791430b1b049 100644 --- a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php +++ b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php @@ -15,7 +15,7 @@ public function md5($input): IQueryFunction { if (version_compare($this->connection->getServerVersion(), '20', '>=')) { return new QueryFunction('LOWER(STANDARD_HASH(' . $this->helper->quoteColumnName($input) . ", 'MD5'))"); } - return new QueryFunction('LOWER(DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw(' . $this->helper->quoteColumnName($input) .')))'); + return new QueryFunction('LOWER(DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw(' . $this->helper->quoteColumnName($input) . ')))'); } /** diff --git a/lib/private/DB/QueryBuilder/Partitioned/PartitionedResult.php b/lib/private/DB/QueryBuilder/Partitioned/PartitionedResult.php index aa9cc43b38bf4..b3b59e26298f4 100644 --- a/lib/private/DB/QueryBuilder/Partitioned/PartitionedResult.php +++ b/lib/private/DB/QueryBuilder/Partitioned/PartitionedResult.php @@ -24,7 +24,7 @@ class PartitionedResult extends ArrayResult { */ public function __construct( private array $splitOfParts, - private IResult $result + private IResult $result, ) { parent::__construct([]); } diff --git a/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php b/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php index 45f24e326858c..81530b567257d 100644 --- a/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php +++ b/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php @@ -16,7 +16,7 @@ */ class CrossShardMoveHelper { public function __construct( - private ShardConnectionManager $connectionManager + private ShardConnectionManager $connectionManager, ) { } diff --git a/lib/private/DirectEditing/Manager.php b/lib/private/DirectEditing/Manager.php index 4b8c6af31e231..7503ad9425890 100644 --- a/lib/private/DirectEditing/Manager.php +++ b/lib/private/DirectEditing/Manager.php @@ -59,7 +59,7 @@ public function __construct( IUserSession $userSession, IRootFolder $rootFolder, IFactory $l10nFactory, - EncryptionManager $encryptionManager + EncryptionManager $encryptionManager, ) { $this->random = $random; $this->connection = $connection; diff --git a/lib/private/Encryption/DecryptAll.php b/lib/private/Encryption/DecryptAll.php index 0007467298ce7..70dd0c0f0b0c2 100644 --- a/lib/private/Encryption/DecryptAll.php +++ b/lib/private/Encryption/DecryptAll.php @@ -29,7 +29,7 @@ class DecryptAll { public function __construct( protected IManager $encryptionManager, protected IUserManager $userManager, - protected View $rootView + protected View $rootView, ) { $this->failed = []; } diff --git a/lib/private/Encryption/EncryptionWrapper.php b/lib/private/Encryption/EncryptionWrapper.php index aec93a3ce4d85..7f355b603d620 100644 --- a/lib/private/Encryption/EncryptionWrapper.php +++ b/lib/private/Encryption/EncryptionWrapper.php @@ -39,7 +39,7 @@ class EncryptionWrapper { */ public function __construct(ArrayCache $arrayCache, Manager $manager, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->arrayCache = $arrayCache; $this->manager = $manager; diff --git a/lib/private/Encryption/Exceptions/EncryptionHeaderKeyExistsException.php b/lib/private/Encryption/Exceptions/EncryptionHeaderKeyExistsException.php index 07007dc0ec195..52f488e29560a 100644 --- a/lib/private/Encryption/Exceptions/EncryptionHeaderKeyExistsException.php +++ b/lib/private/Encryption/Exceptions/EncryptionHeaderKeyExistsException.php @@ -14,6 +14,6 @@ class EncryptionHeaderKeyExistsException extends GenericEncryptionException { * @param string $key */ public function __construct($key) { - parent::__construct('header key "'. $key . '" already reserved by ownCloud'); + parent::__construct('header key "' . $key . '" already reserved by ownCloud'); } } diff --git a/lib/private/Encryption/Keys/Storage.php b/lib/private/Encryption/Keys/Storage.php index 532d1a51dd694..2c0ce9e5ef30d 100644 --- a/lib/private/Encryption/Keys/Storage.php +++ b/lib/private/Encryption/Keys/Storage.php @@ -57,8 +57,8 @@ public function __construct(View $view, Util $util, ICrypto $crypto, IConfig $co $this->util = $util; $this->encryption_base_dir = '/files_encryption'; - $this->keys_base_dir = $this->encryption_base_dir .'/keys'; - $this->backup_base_dir = $this->encryption_base_dir .'/backup'; + $this->keys_base_dir = $this->encryption_base_dir . '/keys'; + $this->backup_base_dir = $this->encryption_base_dir . '/backup'; $this->root_dir = $this->util->getKeyStorageRoot(); $this->crypto = $crypto; $this->config = $config; diff --git a/lib/private/Encryption/Update.php b/lib/private/Encryption/Update.php index 6fee1afbe5c56..0b27d63c19a2a 100644 --- a/lib/private/Encryption/Update.php +++ b/lib/private/Encryption/Update.php @@ -49,7 +49,7 @@ public function __construct( Manager $encryptionManager, File $file, LoggerInterface $logger, - $uid + $uid, ) { $this->view = $view; $this->util = $util; diff --git a/lib/private/EventSource.php b/lib/private/EventSource.php index 18af6e3583250..1a005025ef929 100644 --- a/lib/private/EventSource.php +++ b/lib/private/EventSource.php @@ -51,7 +51,7 @@ protected function init(): void { header('Content-Type: text/event-stream'); } if (!$this->request->passesStrictCookieCheck()) { - header('Location: '.\OC::$WEBROOT); + header('Location: ' . \OC::$WEBROOT); exit(); } if (!$this->request->passesCSRFCheck()) { @@ -74,7 +74,7 @@ protected function init(): void { */ public function send($type, $data = null) { if ($data and !preg_match('/^[A-Za-z0-9_]+$/', $type)) { - throw new \BadMethodCallException('Type needs to be alphanumeric ('. $type .')'); + throw new \BadMethodCallException('Type needs to be alphanumeric (' . $type . ')'); } $this->init(); if (is_null($data)) { diff --git a/lib/private/Federation/CloudFederationProviderManager.php b/lib/private/Federation/CloudFederationProviderManager.php index 79b37b44c828d..be9e66fa9ec97 100644 --- a/lib/private/Federation/CloudFederationProviderManager.php +++ b/lib/private/Federation/CloudFederationProviderManager.php @@ -40,7 +40,7 @@ public function __construct( private IClientService $httpClientService, private ICloudIdManager $cloudIdManager, private IOCMDiscoveryService $discoveryService, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/Federation/CloudFederationShare.php b/lib/private/Federation/CloudFederationShare.php index aa86905f234c8..22e36d8731223 100644 --- a/lib/private/Federation/CloudFederationShare.php +++ b/lib/private/Federation/CloudFederationShare.php @@ -48,7 +48,7 @@ public function __construct($shareWith = '', $sharedByDisplayName = '', $shareType = '', $resourceType = '', - $sharedSecret = '' + $sharedSecret = '', ) { $this->setShareWith($shareWith); $this->setResourceName($name); diff --git a/lib/private/Federation/CloudIdManager.php b/lib/private/Federation/CloudIdManager.php index 69d48a148b321..f5c0035534ceb 100644 --- a/lib/private/Federation/CloudIdManager.php +++ b/lib/private/Federation/CloudIdManager.php @@ -36,7 +36,7 @@ public function __construct( IURLGenerator $urlGenerator, IUserManager $userManager, ICacheFactory $cacheFactory, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { $this->contactsManager = $contactsManager; $this->urlGenerator = $urlGenerator; diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php index 82f9ec3be66e3..a4d118f88485b 100644 --- a/lib/private/Files/Cache/QuerySearchHelper.php +++ b/lib/private/Files/Cache/QuerySearchHelper.php @@ -54,7 +54,7 @@ protected function applySearchConstraints( CacheQueryBuilder $query, ISearchQuery $searchQuery, array $caches, - ?IMetadataQuery $metadataQuery = null + ?IMetadataQuery $metadataQuery = null, ): void { $storageFilters = array_values(array_map(function (ICache $cache) { return $cache->getQueryFilterForStorage(); diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php index 6e1c86eed4737..3bd674f79e276 100644 --- a/lib/private/Files/Cache/Scanner.php +++ b/lib/private/Files/Cache/Scanner.php @@ -489,7 +489,7 @@ private function handleChildren(string $path, $recursive, int $reuse, int $folde $file = trim(\OC\Files\Filesystem::normalizePath($originalFile), '/'); if (trim($originalFile, '/') !== $file) { // encoding mismatch, might require compatibility wrapper - \OC::$server->get(LoggerInterface::class)->debug('Scanner: Skipping non-normalized file name "'. $originalFile . '" in path "' . $path . '".', ['app' => 'core']); + \OC::$server->get(LoggerInterface::class)->debug('Scanner: Skipping non-normalized file name "' . $originalFile . '" in path "' . $path . '".', ['app' => 'core']); $this->emit('\OC\Files\Cache\Scanner', 'normalizedNameMismatch', [$path ? $path . '/' . $originalFile : $originalFile]); // skip this entry continue; diff --git a/lib/private/Files/Cache/SearchBuilder.php b/lib/private/Files/Cache/SearchBuilder.php index 41f942cab039f..e89b95b756ff8 100644 --- a/lib/private/Files/Cache/SearchBuilder.php +++ b/lib/private/Files/Cache/SearchBuilder.php @@ -84,7 +84,7 @@ class SearchBuilder { private $mimetypeLoader; public function __construct( - IMimeTypeLoader $mimetypeLoader + IMimeTypeLoader $mimetypeLoader, ) { $this->mimetypeLoader = $mimetypeLoader; } @@ -110,7 +110,7 @@ public function extractRequestedFields(ISearchOperator $operator): array { public function searchOperatorArrayToDBExprArray( IQueryBuilder $builder, array $operators, - ?IMetadataQuery $metadataQuery = null + ?IMetadataQuery $metadataQuery = null, ) { return array_filter(array_map(function ($operator) use ($builder, $metadataQuery) { return $this->searchOperatorToDBExpr($builder, $operator, $metadataQuery); @@ -120,7 +120,7 @@ public function searchOperatorArrayToDBExprArray( public function searchOperatorToDBExpr( IQueryBuilder $builder, ISearchOperator $operator, - ?IMetadataQuery $metadataQuery = null + ?IMetadataQuery $metadataQuery = null, ) { $expr = $builder->expr(); @@ -156,7 +156,7 @@ private function searchComparisonToDBExpr( IQueryBuilder $builder, ISearchComparison $comparison, array $operatorMap, - ?IMetadataQuery $metadataQuery = null + ?IMetadataQuery $metadataQuery = null, ) { if ($comparison->getExtra()) { [$field, $value, $type, $paramType] = $this->getExtraOperatorField($comparison, $metadataQuery); diff --git a/lib/private/Files/Config/CachedMountFileInfo.php b/lib/private/Files/Config/CachedMountFileInfo.php index 41dbec87ef58d..90a6b47f9d8f4 100644 --- a/lib/private/Files/Config/CachedMountFileInfo.php +++ b/lib/private/Files/Config/CachedMountFileInfo.php @@ -19,7 +19,7 @@ public function __construct( ?int $mountId, string $mountProvider, string $rootInternalPath, - string $internalPath + string $internalPath, ) { parent::__construct($user, $storageId, $rootId, $mountPoint, $mountProvider, $mountId, $rootInternalPath); $this->internalPath = $internalPath; diff --git a/lib/private/Files/Config/CachedMountInfo.php b/lib/private/Files/Config/CachedMountInfo.php index 80423dcae40fd..79dd6c6ea1da0 100644 --- a/lib/private/Files/Config/CachedMountInfo.php +++ b/lib/private/Files/Config/CachedMountInfo.php @@ -39,7 +39,7 @@ public function __construct( string $mountPoint, string $mountProvider, ?int $mountId = null, - string $rootInternalPath = '' + string $rootInternalPath = '', ) { $this->user = $user; $this->storageId = $storageId; diff --git a/lib/private/Files/Config/MountProviderCollection.php b/lib/private/Files/Config/MountProviderCollection.php index 1dbc469c8c3b1..6a5407934c850 100644 --- a/lib/private/Files/Config/MountProviderCollection.php +++ b/lib/private/Files/Config/MountProviderCollection.php @@ -58,7 +58,7 @@ class MountProviderCollection implements IMountProviderCollection, Emitter { public function __construct( IStorageFactory $loader, IUserMountCache $mountCache, - IEventLogger $eventLogger + IEventLogger $eventLogger, ) { $this->loader = $loader; $this->mountCache = $mountCache; diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index 94da770b63f06..ad8061b1a8cb4 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -49,7 +49,7 @@ public function __construct( IDBConnection $connection, IUserManager $userManager, LoggerInterface $logger, - IEventLogger $eventLogger + IEventLogger $eventLogger, ) { $this->connection = $connection; $this->userManager = $userManager; diff --git a/lib/private/Files/Mount/HomeMountPoint.php b/lib/private/Files/Mount/HomeMountPoint.php index 0aa4b54ddf071..5a648f08c8978 100644 --- a/lib/private/Files/Mount/HomeMountPoint.php +++ b/lib/private/Files/Mount/HomeMountPoint.php @@ -22,7 +22,7 @@ public function __construct( ?IStorageFactory $loader = null, ?array $mountOptions = null, ?int $mountId = null, - ?string $mountProvider = null + ?string $mountProvider = null, ) { parent::__construct($storage, $mountpoint, $arguments, $loader, $mountOptions, $mountId, $mountProvider); $this->user = $user; diff --git a/lib/private/Files/Mount/Manager.php b/lib/private/Files/Mount/Manager.php index d118021afa2eb..55de488c726cd 100644 --- a/lib/private/Files/Mount/Manager.php +++ b/lib/private/Files/Mount/Manager.php @@ -104,7 +104,7 @@ public function find(string $path): IMountPoint { } } - throw new NotFoundException('No mount for path ' . $path . ' existing mounts (' . count($this->mounts) .'): ' . implode(',', array_keys($this->mounts))); + throw new NotFoundException('No mount for path ' . $path . ' existing mounts (' . count($this->mounts) . '): ' . implode(',', array_keys($this->mounts))); } /** diff --git a/lib/private/Files/Mount/MountPoint.php b/lib/private/Files/Mount/MountPoint.php index cb3a3e8a22d0f..7a5a87be35b17 100644 --- a/lib/private/Files/Mount/MountPoint.php +++ b/lib/private/Files/Mount/MountPoint.php @@ -75,7 +75,7 @@ public function __construct( ?IStorageFactory $loader = null, ?array $mountOptions = null, ?int $mountId = null, - ?string $mountProvider = null + ?string $mountProvider = null, ) { if (is_null($arguments)) { $arguments = []; diff --git a/lib/private/Files/Node/HookConnector.php b/lib/private/Files/Node/HookConnector.php index 8fd2ffa33695c..423eea258ed6c 100644 --- a/lib/private/Files/Node/HookConnector.php +++ b/lib/private/Files/Node/HookConnector.php @@ -39,7 +39,7 @@ public function __construct( private IRootFolder $root, private View $view, private IEventDispatcher $dispatcher, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index 60affa4b89ea2..26823f65c2f0e 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -570,7 +570,7 @@ public function copyFromStorage( IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath, - $preserveMtime = false + $preserveMtime = false, ) { if ($sourceStorage->instanceOfStorage(ObjectStoreStorage::class)) { /** @var ObjectStoreStorage $sourceStorage */ @@ -703,7 +703,7 @@ public function putChunkedWritePart( string $writeToken, string $chunkId, $data, - $size = null + $size = null, ): ?array { if (!$this->objectStore instanceof IObjectStoreMultiPartUpload) { throw new GenericFileException('Object store does not support multipart upload'); diff --git a/lib/private/Files/ObjectStore/S3Signature.php b/lib/private/Files/ObjectStore/S3Signature.php index 4e9784ee81a1e..994d65cc21930 100644 --- a/lib/private/Files/ObjectStore/S3Signature.php +++ b/lib/private/Files/ObjectStore/S3Signature.php @@ -41,7 +41,7 @@ public function __construct() { public function signRequest( RequestInterface $request, - CredentialsInterface $credentials + CredentialsInterface $credentials, ) { $request = $this->prepareRequest($request, $credentials); $stringToSign = $this->createCanonicalizedString($request); @@ -56,7 +56,7 @@ public function presign( RequestInterface $request, CredentialsInterface $credentials, $expires, - array $options = [] + array $options = [], ) { $query = []; // URL encoding already occurs in the URI template expansion. Undo that @@ -106,7 +106,7 @@ public function presign( */ private function prepareRequest( RequestInterface $request, - CredentialsInterface $creds + CredentialsInterface $creds, ) { $modify = [ 'remove_headers' => ['X-Amz-Date'], @@ -129,7 +129,7 @@ private function signString($string, CredentialsInterface $credentials) { private function createCanonicalizedString( RequestInterface $request, - $expires = null + $expires = null, ) { $buffer = $request->getMethod() . "\n"; diff --git a/lib/private/Files/Search/SearchComparison.php b/lib/private/Files/Search/SearchComparison.php index e3a8f80050690..c1f0176afd9a2 100644 --- a/lib/private/Files/Search/SearchComparison.php +++ b/lib/private/Files/Search/SearchComparison.php @@ -20,7 +20,7 @@ public function __construct( private string $field, /** @var ParamValue $value */ private \DateTime|int|string|bool|array $value, - private string $extra = '' + private string $extra = '', ) { } diff --git a/lib/private/Files/Search/SearchOrder.php b/lib/private/Files/Search/SearchOrder.php index f3f62b933a14f..3dcbc02bc1a63 100644 --- a/lib/private/Files/Search/SearchOrder.php +++ b/lib/private/Files/Search/SearchOrder.php @@ -12,7 +12,7 @@ class SearchOrder implements ISearchOrder { public function __construct( private string $direction, private string $field, - private string $extra = '' + private string $extra = '', ) { } diff --git a/lib/private/Files/Search/SearchQuery.php b/lib/private/Files/Search/SearchQuery.php index 3c8711facd8e1..1793e42d34962 100644 --- a/lib/private/Files/Search/SearchQuery.php +++ b/lib/private/Files/Search/SearchQuery.php @@ -39,7 +39,7 @@ public function __construct( int $offset, array $order, ?IUser $user = null, - bool $limitToHome = false + bool $limitToHome = false, ) { $this->searchOperation = $searchOperation; $this->limit = $limit; diff --git a/lib/private/Files/SetupManager.php b/lib/private/Files/SetupManager.php index e74dd1042d69b..44c70bb5f3dd2 100644 --- a/lib/private/Files/SetupManager.php +++ b/lib/private/Files/SetupManager.php @@ -201,7 +201,7 @@ public function setupForUser(IUser $user): void { $this->setupForUserWith($user, function () use ($user) { $this->mountProviderCollection->addMountForUser($user, $this->mountManager, function ( - IMountProvider $provider + IMountProvider $provider, ) use ($user) { return !in_array(get_class($provider), $this->setupUserMountProviders[$user->getUID()]); }); @@ -542,7 +542,7 @@ private function listenForNewMountProviders() { if (!$this->listeningForProviders) { $this->listeningForProviders = true; $this->mountProviderCollection->listen('\OC\Files\Config', 'registerMountProvider', function ( - IMountProvider $provider + IMountProvider $provider, ) { foreach ($this->setupUsers as $userId) { $user = $this->userManager->get($userId); @@ -568,7 +568,7 @@ private function setupListeners() { $this->eventDispatcher->addListener(ShareCreatedEvent::class, function (ShareCreatedEvent $event) { $this->cache->remove($event->getShare()->getSharedWith()); }); - $this->eventDispatcher->addListener(InvalidateMountCacheEvent::class, function (InvalidateMountCacheEvent $event + $this->eventDispatcher->addListener(InvalidateMountCacheEvent::class, function (InvalidateMountCacheEvent $event, ) { if ($user = $event->getUser()) { $this->cache->remove($user->getUID()); diff --git a/lib/private/Files/Storage/CommonTest.php b/lib/private/Files/Storage/CommonTest.php index b92e493bc2cde..efdd36345785c 100644 --- a/lib/private/Files/Storage/CommonTest.php +++ b/lib/private/Files/Storage/CommonTest.php @@ -19,7 +19,7 @@ public function __construct($params) { } public function getId() { - return 'test::'.$this->storage->getId(); + return 'test::' . $this->storage->getId(); } public function mkdir($path) { return $this->storage->mkdir($path); diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 4c017082ceafd..87aa78887b507 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -163,13 +163,13 @@ protected function init() { $lastRequestStart = 0; $this->client->on('beforeRequest', function (RequestInterface $request) use (&$lastRequestStart) { - $this->logger->debug('sending dav ' . $request->getMethod() . ' request to external storage: ' . $request->getAbsoluteUrl(), ['app' => 'dav']); + $this->logger->debug('sending dav ' . $request->getMethod() . ' request to external storage: ' . $request->getAbsoluteUrl(), ['app' => 'dav']); $lastRequestStart = microtime(true); $this->eventLogger->start('fs:storage:dav:request', 'Sending dav request to external storage'); }); $this->client->on('afterRequest', function (RequestInterface $request) use (&$lastRequestStart) { $elapsed = microtime(true) - $lastRequestStart; - $this->logger->debug('dav ' . $request->getMethod() . ' request to external storage: ' . $request->getAbsoluteUrl() . ' took ' . round($elapsed * 1000, 1) . 'ms', ['app' => 'dav']); + $this->logger->debug('dav ' . $request->getMethod() . ' request to external storage: ' . $request->getAbsoluteUrl() . ' took ' . round($elapsed * 1000, 1) . 'ms', ['app' => 'dav']); $this->eventLogger->end('fs:storage:dav:request'); }); } diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php index 1ead1c342b084..3b45e996f5de5 100644 --- a/lib/private/Files/Storage/Wrapper/Encryption.php +++ b/lib/private/Files/Storage/Wrapper/Encryption.php @@ -86,7 +86,7 @@ public function __construct( ?IStorage $keyStorage = null, ?Update $update = null, ?Manager $mountManager = null, - ?ArrayCache $arrayCache = null + ?ArrayCache $arrayCache = null, ) { $this->mountPoint = $parameters['mountPoint']; $this->mount = $parameters['mount']; @@ -628,7 +628,7 @@ public function moveFromStorage( Storage\IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath, - $preserveMtime = true + $preserveMtime = true, ) { if ($sourceStorage === $this) { return $this->rename($sourceInternalPath, $targetInternalPath); @@ -669,7 +669,7 @@ public function copyFromStorage( $sourceInternalPath, $targetInternalPath, $preserveMtime = false, - $isRename = false + $isRename = false, ) { // TODO clean this up once the underlying moveFromStorage in OC\Files\Storage\Wrapper\Common is fixed: // - call $this->storage->copyFromStorage() instead of $this->copyBetweenStorage @@ -694,7 +694,7 @@ private function updateEncryptedVersion( $sourceInternalPath, $targetInternalPath, $isRename, - $keepEncryptionVersion + $keepEncryptionVersion, ) { $isEncrypted = $this->encryptionManager->isEnabled() && $this->shouldEncrypt($targetInternalPath); $cacheInformation = [ @@ -749,7 +749,7 @@ private function copyBetweenStorage( $sourceInternalPath, $targetInternalPath, $preserveMtime, - $isRename + $isRename, ) { // for versions we have nothing to do, because versions should always use the // key from the original file. Just create a 1:1 copy and done diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index e61b47202890f..865af4eb90c96 100644 --- a/lib/private/Files/Template/TemplateManager.php +++ b/lib/private/Files/Template/TemplateManager.php @@ -63,7 +63,7 @@ public function __construct( IPreview $previewManager, IConfig $config, IFactory $l10nFactory, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->serverContainer = $serverContainer; $this->eventDispatcher = $eventDispatcher; diff --git a/lib/private/FilesMetadata/FilesMetadataManager.php b/lib/private/FilesMetadata/FilesMetadataManager.php index 5c1acb77ea7b0..f2ea6cb11a7b6 100644 --- a/lib/private/FilesMetadata/FilesMetadataManager.php +++ b/lib/private/FilesMetadata/FilesMetadataManager.php @@ -75,7 +75,7 @@ public function __construct( public function refreshMetadata( Node $node, int $process = self::PROCESS_LIVE, - string $namedEvent = '' + string $namedEvent = '', ): IFilesMetadata { try { $metadata = $this->metadataRequestService->getMetadataFromFileId($node->getId()); @@ -224,7 +224,7 @@ public function deleteMetadata(int $fileId): void { public function getMetadataQuery( IQueryBuilder $qb, string $fileTableAlias, - string $fileIdField + string $fileIdField, ): IMetadataQuery { return new MetadataQuery($qb, $this, $fileTableAlias, $fileIdField); } @@ -273,7 +273,7 @@ public function initMetadata( string $key, string $type, bool $indexed = false, - int $editPermission = IMetadataValueWrapper::EDIT_FORBIDDEN + int $editPermission = IMetadataValueWrapper::EDIT_FORBIDDEN, ): void { $current = $this->getKnownMetadata(); try { diff --git a/lib/private/FilesMetadata/Job/UpdateSingleMetadata.php b/lib/private/FilesMetadata/Job/UpdateSingleMetadata.php index c4b0117db13db..5746493ddef43 100644 --- a/lib/private/FilesMetadata/Job/UpdateSingleMetadata.php +++ b/lib/private/FilesMetadata/Job/UpdateSingleMetadata.php @@ -29,7 +29,7 @@ public function __construct( ITimeFactory $time, private IRootFolder $rootFolder, private FilesMetadataManager $filesMetadataManager, - private LoggerInterface $logger + private LoggerInterface $logger, ) { parent::__construct($time); } diff --git a/lib/private/FilesMetadata/Listener/MetadataDelete.php b/lib/private/FilesMetadata/Listener/MetadataDelete.php index c0a6fc758c13b..226bd3bdafa92 100644 --- a/lib/private/FilesMetadata/Listener/MetadataDelete.php +++ b/lib/private/FilesMetadata/Listener/MetadataDelete.php @@ -23,7 +23,7 @@ class MetadataDelete implements IEventListener { public function __construct( private IFilesMetadataManager $filesMetadataManager, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/FilesMetadata/Listener/MetadataUpdate.php b/lib/private/FilesMetadata/Listener/MetadataUpdate.php index 05422ba5abae5..4c5c913c740a7 100644 --- a/lib/private/FilesMetadata/Listener/MetadataUpdate.php +++ b/lib/private/FilesMetadata/Listener/MetadataUpdate.php @@ -26,7 +26,7 @@ class MetadataUpdate implements IEventListener { public function __construct( private IFilesMetadataManager $filesMetadataManager, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/FilesMetadata/MetadataQuery.php b/lib/private/FilesMetadata/MetadataQuery.php index aac93a23446ef..deae433e2fc1f 100644 --- a/lib/private/FilesMetadata/MetadataQuery.php +++ b/lib/private/FilesMetadata/MetadataQuery.php @@ -32,7 +32,7 @@ public function __construct( private string $fileTableAlias = 'fc', private string $fileIdField = 'fileid', private string $alias = 'meta', - private string $aliasIndexPrefix = 'meta_index' + private string $aliasIndexPrefix = 'meta_index', ) { if ($manager instanceof IFilesMetadata) { /** diff --git a/lib/private/FilesMetadata/Model/FilesMetadata.php b/lib/private/FilesMetadata/Model/FilesMetadata.php index dfeb429507a3a..d338bdbba8fb8 100644 --- a/lib/private/FilesMetadata/Model/FilesMetadata.php +++ b/lib/private/FilesMetadata/Model/FilesMetadata.php @@ -29,7 +29,7 @@ class FilesMetadata implements IFilesMetadata { private string $syncToken = ''; public function __construct( - private int $fileId = 0 + private int $fileId = 0, ) { } diff --git a/lib/private/FilesMetadata/Service/IndexRequestService.php b/lib/private/FilesMetadata/Service/IndexRequestService.php index b50fb3783254c..91bd9f0b11e3a 100644 --- a/lib/private/FilesMetadata/Service/IndexRequestService.php +++ b/lib/private/FilesMetadata/Service/IndexRequestService.php @@ -25,7 +25,7 @@ class IndexRequestService { public function __construct( private IDBConnection $dbConnection, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/FilesMetadata/Service/MetadataRequestService.php b/lib/private/FilesMetadata/Service/MetadataRequestService.php index b58912b0216b8..5fc02c5d00bb7 100644 --- a/lib/private/FilesMetadata/Service/MetadataRequestService.php +++ b/lib/private/FilesMetadata/Service/MetadataRequestService.php @@ -24,7 +24,7 @@ class MetadataRequestService { public function __construct( private IDBConnection $dbConnection, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php index d18c7796805a9..bd46780a602a3 100644 --- a/lib/private/Group/Manager.php +++ b/lib/private/Group/Manager.php @@ -238,7 +238,7 @@ public function createGroup($gid) { } elseif ($group = $this->get($gid)) { return $group; } elseif (mb_strlen($gid) > self::MAX_GROUP_LENGTH) { - throw new \Exception('Group name is limited to '. self::MAX_GROUP_LENGTH.' characters'); + throw new \Exception('Group name is limited to ' . self::MAX_GROUP_LENGTH . ' characters'); } else { $this->dispatcher->dispatchTyped(new BeforeGroupCreatedEvent($gid)); $this->emit('\OC\Group', 'preCreate', [$gid]); diff --git a/lib/private/Group/MetaData.php b/lib/private/Group/MetaData.php index fe0d931cb09b5..77432eea5ff4f 100644 --- a/lib/private/Group/MetaData.php +++ b/lib/private/Group/MetaData.php @@ -31,7 +31,7 @@ public function __construct( private bool $isAdmin, private bool $isDelegatedAdmin, private IGroupManager $groupManager, - private IUserSession $userSession + private IUserSession $userSession, ) { } diff --git a/lib/private/Http/Client/Client.php b/lib/private/Http/Client/Client.php index 0b72522c218ec..40ce012cd1a0d 100644 --- a/lib/private/Http/Client/Client.php +++ b/lib/private/Http/Client/Client.php @@ -61,7 +61,7 @@ private function buildRequestOptions(array $options): array { $onRedirectFunction = function ( \Psr\Http\Message\RequestInterface $request, \Psr\Http\Message\ResponseInterface $response, - \Psr\Http\Message\UriInterface $uri + \Psr\Http\Message\UriInterface $uri, ) use ($options) { $this->preventLocalAddress($uri->__toString(), $options); }; @@ -167,7 +167,7 @@ protected function preventLocalAddress(string $uri, array $options): void { throw new LocalServerException('Could not detect any host'); } if (!$this->remoteHostValidator->isValid($host)) { - throw new LocalServerException('Host "'.$host.'" violates local access rules'); + throw new LocalServerException('Host "' . $host . '" violates local access rules'); } } diff --git a/lib/private/Http/Client/DnsPinMiddleware.php b/lib/private/Http/Client/DnsPinMiddleware.php index fcf0818ebb953..6618f22d825e2 100644 --- a/lib/private/Http/Client/DnsPinMiddleware.php +++ b/lib/private/Http/Client/DnsPinMiddleware.php @@ -19,7 +19,7 @@ class DnsPinMiddleware { public function __construct( NegativeDnsCache $negativeDnsCache, - IpAddressClassifier $ipAddressClassifier + IpAddressClassifier $ipAddressClassifier, ) { $this->negativeDnsCache = $negativeDnsCache; $this->ipAddressClassifier = $ipAddressClassifier; @@ -100,7 +100,7 @@ public function addDnsPinning() { return function (callable $handler) { return function ( RequestInterface $request, - array $options + array $options, ) use ($handler) { if ($options['nextcloud']['allow_local_address'] === true) { return $handler($request, $options); @@ -132,7 +132,7 @@ public function addDnsPinning() { foreach ($targetIps as $ip) { if ($this->ipAddressClassifier->isLocalAddress($ip)) { // TODO: continue with all non-local IPs? - throw new LocalServerException('Host "'.$ip.'" ('.$hostName.':'.$port.') violates local access rules'); + throw new LocalServerException('Host "' . $ip . '" (' . $hostName . ':' . $port . ') violates local access rules'); } $curlResolves["$hostName:$port"][] = $ip; } diff --git a/lib/private/InitialStateService.php b/lib/private/InitialStateService.php index 8d364a90f8427..c930ffd946665 100644 --- a/lib/private/InitialStateService.php +++ b/lib/private/InitialStateService.php @@ -47,12 +47,12 @@ public function provideInitialState(string $appName, string $key, $data): void { try { $this->states[$appName][$key] = json_encode($data, JSON_THROW_ON_ERROR); } catch (\JsonException $e) { - $this->logger->error('Invalid '. $key . ' data provided to provideInitialState by ' . $appName, ['exception' => $e]); + $this->logger->error('Invalid ' . $key . ' data provided to provideInitialState by ' . $appName, ['exception' => $e]); } return; } - $this->logger->warning('Invalid '. $key . ' data provided to provideInitialState by ' . $appName); + $this->logger->warning('Invalid ' . $key . ' data provided to provideInitialState by ' . $appName); } public function provideLazyInitialState(string $appName, string $key, Closure $closure): void { diff --git a/lib/private/Installer.php b/lib/private/Installer.php index e0f7644304e2b..d5500c07a3cf9 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -58,7 +58,7 @@ public function installApp(string $appId, bool $forceEnable = false): string { throw new \Exception('App not found in any app directory'); } - $basedir = $app['path'].'/'.$appId; + $basedir = $app['path'] . '/' . $appId; if (is_file($basedir . '/appinfo/database.xml')) { throw new \Exception('The appinfo/database.xml file is not longer supported. Used in ' . $appId); @@ -122,10 +122,10 @@ public function installApp(string $appId, bool $forceEnable = false): string { //set remote/public handlers foreach ($info['remote'] as $name => $path) { - $config->setAppValue('core', 'remote_'.$name, $info['id'].'/'.$path); + $config->setAppValue('core', 'remote_' . $name, $info['id'] . '/' . $path); } foreach ($info['public'] as $name => $path) { - $config->setAppValue('core', 'public_'.$name, $info['id'].'/'.$path); + $config->setAppValue('core', 'public_' . $name, $info['id'] . '/' . $path); } OC_App::setAppTypes($info['id']); @@ -410,8 +410,8 @@ private function isInstalledFromGit(string $appId): bool { if ($app === false) { return false; } - $basedir = $app['path'].'/'.$appId; - return file_exists($basedir.'/.git/'); + $basedir = $app['path'] . '/' . $appId; + return file_exists($basedir . '/.git/'); } /** @@ -453,7 +453,7 @@ public function removeApp(string $appId): bool { OC_Helper::rmdirr($appDir); return true; } else { - $this->logger->error('can\'t remove app '.$appId.'. It is not installed.'); + $this->logger->error('can\'t remove app ' . $appId . '. It is not installed.'); return false; } @@ -497,8 +497,8 @@ public static function installShippedApps(bool $softErrors = false, ?IOutput $ou foreach (\OC::$APPSROOTS as $app_dir) { if ($dir = opendir($app_dir['path'])) { while (false !== ($filename = readdir($dir))) { - if ($filename[0] !== '.' and is_dir($app_dir['path']."/$filename")) { - if (file_exists($app_dir['path']."/$filename/appinfo/info.xml")) { + if ($filename[0] !== '.' and is_dir($app_dir['path'] . "/$filename")) { + if (file_exists($app_dir['path'] . "/$filename/appinfo/info.xml")) { if ($config->getAppValue($filename, 'installed_version', null) === null) { $enabled = $appManager->isDefaultEnabled($filename); if (($enabled || in_array($filename, $appManager->getAlwaysEnabledApps())) @@ -571,10 +571,10 @@ public static function installShippedApp(string $app, ?IOutput $output = null): //set remote/public handlers foreach ($info['remote'] as $name => $path) { - $config->setAppValue('core', 'remote_'.$name, $app.'/'.$path); + $config->setAppValue('core', 'remote_' . $name, $app . '/' . $path); } foreach ($info['public'] as $name => $path) { - $config->setAppValue('core', 'public_'.$name, $app.'/'.$path); + $config->setAppValue('core', 'public_' . $name, $app . '/' . $path); } OC_App::setAppTypes($info['id']); diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php index 6443c43d210b4..a6a6155595753 100644 --- a/lib/private/IntegrityCheck/Checker.php +++ b/lib/private/IntegrityCheck/Checker.php @@ -290,7 +290,7 @@ private function verify(string $signaturePath, string $basePath, string $certifi // Check if certificate is signed by Nextcloud Root Authority $x509 = new \phpseclib\File\X509(); - $rootCertificatePublicKey = $this->fileAccessHelper->file_get_contents($this->environmentHelper->getServerRoot().'/resources/codesigning/root.crt'); + $rootCertificatePublicKey = $this->fileAccessHelper->file_get_contents($this->environmentHelper->getServerRoot() . '/resources/codesigning/root.crt'); $rootCerts = $this->splitCerts($rootCertificatePublicKey); foreach ($rootCerts as $rootCert) { @@ -383,7 +383,7 @@ public function hasPassedCheck(): bool { /** * @return array|null Either the results or null if no results available */ - public function getResults(): array|null { + public function getResults(): ?array { $cachedResults = $this->cache->get(self::CACHE_KEY); if (!\is_null($cachedResults) and $cachedResults !== false) { return json_decode($cachedResults, true); diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index fc76a15b07be9..7dd0704682d74 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -444,7 +444,7 @@ private function getLanguageFromRequest(?string $app = null): string { if ($preferred_language === strtolower($available_language)) { return $this->respectDefaultLanguage($app, $available_language); } - if (strtolower($available_language) === $preferred_language_parts[0].'_'.end($preferred_language_parts)) { + if (strtolower($available_language) === $preferred_language_parts[0] . '_' . end($preferred_language_parts)) { return $available_language; } } diff --git a/lib/private/Lock/AbstractLockingProvider.php b/lib/private/Lock/AbstractLockingProvider.php index aa203f6a90bed..d7e5976079c52 100644 --- a/lib/private/Lock/AbstractLockingProvider.php +++ b/lib/private/Lock/AbstractLockingProvider.php @@ -24,7 +24,9 @@ abstract class AbstractLockingProvider implements ILockingProvider { * * @param int $ttl how long until we clear stray locks in seconds */ - public function __construct(protected int $ttl) { + public function __construct( + protected int $ttl, + ) { } /** @inheritDoc */ diff --git a/lib/private/Lock/DBLockingProvider.php b/lib/private/Lock/DBLockingProvider.php index d19f2cf37914a..cb7f5cff35037 100644 --- a/lib/private/Lock/DBLockingProvider.php +++ b/lib/private/Lock/DBLockingProvider.php @@ -24,7 +24,7 @@ public function __construct( private IDBConnection $connection, private ITimeFactory $timeFactory, int $ttl = 3600, - private bool $cacheSharedLocks = true + private bool $cacheSharedLocks = true, ) { parent::__construct($ttl); } diff --git a/lib/private/Log.php b/lib/private/Log.php index 4f6003cf53d57..98de9bfa8585e 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -42,7 +42,7 @@ public function __construct( private IWriter $logger, private SystemConfig $config, private Normalizer $normalizer = new Normalizer(), - private ?IRegistry $crashReporters = null + private ?IRegistry $crashReporters = null, ) { } diff --git a/lib/private/Log/Errorlog.php b/lib/private/Log/Errorlog.php index d53b8b151a132..6188bb70fd5ec 100644 --- a/lib/private/Log/Errorlog.php +++ b/lib/private/Log/Errorlog.php @@ -26,6 +26,6 @@ public function __construct( * @param string|array $message */ public function write(string $app, $message, int $level): void { - error_log('[' . $this->tag . ']['.$app.']['.$level.'] '.$this->logDetailsAsJSON($app, $message, $level)); + error_log('[' . $this->tag . '][' . $app . '][' . $level . '] ' . $this->logDetailsAsJSON($app, $message, $level)); } } diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php index bc14de4ffdf13..ba428ba185b39 100644 --- a/lib/private/Log/File.php +++ b/lib/private/Log/File.php @@ -55,7 +55,7 @@ public function write(string $app, $message, int $level): void { @chmod($this->logFile, $this->logFileMode); } if ($handle) { - fwrite($handle, $entry."\n"); + fwrite($handle, $entry . "\n"); fclose($handle); } else { // Fall back to error_log @@ -91,7 +91,7 @@ public function getEntries(int $limit = 50, int $offset = 0): array { // Add the first character if at the start of the file, // because it doesn't hit the else in the loop if ($pos == 0) { - $line = $ch.$line; + $line = $ch . $line; } $entry = json_decode($line); // Add the line as an entry if it is passed the offset and is equal or above the log level @@ -105,7 +105,7 @@ public function getEntries(int $limit = 50, int $offset = 0): array { $line = ''; } } else { - $line = $ch.$line; + $line = $ch . $line; } $pos--; } diff --git a/lib/private/Log/LogFactory.php b/lib/private/Log/LogFactory.php index 612d98c97466e..bbe77de198cbe 100644 --- a/lib/private/Log/LogFactory.php +++ b/lib/private/Log/LogFactory.php @@ -49,7 +49,7 @@ public function getCustomPsrLogger(string $path, string $type = 'file', string $ } protected function buildLogFile(string $logFile = ''): File { - $defaultLogFile = $this->systemConfig->getValue('datadirectory', \OC::$SERVERROOT.'/data').'/nextcloud.log'; + $defaultLogFile = $this->systemConfig->getValue('datadirectory', \OC::$SERVERROOT . '/data') . '/nextcloud.log'; if ($logFile === '') { $logFile = $this->systemConfig->getValue('logfile', $defaultLogFile); } diff --git a/lib/private/Log/Rotate.php b/lib/private/Log/Rotate.php index f2fdb83623d0d..839c40726b768 100644 --- a/lib/private/Log/Rotate.php +++ b/lib/private/Log/Rotate.php @@ -27,7 +27,7 @@ public function run($argument): void { $this->maxSize = $config->getSystemValueInt('log_rotate_size', 100 * 1024 * 1024); if ($this->shouldRotateBySize()) { $rotatedFile = $this->rotate(); - $msg = 'Log file "'.$this->filePath.'" was over '.$this->maxSize.' bytes, moved to "'.$rotatedFile.'"'; + $msg = 'Log file "' . $this->filePath . '" was over ' . $this->maxSize . ' bytes, moved to "' . $rotatedFile . '"'; \OCP\Server::get(LoggerInterface::class)->info($msg, ['app' => Rotate::class]); } } diff --git a/lib/private/Log/Systemdlog.php b/lib/private/Log/Systemdlog.php index 4e33a4e5419ba..46de0f7db97d3 100644 --- a/lib/private/Log/Systemdlog.php +++ b/lib/private/Log/Systemdlog.php @@ -58,8 +58,8 @@ public function __construct( */ public function write(string $app, $message, int $level): void { $journal_level = $this->levels[$level]; - sd_journal_send('PRIORITY='.$journal_level, - 'SYSLOG_IDENTIFIER='.$this->syslogId, + sd_journal_send('PRIORITY=' . $journal_level, + 'SYSLOG_IDENTIFIER=' . $this->syslogId, 'MESSAGE=' . $this->logDetailsAsJSON($app, $message, $level)); } } diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php index 8dede9714f88d..2a5246c0019e2 100644 --- a/lib/private/Mail/Attachment.php +++ b/lib/private/Mail/Attachment.php @@ -22,7 +22,7 @@ public function __construct( private ?string $body, private ?string $name, private ?string $contentType, - private ?string $path = null + private ?string $path = null, ) { } diff --git a/lib/private/Mail/Provider/Manager.php b/lib/private/Mail/Provider/Manager.php index 14ffeac287b9c..6179162019813 100644 --- a/lib/private/Mail/Provider/Manager.php +++ b/lib/private/Mail/Provider/Manager.php @@ -125,7 +125,7 @@ public function providers(): array { * * @return IProvider|null */ - public function findProviderById(string $providerId): IProvider|null { + public function findProviderById(string $providerId): ?IProvider { // evaluate if we already have a cached collection of providers if (!is_array($this->providersCollection)) { @@ -178,7 +178,7 @@ public function services(string $userId): array { * * @return IService|null returns service object or null if none found */ - public function findServiceById(string $userId, string $serviceId, ?string $providerId = null): IService|null { + public function findServiceById(string $userId, string $serviceId, ?string $providerId = null): ?IService { // evaluate if provider id was specified if ($providerId !== null) { @@ -222,7 +222,7 @@ public function findServiceById(string $userId, string $serviceId, ?string $prov * * @return IService|null returns service object or null if none found */ - public function findServiceByAddress(string $userId, string $address, ?string $providerId = null): IService|null { + public function findServiceByAddress(string $userId, string $address, ?string $providerId = null): ?IService { // evaluate if provider id was specified if ($providerId !== null) { diff --git a/lib/private/Memcache/Factory.php b/lib/private/Memcache/Factory.php index 370130912d676..1d5bcdac16a41 100644 --- a/lib/private/Memcache/Factory.php +++ b/lib/private/Memcache/Factory.php @@ -55,7 +55,7 @@ public function __construct( ?string $localCacheClass = null, ?string $distributedCacheClass = null, ?string $lockingCacheClass = null, - string $logFile = '' + string $logFile = '', ) { $this->logFile = $logFile; diff --git a/lib/private/MemoryInfo.php b/lib/private/MemoryInfo.php index a90739a664337..9b5c709b4a94e 100644 --- a/lib/private/MemoryInfo.php +++ b/lib/private/MemoryInfo.php @@ -54,7 +54,7 @@ private function memoryLimitToBytes(string $memoryLimit): int|float { if (is_numeric($number)) { $memoryLimit = Util::numericToNumber($number); } else { - throw new \InvalidArgumentException($number.' is not a valid numeric string (in memory_limit ini directive)'); + throw new \InvalidArgumentException($number . ' is not a valid numeric string (in memory_limit ini directive)'); } // intended fall through diff --git a/lib/private/Migration/MetadataManager.php b/lib/private/Migration/MetadataManager.php index cdaa604ce5a02..fac9127a1236e 100644 --- a/lib/private/Migration/MetadataManager.php +++ b/lib/private/Migration/MetadataManager.php @@ -69,7 +69,7 @@ public function extractMigrationAttributes(string $appId): array { */ public function getMigrationsAttributesFromReleaseMetadata( array $metadata, - bool $filterKnownMigrations = false + bool $filterKnownMigrations = false, ): array { $appsAttributes = []; foreach (array_keys($metadata['apps']) as $appId) { diff --git a/lib/private/NaturalSort.php b/lib/private/NaturalSort.php index 9b097340b6372..09c043764a7a4 100644 --- a/lib/private/NaturalSort.php +++ b/lib/private/NaturalSort.php @@ -23,7 +23,7 @@ public function __construct($injectedCollator = null) { // or inject an instance of \OC\NaturalSort_DefaultCollator to force using Owncloud's default collator if (isset($injectedCollator)) { $this->collator = $injectedCollator; - \OC::$server->get(LoggerInterface::class)->debug('forced use of '.get_class($injectedCollator)); + \OC::$server->get(LoggerInterface::class)->debug('forced use of ' . get_class($injectedCollator)); } } diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php index 169c7aaf35081..12bef7daaf939 100644 --- a/lib/private/NavigationManager.php +++ b/lib/private/NavigationManager.php @@ -413,7 +413,7 @@ public function setUnreadCounter(string $id, int $unreadCounter): void { $this->unreadCounters[$id] = $unreadCounter; } - public function get(string $id): array|null { + public function get(string $id): ?array { $this->init(); foreach ($this->closureEntries as $c) { $this->add($c()); diff --git a/lib/private/OCS/DiscoveryService.php b/lib/private/OCS/DiscoveryService.php index fc9c1bd479633..85686e59b0238 100644 --- a/lib/private/OCS/DiscoveryService.php +++ b/lib/private/OCS/DiscoveryService.php @@ -27,7 +27,7 @@ class DiscoveryService implements IDiscoveryService { * @param IClientService $clientService */ public function __construct(ICacheFactory $cacheFactory, - IClientService $clientService + IClientService $clientService, ) { $this->cache = $cacheFactory->createDistributed('ocs-discovery'); $this->client = $clientService->newClient(); diff --git a/lib/private/OCS/Provider.php b/lib/private/OCS/Provider.php index 23547da94339d..402b6b7059d0c 100644 --- a/lib/private/OCS/Provider.php +++ b/lib/private/OCS/Provider.php @@ -18,9 +18,11 @@ class Provider extends Controller { * @param IRequest $request * @param IAppManager $appManager */ - public function __construct($appName, + public function __construct( + $appName, \OCP\IRequest $request, - private \OCP\App\IAppManager $appManager) { + private \OCP\App\IAppManager $appManager, + ) { parent::__construct($appName, $request); } diff --git a/lib/private/Preview/BackgroundCleanupJob.php b/lib/private/Preview/BackgroundCleanupJob.php index 44832a78eb91f..8449e73983cb7 100644 --- a/lib/private/Preview/BackgroundCleanupJob.php +++ b/lib/private/Preview/BackgroundCleanupJob.php @@ -172,7 +172,7 @@ private function getNewPreviewLocations(): \Iterator { private function getAllPreviewIds(string $previewRoot, int $chunkSize): \Iterator { // See `getNewPreviewLocations` for some more info about the logic here - $like = $this->connection->escapeLikeParameter($previewRoot). '/_/_/_/_/_/_/_/%'; + $like = $this->connection->escapeLikeParameter($previewRoot) . '/_/_/_/_/_/_/_/%'; $qb = $this->connection->getQueryBuilder(); $qb->select('name', 'fileid') diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index c7eb312182501..ef68c17b896f3 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -41,7 +41,7 @@ public function __construct( IPreview $previewManager, IAppData $appData, GeneratorHelper $helper, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, ) { $this->config = $config; $this->previewManager = $previewManager; diff --git a/lib/private/Preview/MimeIconProvider.php b/lib/private/Preview/MimeIconProvider.php index 167dd21b262d1..80545bd406368 100644 --- a/lib/private/Preview/MimeIconProvider.php +++ b/lib/private/Preview/MimeIconProvider.php @@ -22,7 +22,7 @@ public function __construct( ) { } - public function getMimeIconUrl(string $mime): null|string { + public function getMimeIconUrl(string $mime): ?string { if (!$mime) { return null; } @@ -55,7 +55,7 @@ public function getMimeIconUrl(string $mime): null|string { return null; } - private function searchfileName(string $fileName): null|string { + private function searchfileName(string $fileName): ?string { // If the file exists in the current enabled legacy // custom theme, let's return it $theme = $this->config->getSystemValue('theme', ''); diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 6f43687ceea86..ae0aa42a522f4 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -62,7 +62,7 @@ public function __construct( Coordinator $bootstrapCoordinator, IServerContainer $container, IBinaryFinder $binaryFinder, - IMagickSupport $imagickSupport + IMagickSupport $imagickSupport, ) { $this->config = $config; $this->rootFolder = $rootFolder; diff --git a/lib/private/Profiler/FileProfilerStorage.php b/lib/private/Profiler/FileProfilerStorage.php index b4494ef7a378a..a4021d064a95e 100644 --- a/lib/private/Profiler/FileProfilerStorage.php +++ b/lib/private/Profiler/FileProfilerStorage.php @@ -96,7 +96,7 @@ public function read(string $token): ?IProfile { } if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; + $file = 'compress.zlib://' . $file; } return $this->createProfileFromData($token, unserialize(file_get_contents($file))); @@ -140,7 +140,7 @@ public function write(IProfile $profile): bool { $context = stream_context_create(); if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; + $file = 'compress.zlib://' . $file; stream_context_set_option($context, 'zlib', 'level', 3); } @@ -178,7 +178,7 @@ protected function getFilename(string $token): string { $folderA = substr($token, -2, 2); $folderB = substr($token, -4, 2); - return $this->folder.'/'.$folderA.'/'.$folderB.'/'.$token; + return $this->folder . '/' . $folderA . '/' . $folderB . '/' . $token; } /** @@ -187,7 +187,7 @@ protected function getFilename(string $token): string { * @return string The index filename */ protected function getIndexFilename(): string { - return $this->folder.'/index.csv'; + return $this->folder . '/index.csv'; } /** @@ -220,12 +220,12 @@ protected function readLineFromFile($file): ?string { $buffer = fread($file, $chunkSize); if (false === ($upTo = strrpos($buffer, "\n"))) { - $line = $buffer.$line; + $line = $buffer . $line; continue; } $position += $upTo; - $line = substr($buffer, $upTo + 1).$line; + $line = substr($buffer, $upTo + 1) . $line; fseek($file, max(0, $position), \SEEK_SET); if ($line !== '') { @@ -258,7 +258,7 @@ protected function createProfileFromData(string $token, array $data, ?IProfile $ } if (\function_exists('gzcompress')) { - $file = 'compress.zlib://'.$file; + $file = 'compress.zlib://' . $file; } $profile->addChild($this->createProfileFromData($token, unserialize(file_get_contents($file)), $profile)); diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 9d079aabd296c..42d3cfb4910bc 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -77,7 +77,7 @@ class Repair implements IOutput { public function __construct( private IEventDispatcher $dispatcher, - private LoggerInterface $logger + private LoggerInterface $logger, ) { } diff --git a/lib/private/Repair/Collation.php b/lib/private/Repair/Collation.php index 9557aabd7187e..5a309892bf097 100644 --- a/lib/private/Repair/Collation.php +++ b/lib/private/Repair/Collation.php @@ -33,7 +33,7 @@ public function __construct( IConfig $config, LoggerInterface $logger, IDBConnection $connection, - $ignoreFailures + $ignoreFailures, ) { $this->connection = $connection; $this->config = $config; diff --git a/lib/private/Repair/Events/RepairAdvanceEvent.php b/lib/private/Repair/Events/RepairAdvanceEvent.php index c4be72ce530dc..476db9e47028c 100644 --- a/lib/private/Repair/Events/RepairAdvanceEvent.php +++ b/lib/private/Repair/Events/RepairAdvanceEvent.php @@ -16,7 +16,7 @@ class RepairAdvanceEvent extends Event { public function __construct( int $increment, - string $description + string $description, ) { $this->increment = $increment; $this->description = $description; diff --git a/lib/private/Repair/Events/RepairErrorEvent.php b/lib/private/Repair/Events/RepairErrorEvent.php index 8cd5d41b1b470..e5be8a5a0311c 100644 --- a/lib/private/Repair/Events/RepairErrorEvent.php +++ b/lib/private/Repair/Events/RepairErrorEvent.php @@ -14,7 +14,7 @@ class RepairErrorEvent extends Event { private string $message; public function __construct( - string $message + string $message, ) { $this->message = $message; } diff --git a/lib/private/Repair/Events/RepairInfoEvent.php b/lib/private/Repair/Events/RepairInfoEvent.php index c48b295a9a974..ce8eb2f99e677 100644 --- a/lib/private/Repair/Events/RepairInfoEvent.php +++ b/lib/private/Repair/Events/RepairInfoEvent.php @@ -14,7 +14,7 @@ class RepairInfoEvent extends Event { private string $message; public function __construct( - string $message + string $message, ) { $this->message = $message; } diff --git a/lib/private/Repair/Events/RepairStartEvent.php b/lib/private/Repair/Events/RepairStartEvent.php index e154df5e6e1ed..47e713d57d997 100644 --- a/lib/private/Repair/Events/RepairStartEvent.php +++ b/lib/private/Repair/Events/RepairStartEvent.php @@ -16,7 +16,7 @@ class RepairStartEvent extends Event { public function __construct( int $max, - string $current + string $current, ) { $this->max = $max; $this->current = $current; diff --git a/lib/private/Repair/Events/RepairStepEvent.php b/lib/private/Repair/Events/RepairStepEvent.php index 7140d13687d7b..27e1efbdb08e9 100644 --- a/lib/private/Repair/Events/RepairStepEvent.php +++ b/lib/private/Repair/Events/RepairStepEvent.php @@ -14,7 +14,7 @@ class RepairStepEvent extends Event { private string $stepName; public function __construct( - string $stepName + string $stepName, ) { $this->stepName = $stepName; } diff --git a/lib/private/Repair/Events/RepairWarningEvent.php b/lib/private/Repair/Events/RepairWarningEvent.php index 403eec8715892..6893a7212eca1 100644 --- a/lib/private/Repair/Events/RepairWarningEvent.php +++ b/lib/private/Repair/Events/RepairWarningEvent.php @@ -14,7 +14,7 @@ class RepairWarningEvent extends Event { private string $message; public function __construct( - string $message + string $message, ) { $this->message = $message; } diff --git a/lib/private/Repair/RepairDavShares.php b/lib/private/Repair/RepairDavShares.php index 792fdd4033e01..36e3c397a3926 100644 --- a/lib/private/Repair/RepairDavShares.php +++ b/lib/private/Repair/RepairDavShares.php @@ -38,7 +38,7 @@ public function __construct( IConfig $config, IDBConnection $dbc, IGroupManager $groupManager, - LoggerInterface $logger + LoggerInterface $logger, ) { $this->config = $config; $this->dbc = $dbc; diff --git a/lib/private/Repair/RepairMimeTypes.php b/lib/private/Repair/RepairMimeTypes.php index 6ff6d1ddd941c..715f7623440d7 100644 --- a/lib/private/Repair/RepairMimeTypes.php +++ b/lib/private/Repair/RepairMimeTypes.php @@ -26,7 +26,7 @@ class RepairMimeTypes implements IRepairStep { public function __construct( protected IConfig $config, protected IAppConfig $appConfig, - protected IDBConnection $connection + protected IDBConnection $connection, ) { } diff --git a/lib/private/RichObjectStrings/Validator.php b/lib/private/RichObjectStrings/Validator.php index 197f48ed48c0b..c7e4dcf50b9a7 100644 --- a/lib/private/RichObjectStrings/Validator.php +++ b/lib/private/RichObjectStrings/Validator.php @@ -76,7 +76,7 @@ protected function validateParameter(array $parameter) { $missingKeys = array_diff($requiredParameters, array_keys($parameter)); if (!empty($missingKeys)) { - throw new InvalidObjectExeption('Object is invalid, missing keys:'.json_encode($missingKeys)); + throw new InvalidObjectExeption('Object is invalid, missing keys:' . json_encode($missingKeys)); } foreach ($parameter as $key => $value) { diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index ba369eecac07e..7ec2aac021caa 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -155,7 +155,7 @@ public function loadRoutes($app = null) { $this->root->addCollection($collection); // Also add the OCS collection - $collection = $this->getCollection($app.'.ocs'); + $collection = $this->getCollection($app . '.ocs'); $collection->addPrefix('/ocsapp'); $this->root->addCollection($collection); } diff --git a/lib/private/Search/Filter/BooleanFilter.php b/lib/private/Search/Filter/BooleanFilter.php index 92572a6007323..894dc13b65746 100644 --- a/lib/private/Search/Filter/BooleanFilter.php +++ b/lib/private/Search/Filter/BooleanFilter.php @@ -19,7 +19,7 @@ public function __construct(string $value) { $this->value = match ($value) { 'true', 'yes', 'y', '1' => true, 'false', 'no', 'n', '0', '' => false, - default => throw new InvalidArgumentException('Invalid boolean value '. $value), + default => throw new InvalidArgumentException('Invalid boolean value ' . $value), }; } diff --git a/lib/private/Search/Filter/DateTimeFilter.php b/lib/private/Search/Filter/DateTimeFilter.php index 367af80b505fd..48c1725a5e1bb 100644 --- a/lib/private/Search/Filter/DateTimeFilter.php +++ b/lib/private/Search/Filter/DateTimeFilter.php @@ -17,7 +17,7 @@ class DateTimeFilter implements IFilter { public function __construct(string $value) { if (filter_var($value, FILTER_VALIDATE_INT)) { - $value = '@'.$value; + $value = '@' . $value; } $this->value = new DateTimeImmutable($value); diff --git a/lib/private/Search/Filter/FloatFilter.php b/lib/private/Search/Filter/FloatFilter.php index 97d767e62cb33..f238455294331 100644 --- a/lib/private/Search/Filter/FloatFilter.php +++ b/lib/private/Search/Filter/FloatFilter.php @@ -18,7 +18,7 @@ class FloatFilter implements IFilter { public function __construct(string $value) { $this->value = filter_var($value, FILTER_VALIDATE_FLOAT); if ($this->value === false) { - throw new InvalidArgumentException('Invalid float value '. $value); + throw new InvalidArgumentException('Invalid float value ' . $value); } } diff --git a/lib/private/Search/Filter/GroupFilter.php b/lib/private/Search/Filter/GroupFilter.php index e7694a6daa234..fe0b2ce42d86b 100644 --- a/lib/private/Search/Filter/GroupFilter.php +++ b/lib/private/Search/Filter/GroupFilter.php @@ -23,7 +23,7 @@ public function __construct( ) { $group = $groupManager->get($value); if ($group === null) { - throw new InvalidArgumentException('Group '.$value.' not found'); + throw new InvalidArgumentException('Group ' . $value . ' not found'); } $this->group = $group; } diff --git a/lib/private/Search/Filter/IntegerFilter.php b/lib/private/Search/Filter/IntegerFilter.php index 825c7ddd3ebf0..028b7d0678f3e 100644 --- a/lib/private/Search/Filter/IntegerFilter.php +++ b/lib/private/Search/Filter/IntegerFilter.php @@ -18,7 +18,7 @@ class IntegerFilter implements IFilter { public function __construct(string $value) { $this->value = filter_var($value, FILTER_VALIDATE_INT); if ($this->value === false) { - throw new InvalidArgumentException('Invalid integer value '. $value); + throw new InvalidArgumentException('Invalid integer value ' . $value); } } diff --git a/lib/private/Search/Filter/UserFilter.php b/lib/private/Search/Filter/UserFilter.php index fbbc793e6336c..4f2061a4ba6f4 100644 --- a/lib/private/Search/Filter/UserFilter.php +++ b/lib/private/Search/Filter/UserFilter.php @@ -23,7 +23,7 @@ public function __construct( ) { $user = $userManager->get($value); if ($user === null) { - throw new InvalidArgumentException('User '.$value.' not found'); + throw new InvalidArgumentException('User ' . $value . ' not found'); } $this->user = $user; } diff --git a/lib/private/Search/FilterFactory.php b/lib/private/Search/FilterFactory.php index 1466042291dc2..07063c604f433 100644 --- a/lib/private/Search/FilterFactory.php +++ b/lib/private/Search/FilterFactory.php @@ -28,7 +28,7 @@ public static function get(string $type, string|array $filter): IFilter { FilterDefinition::TYPE_PERSON => self::getPerson($filter), FilterDefinition::TYPE_STRING => new Filter\StringFilter($filter), FilterDefinition::TYPE_STRINGS => new Filter\StringsFilter(... (array)$filter), - default => throw new RuntimeException('Invalid filter type '. $type), + default => throw new RuntimeException('Invalid filter type ' . $type), }; } diff --git a/lib/private/Search/SearchComposer.php b/lib/private/Search/SearchComposer.php index 8108c6bcde438..d23662f7055ff 100644 --- a/lib/private/Search/SearchComposer.php +++ b/lib/private/Search/SearchComposer.php @@ -59,7 +59,7 @@ public function __construct( private Coordinator $bootstrapCoordinator, private ContainerInterface $container, private IURLGenerator $urlGenerator, - private LoggerInterface $logger + private LoggerInterface $logger, ) { $this->commonFilters = [ IFilter::BUILTIN_TERM => new FilterDefinition(IFilter::BUILTIN_TERM, FilterDefinition::TYPE_STRING), @@ -130,7 +130,7 @@ private function loadFilters(): void { } foreach ($provider->getSupportedFilters() as $filterName) { if ($this->getFilterDefinition($filterName, $providerId) === null) { - throw new InvalidArgumentException('Invalid filter '. $filterName); + throw new InvalidArgumentException('Invalid filter ' . $filterName); } } } @@ -202,10 +202,10 @@ function (array $providerData) use ($route, $routeParameters) { private function fetchIcon(string $appId, string $providerId): string { $icons = [ - [$providerId, $providerId.'.svg'], + [$providerId, $providerId . '.svg'], [$providerId, 'app.svg'], - [$appId, $providerId.'.svg'], - [$appId, $appId.'.svg'], + [$appId, $providerId . '.svg'], + [$appId, $appId . '.svg'], [$appId, 'app.svg'], ['core', 'places/default-app-icon.svg'], ]; diff --git a/lib/private/Search/UnsupportedFilter.php b/lib/private/Search/UnsupportedFilter.php index bf251a91d312b..ea520e6b872eb 100644 --- a/lib/private/Search/UnsupportedFilter.php +++ b/lib/private/Search/UnsupportedFilter.php @@ -12,6 +12,6 @@ final class UnsupportedFilter extends Exception { public function __construct(string $filerName, $providerId) { - parent::__construct('Provider '.$providerId.' doesn’t support filter '.$filerName.'.'); + parent::__construct('Provider ' . $providerId . ' doesn’t support filter ' . $filerName . '.'); } } diff --git a/lib/private/Security/Bruteforce/Backend/MemoryCacheBackend.php b/lib/private/Security/Bruteforce/Backend/MemoryCacheBackend.php index bf076240bf870..9a0723db47e85 100644 --- a/lib/private/Security/Bruteforce/Backend/MemoryCacheBackend.php +++ b/lib/private/Security/Bruteforce/Backend/MemoryCacheBackend.php @@ -137,7 +137,7 @@ public function registerAttempt( $existingAttempts = array_values($existingAttempts); // Store the new attempt - $existingAttempts[] = $timestamp . '#' . $this->hash($action) . '#' . $this->hash($metadata); + $existingAttempts[] = $timestamp . '#' . $this->hash($action) . '#' . $this->hash($metadata); $this->cache->set($identifier, json_encode($existingAttempts), 12 * 3600); } diff --git a/lib/private/Security/CSP/ContentSecurityPolicyManager.php b/lib/private/Security/CSP/ContentSecurityPolicyManager.php index 77ecceb03c343..e9d6b2945a881 100644 --- a/lib/private/Security/CSP/ContentSecurityPolicyManager.php +++ b/lib/private/Security/CSP/ContentSecurityPolicyManager.php @@ -52,13 +52,13 @@ public function mergePolicies( EmptyContentSecurityPolicy $originalPolicy, ): ContentSecurityPolicy { foreach ((object)(array)$originalPolicy as $name => $value) { - $setter = 'set'.ucfirst($name); + $setter = 'set' . ucfirst($name); if (\is_array($value)) { - $getter = 'get'.ucfirst($name); + $getter = 'get' . ucfirst($name); $currentValues = \is_array($defaultPolicy->$getter()) ? $defaultPolicy->$getter() : []; $defaultPolicy->$setter(array_values(array_unique(array_merge($currentValues, $value)))); } elseif (\is_bool($value)) { - $getter = 'is'.ucfirst($name); + $getter = 'is' . ucfirst($name); $currentValue = $defaultPolicy->$getter(); // true wins over false if ($value > $currentValue) { diff --git a/lib/private/Security/Crypto.php b/lib/private/Security/Crypto.php index b03f8a4ddce14..f7f62aadb7b26 100644 --- a/lib/private/Security/Crypto.php +++ b/lib/private/Security/Crypto.php @@ -78,9 +78,9 @@ public function encrypt(string $plaintext, string $password = ''): string { $ciphertext = bin2hex($encrypted); $iv = bin2hex($iv); - $hmac = bin2hex($this->calculateHMAC($ciphertext.$iv, substr($keyMaterial, 32))); + $hmac = bin2hex($this->calculateHMAC($ciphertext . $iv, substr($keyMaterial, 32))); - return $ciphertext.'|'.$iv.'|'.$hmac.'|3'; + return $ciphertext . '|' . $iv . '|' . $hmac . '|3'; } /** diff --git a/lib/private/Security/Hasher.php b/lib/private/Security/Hasher.php index 3ab0e1bbcac1f..ba661f5a35650 100644 --- a/lib/private/Security/Hasher.php +++ b/lib/private/Security/Hasher.php @@ -106,7 +106,7 @@ protected function legacyHashVerify($message, $hash, &$newHash = null): bool { // Verify whether it matches a legacy PHPass or SHA1 string $hashLength = \strlen($hash); - if (($hashLength === 60 && password_verify($message.$this->legacySalt, $hash)) || + if (($hashLength === 60 && password_verify($message . $this->legacySalt, $hash)) || ($hashLength === 40 && hash_equals($hash, sha1($message)))) { $newHash = $this->hash($message); return true; diff --git a/lib/private/Security/Normalizer/IpAddress.php b/lib/private/Security/Normalizer/IpAddress.php index dc7c784fa4c1b..e9232c5fe9f26 100644 --- a/lib/private/Security/Normalizer/IpAddress.php +++ b/lib/private/Security/Normalizer/IpAddress.php @@ -38,7 +38,7 @@ private function getIPv6Subnet(string $ip): string { $binary = \inet_pton($ip); $mask = inet_pton('FFFF:FFFF:FFFF:FFFF::'); - return inet_ntop($binary & $mask).'/64'; + return inet_ntop($binary & $mask) . '/64'; } /** @@ -67,12 +67,12 @@ private function getEmbeddedIpv4(string $ipv6): ?string { */ public function getSubnet(): string { if (filter_var($this->ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { - return $this->ip.'/32'; + return $this->ip . '/32'; } $ipv4 = $this->getEmbeddedIpv4($this->ip); if ($ipv4 !== null) { - return $ipv4.'/32'; + return $ipv4 . '/32'; } return $this->getIPv6Subnet($this->ip); diff --git a/lib/private/Security/RateLimiting/Backend/DatabaseBackend.php b/lib/private/Security/RateLimiting/Backend/DatabaseBackend.php index 34fddff539bda..8adcd8e168ccf 100644 --- a/lib/private/Security/RateLimiting/Backend/DatabaseBackend.php +++ b/lib/private/Security/RateLimiting/Backend/DatabaseBackend.php @@ -20,7 +20,7 @@ class DatabaseBackend implements IBackend { public function __construct( private IConfig $config, private IDBConnection $dbConnection, - private ITimeFactory $timeFactory + private ITimeFactory $timeFactory, ) { } @@ -35,7 +35,7 @@ private function hash( * @throws Exception */ private function getExistingAttemptCount( - string $identifier + string $identifier, ): int { $currentTime = $this->timeFactory->getDateTime(); diff --git a/lib/private/Security/VerificationToken/VerificationToken.php b/lib/private/Security/VerificationToken/VerificationToken.php index f99e674595209..1995b482597e7 100644 --- a/lib/private/Security/VerificationToken/VerificationToken.php +++ b/lib/private/Security/VerificationToken/VerificationToken.php @@ -25,7 +25,7 @@ public function __construct( private ICrypto $crypto, private ITimeFactory $timeFactory, private ISecureRandom $secureRandom, - private IJobList $jobList + private IJobList $jobList, ) { } @@ -53,7 +53,7 @@ public function check( } try { - $decryptedToken = $this->crypto->decrypt($encryptedToken, $passwordPrefix.$this->config->getSystemValueString('secret')); + $decryptedToken = $this->crypto->decrypt($encryptedToken, $passwordPrefix . $this->config->getSystemValueString('secret')); } catch (\Exception $e) { // Retry with empty secret as a fallback for instances where the secret might not have been set by accident try { @@ -85,11 +85,11 @@ public function create( ): string { $token = $this->secureRandom->generate( 21, - ISecureRandom::CHAR_DIGITS. - ISecureRandom::CHAR_LOWER. + ISecureRandom::CHAR_DIGITS . + ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER ); - $tokenValue = $this->timeFactory->getTime() .':'. $token; + $tokenValue = $this->timeFactory->getTime() . ':' . $token; $encryptedValue = $this->crypto->encrypt($tokenValue, $passwordPrefix . $this->config->getSystemValueString('secret')); $this->config->setUserValue($user->getUID(), 'core', $subject, $encryptedValue); $jobArgs = json_encode([ diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 3d4ea8ea39ff9..c96c04f34fff4 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -53,7 +53,7 @@ public function __construct( IServerContainer $container, AuthorizedGroupMapper $mapper, IGroupManager $groupManager, - ISubAdmin $subAdmin + ISubAdmin $subAdmin, ) { $this->log = $log; $this->l10nFactory = $l10nFactory; diff --git a/lib/private/Setup.php b/lib/private/Setup.php index fb054bca4e025..fa10f238bde50 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -44,7 +44,7 @@ public function __construct( protected Defaults $defaults, protected LoggerInterface $logger, protected ISecureRandom $random, - protected Installer $installer + protected Installer $installer, ) { $this->l10n = $l10nFactory->get('lib'); } @@ -377,7 +377,7 @@ public function install(array $options, ?IOutput $output = null): array { //and we are done $config->setSystemValue('installed', true); if (self::shouldRemoveCanInstallFile()) { - unlink(\OC::$configDir.'/CAN_INSTALL'); + unlink(\OC::$configDir . '/CAN_INSTALL'); } $bootstrapCoordinator = \OCP\Server::get(\OC\AppFramework\Bootstrap\Coordinator::class); @@ -561,11 +561,11 @@ private function getVendorData(): array { } public function shouldRemoveCanInstallFile(): bool { - return \OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir.'/CAN_INSTALL'); + return \OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL'); } public function canInstallFileExists(): bool { - return is_file(\OC::$configDir.'/CAN_INSTALL'); + return is_file(\OC::$configDir . '/CAN_INSTALL'); } protected function outputDebug(?IOutput $output, string $message): void { diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php index b1d93f55cc0d0..dbbb587206b59 100644 --- a/lib/private/Setup/AbstractDatabase.php +++ b/lib/private/Setup/AbstractDatabase.php @@ -133,7 +133,7 @@ protected function connect(array $configOverwrite = []): Connection { abstract public function setupDatabase($username); public function runMigrations(?IOutput $output = null) { - if (!is_dir(\OC::$SERVERROOT.'/core/Migrations')) { + if (!is_dir(\OC::$SERVERROOT . '/core/Migrations')) { return; } $ms = new MigrationService('core', \OC::$server->get(Connection::class), $output); diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php index 93aee667d18da..2708ada31c150 100644 --- a/lib/private/Setup/MySQL.php +++ b/lib/private/Setup/MySQL.php @@ -41,7 +41,7 @@ public function setupDatabase($username) { //fill the database if needed $query = 'select count(*) from information_schema.tables where table_schema=? AND table_name = ?'; - $connection->executeQuery($query, [$this->dbName, $this->tablePrefix.'users']); + $connection->executeQuery($query, [$this->dbName, $this->tablePrefix . 'users']); $connection->close(); $connection = $this->connect(); diff --git a/lib/private/SetupCheck/SetupCheckManager.php b/lib/private/SetupCheck/SetupCheckManager.php index 41f393fef7a59..721885848e291 100644 --- a/lib/private/SetupCheck/SetupCheckManager.php +++ b/lib/private/SetupCheck/SetupCheckManager.php @@ -29,12 +29,12 @@ public function runAll(): array { foreach ($setupChecks as $setupCheck) { /** @var ISetupCheck $setupCheckObject */ $setupCheckObject = Server::get($setupCheck->getService()); - $this->logger->debug('Running check '.get_class($setupCheckObject)); + $this->logger->debug('Running check ' . get_class($setupCheckObject)); try { $setupResult = $setupCheckObject->run(); } catch (\Throwable $t) { $setupResult = SetupResult::error("An exception occured while running the setup check:\n$t"); - $this->logger->error('Exception running check '.get_class($setupCheckObject).': '.$t->getMessage(), ['exception' => $t]); + $this->logger->error('Exception running check ' . get_class($setupCheckObject) . ': ' . $t->getMessage(), ['exception' => $t]); } $setupResult->setName($setupCheckObject->getName()); $category = $setupCheckObject->getCategory(); diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php index 0af264fb96858..56a4c6410c525 100644 --- a/lib/private/Share/Share.php +++ b/lib/private/Share/Share.php @@ -54,8 +54,8 @@ public static function registerBackend($itemType, $class, $collectionOf = null, return true; } \OC::$server->get(LoggerInterface::class)->warning( - 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] - .' is already registered for '.$itemType, + 'Sharing backend ' . $class . ' not registered, ' . self::$backendTypes[$itemType]['class'] + . ' is already registered for ' . $itemType, ['app' => 'files_sharing']); } return false; diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 5457e8024a41a..d82e57415d31b 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -54,7 +54,7 @@ */ class Manager implements IManager { - private IL10N|null $l; + private ?IL10N $l; private LegacyHooks $legacyHooks; public function __construct( @@ -75,7 +75,7 @@ public function __construct( private IUserSession $userSession, private KnownUserService $knownUserService, private ShareDisableChecker $shareDisableChecker, - private IDateTimeZone $dateTimeZone + private IDateTimeZone $dateTimeZone, ) { $this->l = $this->l10nFactory->get('lib'); // The constructor of LegacyHooks registers the listeners of share events diff --git a/lib/private/SystemTag/SystemTagManager.php b/lib/private/SystemTag/SystemTagManager.php index e99213b618bee..1a0d8fb618a02 100644 --- a/lib/private/SystemTag/SystemTagManager.php +++ b/lib/private/SystemTag/SystemTagManager.php @@ -110,7 +110,7 @@ public function getAllTags($visibilityFilter = null, $nameSearchPattern = null): $query->andWhere( $query->expr()->like( 'name', - $query->createNamedParameter('%' . $this->connection->escapeLikeParameter($nameSearchPattern). '%') + $query->createNamedParameter('%' . $this->connection->escapeLikeParameter($nameSearchPattern) . '%') ) ); } @@ -146,7 +146,7 @@ public function getTag(string $tagName, bool $userVisible, bool $userAssignable) $result->closeCursor(); if (!$row) { throw new TagNotFoundException( - 'Tag ("' . $truncatedTagName . '", '. $userVisible . ', ' . $userAssignable . ') does not exist' + 'Tag ("' . $truncatedTagName . '", ' . $userVisible . ', ' . $userAssignable . ') does not exist' ); } @@ -171,7 +171,7 @@ public function createTag(string $tagName, bool $userVisible, bool $userAssignab $query->execute(); } catch (UniqueConstraintViolationException $e) { throw new TagAlreadyExistsException( - 'Tag ("' . $truncatedTagName . '", '. $userVisible . ', ' . $userAssignable . ') already exists', + 'Tag ("' . $truncatedTagName . '", ' . $userVisible . ', ' . $userAssignable . ') already exists', 0, $e ); @@ -239,7 +239,7 @@ public function updateTag( } } catch (UniqueConstraintViolationException $e) { throw new TagAlreadyExistsException( - 'Tag ("' . $newName . '", '. $userVisible . ', ' . $userAssignable . ') already exists', + 'Tag ("' . $newName . '", ' . $userVisible . ', ' . $userAssignable . ') already exists', 0, $e ); diff --git a/lib/private/SystemTag/SystemTagsInFilesDetector.php b/lib/private/SystemTag/SystemTagsInFilesDetector.php index a8dfec264a0e1..9268b7ab09843 100644 --- a/lib/private/SystemTag/SystemTagsInFilesDetector.php +++ b/lib/private/SystemTag/SystemTagsInFilesDetector.php @@ -26,7 +26,7 @@ public function detectAssignedSystemTagsIn( Folder $folder, string $filteredMediaType = '', int $limit = 0, - int $offset = 0 + int $offset = 0, ): array { $operator = new SearchComparison(ISearchComparison::COMPARE_LIKE, 'systemtag', '%'); // Currently query has to have exactly one search condition. If no media type is provided, diff --git a/lib/private/Tags.php b/lib/private/Tags.php index 6a31ac94ef61f..350c49bca2cd3 100644 --- a/lib/private/Tags.php +++ b/lib/private/Tags.php @@ -506,7 +506,7 @@ public function tagAs($objid, $tag) { if (is_string($tag) && !is_numeric($tag)) { $tag = trim($tag); if ($tag === '') { - $this->logger->debug(__METHOD__.', Cannot add an empty tag'); + $this->logger->debug(__METHOD__ . ', Cannot add an empty tag'); return false; } if (!$this->hasTag($tag)) { @@ -546,7 +546,7 @@ public function unTag($objid, $tag) { if (is_string($tag) && !is_numeric($tag)) { $tag = trim($tag); if ($tag === '') { - $this->logger->debug(__METHOD__.', Tag name is empty'); + $this->logger->debug(__METHOD__ . ', Tag name is empty'); return false; } $tagId = $this->getTagId($tag); diff --git a/lib/private/TaskProcessing/Db/Task.php b/lib/private/TaskProcessing/Db/Task.php index 6787c11344aa5..4d919deaf94a3 100644 --- a/lib/private/TaskProcessing/Db/Task.php +++ b/lib/private/TaskProcessing/Db/Task.php @@ -98,7 +98,7 @@ public function __construct() { public function toRow(): array { return array_combine(self::$columns, array_map(function ($field) { - return $this->{'get'.ucfirst($field)}(); + return $this->{'get' . ucfirst($field)}(); }, self::$fields)); } diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php index 29153ca56f980..36089f50f7f42 100644 --- a/lib/private/TaskProcessing/Manager.php +++ b/lib/private/TaskProcessing/Manager.php @@ -312,7 +312,7 @@ public function process(?string $userId, array $input, callable $reportProgress) $resources = []; $files = []; for ($i = 0; $i < $input['numberOfImages']; $i++) { - $file = $folder->newFile(time() . '-' . rand(1, 100000) . '-' . $i); + $file = $folder->newFile(time() . '-' . rand(1, 100000) . '-' . $i); $files[] = $file; $resource = $file->write(); if ($resource !== false && $resource !== true && is_resource($resource)) { @@ -593,7 +593,7 @@ private static function validateInput(array $spec, array $defaults, array $enumV $type->validateInput($io[$key]); if ($type === EShapeType::Enum) { if (!isset($enumValues[$key])) { - throw new ValidationException('Provider did not provide enum values for an enum slot: "' . $key .'"'); + throw new ValidationException('Provider did not provide enum values for an enum slot: "' . $key . '"'); } $type->validateEnum($io[$key], $enumValues[$key]); } @@ -1048,7 +1048,7 @@ public function getUserTasks(?string $userId, ?string $taskTypeId = null, ?strin public function getTasks( ?string $userId, ?string $taskTypeId = null, ?string $appId = null, ?string $customId = null, - ?int $status = null, ?int $scheduleAfter = null, ?int $endedBefore = null + ?int $status = null, ?int $scheduleAfter = null, ?int $endedBefore = null, ): array { try { $taskEntities = $this->taskMapper->findTasks($userId, $taskTypeId, $appId, $customId, $status, $scheduleAfter, $endedBefore); @@ -1203,7 +1203,7 @@ private function prepareTask(Task $task): void { $provider = $this->getPreferredProvider($task->getTaskTypeId()); // calculate expected completion time $completionExpectedAt = new \DateTime('now'); - $completionExpectedAt->add(new \DateInterval('PT'.$provider->getExpectedRuntime().'S')); + $completionExpectedAt->add(new \DateInterval('PT' . $provider->getExpectedRuntime() . 'S')); $task->setCompletionExpectedAt($completionExpectedAt); } diff --git a/lib/private/Teams/TeamManager.php b/lib/private/Teams/TeamManager.php index 3d5f9f6d2a2b2..223579a11821a 100644 --- a/lib/private/Teams/TeamManager.php +++ b/lib/private/Teams/TeamManager.php @@ -62,7 +62,7 @@ public function getProvider(string $providerId): ITeamResourceProvider { return $providers[$providerId]; } - throw new \RuntimeException('No provider found for id ' .$providerId); + throw new \RuntimeException('No provider found for id ' . $providerId); } public function getSharedWith(string $teamId, string $userId): array { diff --git a/lib/private/Template/Base.php b/lib/private/Template/Base.php index b48c10143cf07..602c8e6257e58 100644 --- a/lib/private/Template/Base.php +++ b/lib/private/Template/Base.php @@ -46,15 +46,15 @@ public function __construct($template, $requestToken, $l10n, $theme, $cspNonce) */ protected function getAppTemplateDirs($theme, $app, $serverRoot, $app_dir) { // Check if the app is in the app folder or in the root - if ($app_dir !== false && file_exists($app_dir.'/templates/')) { + if ($app_dir !== false && file_exists($app_dir . '/templates/')) { return [ - $serverRoot.'/themes/'.$theme.'/apps/'.$app.'/templates/', - $app_dir.'/templates/', + $serverRoot . '/themes/' . $theme . '/apps/' . $app . '/templates/', + $app_dir . '/templates/', ]; } return [ - $serverRoot.'/themes/'.$theme.'/'.$app.'/templates/', - $serverRoot.'/'.$app.'/templates/', + $serverRoot . '/themes/' . $theme . '/' . $app . '/templates/', + $serverRoot . '/' . $app . '/templates/', ]; } @@ -65,8 +65,8 @@ protected function getAppTemplateDirs($theme, $app, $serverRoot, $app_dir) { */ protected function getCoreTemplateDirs($theme, $serverRoot) { return [ - $serverRoot.'/themes/'.$theme.'/core/templates/', - $serverRoot.'/core/templates/', + $serverRoot . '/themes/' . $theme . '/core/templates/', + $serverRoot . '/core/templates/', ]; } diff --git a/lib/private/Template/CSSResourceLocator.php b/lib/private/Template/CSSResourceLocator.php index e9aa38ef2cc7f..b501fd69874b1 100644 --- a/lib/private/Template/CSSResourceLocator.php +++ b/lib/private/Template/CSSResourceLocator.php @@ -19,8 +19,8 @@ public function __construct(LoggerInterface $logger) { */ public function doFind($style) { $app = substr($style, 0, strpos($style, '/')); - if ($this->appendIfExist($this->serverroot, $style.'.css') - || $this->appendIfExist($this->serverroot, 'core/'.$style.'.css') + if ($this->appendIfExist($this->serverroot, $style . '.css') + || $this->appendIfExist($this->serverroot, 'core/' . $style . '.css') ) { return; } @@ -41,17 +41,17 @@ public function doFind($style) { // turned into cwd. $app_path = realpath($app_path); - $this->append($app_path, $style.'.css', $app_url); + $this->append($app_path, $style . '.css', $app_url); } /** * @param string $style */ public function doFindTheme($style) { - $theme_dir = 'themes/'.$this->theme.'/'; - $this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$style.'.css') - || $this->appendIfExist($this->serverroot, $theme_dir.$style.'.css') - || $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$style.'.css'); + $theme_dir = 'themes/' . $this->theme . '/'; + $this->appendIfExist($this->serverroot, $theme_dir . 'apps/' . $style . '.css') + || $this->appendIfExist($this->serverroot, $theme_dir . $style . '.css') + || $this->appendIfExist($this->serverroot, $theme_dir . 'core/' . $style . '.css'); } public function append($root, $file, $webRoot = null, $throw = true, $scss = false) { diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php index a4984eaf93051..1dec8634aca2c 100644 --- a/lib/private/Template/JSConfigHelper.php +++ b/lib/private/Template/JSConfigHelper.php @@ -282,7 +282,7 @@ public function getConfig(): string { // Echo it foreach ($array as $setting => $value) { - $result .= 'var '. $setting . '='. $value . ';' . PHP_EOL; + $result .= 'var ' . $setting . '=' . $value . ';' . PHP_EOL; } return $result; diff --git a/lib/private/Template/JSResourceLocator.php b/lib/private/Template/JSResourceLocator.php index b9a2fce6cd56c..aad999f939a0f 100644 --- a/lib/private/Template/JSResourceLocator.php +++ b/lib/private/Template/JSResourceLocator.php @@ -26,7 +26,7 @@ public function __construct(LoggerInterface $logger, JSCombiner $JSCombiner, IAp * @param string $script */ public function doFind($script) { - $theme_dir = 'themes/'.$this->theme.'/'; + $theme_dir = 'themes/' . $this->theme . '/'; // Extracting the appId and the script file name $app = substr($script, 0, strpos($script, '/')); @@ -52,29 +52,29 @@ public function doFind($script) { // For language files we try to load them all, so themes can overwrite // single l10n strings without having to translate all of them. $found = 0; - $found += $this->appendScriptIfExist($this->serverroot, 'core/'.$script); - $found += $this->appendScriptIfExist($this->serverroot, $theme_dir.'core/'.$script); + $found += $this->appendScriptIfExist($this->serverroot, 'core/' . $script); + $found += $this->appendScriptIfExist($this->serverroot, $theme_dir . 'core/' . $script); $found += $this->appendScriptIfExist($this->serverroot, $script); - $found += $this->appendScriptIfExist($this->serverroot, $theme_dir.$script); + $found += $this->appendScriptIfExist($this->serverroot, $theme_dir . $script); $found += $this->appendScriptIfExist($appRoot, $script, $appWebRoot); - $found += $this->appendScriptIfExist($this->serverroot, $theme_dir.'apps/'.$script); + $found += $this->appendScriptIfExist($this->serverroot, $theme_dir . 'apps/' . $script); if ($found) { return; } - } elseif ($this->appendScriptIfExist($this->serverroot, $theme_dir.'apps/'.$script) - || $this->appendScriptIfExist($this->serverroot, $theme_dir.$script) + } elseif ($this->appendScriptIfExist($this->serverroot, $theme_dir . 'apps/' . $script) + || $this->appendScriptIfExist($this->serverroot, $theme_dir . $script) || $this->appendScriptIfExist($this->serverroot, $script) - || $this->appendScriptIfExist($this->serverroot, $theme_dir."dist/$app-$scriptName") + || $this->appendScriptIfExist($this->serverroot, $theme_dir . "dist/$app-$scriptName") || $this->appendScriptIfExist($this->serverroot, "dist/$app-$scriptName") || $this->appendScriptIfExist($appRoot, $script, $appWebRoot) - || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, $script.'.json') - || $this->cacheAndAppendCombineJsonIfExist($appRoot, $script.'.json', $appWebRoot) - || $this->appendScriptIfExist($this->serverroot, $theme_dir.'core/'.$script) - || $this->appendScriptIfExist($this->serverroot, 'core/'.$script) - || (strpos($scriptName, '/') === -1 && ($this->appendScriptIfExist($this->serverroot, $theme_dir."dist/core-$scriptName") + || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, $script . '.json') + || $this->cacheAndAppendCombineJsonIfExist($appRoot, $script . '.json', $appWebRoot) + || $this->appendScriptIfExist($this->serverroot, $theme_dir . 'core/' . $script) + || $this->appendScriptIfExist($this->serverroot, 'core/' . $script) + || (strpos($scriptName, '/') === -1 && ($this->appendScriptIfExist($this->serverroot, $theme_dir . "dist/core-$scriptName") || $this->appendScriptIfExist($this->serverroot, "dist/core-$scriptName"))) - || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, 'core/'.$script.'.json') + || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, 'core/' . $script . '.json') ) { return; } @@ -108,7 +108,7 @@ protected function appendScriptIfExist(string $root, string $file, ?string $webR } protected function cacheAndAppendCombineJsonIfExist($root, $file, $app = 'core') { - if (is_file($root.'/'.$file)) { + if (is_file($root . '/' . $file)) { if ($this->jsCombiner->process($root, $file, $app)) { $this->append($this->serverroot, $this->jsCombiner->getCachedJS($app, $file), false, false); } else { diff --git a/lib/private/Template/ResourceLocator.php b/lib/private/Template/ResourceLocator.php index 377f0e0b6a873..fa52f8e5c0d54 100755 --- a/lib/private/Template/ResourceLocator.php +++ b/lib/private/Template/ResourceLocator.php @@ -75,7 +75,7 @@ public function find($resources) { * @return bool True if the resource was found, false otherwise */ protected function appendIfExist($root, $file, $webRoot = null) { - if ($root !== false && is_file($root.'/'.$file)) { + if ($root !== false && is_file($root . '/' . $file)) { $this->append($root, $file, $webRoot, false); return true; } diff --git a/lib/private/Template/TemplateFileLocator.php b/lib/private/Template/TemplateFileLocator.php index 164fcd503c12b..38583d158a3c3 100644 --- a/lib/private/Template/TemplateFileLocator.php +++ b/lib/private/Template/TemplateFileLocator.php @@ -29,13 +29,13 @@ public function find($template) { } foreach ($this->dirs as $dir) { - $file = $dir.$template.'.php'; + $file = $dir . $template . '.php'; if (is_file($file)) { $this->path = $dir; return $file; } } - throw new \Exception('template file not found: template:'.$template); + throw new \Exception('template file not found: template:' . $template); } public function getPath() { diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 0ef4ec197cf67..6c7cec9074054 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -242,7 +242,7 @@ public function __construct($renderAs, $appId = '') { foreach ($jsFiles as $info) { $web = $info[1]; $file = $info[2]; - $this->append('jsfiles', $web.'/'.$file . $this->getVersionHashSuffix()); + $this->append('jsfiles', $web . '/' . $file . $this->getVersionHashSuffix()); } try { @@ -275,14 +275,14 @@ public function __construct($renderAs, $appId = '') { $file = $info[2]; if (str_ends_with($file, 'print.css')) { - $this->append('printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix()); + $this->append('printcssfiles', $web . '/' . $file . $this->getVersionHashSuffix()); } else { $suffix = $this->getVersionHashSuffix($web, $file); if (!str_contains($file, '?v=')) { - $this->append('cssfiles', $web.'/'.$file . $suffix); + $this->append('cssfiles', $web . '/' . $file . $suffix); } else { - $this->append('cssfiles', $web.'/'.$file . '-' . substr($suffix, 3)); + $this->append('cssfiles', $web . '/' . $file . '-' . substr($suffix, 3)); } } } diff --git a/lib/private/TextProcessing/Db/Task.php b/lib/private/TextProcessing/Db/Task.php index 31c9aab345b97..d4ebc19e74a7e 100644 --- a/lib/private/TextProcessing/Db/Task.php +++ b/lib/private/TextProcessing/Db/Task.php @@ -70,7 +70,7 @@ public function __construct() { public function toRow(): array { return array_combine(self::$columns, array_map(function ($field) { - return $this->{'get'.ucfirst($field)}(); + return $this->{'get' . ucfirst($field)}(); }, self::$fields)); } diff --git a/lib/private/TextProcessing/Manager.php b/lib/private/TextProcessing/Manager.php index 9801a99ddec79..8d34b5fba0113 100644 --- a/lib/private/TextProcessing/Manager.php +++ b/lib/private/TextProcessing/Manager.php @@ -167,7 +167,7 @@ public function runTask(OCPTask $task): string { $task->setStatus(OCPTask::STATUS_RUNNING); if ($provider instanceof IProviderWithExpectedRuntime) { $completionExpectedAt = new \DateTime('now'); - $completionExpectedAt->add(new \DateInterval('PT'.$provider->getExpectedRuntime().'S')); + $completionExpectedAt->add(new \DateInterval('PT' . $provider->getExpectedRuntime() . 'S')); $task->setCompletionExpectedAt($completionExpectedAt); } if ($task->getId() === null) { @@ -209,7 +209,7 @@ public function scheduleTask(OCPTask $task): void { [$provider,] = $providers; if ($provider instanceof IProviderWithExpectedRuntime) { $completionExpectedAt = new \DateTime('now'); - $completionExpectedAt->add(new \DateInterval('PT'.$provider->getExpectedRuntime().'S')); + $completionExpectedAt->add(new \DateInterval('PT' . $provider->getExpectedRuntime() . 'S')); $task->setCompletionExpectedAt($completionExpectedAt); } $taskEntity = DbTask::fromPublicTask($task); diff --git a/lib/private/TextProcessing/RemoveOldTasksBackgroundJob.php b/lib/private/TextProcessing/RemoveOldTasksBackgroundJob.php index 2a71256c492e4..4a336d56077bb 100644 --- a/lib/private/TextProcessing/RemoveOldTasksBackgroundJob.php +++ b/lib/private/TextProcessing/RemoveOldTasksBackgroundJob.php @@ -23,7 +23,6 @@ public function __construct( ITimeFactory $timeFactory, private TaskMapper $taskMapper, private LoggerInterface $logger, - ) { parent::__construct($timeFactory); $this->setInterval(60 * 60 * 24); diff --git a/lib/private/TextToImage/Db/Task.php b/lib/private/TextToImage/Db/Task.php index d7eb0a2201485..cc92c86522053 100644 --- a/lib/private/TextToImage/Db/Task.php +++ b/lib/private/TextToImage/Db/Task.php @@ -71,7 +71,7 @@ public function __construct() { public function toRow(): array { return array_combine(self::$columns, array_map(function ($field) { - return $this->{'get'.ucfirst($field)}(); + return $this->{'get' . ucfirst($field)}(); }, self::$fields)); } diff --git a/lib/private/TextToImage/Db/TaskMapper.php b/lib/private/TextToImage/Db/TaskMapper.php index 4c0357884e30d..b34c749eb663a 100644 --- a/lib/private/TextToImage/Db/TaskMapper.php +++ b/lib/private/TextToImage/Db/TaskMapper.php @@ -91,7 +91,7 @@ public function findUserTasksByApp(?string $userId, string $appId, ?string $iden */ public function deleteOlderThan(int $timeout): array { $datetime = $this->timeFactory->getDateTime(); - $datetime->sub(new \DateInterval('PT'.$timeout.'S')); + $datetime->sub(new \DateInterval('PT' . $timeout . 'S')); $qb = $this->db->getQueryBuilder(); $qb->select('*') ->from($this->tableName) diff --git a/lib/private/TextToImage/Manager.php b/lib/private/TextToImage/Manager.php index 88dc108f3801e..eec6cc3d24199 100644 --- a/lib/private/TextToImage/Manager.php +++ b/lib/private/TextToImage/Manager.php @@ -103,11 +103,11 @@ public function runTask(Task $task): void { $providers = $this->getPreferredProviders(); foreach ($providers as $provider) { - $this->logger->debug('Trying to run Text2Image provider '.$provider::class); + $this->logger->debug('Trying to run Text2Image provider ' . $provider::class); try { $task->setStatus(Task::STATUS_RUNNING); $completionExpectedAt = new \DateTime('now'); - $completionExpectedAt->add(new \DateInterval('PT'.$provider->getExpectedRuntime().'S')); + $completionExpectedAt->add(new \DateInterval('PT' . $provider->getExpectedRuntime() . 'S')); $task->setCompletionExpectedAt($completionExpectedAt); if ($task->getId() === null) { $this->logger->debug('Inserting Text2Image task into DB'); @@ -198,7 +198,7 @@ public function scheduleTask(Task $task): void { $this->logger->debug('Scheduling Text2Image Task'); $task->setStatus(Task::STATUS_SCHEDULED); $completionExpectedAt = new \DateTime('now'); - $completionExpectedAt->add(new \DateInterval('PT'.$this->getPreferredProviders()[0]->getExpectedRuntime().'S')); + $completionExpectedAt->add(new \DateInterval('PT' . $this->getPreferredProviders()[0]->getExpectedRuntime() . 'S')); $task->setCompletionExpectedAt($completionExpectedAt); $taskEntity = DbTask::fromPublicTask($task); $this->taskMapper->insert($taskEntity); diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php index 24454806e029a..ad12fae514464 100644 --- a/lib/private/URLGenerator.php +++ b/lib/private/URLGenerator.php @@ -43,7 +43,7 @@ public function __construct(IConfig $config, IUserSession $userSession, ICacheFactory $cacheFactory, IRequest $request, - Router $router + Router $router, ) { $this->config = $config; $this->userSession = $userSession; @@ -96,7 +96,7 @@ public function linkToRouteAbsolute(string $routeName, array $arguments = []): s public function linkToOCSRouteAbsolute(string $routeName, array $arguments = []): string { // Returns `/subfolder/index.php/ocsapp/…` with `'htaccess.IgnoreFrontController' => false` in config.php // And `/subfolder/ocsapp/…` with `'htaccess.IgnoreFrontController' => true` in config.php - $route = $this->router->generate('ocs.'.$routeName, $arguments, false); + $route = $this->router->generate('ocs.' . $routeName, $arguments, false); // Cut off `/subfolder` if (\OC::$WEBROOT !== '' && str_starts_with($route, \OC::$WEBROOT)) { @@ -176,8 +176,8 @@ public function linkTo(string $appName, string $file, array $args = []): string * Returns the path to the image. */ public function imagePath(string $appName, string $file): string { - $cache = $this->cacheFactory->createDistributed('imagePath-'.md5($this->getBaseUrl()).'-'); - $cacheKey = $appName.'-'.$file; + $cache = $this->cacheFactory->createDistributed('imagePath-' . md5($this->getBaseUrl()) . '-'); + $cacheKey = $appName . '-' . $file; if ($key = $cache->get($cacheKey)) { return $key; } diff --git a/lib/private/Updater.php b/lib/private/Updater.php index 2722c172f1a40..2ea680efcf535 100644 --- a/lib/private/Updater.php +++ b/lib/private/Updater.php @@ -57,7 +57,7 @@ public function __construct( private IAppConfig $appConfig, private Checker $checker, private ?LoggerInterface $log, - private Installer $installer + private Installer $installer, ) { } @@ -82,7 +82,7 @@ public function upgrade(): bool { } // Clear CAN_INSTALL file if not on git - if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir.'/CAN_INSTALL')) { + if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL')) { if (!unlink(\OC::$configDir . '/CAN_INSTALL')) { $this->log->error('Could not cleanup CAN_INSTALL from your config folder. Please remove this file manually.'); } @@ -100,13 +100,13 @@ public function upgrade(): bool { $this->log->error($exception->getMessage(), [ 'exception' => $exception, ]); - $this->emit('\OC\Updater', 'failure', [$exception->getMessage() . ': ' .$exception->getHint()]); + $this->emit('\OC\Updater', 'failure', [$exception->getMessage() . ': ' . $exception->getHint()]); $success = false; } catch (\Exception $exception) { $this->log->error($exception->getMessage(), [ 'exception' => $exception, ]); - $this->emit('\OC\Updater', 'failure', [get_class($exception) . ': ' .$exception->getMessage()]); + $this->emit('\OC\Updater', 'failure', [get_class($exception) . ': ' . $exception->getMessage()]); $success = false; } @@ -410,29 +410,29 @@ private function logAllEvents(): void { $dispatcher->addListener( MigratorExecuteSqlEvent::class, function (MigratorExecuteSqlEvent $event) use ($log): void { - $log->info(get_class($event).': ' . $event->getSql() . ' (' . $event->getCurrentStep() . ' of ' . $event->getMaxStep() . ')', ['app' => 'updater']); + $log->info(get_class($event) . ': ' . $event->getSql() . ' (' . $event->getCurrentStep() . ' of ' . $event->getMaxStep() . ')', ['app' => 'updater']); } ); $repairListener = function (Event $event) use ($log): void { if ($event instanceof RepairStartEvent) { - $log->info(get_class($event).': Starting ... ' . $event->getMaxStep() . ' (' . $event->getCurrentStepName() . ')', ['app' => 'updater']); + $log->info(get_class($event) . ': Starting ... ' . $event->getMaxStep() . ' (' . $event->getCurrentStepName() . ')', ['app' => 'updater']); } elseif ($event instanceof RepairAdvanceEvent) { $desc = $event->getDescription(); if (empty($desc)) { $desc = ''; } - $log->info(get_class($event).': ' . $desc . ' (' . $event->getIncrement() . ')', ['app' => 'updater']); + $log->info(get_class($event) . ': ' . $desc . ' (' . $event->getIncrement() . ')', ['app' => 'updater']); } elseif ($event instanceof RepairFinishEvent) { $log->info(get_class($event), ['app' => 'updater']); } elseif ($event instanceof RepairStepEvent) { - $log->info(get_class($event).': Repair step: ' . $event->getStepName(), ['app' => 'updater']); + $log->info(get_class($event) . ': Repair step: ' . $event->getStepName(), ['app' => 'updater']); } elseif ($event instanceof RepairInfoEvent) { - $log->info(get_class($event).': Repair info: ' . $event->getMessage(), ['app' => 'updater']); + $log->info(get_class($event) . ': Repair info: ' . $event->getMessage(), ['app' => 'updater']); } elseif ($event instanceof RepairWarningEvent) { - $log->warning(get_class($event).': Repair warning: ' . $event->getMessage(), ['app' => 'updater']); + $log->warning(get_class($event) . ': Repair warning: ' . $event->getMessage(), ['app' => 'updater']); } elseif ($event instanceof RepairErrorEvent) { - $log->error(get_class($event).': Repair error: ' . $event->getMessage(), ['app' => 'updater']); + $log->error(get_class($event) . ': Repair error: ' . $event->getMessage(), ['app' => 'updater']); } }; diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php index 9a84b102a9901..925d0e53921ab 100644 --- a/lib/private/User/Manager.php +++ b/lib/private/User/Manager.php @@ -201,7 +201,7 @@ public function checkPassword($loginName, $password) { $result = $this->checkPasswordNoLogging($loginName, $password); if ($result === false) { - \OCP\Server::get(LoggerInterface::class)->warning('Login failed: \''. $loginName .'\' (Remote IP: \''. \OC::$server->getRequest()->getRemoteAddress(). '\')', ['app' => 'core']); + \OCP\Server::get(LoggerInterface::class)->warning('Login failed: \'' . $loginName . '\' (Remote IP: \'' . \OC::$server->getRequest()->getRemoteAddress() . '\')', ['app' => 'core']); } return $result; diff --git a/lib/private/User/OutOfOfficeData.php b/lib/private/User/OutOfOfficeData.php index b173912644388..0d4e142567e82 100644 --- a/lib/private/User/OutOfOfficeData.php +++ b/lib/private/User/OutOfOfficeData.php @@ -13,14 +13,16 @@ use OCP\User\IOutOfOfficeData; class OutOfOfficeData implements IOutOfOfficeData { - public function __construct(private string $id, + public function __construct( + private string $id, private IUser $user, private int $startDate, private int $endDate, private string $shortMessage, private string $message, private ?string $replacementUserId, - private ?string $replacementUserDisplayName) { + private ?string $replacementUserDisplayName, + ) { } public function getId(): string { diff --git a/lib/private/User/User.php b/lib/private/User/User.php index 6f7ceb0853242..f2c388253381f 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -524,7 +524,7 @@ public function setQuota($quota) { if ($quota !== 'none' and $quota !== 'default') { $bytesQuota = OC_Helper::computerFileSize($quota); if ($bytesQuota === false) { - throw new InvalidArgumentException('Failed to set quota to invalid value '.$quota); + throw new InvalidArgumentException('Failed to set quota to invalid value ' . $quota); } $quota = OC_Helper::humanFileSize($bytesQuota); } diff --git a/lib/private/legacy/OC_App.php b/lib/private/legacy/OC_App.php index e5c2c34294dad..a9f8b24d8317f 100644 --- a/lib/private/legacy/OC_App.php +++ b/lib/private/legacy/OC_App.php @@ -239,7 +239,7 @@ public function enable(string $appId, /** * Get the path where to install apps */ - public static function getInstallPath(): string|null { + public static function getInstallPath(): ?string { foreach (OC::$APPSROOTS as $dir) { if (isset($dir['writable']) && $dir['writable'] === true) { return $dir['path']; diff --git a/lib/private/legacy/OC_Defaults.php b/lib/private/legacy/OC_Defaults.php index 54640a892c9d7..cc0ac687ccc35 100644 --- a/lib/private/legacy/OC_Defaults.php +++ b/lib/private/legacy/OC_Defaults.php @@ -223,8 +223,8 @@ public function getShortFooter() { if ($this->themeExist('getShortFooter')) { $footer = $this->theme->getShortFooter(); } else { - $footer = '' .$this->getEntity() . ''. + $footer = '' . $this->getEntity() . '' . ' – ' . $this->getSlogan(); } diff --git a/lib/private/legacy/OC_Files.php b/lib/private/legacy/OC_Files.php index 126472e306144..f75b89fea67ed 100644 --- a/lib/private/legacy/OC_Files.php +++ b/lib/private/legacy/OC_Files.php @@ -53,7 +53,7 @@ private static function sendHeaders($filename, $name, array $rangeArray): void { http_response_code(206); header('Accept-Ranges: bytes', true); if (count($rangeArray) > 1) { - $type = 'multipart/byteranges; boundary='.self::getBoundary(); + $type = 'multipart/byteranges; boundary=' . self::getBoundary(); // no Content-Length header here } else { header(sprintf('Content-Range: bytes %d-%d/%d', $rangeArray[0]['from'], $rangeArray[0]['to'], $fileSize), true); @@ -63,7 +63,7 @@ private static function sendHeaders($filename, $name, array $rangeArray): void { OC_Response::setContentLengthHeader($fileSize); } } - header('Content-Type: '.$type, true); + header('Content-Type: ' . $type, true); header('X-Accel-Buffering: no'); } @@ -336,12 +336,12 @@ private static function getSingleFile($view, $dir, $name, $params) { $type = \OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType($filename)); foreach ($rangeArray as $range) { - echo "\r\n--".self::getBoundary()."\r\n". - 'Content-type: '.$type."\r\n". - 'Content-range: bytes '.$range['from'].'-'.$range['to'].'/'.$range['size']."\r\n\r\n"; + echo "\r\n--" . self::getBoundary() . "\r\n" . + 'Content-type: ' . $type . "\r\n" . + 'Content-range: bytes ' . $range['from'] . '-' . $range['to'] . '/' . $range['size'] . "\r\n\r\n"; $view->readfilePart($filename, $range['from'], $range['to']); } - echo "\r\n--".self::getBoundary()."--\r\n"; + echo "\r\n--" . self::getBoundary() . "--\r\n"; } } catch (\OCP\Files\UnseekableException $ex) { // file is unseekable diff --git a/lib/private/legacy/OC_Helper.php b/lib/private/legacy/OC_Helper.php index 6da063ef2ce58..0e55eff8f8c62 100644 --- a/lib/private/legacy/OC_Helper.php +++ b/lib/private/legacy/OC_Helper.php @@ -463,7 +463,7 @@ public static function getStorageInfo($path, $rootInfo = null, $includeMountPoin } $fullPath = Filesystem::normalizePath($view->getAbsolutePath($path)); - $cacheKey = $fullPath. '::' . ($includeMountPoints ? 'include' : 'exclude'); + $cacheKey = $fullPath . '::' . ($includeMountPoints ? 'include' : 'exclude'); if ($useCache) { $cached = $memcache->get($cacheKey); if ($cached) { diff --git a/lib/private/legacy/OC_JSON.php b/lib/private/legacy/OC_JSON.php index a9682e2cce7df..e510595a3cb64 100644 --- a/lib/private/legacy/OC_JSON.php +++ b/lib/private/legacy/OC_JSON.php @@ -46,7 +46,7 @@ public static function checkLoggedIn() { */ public static function callCheck() { if (!\OC::$server->getRequest()->passesStrictCookieCheck()) { - header('Location: '.\OC::$WEBROOT); + header('Location: ' . \OC::$WEBROOT); exit(); } diff --git a/lib/private/legacy/OC_Response.php b/lib/private/legacy/OC_Response.php index 8c8890c74c4a9..86274f5fcb77c 100644 --- a/lib/private/legacy/OC_Response.php +++ b/lib/private/legacy/OC_Response.php @@ -43,7 +43,7 @@ public static function setContentLengthHeader($length) { $lfh = new \OC\LargeFileHelper; $length = $lfh->formatUnsignedInteger($length); } - header('Content-Length: '.$length); + header('Content-Length: ' . $length); } /** @@ -59,7 +59,7 @@ public static function addSecurityHeaders() { * @see \OCP\AppFramework\Http\Response::getHeaders */ $policy = 'default-src \'self\'; ' - . 'script-src \'self\' \'nonce-'.\OC::$server->getContentSecurityPolicyNonceManager()->getNonce().'\'; ' + . 'script-src \'self\' \'nonce-' . \OC::$server->getContentSecurityPolicyNonceManager()->getNonce() . '\'; ' . 'style-src \'self\' \'unsafe-inline\'; ' . 'frame-src *; ' . 'img-src * data: blob:; ' diff --git a/lib/private/legacy/OC_Template.php b/lib/private/legacy/OC_Template.php index 47803041cb55c..1026e536b97b3 100644 --- a/lib/private/legacy/OC_Template.php +++ b/lib/private/legacy/OC_Template.php @@ -11,7 +11,7 @@ use OCP\EventDispatcher\IEventDispatcher; use Psr\Log\LoggerInterface; -require_once __DIR__.'/template/functions.php'; +require_once __DIR__ . '/template/functions.php'; /** * This class provides the templates for ownCloud. @@ -128,15 +128,15 @@ public function fetchPage($additionalParams = null) { // Add custom headers $headers = ''; foreach (OC_Util::$headers as $header) { - $headers .= '<'.\OCP\Util::sanitizeHTML($header['tag']); + $headers .= '<' . \OCP\Util::sanitizeHTML($header['tag']); if (strcasecmp($header['tag'], 'script') === 0 && in_array('src', array_map('strtolower', array_keys($header['attributes'])))) { $headers .= ' defer'; } foreach ($header['attributes'] as $name => $value) { - $headers .= ' '.\OCP\Util::sanitizeHTML($name).'="'.\OCP\Util::sanitizeHTML($value).'"'; + $headers .= ' ' . \OCP\Util::sanitizeHTML($name) . '="' . \OCP\Util::sanitizeHTML($value) . '"'; } if ($header['text'] !== null) { - $headers .= '>'.\OCP\Util::sanitizeHTML($header['text']).''; + $headers .= '>' . \OCP\Util::sanitizeHTML($header['text']) . ''; } else { $headers .= '/>'; } @@ -162,7 +162,7 @@ public function fetchPage($additionalParams = null) { * do this. */ public function inc($file, $additionalParams = null) { - return $this->load($this->path.$file.'.php', $additionalParams); + return $this->load($this->path . $file . '.php', $additionalParams); } /** diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php index e152feb639e03..0c8fcc56f3254 100644 --- a/lib/private/legacy/OC_Util.php +++ b/lib/private/legacy/OC_Util.php @@ -156,7 +156,7 @@ public static function copySkeleton($userId, \OCP\Files\Folder $userDirectory) { } if (!empty($skeletonDirectory)) { - $logger->debug('copying skeleton for '.$userId.' from '.$skeletonDirectory.' to '.$userDirectory->getFullPath('/'), ['app' => 'files_skeleton']); + $logger->debug('copying skeleton for ' . $userId . ' from ' . $skeletonDirectory . ' to ' . $userDirectory->getFullPath('/'), ['app' => 'files_skeleton']); self::copyr($skeletonDirectory, $userDirectory); // update the file cache $userDirectory->getStorage()->getScanner()->scan('', \OC\Files\Cache\Scanner::SCAN_RECURSIVE); @@ -783,7 +783,7 @@ public static function getInstanceId() { $id = \OC::$server->getSystemConfig()->getValue('instanceid', null); if (is_null($id)) { // We need to guarantee at least one letter in instanceid so it can be used as the session_name - $id = 'oc' . \OC::$server->get(ISecureRandom::class)->generate(10, \OCP\Security\ISecureRandom::CHAR_LOWER.\OCP\Security\ISecureRandom::CHAR_DIGITS); + $id = 'oc' . \OC::$server->get(ISecureRandom::class)->generate(10, \OCP\Security\ISecureRandom::CHAR_LOWER . \OCP\Security\ISecureRandom::CHAR_DIGITS); \OC::$server->getSystemConfig()->setValue('instanceid', $id); } return $id; diff --git a/lib/private/legacy/template/functions.php b/lib/private/legacy/template/functions.php index a9a1f10a116f6..37df801c3c4ed 100644 --- a/lib/private/legacy/template/functions.php +++ b/lib/private/legacy/template/functions.php @@ -22,12 +22,12 @@ function p($string) { function emit_css_tag($href, $opts = '') { $s = '\n"); + print_unescaped($s . ">\n"); } /** @@ -58,16 +58,16 @@ function emit_script_tag(string $src, string $script_content = '', string $conte $s = ''; - print_unescaped($s."\n"); + print_unescaped($s . "\n"); } /** @@ -314,7 +314,7 @@ function html_select_options($options, $selected, $params = []) { $label = $label[$label_name]; } $select = in_array($value, $selected) ? ' selected="selected"' : ''; - $html .= ''."\n"; + $html .= '' . "\n"; } return $html; } diff --git a/lib/public/App/IAppManager.php b/lib/public/App/IAppManager.php index 580288fbff7d5..1182f611b299f 100644 --- a/lib/public/App/IAppManager.php +++ b/lib/public/App/IAppManager.php @@ -51,7 +51,7 @@ public function getAppVersion(string $appId, bool $useCache = true): string; * @return string|null * @since 29.0.0 */ - public function getAppIcon(string $appId, bool $dark = false): string|null; + public function getAppIcon(string $appId, bool $dark = false): ?string; /** * Check if an app is enabled for user diff --git a/lib/public/AppFramework/AuthPublicShareController.php b/lib/public/AppFramework/AuthPublicShareController.php index b79f530dc4dcd..28a92fedcc9a1 100644 --- a/lib/public/AppFramework/AuthPublicShareController.php +++ b/lib/public/AppFramework/AuthPublicShareController.php @@ -192,7 +192,7 @@ private function getRoute(string $function): string { if (str_ends_with($class, 'Controller')) { $class = substr($class, 0, -10); } - return $app .'.'. $class .'.'. $function; + return $app . '.' . $class . '.' . $function; } /** diff --git a/lib/public/AppFramework/Controller.php b/lib/public/AppFramework/Controller.php index 99fed5350e59a..7c25b3382e7be 100644 --- a/lib/public/AppFramework/Controller.php +++ b/lib/public/AppFramework/Controller.php @@ -135,7 +135,7 @@ public function buildResponse($response, $format = 'json') { return $responder($response); } - throw new \DomainException('No responder registered for format '. + throw new \DomainException('No responder registered for format ' . $format . '!'); } } diff --git a/lib/public/AppFramework/Db/QBMapper.php b/lib/public/AppFramework/Db/QBMapper.php index cd09a6b11b62c..ef4516221e6b8 100644 --- a/lib/public/AppFramework/Db/QBMapper.php +++ b/lib/public/AppFramework/Db/QBMapper.php @@ -296,7 +296,7 @@ private function buildDebugMessage(string $msg, IQueryBuilder $sql): string { */ protected function mapRowToEntity(array $row): Entity { unset($row['DOCTRINE_ROWNUM']); // remove doctrine/dbal helper column - return \call_user_func($this->entityClass .'::fromRow', $row); + return \call_user_func($this->entityClass . '::fromRow', $row); } diff --git a/lib/public/AppFramework/Http/Attribute/AuthorizedAdminSetting.php b/lib/public/AppFramework/Http/Attribute/AuthorizedAdminSetting.php index e81f195b29893..83101143fc910 100644 --- a/lib/public/AppFramework/Http/Attribute/AuthorizedAdminSetting.php +++ b/lib/public/AppFramework/Http/Attribute/AuthorizedAdminSetting.php @@ -25,7 +25,7 @@ class AuthorizedAdminSetting { * @since 27.0.0 */ public function __construct( - protected string $settings + protected string $settings, ) { } diff --git a/lib/public/AppFramework/Http/Attribute/BruteForceProtection.php b/lib/public/AppFramework/Http/Attribute/BruteForceProtection.php index 9fd97cdc3ed3e..0fc1a3b9b6db7 100644 --- a/lib/public/AppFramework/Http/Attribute/BruteForceProtection.php +++ b/lib/public/AppFramework/Http/Attribute/BruteForceProtection.php @@ -23,7 +23,7 @@ class BruteForceProtection { * @since 27.0.0 */ public function __construct( - protected string $action + protected string $action, ) { } diff --git a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php index 0a6258be94138..584191b9aaa2b 100644 --- a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php +++ b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php @@ -448,7 +448,7 @@ public function buildPolicy() { if ($this->strictDynamicAllowed) { $scriptSrc .= '\'strict-dynamic\' '; } - $scriptSrc .= '\'nonce-'.$this->jsNonce.'\''; + $scriptSrc .= '\'nonce-' . $this->jsNonce . '\''; $allowedScriptDomains = array_flip($this->allowedScriptDomains); unset($allowedScriptDomains['\'self\'']); $this->allowedScriptDomains = array_flip($allowedScriptDomains); diff --git a/lib/public/AppFramework/Http/Events/BeforeLoginTemplateRenderedEvent.php b/lib/public/AppFramework/Http/Events/BeforeLoginTemplateRenderedEvent.php index d18cad25acc2f..b724b3a72adc8 100644 --- a/lib/public/AppFramework/Http/Events/BeforeLoginTemplateRenderedEvent.php +++ b/lib/public/AppFramework/Http/Events/BeforeLoginTemplateRenderedEvent.php @@ -20,7 +20,9 @@ class BeforeLoginTemplateRenderedEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private TemplateResponse $response) { + public function __construct( + private TemplateResponse $response, + ) { parent::__construct(); } diff --git a/lib/public/AppFramework/Http/Response.php b/lib/public/AppFramework/Http/Response.php index 940f0f124e882..d186040235939 100644 --- a/lib/public/AppFramework/Http/Response.php +++ b/lib/public/AppFramework/Http/Response.php @@ -96,7 +96,7 @@ public function cacheFor(int $cacheSeconds, bool $public = false, bool $immutabl /** @var ITimeFactory $time */ $time = \OCP\Server::get(ITimeFactory::class); $expires->setTimestamp($time->getTime()); - $expires->add(new \DateInterval('PT'.$cacheSeconds.'S')); + $expires->add(new \DateInterval('PT' . $cacheSeconds . 'S')); $this->addHeader('Expires', $expires->format(\DateTimeInterface::RFC2822)); } else { $this->addHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); diff --git a/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengeFailed.php b/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengeFailed.php index 15e5ed92509dc..42ca855df35a2 100644 --- a/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengeFailed.php +++ b/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengeFailed.php @@ -20,7 +20,8 @@ class TwoFactorProviderChallengeFailed extends Event { */ public function __construct( private IUser $user, - private IProvider $provider) { + private IProvider $provider, + ) { parent::__construct(); } diff --git a/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengePassed.php b/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengePassed.php index 2dc91a98880bc..396fbf9e9a5bd 100644 --- a/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengePassed.php +++ b/lib/public/Authentication/TwoFactorAuth/TwoFactorProviderChallengePassed.php @@ -20,7 +20,8 @@ class TwoFactorProviderChallengePassed extends Event { */ public function __construct( private IUser $user, - private IProvider $provider) { + private IProvider $provider, + ) { parent::__construct(); } diff --git a/lib/public/AutoloadNotAllowedException.php b/lib/public/AutoloadNotAllowedException.php index 6e897b49406cf..a296ea3356a85 100644 --- a/lib/public/AutoloadNotAllowedException.php +++ b/lib/public/AutoloadNotAllowedException.php @@ -18,6 +18,6 @@ class AutoloadNotAllowedException extends \DomainException { * @since 8.2.0 */ public function __construct($path) { - parent::__construct('Autoload path not allowed: '.$path); + parent::__construct('Autoload path not allowed: ' . $path); } } diff --git a/lib/public/Comments/ICommentsManager.php b/lib/public/Comments/ICommentsManager.php index af9d0fe61f073..0ff762e51d041 100644 --- a/lib/public/Comments/ICommentsManager.php +++ b/lib/public/Comments/ICommentsManager.php @@ -97,7 +97,7 @@ public function getForObject( $objectId, $limit = 0, $offset = 0, - ?\DateTime $notOlderThan = null + ?\DateTime $notOlderThan = null, ); /** @@ -118,7 +118,7 @@ public function getForObjectSince( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array; /** @@ -140,7 +140,7 @@ public function getCommentsWithVerbForObjectSinceComment( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array; /** @@ -240,7 +240,7 @@ public function getLastCommentDateByActor( string $objectId, string $verb, string $actorType, - array $actors + array $actors, ): array; /** diff --git a/lib/public/Files/Events/Node/AbstractNodeEvent.php b/lib/public/Files/Events/Node/AbstractNodeEvent.php index 64b0e3a3aa511..7afb71277f69a 100644 --- a/lib/public/Files/Events/Node/AbstractNodeEvent.php +++ b/lib/public/Files/Events/Node/AbstractNodeEvent.php @@ -21,7 +21,7 @@ abstract class AbstractNodeEvent extends Event implements IWebhookCompatibleEven * @since 20.0.0 */ public function __construct( - private Node $node + private Node $node, ) { } diff --git a/lib/public/Files/Events/Node/AbstractNodesEvent.php b/lib/public/Files/Events/Node/AbstractNodesEvent.php index 7941a9e596a80..8fa8795d1df82 100644 --- a/lib/public/Files/Events/Node/AbstractNodesEvent.php +++ b/lib/public/Files/Events/Node/AbstractNodesEvent.php @@ -22,7 +22,7 @@ abstract class AbstractNodesEvent extends Event implements IWebhookCompatibleEve */ public function __construct( private Node $source, - private Node $target + private Node $target, ) { } diff --git a/lib/public/Files/Lock/LockContext.php b/lib/public/Files/Lock/LockContext.php index 48d9f804fc409..5e61d3e2ec51a 100644 --- a/lib/public/Files/Lock/LockContext.php +++ b/lib/public/Files/Lock/LockContext.php @@ -33,7 +33,7 @@ final class LockContext { public function __construct( Node $node, int $type, - string $owner + string $owner, ) { $this->node = $node; $this->type = $type; diff --git a/lib/public/Files/Template/Field.php b/lib/public/Files/Template/Field.php index dd65ef857ea0c..ec195ca350497 100644 --- a/lib/public/Files/Template/Field.php +++ b/lib/public/Files/Template/Field.php @@ -22,7 +22,7 @@ abstract class Field implements \JsonSerializable { */ public function __construct( private string $index, - private FieldType $type + private FieldType $type, ) { } diff --git a/lib/public/Files/Template/FieldFactory.php b/lib/public/Files/Template/FieldFactory.php index 4c0fff6b46fe5..f14d44a85739d 100644 --- a/lib/public/Files/Template/FieldFactory.php +++ b/lib/public/Files/Template/FieldFactory.php @@ -21,7 +21,7 @@ class FieldFactory { */ public static function createField( string $index, - FieldType $type + FieldType $type, ): Field { return match ($type) { FieldType::RichText => new RichTextField($index, $type), diff --git a/lib/public/Files/Template/RegisterTemplateCreatorEvent.php b/lib/public/Files/Template/RegisterTemplateCreatorEvent.php index 4f739b1f9d303..c931f3e2a78d6 100644 --- a/lib/public/Files/Template/RegisterTemplateCreatorEvent.php +++ b/lib/public/Files/Template/RegisterTemplateCreatorEvent.php @@ -17,7 +17,7 @@ class RegisterTemplateCreatorEvent extends Event { * @since 30.0.0 */ public function __construct( - private ITemplateManager $templateManager + private ITemplateManager $templateManager, ) { } diff --git a/lib/public/Files/Template/TemplateFileCreator.php b/lib/public/Files/Template/TemplateFileCreator.php index b8174ec3ea095..9a4bd2fae43e6 100644 --- a/lib/public/Files/Template/TemplateFileCreator.php +++ b/lib/public/Files/Template/TemplateFileCreator.php @@ -34,7 +34,7 @@ final class TemplateFileCreator implements \JsonSerializable { * @since 21.0.0 */ public function __construct( - string $appId, string $actionName, string $fileExtension + string $appId, string $actionName, string $fileExtension, ) { $this->appId = $appId; $this->actionName = $actionName; diff --git a/lib/public/FilesMetadata/AMetadataEvent.php b/lib/public/FilesMetadata/AMetadataEvent.php index 637073a2ffd9b..8fef0d85db940 100644 --- a/lib/public/FilesMetadata/AMetadataEvent.php +++ b/lib/public/FilesMetadata/AMetadataEvent.php @@ -23,7 +23,7 @@ abstract class AMetadataEvent extends Event { */ public function __construct( protected Node $node, - protected IFilesMetadata $metadata + protected IFilesMetadata $metadata, ) { parent::__construct(); } diff --git a/lib/public/FilesMetadata/Event/MetadataNamedEvent.php b/lib/public/FilesMetadata/Event/MetadataNamedEvent.php index 6b40bc2f3796d..453eae1d6af2e 100644 --- a/lib/public/FilesMetadata/Event/MetadataNamedEvent.php +++ b/lib/public/FilesMetadata/Event/MetadataNamedEvent.php @@ -38,7 +38,7 @@ class MetadataNamedEvent extends AMetadataEvent { public function __construct( Node $node, IFilesMetadata $metadata, - private string $name = '' + private string $name = '', ) { parent::__construct($node, $metadata); } diff --git a/lib/public/FilesMetadata/IFilesMetadataManager.php b/lib/public/FilesMetadata/IFilesMetadataManager.php index ba2a5bd245063..4b1a6d32e8e76 100644 --- a/lib/public/FilesMetadata/IFilesMetadataManager.php +++ b/lib/public/FilesMetadata/IFilesMetadataManager.php @@ -50,7 +50,7 @@ interface IFilesMetadataManager { public function refreshMetadata( Node $node, int $process = self::PROCESS_LIVE, - string $namedEvent = '' + string $namedEvent = '', ): IFilesMetadata; /** @@ -112,7 +112,7 @@ public function deleteMetadata(int $fileId): void; public function getMetadataQuery( IQueryBuilder $qb, string $fileTableAlias, - string $fileIdField + string $fileIdField, ): IMetadataQuery; /** diff --git a/lib/public/INavigationManager.php b/lib/public/INavigationManager.php index d22e96aa9d337..2bd70c04d6500 100644 --- a/lib/public/INavigationManager.php +++ b/lib/public/INavigationManager.php @@ -87,7 +87,7 @@ public function setUnreadCounter(string $id, int $unreadCounter): void; * @param string $id ID of the navigation entry * @since 31.0.0 */ - public function get(string $id): array|null; + public function get(string $id): ?array; /** * Returns the id of the user's default entry diff --git a/lib/public/Log/RotationTrait.php b/lib/public/Log/RotationTrait.php index 1481ed71833f7..03100613c4ce1 100644 --- a/lib/public/Log/RotationTrait.php +++ b/lib/public/Log/RotationTrait.php @@ -29,7 +29,7 @@ trait RotationTrait { * @since 14.0.0 */ protected function rotate():string { - $rotatedFile = $this->filePath.'.1'; + $rotatedFile = $this->filePath . '.1'; rename($this->filePath, $rotatedFile); return $rotatedFile; } diff --git a/lib/public/Mail/Provider/Address.php b/lib/public/Mail/Provider/Address.php index 44a5544ee4b71..751fb99d930ff 100644 --- a/lib/public/Mail/Provider/Address.php +++ b/lib/public/Mail/Provider/Address.php @@ -28,7 +28,7 @@ class Address implements \OCP\Mail\Provider\IAddress { */ public function __construct( protected ?string $address = null, - protected ?string $label = null + protected ?string $label = null, ) { } @@ -53,7 +53,7 @@ public function setAddress(string $value): self { * * @return string|null returns the mail address or null if one is not set */ - public function getAddress(): string|null { + public function getAddress(): ?string { return $this->address; } @@ -78,7 +78,7 @@ public function setLabel(string $value): self { * * @return string|null returns the mail address label/name or null if one is not set */ - public function getLabel(): string|null { + public function getLabel(): ?string { return $this->label; } diff --git a/lib/public/Mail/Provider/Attachment.php b/lib/public/Mail/Provider/Attachment.php index cb7b9b0d24104..af7340a3ccfd3 100644 --- a/lib/public/Mail/Provider/Attachment.php +++ b/lib/public/Mail/Provider/Attachment.php @@ -32,7 +32,7 @@ public function __construct( protected ?string $contents, protected ?string $name, protected ?string $type, - protected bool $embedded = false + protected bool $embedded = false, ) { } @@ -57,7 +57,7 @@ public function setName(string $value): self { * * @return string | null returns the attachment file name or null if not set */ - public function getName(): string|null { + public function getName(): ?string { return $this->name; } @@ -82,7 +82,7 @@ public function setType(string $value): self { * * @return string | null returns the attachment mime type or null if not set */ - public function getType(): string|null { + public function getType(): ?string { return $this->type; } @@ -107,7 +107,7 @@ public function setContents(string $value): self { * * @return string | null returns the attachment contents or null if not set */ - public function getContents(): string|null { + public function getContents(): ?string { return $this->contents; } diff --git a/lib/public/Mail/Provider/IAddress.php b/lib/public/Mail/Provider/IAddress.php index b5748a51cc0c3..121467390dc59 100644 --- a/lib/public/Mail/Provider/IAddress.php +++ b/lib/public/Mail/Provider/IAddress.php @@ -36,7 +36,7 @@ public function setAddress(string $value): self; * * @return string returns the mail address */ - public function getAddress(): string|null; + public function getAddress(): ?string; /** * sets the mail address label/name @@ -56,6 +56,6 @@ public function setLabel(string $value): self; * * @return string returns the mail address label/name */ - public function getLabel(): string|null; + public function getLabel(): ?string; } diff --git a/lib/public/Mail/Provider/IAttachment.php b/lib/public/Mail/Provider/IAttachment.php index e27f5ee066b1b..ff26699491920 100644 --- a/lib/public/Mail/Provider/IAttachment.php +++ b/lib/public/Mail/Provider/IAttachment.php @@ -36,7 +36,7 @@ public function setName(string $value): self; * * @return string | null returns the attachment file name or null if one is not set */ - public function getName(): string|null; + public function getName(): ?string; /** * sets the attachment mime type @@ -56,7 +56,7 @@ public function setType(string $value): self; * * @return string | null returns the attachment mime type or null if not set */ - public function getType(): string|null; + public function getType(): ?string; /** * sets the attachment contents (actual data) @@ -76,7 +76,7 @@ public function setContents(string $value): self; * * @return string | null returns the attachment contents or null if not set */ - public function getContents(): string|null; + public function getContents(): ?string; /** * sets the embedded status of the attachment diff --git a/lib/public/Mail/Provider/IManager.php b/lib/public/Mail/Provider/IManager.php index ff01f93d2a408..3c639ef21efa6 100644 --- a/lib/public/Mail/Provider/IManager.php +++ b/lib/public/Mail/Provider/IManager.php @@ -63,7 +63,7 @@ public function providers(): array; * * @return IProvider|null */ - public function findProviderById(string $providerId): IProvider|null; + public function findProviderById(string $providerId): ?IProvider; /** * retrieve all services for all registered mail providers @@ -87,7 +87,7 @@ public function services(string $userId): array; * * @return IService|null returns service object or null if none found */ - public function findServiceById(string $userId, string $serviceId, ?string $providerId = null): IService|null; + public function findServiceById(string $userId, string $serviceId, ?string $providerId = null): ?IService; /** * retrieve a service for a specific mail address @@ -101,6 +101,6 @@ public function findServiceById(string $userId, string $serviceId, ?string $prov * * @return IService|null returns service object or null if none found */ - public function findServiceByAddress(string $userId, string $address, ?string $providerId = null): IService|null; + public function findServiceByAddress(string $userId, string $address, ?string $providerId = null): ?IService; } diff --git a/lib/public/Mail/Provider/IMessage.php b/lib/public/Mail/Provider/IMessage.php index 2ad3b422b9d4d..e3dfbe6981d5a 100644 --- a/lib/public/Mail/Provider/IMessage.php +++ b/lib/public/Mail/Provider/IMessage.php @@ -45,7 +45,7 @@ public function setFrom(IAddress $value): self; * * @return IAddress|null sender's mail address object */ - public function getFrom(): IAddress|null; + public function getFrom(): ?IAddress; /** * sets the sender's reply to address of this message @@ -65,7 +65,7 @@ public function setReplyTo(IAddress $value): self; * * @return IAddress|null sender's reply to mail address object */ - public function getReplyTo(): IAddress|null; + public function getReplyTo(): ?IAddress; /** * sets the recipient(s) of this message @@ -145,7 +145,7 @@ public function setSubject(string $value): self; * * @return string|null subject of message or null if one is not set */ - public function getSubject(): string|null; + public function getSubject(): ?string; /** * sets the plain text or html body of this message @@ -168,7 +168,7 @@ public function setBody(string $value, bool $html): self; * * @return string|null html/plain body of this message or null if one is not set */ - public function getBody(): string|null; + public function getBody(): ?string; /** * sets the html body of this message @@ -188,7 +188,7 @@ public function setBodyHtml(string $value): self; * * @return string|null html body of this message or null if one is not set */ - public function getBodyHtml(): string|null; + public function getBodyHtml(): ?string; /** * sets the plain text body of this message @@ -208,7 +208,7 @@ public function setBodyPlain(string $value): self; * * @return string|null plain text body of this message or null if one is not set */ - public function getBodyPlain(): string|null; + public function getBodyPlain(): ?string; /** * sets the attachments of this message diff --git a/lib/public/Mail/Provider/IProvider.php b/lib/public/Mail/Provider/IProvider.php index e94ee73217a76..d89022d7cbf2b 100644 --- a/lib/public/Mail/Provider/IProvider.php +++ b/lib/public/Mail/Provider/IProvider.php @@ -68,7 +68,7 @@ public function listServices(string $userId): array; * * @return IService|null returns service object or null if none found */ - public function findServiceById(string $userId, string $serviceId): IService|null; + public function findServiceById(string $userId, string $serviceId): ?IService; /** * retrieve a service for a specific mail address @@ -80,7 +80,7 @@ public function findServiceById(string $userId, string $serviceId): IService|nul * * @return IService|null returns service object or null if none found */ - public function findServiceByAddress(string $userId, string $address): IService|null; + public function findServiceByAddress(string $userId, string $address): ?IService; /** * construct a new empty service object diff --git a/lib/public/Mail/Provider/Message.php b/lib/public/Mail/Provider/Message.php index 7814fb849d548..f7a21c05ed3f6 100644 --- a/lib/public/Mail/Provider/Message.php +++ b/lib/public/Mail/Provider/Message.php @@ -65,7 +65,7 @@ public function setFrom(IAddress $value): self { * * @return IAddress|null sender's mail address object */ - public function getFrom(): IAddress|null { + public function getFrom(): ?IAddress { // evaluate if data store field exists and return value(s) or null otherwise return (isset($this->data['from'])) ? $this->data['from'] : null; } @@ -93,7 +93,7 @@ public function setReplyTo(IAddress $value): self { * * @return IAddress|null sender's reply to mail address object */ - public function getReplyTo(): IAddress|null { + public function getReplyTo(): ?IAddress { // evaluate if data store field exists and return value(s) or null otherwise return (isset($this->data['replyTo'])) ? $this->data['replyTo'] : null; } @@ -205,7 +205,7 @@ public function setSubject(string $value): self { * * @return string|null subject of message or null if one is not set */ - public function getSubject(): string|null { + public function getSubject(): ?string { // evaluate if data store field exists and return value(s) or null otherwise return (isset($this->data['subject'])) ? $this->data['subject'] : null; } @@ -240,7 +240,7 @@ public function setBody(string $value, bool $html = false): self { * * @return string|null html/plain body of this message or null if one is not set */ - public function getBody(): string|null { + public function getBody(): ?string { // evaluate if data store field(s) exists and return value if (isset($this->data['bodyHtml'])) { return $this->data['bodyHtml']; @@ -274,7 +274,7 @@ public function setBodyHtml(string $value): self { * * @return string|null html body of this message or null if one is not set */ - public function getBodyHtml(): string|null { + public function getBodyHtml(): ?string { // evaluate if data store field exists and return value(s) or null otherwise return (isset($this->data['bodyHtml'])) ? $this->data['bodyHtml'] : null; } @@ -302,7 +302,7 @@ public function setBodyPlain(string $value): self { * * @return string|null plain text body of this message or null if one is not set */ - public function getBodyPlain(): string|null { + public function getBodyPlain(): ?string { // evaluate if data store field exists and return value(s) or null otherwise return (isset($this->data['bodyPlain'])) ? $this->data['bodyPlain'] : null; } diff --git a/lib/public/Migration/Attributes/GenericMigrationAttribute.php b/lib/public/Migration/Attributes/GenericMigrationAttribute.php index 6f187635ff768..e63f78088e841 100644 --- a/lib/public/Migration/Attributes/GenericMigrationAttribute.php +++ b/lib/public/Migration/Attributes/GenericMigrationAttribute.php @@ -22,7 +22,7 @@ class GenericMigrationAttribute extends MigrationAttribute implements JsonSerial * @since 30.0.0 */ public function __construct( - private readonly array $details = [] + private readonly array $details = [], ) { parent::__construct( $details['table'] ?? '', diff --git a/lib/public/Preview/IMimeIconProvider.php b/lib/public/Preview/IMimeIconProvider.php index da4896bec8714..4a407f4857767 100644 --- a/lib/public/Preview/IMimeIconProvider.php +++ b/lib/public/Preview/IMimeIconProvider.php @@ -18,5 +18,5 @@ interface IMimeIconProvider { * if no preview is available. * @since 28.0.0 */ - public function getMimeIconUrl(string $mime): string|null; + public function getMimeIconUrl(string $mime): ?string; } diff --git a/lib/public/Settings/Events/DeclarativeSettingsRegisterFormEvent.php b/lib/public/Settings/Events/DeclarativeSettingsRegisterFormEvent.php index 951e4ad92980a..e861afdd5806c 100644 --- a/lib/public/Settings/Events/DeclarativeSettingsRegisterFormEvent.php +++ b/lib/public/Settings/Events/DeclarativeSettingsRegisterFormEvent.php @@ -22,7 +22,9 @@ class DeclarativeSettingsRegisterFormEvent extends Event { /** * @since 29.0.0 */ - public function __construct(private IDeclarativeManager $manager) { + public function __construct( + private IDeclarativeManager $manager, + ) { parent::__construct(); } diff --git a/lib/public/Share/IShare.php b/lib/public/Share/IShare.php index c2843c078e3aa..cdad084ac925f 100644 --- a/lib/public/Share/IShare.php +++ b/lib/public/Share/IShare.php @@ -368,7 +368,7 @@ public function getNote(); * @return \OCP\Share\IShare The modified object * @since 9.0.0 */ - public function setExpirationDate(\DateTime|null $expireDate); + public function setExpirationDate(?\DateTime $expireDate); /** * Get the expiration date diff --git a/lib/public/TaskProcessing/Events/AbstractTaskProcessingEvent.php b/lib/public/TaskProcessing/Events/AbstractTaskProcessingEvent.php index 84dbb8915f83a..55f33327e9f12 100644 --- a/lib/public/TaskProcessing/Events/AbstractTaskProcessingEvent.php +++ b/lib/public/TaskProcessing/Events/AbstractTaskProcessingEvent.php @@ -19,7 +19,7 @@ abstract class AbstractTaskProcessingEvent extends Event { * @since 30.0.0 */ public function __construct( - private readonly Task $task + private readonly Task $task, ) { parent::__construct(); } diff --git a/lib/public/TaskProcessing/IManager.php b/lib/public/TaskProcessing/IManager.php index c26a5d67339ce..2d5fe1d9ba69c 100644 --- a/lib/public/TaskProcessing/IManager.php +++ b/lib/public/TaskProcessing/IManager.php @@ -182,7 +182,7 @@ public function getUserTasks(?string $userId, ?string $taskTypeId = null, ?strin */ public function getTasks( ?string $userId, ?string $taskTypeId = null, ?string $appId = null, ?string $customId = null, - ?int $status = null, ?int $scheduleAfter = null, ?int $endedBefore = null + ?int $status = null, ?int $scheduleAfter = null, ?int $endedBefore = null, ): array; /** diff --git a/lib/public/Teams/Team.php b/lib/public/Teams/Team.php index 07fc3f9ccd306..8ece28bf6484b 100644 --- a/lib/public/Teams/Team.php +++ b/lib/public/Teams/Team.php @@ -18,7 +18,11 @@ class Team implements \JsonSerializable { /** * @since 29.0.0 */ - public function __construct(private string $teamId, private string $displayName, private ?string $link) { + public function __construct( + private string $teamId, + private string $displayName, + private ?string $link, + ) { } /** diff --git a/lib/public/TextProcessing/Events/AbstractTextProcessingEvent.php b/lib/public/TextProcessing/Events/AbstractTextProcessingEvent.php index e42f64ca28cfb..8b94425402017 100644 --- a/lib/public/TextProcessing/Events/AbstractTextProcessingEvent.php +++ b/lib/public/TextProcessing/Events/AbstractTextProcessingEvent.php @@ -20,7 +20,7 @@ abstract class AbstractTextProcessingEvent extends Event { * @since 27.1.0 */ public function __construct( - private Task $task + private Task $task, ) { parent::__construct(); } diff --git a/lib/public/TextToImage/Events/AbstractTextToImageEvent.php b/lib/public/TextToImage/Events/AbstractTextToImageEvent.php index 75920487412b3..df850e1be33ee 100644 --- a/lib/public/TextToImage/Events/AbstractTextToImageEvent.php +++ b/lib/public/TextToImage/Events/AbstractTextToImageEvent.php @@ -21,7 +21,7 @@ abstract class AbstractTextToImageEvent extends Event { * @since 28.0.0 */ public function __construct( - private Task $task + private Task $task, ) { parent::__construct(); } diff --git a/lib/public/Translation/LanguageTuple.php b/lib/public/Translation/LanguageTuple.php index 883daa01da3bc..07507ece68790 100644 --- a/lib/public/Translation/LanguageTuple.php +++ b/lib/public/Translation/LanguageTuple.php @@ -24,7 +24,7 @@ public function __construct( private string $from, private string $fromLabel, private string $to, - private string $toLabel + private string $toLabel, ) { } diff --git a/lib/public/User/Events/OutOfOfficeChangedEvent.php b/lib/public/User/Events/OutOfOfficeChangedEvent.php index b1cdb3abdd71b..10865ef7ed57d 100644 --- a/lib/public/User/Events/OutOfOfficeChangedEvent.php +++ b/lib/public/User/Events/OutOfOfficeChangedEvent.php @@ -21,7 +21,9 @@ class OutOfOfficeChangedEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private IOutOfOfficeData $data) { + public function __construct( + private IOutOfOfficeData $data, + ) { parent::__construct(); } diff --git a/lib/public/User/Events/OutOfOfficeClearedEvent.php b/lib/public/User/Events/OutOfOfficeClearedEvent.php index 3eb8a9016e755..4153ce98ab5cc 100644 --- a/lib/public/User/Events/OutOfOfficeClearedEvent.php +++ b/lib/public/User/Events/OutOfOfficeClearedEvent.php @@ -21,7 +21,9 @@ class OutOfOfficeClearedEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private IOutOfOfficeData $data) { + public function __construct( + private IOutOfOfficeData $data, + ) { parent::__construct(); } diff --git a/lib/public/User/Events/OutOfOfficeEndedEvent.php b/lib/public/User/Events/OutOfOfficeEndedEvent.php index e5cbc174d09f4..0817994f0698a 100644 --- a/lib/public/User/Events/OutOfOfficeEndedEvent.php +++ b/lib/public/User/Events/OutOfOfficeEndedEvent.php @@ -19,7 +19,9 @@ class OutOfOfficeEndedEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private IOutOfOfficeData $data) { + public function __construct( + private IOutOfOfficeData $data, + ) { parent::__construct(); } diff --git a/lib/public/User/Events/OutOfOfficeScheduledEvent.php b/lib/public/User/Events/OutOfOfficeScheduledEvent.php index 0cf071baf5958..f830d2af209c0 100644 --- a/lib/public/User/Events/OutOfOfficeScheduledEvent.php +++ b/lib/public/User/Events/OutOfOfficeScheduledEvent.php @@ -21,7 +21,9 @@ class OutOfOfficeScheduledEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private IOutOfOfficeData $data) { + public function __construct( + private IOutOfOfficeData $data, + ) { parent::__construct(); } diff --git a/lib/public/User/Events/OutOfOfficeStartedEvent.php b/lib/public/User/Events/OutOfOfficeStartedEvent.php index 9550f5072e02a..1b5c69b3cfbe3 100644 --- a/lib/public/User/Events/OutOfOfficeStartedEvent.php +++ b/lib/public/User/Events/OutOfOfficeStartedEvent.php @@ -19,7 +19,9 @@ class OutOfOfficeStartedEvent extends Event { /** * @since 28.0.0 */ - public function __construct(private IOutOfOfficeData $data) { + public function __construct( + private IOutOfOfficeData $data, + ) { parent::__construct(); } diff --git a/lib/public/UserMigration/IMigrator.php b/lib/public/UserMigration/IMigrator.php index 3083233a4c423..8ce2cca8f983d 100644 --- a/lib/public/UserMigration/IMigrator.php +++ b/lib/public/UserMigration/IMigrator.php @@ -25,7 +25,7 @@ interface IMigrator { public function export( IUser $user, IExportDestination $exportDestination, - OutputInterface $output + OutputInterface $output, ): void; /** @@ -37,7 +37,7 @@ public function export( public function import( IUser $user, IImportSource $importSource, - OutputInterface $output + OutputInterface $output, ): void; /** @@ -75,6 +75,6 @@ public function getVersion(): int; * @since 24.0.0 */ public function canImport( - IImportSource $importSource + IImportSource $importSource, ): bool; } diff --git a/lib/public/UserMigration/TMigratorBasicVersionHandling.php b/lib/public/UserMigration/TMigratorBasicVersionHandling.php index f679c8e87ae65..b33425a023dcd 100644 --- a/lib/public/UserMigration/TMigratorBasicVersionHandling.php +++ b/lib/public/UserMigration/TMigratorBasicVersionHandling.php @@ -31,7 +31,7 @@ public function getVersion(): int { * @since 24.0.0 */ public function canImport( - IImportSource $importSource + IImportSource $importSource, ): bool { $version = $importSource->getMigratorVersion($this->getId()); if ($version === null) { diff --git a/lib/public/Util.php b/lib/public/Util.php index 4bd2c61dfbed5..520e4616de538 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -302,7 +302,7 @@ public static function getDefaultEmailAddress(string $user_part): string { $user_part = $config->getSystemValueString('mail_from_address', $user_part); $host_name = self::getServerHostName(); $host_name = $config->getSystemValueString('mail_domain', $host_name); - $defaultEmailAddress = $user_part.'@'.$host_name; + $defaultEmailAddress = $user_part . '@' . $host_name; $mailer = \OC::$server->get(IMailer::class); if ($mailer->validateMailAddress($defaultEmailAddress)) { @@ -310,7 +310,7 @@ public static function getDefaultEmailAddress(string $user_part): string { } // in case we cannot build a valid email address from the hostname let's fallback to 'localhost.localdomain' - return $user_part.'@localhost.localdomain'; + return $user_part . '@localhost.localdomain'; } /** diff --git a/ocs/providers.php b/ocs/providers.php index af9863a32f255..6333a91fdb2d9 100644 --- a/ocs/providers.php +++ b/ocs/providers.php @@ -11,7 +11,7 @@ $request = \OC::$server->getRequest(); -$url = $request->getServerProtocol() . '://' . substr($request->getServerHost() . $request->getRequestUri(), 0, -17).'ocs/v1.php/'; +$url = $request->getServerProtocol() . '://' . substr($request->getServerHost() . $request->getRequestUri(), 0, -17) . 'ocs/v1.php/'; $writer = new XMLWriter(); $writer->openURI('php://output'); diff --git a/ocs/v1.php b/ocs/v1.php index 90d7971c549c8..7205f4a26b793 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -46,12 +46,12 @@ OC::handleLogin(\OC::$server->getRequest()); } - OC::$server->get(\OC\Route\Router::class)->match('/ocsapp'.\OC::$server->getRequest()->getRawPathInfo()); + OC::$server->get(\OC\Route\Router::class)->match('/ocsapp' . \OC::$server->getRequest()->getRawPathInfo()); } catch (MaxDelayReached $ex) { ApiHelper::respond(Http::STATUS_TOO_MANY_REQUESTS, $ex->getMessage()); } catch (ResourceNotFoundException $e) { $txt = 'Invalid query, please check the syntax. API specifications are here:' - .' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services.'."\n"; + . ' http://www.freedesktop.org/wiki/Specifications/open-collaboration-services.' . "\n"; ApiHelper::respond(OCSController::RESPOND_NOT_FOUND, $txt); } catch (MethodNotAllowedException $e) { ApiHelper::setContentType(); @@ -61,7 +61,7 @@ } catch (\Exception $e) { \OCP\Server::get(LoggerInterface::class)->error($e->getMessage(), ['exception' => $e]); - $txt = 'Internal Server Error'."\n"; + $txt = 'Internal Server Error' . "\n"; try { if (\OC::$server->getSystemConfig()->getValue('debug', false)) { $txt .= $e->getMessage(); diff --git a/public.php b/public.php index d9320227dfdab..f6d0b0a794011 100644 --- a/public.php +++ b/public.php @@ -78,7 +78,7 @@ function resolveService(string $service): string { OC_App::loadApp($app); OC_User::setIncognitoMode(true); - $baseuri = OC::$WEBROOT . '/public.php/'.$service.'/'; + $baseuri = OC::$WEBROOT . '/public.php/' . $service . '/'; require_once $file; } catch (Exception $ex) { $status = 500; diff --git a/remote.php b/remote.php index 9b56e6c97f95e..bc97de7bcb382 100644 --- a/remote.php +++ b/remote.php @@ -131,17 +131,17 @@ function resolveService($service) { switch ($app) { case 'core': - $file = OC::$SERVERROOT .'/'. $file; + $file = OC::$SERVERROOT . '/' . $file; break; default: if (!$appManager->isInstalled($app)) { throw new RemoteException('App not installed: ' . $app); } $appManager->loadApp($app); - $file = $appManager->getAppPath($app) .'/'. ($parts[1] ?? ''); + $file = $appManager->getAppPath($app) . '/' . ($parts[1] ?? ''); break; } - $baseuri = OC::$WEBROOT . '/remote.php/'.$service.'/'; + $baseuri = OC::$WEBROOT . '/remote.php/' . $service . '/'; require_once $file; } catch (Exception $ex) { handleException($ex); diff --git a/tests/Core/Command/Log/FileTest.php b/tests/Core/Command/Log/FileTest.php index 08ff01e019df2..9c7e0297d535f 100644 --- a/tests/Core/Command/Log/FileTest.php +++ b/tests/Core/Command/Log/FileTest.php @@ -91,7 +91,7 @@ public function testGetConfiguration(): void { $this->config->method('getSystemValue') ->willReturnMap([ ['log_type', 'file', 'log_type_value'], - ['datadirectory', \OC::$SERVERROOT.'/data', '/data/directory/'], + ['datadirectory', \OC::$SERVERROOT . '/data', '/data/directory/'], ['logfile', '/data/directory/nextcloud.log', '/var/log/nextcloud.log'], ['log_rotate_size', 100 * 1024 * 1024, 5 * 1024 * 1024], ]); diff --git a/tests/Core/Command/Maintenance/ModeTest.php b/tests/Core/Command/Maintenance/ModeTest.php index 59b8bbfc045bb..a4c3347474515 100644 --- a/tests/Core/Command/Maintenance/ModeTest.php +++ b/tests/Core/Command/Maintenance/ModeTest.php @@ -123,7 +123,7 @@ public function testExecute( string $option, bool $currentMaintenanceState, $expectedMaintenanceState, - string $expectedOutput + string $expectedOutput, ): void { $this->config->expects($this->any()) ->method('getSystemValueBool') diff --git a/tests/Core/Command/SystemTag/AddTest.php b/tests/Core/Command/SystemTag/AddTest.php index 4dd0df7ffe0db..7ae832e407952 100644 --- a/tests/Core/Command/SystemTag/AddTest.php +++ b/tests/Core/Command/SystemTag/AddTest.php @@ -95,7 +95,7 @@ public function testAlreadyExists(): void { $this->systemTagManager->method('createTag') ->willReturnCallback(function ($tagName, $userVisible, $userAssignable) { throw new TagAlreadyExistsException( - 'Tag ("' . $tagName . '", '. $userVisible . ', ' . $userAssignable . ') already exists' + 'Tag ("' . $tagName . '", ' . $userVisible . ', ' . $userAssignable . ') already exists' ); }); diff --git a/tests/Core/Command/SystemTag/EditTest.php b/tests/Core/Command/SystemTag/EditTest.php index 1857da25ab0bc..f269559190565 100644 --- a/tests/Core/Command/SystemTag/EditTest.php +++ b/tests/Core/Command/SystemTag/EditTest.php @@ -87,7 +87,7 @@ public function testExecute(): void { $this->output->expects($this->once()) ->method('writeln') ->with( - 'Tag updated ("'.$newTagName.'", '.$newTagUserVisible.', '.$newTagUserAssignable.')' + 'Tag updated ("' . $newTagName . '", ' . $newTagUserVisible . ', ' . $newTagUserAssignable . ')' ); $this->invokePrivate($this->command, 'execute', [$this->input, $this->output]); @@ -135,7 +135,7 @@ public function testAlreadyExists(): void { $this->systemTagManager->method('updateTag') ->willReturnCallback(function ($tagId, $tagName, $userVisible, $userAssignable) { throw new TagAlreadyExistsException( - 'Tag ("' . $tagName . '", '. $userVisible . ', ' . $userAssignable . ') already exists' + 'Tag ("' . $tagName . '", ' . $userVisible . ', ' . $userAssignable . ') already exists' ); }); @@ -151,7 +151,7 @@ public function testAlreadyExists(): void { $this->output->expects($this->once()) ->method('writeln') ->with( - 'Tag ("' . $newTagName . '", '. $newTagUserVisible . ', ' . $newTagUserAssignable . ') already exists' + 'Tag ("' . $newTagName . '", ' . $newTagUserVisible . ', ' . $newTagUserAssignable . ') already exists' ); $this->invokePrivate($this->command, 'execute', [$this->input, $this->output]); diff --git a/tests/Core/Controller/AppPasswordControllerTest.php b/tests/Core/Controller/AppPasswordControllerTest.php index f0246561145ab..b33033edac3a3 100644 --- a/tests/Core/Controller/AppPasswordControllerTest.php +++ b/tests/Core/Controller/AppPasswordControllerTest.php @@ -128,7 +128,7 @@ public function testGetAppPassword(): void { $this->random->method('generate') ->with( 72, - ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS )->willReturn('myToken'); $this->tokenProvider->expects($this->once()) @@ -169,7 +169,7 @@ public function testGetAppPasswordNoPassword(): void { $this->random->method('generate') ->with( 72, - ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS )->willReturn('myToken'); $this->tokenProvider->expects($this->once()) diff --git a/tests/Core/Controller/AvatarControllerTest.php b/tests/Core/Controller/AvatarControllerTest.php index 3a1123c940b7e..0dca611b0207f 100644 --- a/tests/Core/Controller/AvatarControllerTest.php +++ b/tests/Core/Controller/AvatarControllerTest.php @@ -309,7 +309,7 @@ public function testTmpAvatarNoTmp(): void { * Fetch tmp avatar */ public function testTmpAvatarValid(): void { - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $response = $this->avatarController->getTmpAvatar(); $this->assertEquals(Http::STATUS_OK, $response->getStatus()); @@ -331,14 +331,14 @@ public function testPostAvatarNoPathOrImage(): void { public function testPostAvatarFile(): void { //Create temp file $fileName = tempnam('', 'avatarTest'); - $copyRes = copy(\OC::$SERVERROOT.'/tests/data/testimage.jpg', $fileName); + $copyRes = copy(\OC::$SERVERROOT . '/tests/data/testimage.jpg', $fileName); $this->assertTrue($copyRes); //Create file in cache - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); //Create request return - $reqRet = ['error' => [0], 'tmp_name' => [$fileName], 'size' => [filesize(\OC::$SERVERROOT.'/tests/data/testimage.jpg')]]; + $reqRet = ['error' => [0], 'tmp_name' => [$fileName], 'size' => [filesize(\OC::$SERVERROOT . '/tests/data/testimage.jpg')]]; $this->request->method('getUploadedFile')->willReturn($reqRet); $response = $this->avatarController->postAvatar(null); @@ -369,14 +369,14 @@ public function testPostAvatarInvalidFile(): void { public function testPostAvatarFileGif(): void { //Create temp file $fileName = tempnam('', 'avatarTest'); - $copyRes = copy(\OC::$SERVERROOT.'/tests/data/testimage.gif', $fileName); + $copyRes = copy(\OC::$SERVERROOT . '/tests/data/testimage.gif', $fileName); $this->assertTrue($copyRes); //Create file in cache - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.gif')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.gif')); //Create request return - $reqRet = ['error' => [0], 'tmp_name' => [$fileName], 'size' => [filesize(\OC::$SERVERROOT.'/tests/data/testimage.gif')]]; + $reqRet = ['error' => [0], 'tmp_name' => [$fileName], 'size' => [filesize(\OC::$SERVERROOT . '/tests/data/testimage.gif')]]; $this->request->method('getUploadedFile')->willReturn($reqRet); $response = $this->avatarController->postAvatar(null); @@ -396,7 +396,7 @@ public function testPostAvatarFromFile(): void { ->disableOriginalConstructor()->getMock(); $file->expects($this->once()) ->method('getContent') - ->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $file->expects($this->once()) ->method('getMimeType') ->willReturn('image/jpeg'); @@ -474,7 +474,7 @@ public function testPostAvatarException(): void { ->disableOriginalConstructor()->getMock(); $file->expects($this->once()) ->method('getContent') - ->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + ->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $file->expects($this->once()) ->method('getMimeType') ->willReturn('image/jpeg'); @@ -512,7 +512,7 @@ public function testPostCroppedAvatarNoTmpAvatar(): void { * Test with non square crop */ public function testPostCroppedAvatarNoSquareCrop(): void { - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->avatarMock->method('set')->will($this->throwException(new \OC\NotSquareException)); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); @@ -525,7 +525,7 @@ public function testPostCroppedAvatarNoSquareCrop(): void { * Check for proper reply on proper crop argument */ public function testPostCroppedAvatarValidCrop(): void { - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); $response = $this->avatarController->postCroppedAvatar(['x' => 0, 'y' => 0, 'w' => 10, 'h' => 10]); @@ -537,7 +537,7 @@ public function testPostCroppedAvatarValidCrop(): void { * Test what happens if the cropping of the avatar fails */ public function testPostCroppedAvatarException(): void { - $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $this->cache->method('get')->willReturn(file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->avatarMock->method('set')->will($this->throwException(new \Exception('foo'))); $this->avatarManager->method('getAvatar')->willReturn($this->avatarMock); @@ -554,7 +554,7 @@ public function testPostCroppedAvatarException(): void { * Check for proper reply on proper crop argument */ public function testFileTooBig(): void { - $fileName = \OC::$SERVERROOT.'/tests/data/testimage.jpg'; + $fileName = \OC::$SERVERROOT . '/tests/data/testimage.jpg'; //Create request return $reqRet = ['error' => [0], 'tmp_name' => [$fileName], 'size' => [21 * 1024 * 1024]]; $this->request->method('getUploadedFile')->willReturn($reqRet); diff --git a/tests/Core/Controller/ClientFlowLoginControllerTest.php b/tests/Core/Controller/ClientFlowLoginControllerTest.php index a38f73c85a62e..7f9f11db7e379 100644 --- a/tests/Core/Controller/ClientFlowLoginControllerTest.php +++ b/tests/Core/Controller/ClientFlowLoginControllerTest.php @@ -137,7 +137,7 @@ public function testShowAuthPickerPageWithOcsHeader(): void { ->method('generate') ->with( 64, - ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS ) ->willReturn('StateToken'); $this->session @@ -207,7 +207,7 @@ public function testShowAuthPickerPageWithOauth(): void { ->method('generate') ->with( 64, - ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS + ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS ) ->willReturn('StateToken'); $this->session @@ -448,8 +448,8 @@ public function testGeneratePasswordWithPasswordForOauthClient($redirectUri, $re [128] ) ->willReturnMap([ - [72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS, 'MyGeneratedToken'], - [128, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS, 'MyAccessCode'], + [72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS, 'MyGeneratedToken'], + [128, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS, 'MyAccessCode'], ]); $user = $this->createMock(IUser::class); $user diff --git a/tests/Core/Controller/ClientFlowLoginV2ControllerTest.php b/tests/Core/Controller/ClientFlowLoginV2ControllerTest.php index 093b8a3442d7b..98c7821791db6 100644 --- a/tests/Core/Controller/ClientFlowLoginV2ControllerTest.php +++ b/tests/Core/Controller/ClientFlowLoginV2ControllerTest.php @@ -161,7 +161,7 @@ public function testShowAuthPickerValidLoginToken(): void { ->willReturn($flow); $this->random->method('generate') - ->with(64, ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS) + ->with(64, ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_DIGITS) ->willReturn('random'); $this->session->expects($this->once()) ->method('set') diff --git a/tests/Core/Service/LoginFlowV2ServiceUnitTest.php b/tests/Core/Service/LoginFlowV2ServiceUnitTest.php index 2fb61a2ef0856..1c31efee8f7c0 100644 --- a/tests/Core/Service/LoginFlowV2ServiceUnitTest.php +++ b/tests/Core/Service/LoginFlowV2ServiceUnitTest.php @@ -296,7 +296,7 @@ public function testFlowDone(): void { $this->secureRandom->expects($this->once()) ->method('generate') - ->with(72, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_LOWER.ISecureRandom::CHAR_DIGITS) + ->with(72, ISecureRandom::CHAR_UPPER . ISecureRandom::CHAR_LOWER . ISecureRandom::CHAR_DIGITS) ->willReturn('test_pass'); // session token diff --git a/tests/enable_all.php b/tests/enable_all.php index db01de6ec4110..54e5614e55a5b 100644 --- a/tests/enable_all.php +++ b/tests/enable_all.php @@ -5,7 +5,7 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -require_once __DIR__.'/../lib/base.php'; +require_once __DIR__ . '/../lib/base.php'; function enableApp($app) { try { diff --git a/tests/lib/AllConfigTest.php b/tests/lib/AllConfigTest.php index f8b2e8e857f01..5d2091780a091 100644 --- a/tests/lib/AllConfigTest.php +++ b/tests/lib/AllConfigTest.php @@ -231,7 +231,7 @@ public function testSetUserValueUnchanged(): void { $connectionMock = $this->createMock(IDBConnection::class); $connectionMock->expects($this->once()) ->method('executeQuery') - ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` '. + ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` ' . 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'), $this->equalTo(['userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged'])) ->willReturn($resultMock); diff --git a/tests/lib/App/AppManagerTest.php b/tests/lib/App/AppManagerTest.php index 5c79a75bf0dc6..266a60bf1596f 100644 --- a/tests/lib/App/AppManagerTest.php +++ b/tests/lib/App/AppManagerTest.php @@ -142,7 +142,7 @@ protected function setUp(): void { /** * @dataProvider dataGetAppIcon */ - public function testGetAppIcon($callback, ?bool $dark, string|null $expected): void { + public function testGetAppIcon($callback, ?bool $dark, ?string $expected): void { $this->urlGenerator->expects($this->atLeastOnce()) ->method('imagePath') ->willReturnCallback($callback); diff --git a/tests/lib/App/AppStore/Fetcher/AppDiscoverFetcherTest.php b/tests/lib/App/AppStore/Fetcher/AppDiscoverFetcherTest.php index fdc8b45cf7032..e7652d5c50c51 100644 --- a/tests/lib/App/AppStore/Fetcher/AppDiscoverFetcherTest.php +++ b/tests/lib/App/AppStore/Fetcher/AppDiscoverFetcherTest.php @@ -74,7 +74,7 @@ public function testNoInternet(): void { /** * @dataProvider dataGetETag */ - public function testGetEtag(string|null $expected, bool $throws, string $content = ''): void { + public function testGetEtag(?string $expected, bool $throws, string $content = ''): void { $folder = $this->createMock(ISimpleFolder::class); if (!$throws) { $file = $this->createMock(ISimpleFile::class); diff --git a/tests/lib/App/InfoParserTest.php b/tests/lib/App/InfoParserTest.php index 914741d05b168..66ff10266e239 100644 --- a/tests/lib/App/InfoParserTest.php +++ b/tests/lib/App/InfoParserTest.php @@ -26,7 +26,7 @@ public function parserTest($expectedJson, $xmlFile, $cache = null) { if (!is_null($expectedJson)) { $expectedData = json_decode(file_get_contents(OC::$SERVERROOT . "/tests/data/app/$expectedJson"), true); } - $data = $parser->parse(OC::$SERVERROOT. "/tests/data/app/$xmlFile"); + $data = $parser->parse(OC::$SERVERROOT . "/tests/data/app/$xmlFile"); $this->assertEquals($expectedData, $data); } diff --git a/tests/lib/AppConfigTest.php b/tests/lib/AppConfigTest.php index e6929484dc522..e8c10fe654b17 100644 --- a/tests/lib/AppConfigTest.php +++ b/tests/lib/AppConfigTest.php @@ -309,7 +309,7 @@ public function testHasKeyOnMistypeAsNonLazyReturnsTrueWithLazyArgumentIsNull(): * @dataProvider providerGetKeys */ public function testIsSensitive( - string $appId, string $configKey, string $configValue, int $type, bool $lazy, bool $sensitive + string $appId, string $configKey, string $configValue, int $type, bool $lazy, bool $sensitive, ): void { $config = $this->generateAppConfig(); $this->assertEquals($sensitive, $config->isSensitive($appId, $configKey, $lazy)); @@ -352,7 +352,7 @@ public function testIsSensitiveOnNonSensitiveMistypedAsNonLazyThrowsException(): /** * @dataProvider providerGetKeys */ - public function testIsLazy(string $appId, string $configKey, string $configValue, int $type, bool $lazy + public function testIsLazy(string $appId, string $configKey, string $configValue, int $type, bool $lazy, ): void { $config = $this->generateAppConfig(); $this->assertEquals($lazy, $config->isLazy($appId, $configKey)); diff --git a/tests/lib/AppFramework/Http/DownloadResponseTest.php b/tests/lib/AppFramework/Http/DownloadResponseTest.php index 8ac5954e00d28..ee89e8e55d1c8 100644 --- a/tests/lib/AppFramework/Http/DownloadResponseTest.php +++ b/tests/lib/AppFramework/Http/DownloadResponseTest.php @@ -34,7 +34,7 @@ public function testFilenameEncoding(string $input, string $expected): void { $response = new ChildDownloadResponse($input, 'content'); $headers = $response->getHeaders(); - $this->assertEquals('attachment; filename="'.$expected.'"', $headers['Content-Disposition']); + $this->assertEquals('attachment; filename="' . $expected . '"', $headers['Content-Disposition']); } public function filenameEncodingProvider() : array { diff --git a/tests/lib/AppFramework/Routing/RoutingTest.php b/tests/lib/AppFramework/Routing/RoutingTest.php index 32b57e7bf21fa..8522382ddcc6f 100644 --- a/tests/lib/AppFramework/Routing/RoutingTest.php +++ b/tests/lib/AppFramework/Routing/RoutingTest.php @@ -441,7 +441,7 @@ private function mockRoute( $controllerName, $actionName, array $requirements = [], - array $defaults = [] + array $defaults = [], ) { $route = $this->getMockBuilder(Route::class) ->onlyMethods(['method', 'requirements', 'defaults']) diff --git a/tests/lib/AppTest.php b/tests/lib/AppTest.php index e6759170fb124..41643b49ddc14 100644 --- a/tests/lib/AppTest.php +++ b/tests/lib/AppTest.php @@ -621,14 +621,14 @@ public function testParseAppInfo(array $data, array $expected): void { public function testParseAppInfoL10N(): void { $parser = new InfoParser(); - $data = $parser->parse(\OC::$SERVERROOT. '/tests/data/app/description-multi-lang.xml'); + $data = $parser->parse(\OC::$SERVERROOT . '/tests/data/app/description-multi-lang.xml'); $this->assertEquals('English', \OC_App::parseAppInfo($data, 'en')['description']); $this->assertEquals('German', \OC_App::parseAppInfo($data, 'de')['description']); } public function testParseAppInfoL10NSingleLanguage(): void { $parser = new InfoParser(); - $data = $parser->parse(\OC::$SERVERROOT. '/tests/data/app/description-single-lang.xml'); + $data = $parser->parse(\OC::$SERVERROOT . '/tests/data/app/description-single-lang.xml'); $this->assertEquals('English', \OC_App::parseAppInfo($data, 'en')['description']); } } diff --git a/tests/lib/Archive/TestBase.php b/tests/lib/Archive/TestBase.php index 3f2d8c9561e5d..fda485d2dc1ca 100644 --- a/tests/lib/Archive/TestBase.php +++ b/tests/lib/Archive/TestBase.php @@ -28,10 +28,10 @@ public function testGetFiles(): void { $this->instance = $this->getExisting(); $allFiles = $this->instance->getFiles(); $expected = ['lorem.txt','logo-wide.png','dir/', 'dir/lorem.txt']; - $this->assertEquals(4, count($allFiles), 'only found '.count($allFiles).' out of 4 expected files'); + $this->assertEquals(4, count($allFiles), 'only found ' . count($allFiles) . ' out of 4 expected files'); foreach ($expected as $file) { - $this->assertContains($file, $allFiles, 'cant find '. $file . ' in archive'); - $this->assertTrue($this->instance->fileExists($file), 'file '.$file.' does not exist in archive'); + $this->assertContains($file, $allFiles, 'cant find ' . $file . ' in archive'); + $this->assertTrue($this->instance->fileExists($file), 'file ' . $file . ' does not exist in archive'); } $this->assertFalse($this->instance->fileExists('non/existing/file')); @@ -39,21 +39,21 @@ public function testGetFiles(): void { $expected = ['lorem.txt','logo-wide.png', 'dir/']; $this->assertEquals(3, count($rootContent)); foreach ($expected as $file) { - $this->assertContains($file, $rootContent, 'cant find '. $file . ' in archive'); + $this->assertContains($file, $rootContent, 'cant find ' . $file . ' in archive'); } $dirContent = $this->instance->getFolder('dir/'); $expected = ['lorem.txt']; $this->assertEquals(1, count($dirContent)); foreach ($expected as $file) { - $this->assertContains($file, $dirContent, 'cant find '. $file . ' in archive'); + $this->assertContains($file, $dirContent, 'cant find ' . $file . ' in archive'); } } public function testContent(): void { $this->instance = $this->getExisting(); - $dir = \OC::$SERVERROOT.'/tests/data'; - $textFile = $dir.'/lorem.txt'; + $dir = \OC::$SERVERROOT . '/tests/data'; + $textFile = $dir . '/lorem.txt'; $this->assertEquals(file_get_contents($textFile), $this->instance->getFile('lorem.txt')); $tmpFile = \OC::$server->getTempManager()->getTemporaryFile('.txt'); @@ -62,8 +62,8 @@ public function testContent(): void { } public function testWrite(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; - $textFile = $dir.'/lorem.txt'; + $dir = \OC::$SERVERROOT . '/tests/data'; + $textFile = $dir . '/lorem.txt'; $this->instance = $this->getNew(); $this->assertEquals(0, count($this->instance->getFiles())); $this->instance->addFile('lorem.txt', $textFile); @@ -77,24 +77,24 @@ public function testWrite(): void { } public function testReadStream(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; + $dir = \OC::$SERVERROOT . '/tests/data'; $this->instance = $this->getExisting(); $fh = $this->instance->getStream('lorem.txt', 'r'); $this->assertTrue((bool)$fh); $content = fread($fh, $this->instance->filesize('lorem.txt')); fclose($fh); - $this->assertEquals(file_get_contents($dir.'/lorem.txt'), $content); + $this->assertEquals(file_get_contents($dir . '/lorem.txt'), $content); } public function testWriteStream(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; + $dir = \OC::$SERVERROOT . '/tests/data'; $this->instance = $this->getNew(); $fh = $this->instance->getStream('lorem.txt', 'w'); - $source = fopen($dir.'/lorem.txt', 'r'); + $source = fopen($dir . '/lorem.txt', 'r'); \OCP\Files::streamCopy($source, $fh); fclose($source); fclose($fh); $this->assertTrue($this->instance->fileExists('lorem.txt')); - $this->assertEquals(file_get_contents($dir.'/lorem.txt'), $this->instance->getFile('lorem.txt')); + $this->assertEquals(file_get_contents($dir . '/lorem.txt'), $this->instance->getFile('lorem.txt')); } public function testFolder(): void { $this->instance = $this->getNew(); @@ -108,19 +108,19 @@ public function testFolder(): void { $this->assertFalse($this->instance->fileExists('/test/')); } public function testExtract(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; + $dir = \OC::$SERVERROOT . '/tests/data'; $this->instance = $this->getExisting(); $tmpDir = \OC::$server->getTempManager()->getTemporaryFolder(); $this->instance->extract($tmpDir); - $this->assertEquals(true, file_exists($tmpDir.'lorem.txt')); - $this->assertEquals(true, file_exists($tmpDir.'dir/lorem.txt')); - $this->assertEquals(true, file_exists($tmpDir.'logo-wide.png')); - $this->assertEquals(file_get_contents($dir.'/lorem.txt'), file_get_contents($tmpDir.'lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir . 'lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir . 'dir/lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir . 'logo-wide.png')); + $this->assertEquals(file_get_contents($dir . '/lorem.txt'), file_get_contents($tmpDir . 'lorem.txt')); \OCP\Files::rmdirr($tmpDir); } public function testMoveRemove(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; - $textFile = $dir.'/lorem.txt'; + $dir = \OC::$SERVERROOT . '/tests/data'; + $textFile = $dir . '/lorem.txt'; $this->instance = $this->getNew(); $this->instance->addFile('lorem.txt', $textFile); $this->assertFalse($this->instance->fileExists('target.txt')); @@ -132,7 +132,7 @@ public function testMoveRemove(): void { $this->assertFalse($this->instance->fileExists('target.txt')); } public function testRecursive(): void { - $dir = \OC::$SERVERROOT.'/tests/data'; + $dir = \OC::$SERVERROOT . '/tests/data'; $this->instance = $this->getNew(); $this->instance->addRecursive('/dir', $dir); $this->assertTrue($this->instance->fileExists('/dir/lorem.txt')); diff --git a/tests/lib/Archive/ZIPTest.php b/tests/lib/Archive/ZIPTest.php index 62467ca230e93..25707e4b05199 100644 --- a/tests/lib/Archive/ZIPTest.php +++ b/tests/lib/Archive/ZIPTest.php @@ -16,6 +16,6 @@ protected function getExisting() { } protected function getNew() { - return new ZIP(\OC::$server->getTempManager()->getTempBaseDir().'/newArchive.zip'); + return new ZIP(\OC::$server->getTempManager()->getTempBaseDir() . '/newArchive.zip'); } } diff --git a/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php b/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php index be90d60c64fbc..6097c1f482dd8 100644 --- a/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php +++ b/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php @@ -307,7 +307,7 @@ public function testInvalidateToken(): void { $this->mapper->expects($this->exactly(2)) ->method('invalidate') ->withConsecutive( - [hash('sha512', 'token7'.'1f4h9s')], + [hash('sha512', 'token7' . '1f4h9s')], [hash('sha512', 'token7')] ); @@ -443,7 +443,7 @@ public function testGetToken(): void { $this->mapper->method('getToken') ->with( $this->callback(function (string $token) { - return hash('sha512', 'unhashedTokentokentokentokentoken'.'1f4h9s') === $token; + return hash('sha512', 'unhashedTokentokentokentokentoken' . '1f4h9s') === $token; }) )->willReturn($token); @@ -457,7 +457,7 @@ public function testGetInvalidToken(): void { ->method('getToken') ->withConsecutive( [$this->callback(function (string $token): bool { - return hash('sha512', 'unhashedTokentokentokentokentoken'.'1f4h9s') === $token; + return hash('sha512', 'unhashedTokentokentokentokentoken' . '1f4h9s') === $token; })], [$this->callback(function (string $token): bool { return hash('sha512', 'unhashedTokentokentokentokentoken') === $token; @@ -481,7 +481,7 @@ public function testGetExpiredToken(): void { $this->mapper->method('getToken') ->with( $this->callback(function (string $token) { - return hash('sha512', 'tokentokentokentokentoken'.'1f4h9s') === $token; + return hash('sha512', 'tokentokentokentokentoken' . '1f4h9s') === $token; }) )->willReturn($actual); diff --git a/tests/lib/Collaboration/Collaborators/GroupPluginTest.php b/tests/lib/Collaboration/Collaborators/GroupPluginTest.php index e52ae95bf3482..8fe71234906dd 100644 --- a/tests/lib/Collaboration/Collaborators/GroupPluginTest.php +++ b/tests/lib/Collaboration/Collaborators/GroupPluginTest.php @@ -440,7 +440,7 @@ public function testSearch( array $exactExpected, array $expected, bool $reachedEnd, - $singleGroup + $singleGroup, ): void { $this->config->expects($this->any()) ->method('getAppValue') diff --git a/tests/lib/Collaboration/Collaborators/SearchTest.php b/tests/lib/Collaboration/Collaborators/SearchTest.php index 88bdfa6047e91..3e43d6331b2b7 100644 --- a/tests/lib/Collaboration/Collaborators/SearchTest.php +++ b/tests/lib/Collaboration/Collaborators/SearchTest.php @@ -42,7 +42,7 @@ public function testSearch( array $mockedRemotesResult, array $mockedMailResult, array $expected, - bool $expectedMoreResults + bool $expectedMoreResults, ): void { $searchResult = new SearchResult(); diff --git a/tests/lib/Collaboration/Collaborators/UserPluginTest.php b/tests/lib/Collaboration/Collaborators/UserPluginTest.php index c6a266b55d601..453f16c6686c4 100644 --- a/tests/lib/Collaboration/Collaborators/UserPluginTest.php +++ b/tests/lib/Collaboration/Collaborators/UserPluginTest.php @@ -441,7 +441,7 @@ public function testSearch( $reachedEnd, $singleUser, array $users = [], - $shareeEnumerationPhone = false + $shareeEnumerationPhone = false, ): void { $this->mockConfig(['core' => [ 'shareapi_only_share_with_group_members' => $shareWithGroupOnly ? 'yes' : 'no', diff --git a/tests/lib/Comments/FakeManager.php b/tests/lib/Comments/FakeManager.php index b22264cb21651..155bbc59dce98 100644 --- a/tests/lib/Comments/FakeManager.php +++ b/tests/lib/Comments/FakeManager.php @@ -26,7 +26,7 @@ public function getForObject( $objectId, $limit = 0, $offset = 0, - ?\DateTime $notOlderThan = null + ?\DateTime $notOlderThan = null, ) { } @@ -36,7 +36,7 @@ public function getForObjectSince( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array { return []; } @@ -48,7 +48,7 @@ public function getCommentsWithVerbForObjectSinceComment( int $lastKnownCommentId, string $sortDirection = 'asc', int $limit = 30, - bool $includeLastKnown = false + bool $includeLastKnown = false, ): array { return []; } diff --git a/tests/lib/ConfigTest.php b/tests/lib/ConfigTest.php index 94ee8da5dec22..3be066c68390e 100644 --- a/tests/lib/ConfigTest.php +++ b/tests/lib/ConfigTest.php @@ -23,7 +23,7 @@ protected function setUp(): void { parent::setUp(); $this->randomTmpDir = \OC::$server->getTempManager()->getTemporaryFolder(); - $this->configFile = $this->randomTmpDir.'testconfig.php'; + $this->configFile = $this->randomTmpDir . 'testconfig.php'; file_put_contents($this->configFile, self::TESTCONTENT); } @@ -155,7 +155,7 @@ public function testDeleteKey(): void { public function testConfigMerge(): void { // Create additional config $additionalConfig = '"totallyOutdated");'; - $additionalConfigPath = $this->randomTmpDir.'additionalConfig.testconfig.php'; + $additionalConfigPath = $this->randomTmpDir . 'additionalConfig.testconfig.php'; file_put_contents($additionalConfigPath, $additionalConfig); // Reinstantiate the config to force a read-in of the additional configs diff --git a/tests/lib/ErrorHandlerTest.php b/tests/lib/ErrorHandlerTest.php index 0846d09fd4757..b45525e7962ba 100644 --- a/tests/lib/ErrorHandlerTest.php +++ b/tests/lib/ErrorHandlerTest.php @@ -54,7 +54,7 @@ public function passwordProvider() { * @param string $password */ public function testRemovePasswordFromError($username, $password): void { - $url = 'http://'.$username.':'.$password.'@owncloud.org'; + $url = 'http://' . $username . ':' . $password . '@owncloud.org'; $expectedResult = 'http://xxx:xxx@owncloud.org'; $this->logger->expects(self::once()) ->method('log') diff --git a/tests/lib/Files/Config/UserMountCacheTest.php b/tests/lib/Files/Config/UserMountCacheTest.php index a6f2502619383..29f9334ae1598 100644 --- a/tests/lib/Files/Config/UserMountCacheTest.php +++ b/tests/lib/Files/Config/UserMountCacheTest.php @@ -120,7 +120,7 @@ private function clearCache() { } private function keyForMount(MountPoint $mount): string { - return $mount->getStorageRootId().'::'.$mount->getMountPoint(); + return $mount->getStorageRootId() . '::' . $mount->getMountPoint(); } public function testNewMounts(): void { diff --git a/tests/lib/Files/ObjectStore/ObjectStoreStorageTest.php b/tests/lib/Files/ObjectStore/ObjectStoreStorageTest.php index bbeabcf0f4365..3dbdc3afc27c1 100644 --- a/tests/lib/Files/ObjectStore/ObjectStoreStorageTest.php +++ b/tests/lib/Files/ObjectStore/ObjectStoreStorageTest.php @@ -81,8 +81,8 @@ public function testMove($source, $target): void { $this->instance->rename($source, $target); - $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); - $this->assertFalse($this->instance->file_exists($source), $source.' still exists'); + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); + $this->assertFalse($this->instance->file_exists($source), $source . ' still exists'); $this->assertSameAsLorem($target); $targetId = $this->instance->getCache()->getId(ltrim($target, '/')); diff --git a/tests/lib/Files/Storage/StoragesTest.php b/tests/lib/Files/Storage/StoragesTest.php index d157d288f2c6e..e5a6469cdbebf 100644 --- a/tests/lib/Files/Storage/StoragesTest.php +++ b/tests/lib/Files/Storage/StoragesTest.php @@ -37,8 +37,8 @@ public function testMoveFileFromStorage() { $this->storage1->moveFromStorage($this->storage2, $source, $target); - $this->assertTrue($this->storage1->file_exists($target), $target.' was not created'); - $this->assertFalse($this->storage2->file_exists($source), $source.' still exists'); + $this->assertTrue($this->storage1->file_exists($target), $target . ' was not created'); + $this->assertFalse($this->storage2->file_exists($source), $source . ' still exists'); $this->assertEquals('foo', $this->storage1->file_get_contents($target)); } @@ -75,8 +75,8 @@ public function testCopyFileFromStorage() { $this->storage1->copyFromStorage($this->storage2, $source, $target); - $this->assertTrue($this->storage1->file_exists($target), $target.' was not created'); - $this->assertTrue($this->storage2->file_exists($source), $source.' was deleted'); + $this->assertTrue($this->storage1->file_exists($target), $target . ' was not created'); + $this->assertTrue($this->storage2->file_exists($source), $source . ' was deleted'); $this->assertEquals('foo', $this->storage1->file_get_contents($target)); } diff --git a/tests/lib/Files/Storage/Wrapper/EncodingTest.php b/tests/lib/Files/Storage/Wrapper/EncodingTest.php index 4256337f08e98..f52e36891557d 100644 --- a/tests/lib/Files/Storage/Wrapper/EncodingTest.php +++ b/tests/lib/Files/Storage/Wrapper/EncodingTest.php @@ -114,7 +114,7 @@ public function encodedDirectoriesProvider() { return [ [self::NFD_NAME, self::NFC_NAME], [self::NFD_NAME . '/' . self::NFD_NAME, self::NFC_NAME . '/' . self::NFC_NAME], - [self::NFD_NAME . '/' . self::NFC_NAME . '/' .self::NFD_NAME, self::NFC_NAME . '/' . self::NFC_NAME . '/' . self::NFC_NAME], + [self::NFD_NAME . '/' . self::NFC_NAME . '/' . self::NFD_NAME, self::NFC_NAME . '/' . self::NFC_NAME . '/' . self::NFC_NAME], ]; } diff --git a/tests/lib/Files/Storage/Wrapper/EncryptionTest.php b/tests/lib/Files/Storage/Wrapper/EncryptionTest.php index 2a131a1ea391c..851182ab3ebfc 100644 --- a/tests/lib/Files/Storage/Wrapper/EncryptionTest.php +++ b/tests/lib/Files/Storage/Wrapper/EncryptionTest.php @@ -948,7 +948,7 @@ public function testShouldEncrypt( $encryptMountPoint, $encryptionModule, $encryptionModuleShouldEncrypt, - $expected + $expected, ): void { $encryptionManager = $this->createMock(\OC\Encryption\Manager::class); $util = $this->createMock(Util::class); diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php index 0a029889fb1bc..53da32b24dbcc 100644 --- a/tests/lib/Files/ViewTest.php +++ b/tests/lib/Files/ViewTest.php @@ -1996,7 +1996,7 @@ function () use ($view, $path, &$lockTypeDuring) { public function testLockBasicOperationUnlocksAfterException( $operation, $operationArgs, - $path + $path, ): void { if ($operation === 'touch') { $this->markTestSkipped('touch handles storage exceptions internally'); @@ -2081,7 +2081,7 @@ public function testLockBasicOperationUnlocksAfterCancelledHook( $operation, $operationArgs, $path, - $hookType + $hookType, ): void { $view = new View('/' . $this->user . '/files/'); diff --git a/tests/lib/Http/Client/ClientTest.php b/tests/lib/Http/Client/ClientTest.php index 9c5bf1a6eb22f..237bb1299e526 100644 --- a/tests/lib/Http/Client/ClientTest.php +++ b/tests/lib/Http/Client/ClientTest.php @@ -486,7 +486,7 @@ public function testSetDefaultOptionsWithNotInstalled(): void { 'on_redirect' => function ( \Psr\Http\Message\RequestInterface $request, \Psr\Http\Message\ResponseInterface $response, - \Psr\Http\Message\UriInterface $uri + \Psr\Http\Message\UriInterface $uri, ) { }, ], @@ -545,7 +545,7 @@ public function testSetDefaultOptionsWithProxy(): void { 'on_redirect' => function ( \Psr\Http\Message\RequestInterface $request, \Psr\Http\Message\ResponseInterface $response, - \Psr\Http\Message\UriInterface $uri + \Psr\Http\Message\UriInterface $uri, ) { }, ], @@ -605,7 +605,7 @@ public function testSetDefaultOptionsWithProxyAndExclude(): void { 'on_redirect' => function ( \Psr\Http\Message\RequestInterface $request, \Psr\Http\Message\ResponseInterface $response, - \Psr\Http\Message\UriInterface $uri + \Psr\Http\Message\UriInterface $uri, ) { }, ], diff --git a/tests/lib/ImageTest.php b/tests/lib/ImageTest.php index 76b110df52102..5de5435335a62 100644 --- a/tests/lib/ImageTest.php +++ b/tests/lib/ImageTest.php @@ -14,27 +14,27 @@ class ImageTest extends \Test\TestCase { public static function tearDownAfterClass(): void { - @unlink(OC::$SERVERROOT.'/tests/data/testimage2.png'); - @unlink(OC::$SERVERROOT.'/tests/data/testimage2.jpg'); + @unlink(OC::$SERVERROOT . '/tests/data/testimage2.png'); + @unlink(OC::$SERVERROOT . '/tests/data/testimage2.jpg'); parent::tearDownAfterClass(); } public function testConstructDestruct(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertInstanceOf('\OC\Image', $img); $this->assertInstanceOf('\OCP\IImage', $img); unset($img); - $imgcreate = imagecreatefromjpeg(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $imgcreate = imagecreatefromjpeg(OC::$SERVERROOT . '/tests/data/testimage.jpg'); $img = new Image(); $img->setResource($imgcreate); $this->assertInstanceOf('\OC\Image', $img); $this->assertInstanceOf('\OCP\IImage', $img); unset($img); - $base64 = base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + $base64 = base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif')); $img = new Image(); $img->loadFromBase64($base64); $this->assertInstanceOf('\OC\Image', $img); @@ -49,7 +49,7 @@ public function testConstructDestruct(): void { public function testValid(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertTrue($img->valid()); $text = base64_encode('Lorem ipsum dolor sir amet …'); @@ -63,32 +63,32 @@ public function testValid(): void { public function testMimeType(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertEquals('image/png', $img->mimeType()); $img = new Image(); $this->assertEquals('', $img->mimeType()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertEquals('image/jpeg', $img->mimeType()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertEquals('image/gif', $img->mimeType()); } public function testWidth(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertEquals(128, $img->width()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertEquals(1680, $img->width()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertEquals(64, $img->width()); $img = new Image(); @@ -97,15 +97,15 @@ public function testWidth(): void { public function testHeight(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertEquals(128, $img->height()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertEquals(1050, $img->height()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertEquals(64, $img->height()); $img = new Image(); @@ -114,22 +114,22 @@ public function testHeight(): void { public function testSave(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $img->resize(16); - $img->save(OC::$SERVERROOT.'/tests/data/testimage2.png'); - $this->assertEquals(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage2.png'), $img->data()); + $img->save(OC::$SERVERROOT . '/tests/data/testimage2.png'); + $this->assertEquals(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage2.png'), $img->data()); $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.jpg'); $img->resize(128); - $img->save(OC::$SERVERROOT.'/tests/data/testimage2.jpg'); - $this->assertEquals(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage2.jpg'), $img->data()); + $img->save(OC::$SERVERROOT . '/tests/data/testimage2.jpg'); + $this->assertEquals(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage2.jpg'), $img->data()); } public function testData(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); - $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.png')); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.png')); // Preserve transparency imagealphablending($raw, true); imagesavealpha($raw, true); @@ -149,8 +149,8 @@ public function testData(): void { ->with('preview_max_memory', 256) ->willReturn(256); $img = new Image(null, $appConfig, $config); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); - $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.jpg'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); imageinterlace($raw, true); ob_start(); imagejpeg($raw, null, 80); @@ -158,8 +158,8 @@ public function testData(): void { $this->assertEquals($expected, $img->data()); $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.gif'); - $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif')); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.gif'); + $raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif')); ob_start(); imagegif($raw); $expected = ob_get_clean(); @@ -176,36 +176,36 @@ public function testDataNoResource(): void { */ public function testToString(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.gif'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.gif'); $expected = base64_encode($img->data()); $this->assertEquals($expected, (string)$img); } public function testResize(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertTrue($img->resize(32)); $this->assertEquals(32, $img->width()); $this->assertEquals(32, $img->height()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertTrue($img->resize(840)); $this->assertEquals(840, $img->width()); $this->assertEquals(525, $img->height()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertTrue($img->resize(100)); $this->assertEquals(100, $img->width()); $this->assertEquals(100, $img->height()); @@ -213,19 +213,19 @@ public function testResize(): void { public function testPreciseResize(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertTrue($img->preciseResize(128, 512)); $this->assertEquals(128, $img->width()); $this->assertEquals(512, $img->height()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertTrue($img->preciseResize(64, 840)); $this->assertEquals(64, $img->width()); $this->assertEquals(840, $img->height()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertTrue($img->preciseResize(1000, 1337)); $this->assertEquals(1000, $img->width()); $this->assertEquals(1337, $img->height()); @@ -233,19 +233,19 @@ public function testPreciseResize(): void { public function testCenterCrop(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $img->centerCrop(); $this->assertEquals(128, $img->width()); $this->assertEquals(128, $img->height()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $img->centerCrop(); $this->assertEquals(1050, $img->width()); $this->assertEquals(1050, $img->height()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $img->centerCrop(512); $this->assertEquals(512, $img->width()); $this->assertEquals(512, $img->height()); @@ -253,19 +253,19 @@ public function testCenterCrop(): void { public function testCrop(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $this->assertTrue($img->crop(0, 0, 50, 20)); $this->assertEquals(50, $img->width()); $this->assertEquals(20, $img->height()); $img = new Image(); - $img->loadFromData(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); + $img->loadFromData(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg')); $this->assertTrue($img->crop(500, 700, 550, 300)); $this->assertEquals(550, $img->width()); $this->assertEquals(300, $img->height()); $img = new Image(); - $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.gif'))); + $img->loadFromBase64(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif'))); $this->assertTrue($img->crop(10, 10, 15, 15)); $this->assertEquals(15, $img->width()); $this->assertEquals(15, $img->height()); @@ -311,7 +311,7 @@ public static function sampleFilenamesProvider() { */ public function testScaleDownToFitWhenSmallerAlready($filename): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/' . $filename); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/' . $filename); $currentWidth = $img->width(); $currentHeight = $img->height(); // We pick something larger than the image we want to scale down @@ -344,7 +344,7 @@ public static function largeSampleProvider() { */ public function testScaleDownWhenBigger($filename, $asked, $expected): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/' . $filename); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/' . $filename); //$this->assertTrue($img->scaleDownToFit($asked[0], $asked[1])); $img->scaleDownToFit($asked[0], $asked[1]); $this->assertEquals($expected[0], $img->width()); @@ -364,7 +364,7 @@ public function convertDataProvider() { */ public function testConvert($mimeType): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.png'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage.png'); $tempFile = tempnam(sys_get_temp_dir(), 'img-test'); $img->save($tempFile, $mimeType); @@ -373,12 +373,12 @@ public function testConvert($mimeType): void { public function testMemoryLimitFromFile(): void { $img = new Image(); - $img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage-badheader.jpg'); + $img->loadFromFile(OC::$SERVERROOT . '/tests/data/testimage-badheader.jpg'); $this->assertFalse($img->valid()); } public function testMemoryLimitFromData(): void { - $data = file_get_contents(OC::$SERVERROOT.'/tests/data/testimage-badheader.jpg'); + $data = file_get_contents(OC::$SERVERROOT . '/tests/data/testimage-badheader.jpg'); $img = new Image(); $img->loadFromData($data); $this->assertFalse($img->valid()); diff --git a/tests/lib/InfoXmlTest.php b/tests/lib/InfoXmlTest.php index 461a2ecafa8ec..e579a4b4efd30 100644 --- a/tests/lib/InfoXmlTest.php +++ b/tests/lib/InfoXmlTest.php @@ -125,7 +125,7 @@ public function testClasses($app): void { if (isset($appInfo['commands'])) { foreach ($appInfo['commands'] as $command) { - $this->assertTrue(class_exists($command), 'Asserting command "'. $command . '"exists'); + $this->assertTrue(class_exists($command), 'Asserting command "' . $command . '"exists'); $this->assertInstanceOf($command, \OC::$server->query($command)); } } diff --git a/tests/lib/IntegrityCheck/CheckerTest.php b/tests/lib/IntegrityCheck/CheckerTest.php index 8d579cda5290f..6b6da1cc30c04 100644 --- a/tests/lib/IntegrityCheck/CheckerTest.php +++ b/tests/lib/IntegrityCheck/CheckerTest.php @@ -89,8 +89,8 @@ public function testWriteAppSignatureOfNotExistingApp(): void { ->with('NotExistingApp/appinfo') ->willReturn(true); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -108,8 +108,8 @@ public function testWriteAppSignatureWrongPermissions(): void { ->method('file_put_contents') ->will($this->throwException(new \Exception('Exception message'))); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -139,8 +139,8 @@ public function testWriteAppSignature(): void { }) ); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -201,7 +201,7 @@ public function testVerifyAppSignatureWithValidSignatureData(): void { ) ->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $this->assertSame([], $this->checker->verifyAppSignature('SomeApp')); @@ -240,7 +240,7 @@ public function testVerifyAppSignatureWithTamperedSignatureData(): void { ) ->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ @@ -285,7 +285,7 @@ public function testVerifyAppSignatureWithTamperedFiles(): void { ) ->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); @@ -345,7 +345,7 @@ public function testVerifyAppSignatureWithTamperedFilesAndAlternatePath(): void ) ->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); @@ -405,7 +405,7 @@ public function testVerifyAppWithDifferentScope(): void { ['/resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ @@ -449,7 +449,7 @@ public function testVerifyAppWithDifferentScopeAndAlwaysTrustedCore(): void { ['/resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $this->assertSame([], $this->checker->verifyAppSignature('SomeApp')); @@ -470,8 +470,8 @@ public function testWriteCoreSignatureWithException(): void { ->with(__DIR__ . '/core') ->willReturn(true); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -494,8 +494,8 @@ public function testWriteCoreSignatureWrongPermissions(): void { ->with(__DIR__ . '/core') ->willReturn(false); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/SomeApp.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/SomeApp.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -529,8 +529,8 @@ public function testWriteCoreSignature(): void { }) ); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/core.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/core.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/core.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/core.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -564,8 +564,8 @@ public function testWriteCoreSignatureWithUnmodifiedHtaccess(): void { }) ); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/core.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/core.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/core.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/core.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -594,8 +594,8 @@ public function testWriteCoreSignatureWithInvalidModifiedHtaccess(): void { }) ); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/core.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/core.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/core.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/core.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -629,8 +629,8 @@ public function testWriteCoreSignatureWithValidModifiedHtaccess(): void { }) ); - $keyBundle = file_get_contents(__DIR__ .'/../../data/integritycheck/core.crt'); - $rsaPrivateKey = file_get_contents(__DIR__ .'/../../data/integritycheck/core.key'); + $keyBundle = file_get_contents(__DIR__ . '/../../data/integritycheck/core.crt'); + $rsaPrivateKey = file_get_contents(__DIR__ . '/../../data/integritycheck/core.key'); $rsa = new RSA(); $rsa->loadKey($rsaPrivateKey); $x509 = new X509(); @@ -689,7 +689,7 @@ public function testVerifyCoreSignatureWithValidSignatureData(): void { [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $this->assertSame([], $this->checker->verifyCoreSignature()); @@ -727,7 +727,7 @@ public function testVerifyCoreSignatureWithValidModifiedHtaccessSignatureData(): ) ->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $this->assertSame([], $this->checker->verifyCoreSignature()); @@ -774,12 +774,12 @@ public function testVerifyCoreSignatureWithModifiedMimetypelistSignatureData(): ->method('getServerRoot') ->willReturn(\OC::$SERVERROOT . '/tests/data/integritycheck/mimetypeListModified'); - $signatureDataFile = file_get_contents(__DIR__ .'/../../data/integritycheck/mimetypeListModified/core/signature.json'); + $signatureDataFile = file_get_contents(__DIR__ . '/../../data/integritycheck/mimetypeListModified/core/signature.json'); $this->fileAccessHelper ->method('file_get_contents') ->willReturnMap([ [\OC::$SERVERROOT . '/tests/data/integritycheck/mimetypeListModified/core/signature.json', $signatureDataFile], - [\OC::$SERVERROOT . '/tests/data/integritycheck/mimetypeListModified/resources/codesigning/root.crt', file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt')], + [\OC::$SERVERROOT . '/tests/data/integritycheck/mimetypeListModified/resources/codesigning/root.crt', file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt')], ]); $this->assertSame([], $this->checker->verifyCoreSignature()); @@ -816,7 +816,7 @@ public function testVerifyCoreSignatureWithValidSignatureDataAndNotAlphabeticOrd [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $this->assertSame([], $this->checker->verifyCoreSignature()); @@ -853,7 +853,7 @@ public function testVerifyCoreSignatureWithTamperedSignatureData(): void { [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ @@ -896,7 +896,7 @@ public function testVerifyCoreSignatureWithTamperedFiles(): void { [\OC::$SERVERROOT . '/tests/data/integritycheck/appWithInvalidData//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ @@ -954,7 +954,7 @@ public function testVerifyCoreWithInvalidCertificate(): void { [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ @@ -997,7 +997,7 @@ public function testVerifyCoreWithDifferentScope(): void { [\OC::$SERVERROOT . '/tests/data/integritycheck/app//resources/codesigning/root.crt'], )->willReturnOnConsecutiveCalls( $signatureDataFile, - file_get_contents(__DIR__ .'/../../data/integritycheck/root.crt') + file_get_contents(__DIR__ . '/../../data/integritycheck/root.crt') ); $expected = [ diff --git a/tests/lib/L10N/L10nTest.php b/tests/lib/L10N/L10nTest.php index 26f39e41c1384..32b81cf06a7b0 100644 --- a/tests/lib/L10N/L10nTest.php +++ b/tests/lib/L10N/L10nTest.php @@ -40,14 +40,14 @@ protected function getFactory() { } public function testSimpleTranslationWithTrailingColon(): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json'; $l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]); $this->assertEquals('Files:', $l->t('Files:')); } public function testGermanPluralTranslations(): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json'; $l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]); $this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1)); @@ -55,7 +55,7 @@ public function testGermanPluralTranslations(): void { } public function testRussianPluralTranslations(): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/ru.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/ru.json'; $l = new L10N($this->getFactory(), 'test', 'ru', 'ru_UA', [$transFile]); $this->assertEquals('1 файл', (string)$l->n('%n file', '%n files', 1)); @@ -79,7 +79,7 @@ public function testRussianPluralTranslations(): void { } public function testCzechPluralTranslations(): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/cs.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/cs.json'; $l = new L10N($this->getFactory(), 'test', 'cs', 'cs_CZ', [$transFile]); $this->assertEquals('1 okno', (string)$l->n('%n window', '%n windows', 1)); @@ -88,7 +88,7 @@ public function testCzechPluralTranslations(): void { } public function testGermanPluralWithCzechLocaleTranslations(): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json'; $l = new L10N($this->getFactory(), 'test', 'de', 'cs_CZ', [$transFile]); $this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1)); @@ -111,7 +111,7 @@ public function dataPlaceholders(): array { * @param $expected */ public function testPlaceholders($string, $expected): void { - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json'; + $transFile = \OC::$SERVERROOT . '/tests/data/l10n/de.json'; $l = new L10N($this->getFactory(), 'test', 'de', 'de_AT', [$transFile]); $this->assertEquals($expected, $l->t($string, ['1', '2'])); diff --git a/tests/lib/Log/LogFactoryTest.php b/tests/lib/Log/LogFactoryTest.php index 22ee0dfb26814..6219fd438f7be 100644 --- a/tests/lib/Log/LogFactoryTest.php +++ b/tests/lib/Log/LogFactoryTest.php @@ -62,7 +62,7 @@ public function fileTypeProvider(): array { * @throws \OCP\AppFramework\QueryException */ public function testFile(string $type): void { - $datadir = \OC::$SERVERROOT.'/data'; + $datadir = \OC::$SERVERROOT . '/data'; $defaultLog = $datadir . '/nextcloud.log'; $this->systemConfig->expects($this->exactly(3)) @@ -82,7 +82,7 @@ public function logFilePathProvider():array { ], [ '/xdev/youshallfallback', - \OC::$SERVERROOT.'/data/nextcloud.log' + \OC::$SERVERROOT . '/data/nextcloud.log' ] ]; } @@ -92,7 +92,7 @@ public function logFilePathProvider():array { * @throws \OCP\AppFramework\QueryException */ public function testFileCustomPath($path, $expected): void { - $datadir = \OC::$SERVERROOT.'/data'; + $datadir = \OC::$SERVERROOT . '/data'; $defaultLog = $datadir . '/nextcloud.log'; $this->systemConfig->expects($this->exactly(3)) diff --git a/tests/lib/NavigationManagerTest.php b/tests/lib/NavigationManagerTest.php index 1297bfdf669e5..7767a8c2e8f91 100644 --- a/tests/lib/NavigationManagerTest.php +++ b/tests/lib/NavigationManagerTest.php @@ -311,7 +311,7 @@ public function providesNavigationConfig() { 'logout' => [ 'id' => 'logout', 'order' => 99999, - 'href' => 'https://example.com/logout?requesttoken='. urlencode(\OCP\Util::callRegister()), + 'href' => 'https://example.com/logout?requesttoken=' . urlencode(\OCP\Util::callRegister()), 'icon' => '/apps/core/img/actions/logout.svg', 'name' => 'Log out', 'active' => false, diff --git a/tests/lib/Preview/BackgroundCleanupJobTest.php b/tests/lib/Preview/BackgroundCleanupJobTest.php index d9ea171849160..9c521376af5ad 100644 --- a/tests/lib/Preview/BackgroundCleanupJobTest.php +++ b/tests/lib/Preview/BackgroundCleanupJobTest.php @@ -96,7 +96,7 @@ private function setup11Previews(): array { $files = []; for ($i = 0; $i < 11; $i++) { - $file = $userFolder->newFile($i.'.txt'); + $file = $userFolder->newFile($i . '.txt'); $file->putContent('hello world!'); $this->previewManager->getPreview($file); $files[] = $file; diff --git a/tests/lib/Route/RouterTest.php b/tests/lib/Route/RouterTest.php index 8647bb0f2f6bd..6f253d9121f0a 100644 --- a/tests/lib/Route/RouterTest.php +++ b/tests/lib/Route/RouterTest.php @@ -36,7 +36,7 @@ protected function setUp(): void { $logger->method('info') ->willReturnCallback( function (string $message, array $data) { - $this->fail('Unexpected info log: '.(string)($data['exception'] ?? $message)); + $this->fail('Unexpected info log: ' . (string)($data['exception'] ?? $message)); } ); diff --git a/tests/lib/Security/CertificateManagerTest.php b/tests/lib/Security/CertificateManagerTest.php index 14036b3dd3ba1..095512d0b4f89 100644 --- a/tests/lib/Security/CertificateManagerTest.php +++ b/tests/lib/Security/CertificateManagerTest.php @@ -144,7 +144,7 @@ public function testGetCertificateBundle(): void { public function testNeedRebundling($CaBundleMtime, $targetBundleMtime, $targetBundleExists, - $expected + $expected, ): void { $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); diff --git a/tests/lib/Security/CertificateTest.php b/tests/lib/Security/CertificateTest.php index 8b084ca41b3b4..c787cc3355fcd 100644 --- a/tests/lib/Security/CertificateTest.php +++ b/tests/lib/Security/CertificateTest.php @@ -45,7 +45,7 @@ public function testCertificateStartingWithFileReference(): void { $this->expectException(\Exception::class); $this->expectExceptionMessage('Certificate could not get parsed.'); - new Certificate('file://'.__DIR__ . '/../../data/certificates/goodCertificate.crt', 'bar'); + new Certificate('file://' . __DIR__ . '/../../data/certificates/goodCertificate.crt', 'bar'); } public function testGetName(): void { diff --git a/tests/lib/Security/SecureRandomTest.php b/tests/lib/Security/SecureRandomTest.php index 08d33d4a1b3e5..8000917579b42 100644 --- a/tests/lib/Security/SecureRandomTest.php +++ b/tests/lib/Security/SecureRandomTest.php @@ -72,7 +72,7 @@ public function testScheme($charName, $chars): void { $generator = $this->rng; $scheme = constant('OCP\Security\ISecureRandom::' . $charName); $randomString = $generator->generate(100, $scheme); - $matchesRegex = preg_match('/^'.$chars.'+$/', $randomString); + $matchesRegex = preg_match('/^' . $chars . '+$/', $randomString); $this->assertSame(1, $matchesRegex); } diff --git a/tests/lib/Share/Backend.php b/tests/lib/Share/Backend.php index 42269d7e27531..489f4a9bfd1d0 100644 --- a/tests/lib/Share/Backend.php +++ b/tests/lib/Share/Backend.php @@ -54,11 +54,11 @@ public function generateTarget($itemSource, $shareWith, $exclude = null) { $ext = substr($target, $pos); $append = ''; $i = 1; - while (in_array($name.$append.$ext, $knownTargets)) { + while (in_array($name . $append . $ext, $knownTargets)) { $append = $i; $i++; } - $target = $name.$append.$ext; + $target = $name . $append . $ext; } return $target; diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php index 36f070d7c99b8..5bed54cc18f64 100644 --- a/tests/lib/Share20/DefaultShareProviderTest.php +++ b/tests/lib/Share20/DefaultShareProviderTest.php @@ -716,7 +716,7 @@ public function testCreateUserShare(): void { $share2 = $this->provider->create($share); $this->assertNotNull($share2->getId()); - $this->assertSame('ocinternal:'.$share2->getId(), $share2->getFullId()); + $this->assertSame('ocinternal:' . $share2->getId(), $share2->getFullId()); $this->assertSame(IShare::TYPE_USER, $share2->getShareType()); $this->assertSame('sharedWith', $share2->getSharedWith()); $this->assertSame('sharedBy', $share2->getSharedBy()); @@ -786,7 +786,7 @@ public function testCreateGroupShare(): void { $share2 = $this->provider->create($share); $this->assertNotNull($share2->getId()); - $this->assertSame('ocinternal:'.$share2->getId(), $share2->getFullId()); + $this->assertSame('ocinternal:' . $share2->getId(), $share2->getFullId()); $this->assertSame(IShare::TYPE_GROUP, $share2->getShareType()); $this->assertSame('sharedWith', $share2->getSharedWith()); $this->assertSame('sharedBy', $share2->getSharedBy()); @@ -855,7 +855,7 @@ public function testCreateLinkShare(): void { $share2 = $this->provider->create($share); $this->assertNotNull($share2->getId()); - $this->assertSame('ocinternal:'.$share2->getId(), $share2->getFullId()); + $this->assertSame('ocinternal:' . $share2->getId(), $share2->getFullId()); $this->assertSame(IShare::TYPE_LINK, $share2->getShareType()); $this->assertSame('sharedBy', $share2->getSharedBy()); $this->assertSame('shareOwner', $share2->getShareOwner()); @@ -1033,7 +1033,7 @@ public function testGetSharedWithGroup($storageStringId, $fileName1, $fileName2) $groups = []; foreach (range(0, 100) as $i) { - $groups[] = 'group'.$i; + $groups[] = 'group' . $i; } $groups[] = 'sharedWith'; @@ -1287,7 +1287,7 @@ public function testGetSharedWithWithDeletedFile($shareType, $trashed): void { $groups = []; foreach (range(0, 100) as $i) { - $groups[] = 'group'.$i; + $groups[] = 'group' . $i; } $groups[] = 'sharedWith'; @@ -1820,9 +1820,9 @@ public function testUpdateUser(): void { $users = []; for ($i = 0; $i < 6; $i++) { $user = $this->createMock(IUser::class); - $user->method('getUID')->willReturn('user'.$i); + $user->method('getUID')->willReturn('user' . $i); $user->method('getDisplayName')->willReturn('user' . $i); - $users['user'.$i] = $user; + $users['user' . $i] = $user; } $this->userManager->method('get')->willReturnCallback( @@ -1878,8 +1878,8 @@ public function testUpdateLink(): void { $users = []; for ($i = 0; $i < 6; $i++) { $user = $this->createMock(IUser::class); - $user->method('getUID')->willReturn('user'.$i); - $users['user'.$i] = $user; + $user->method('getUID')->willReturn('user' . $i); + $users['user' . $i] = $user; } $this->userManager->method('get')->willReturnCallback( @@ -1944,8 +1944,8 @@ public function testUpdateLinkRemovePassword(): void { $users = []; for ($i = 0; $i < 6; $i++) { $user = $this->createMock(IUser::class); - $user->method('getUID')->willReturn('user'.$i); - $users['user'.$i] = $user; + $user->method('getUID')->willReturn('user' . $i); + $users['user' . $i] = $user; } $this->userManager->method('get')->willReturnCallback( @@ -2001,8 +2001,8 @@ public function testUpdateGroupNoSub(): void { $users = []; for ($i = 0; $i < 6; $i++) { $user = $this->createMock(IUser::class); - $user->method('getUID')->willReturn('user'.$i); - $users['user'.$i] = $user; + $user->method('getUID')->willReturn('user' . $i); + $users['user' . $i] = $user; } $this->userManager->method('get')->willReturnCallback( @@ -2014,9 +2014,9 @@ function ($userId) use ($users) { $groups = []; for ($i = 0; $i < 2; $i++) { $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('group'.$i); + $group->method('getGID')->willReturn('group' . $i); $group->method('getDisplayName')->willReturn('group-displayname' . $i); - $groups['group'.$i] = $group; + $groups['group' . $i] = $group; } $this->groupManager->method('get')->willReturnCallback( @@ -2080,8 +2080,8 @@ public function testUpdateGroupSubShares(): void { $users = []; for ($i = 0; $i < 6; $i++) { $user = $this->createMock(IUser::class); - $user->method('getUID')->willReturn('user'.$i); - $users['user'.$i] = $user; + $user->method('getUID')->willReturn('user' . $i); + $users['user' . $i] = $user; } $this->userManager->method('get')->willReturnCallback( @@ -2093,9 +2093,9 @@ function ($userId) use ($users) { $groups = []; for ($i = 0; $i < 2; $i++) { $group = $this->createMock(IGroup::class); - $group->method('getGID')->willReturn('group'.$i); - $group->method('getDisplayName')->willReturn('group-displayname'.$i); - $groups['group'.$i] = $group; + $group->method('getGID')->willReturn('group' . $i); + $group->method('getDisplayName')->willReturn('group-displayname' . $i); + $groups['group' . $i] = $group; } $this->groupManager->method('get')->willReturnCallback( diff --git a/tests/lib/SubAdminTest.php b/tests/lib/SubAdminTest.php index 2827fe84d788b..4cda08a294515 100644 --- a/tests/lib/SubAdminTest.php +++ b/tests/lib/SubAdminTest.php @@ -46,8 +46,8 @@ protected function setUp(): void { // Create 3 users and 3 groups for ($i = 0; $i < 3; $i++) { - $this->users[] = $this->userManager->createUser('user'.$i, 'user'); - $this->groups[] = $this->groupManager->createGroup('group'.$i); + $this->users[] = $this->userManager->createUser('user' . $i, 'user'); + $this->groups[] = $this->groupManager->createGroup('group' . $i); } // Create admin group diff --git a/tests/lib/TaskProcessing/TaskProcessingTest.php b/tests/lib/TaskProcessing/TaskProcessingTest.php index 38675e826bfa0..00e1da4acb5de 100644 --- a/tests/lib/TaskProcessing/TaskProcessingTest.php +++ b/tests/lib/TaskProcessing/TaskProcessingTest.php @@ -625,7 +625,7 @@ public function testProviderShouldBeRegisteredAndRun(): void { $backgroundJob->start($this->jobList); $task = $this->manager->getTask($task->getId()); - self::assertEquals(Task::STATUS_SUCCESSFUL, $task->getStatus(), 'Status is '. $task->getStatus() . ' with error message: ' . $task->getErrorMessage()); + self::assertEquals(Task::STATUS_SUCCESSFUL, $task->getStatus(), 'Status is ' . $task->getStatus() . ' with error message: ' . $task->getErrorMessage()); self::assertEquals(['output' => 'Hello'], $task->getOutput()); self::assertEquals(1, $task->getProgress()); } @@ -729,7 +729,7 @@ public function testAsyncProviderWithFilesShouldBeRegisteredAndRunReturningFileI self::assertEquals(1, $task->getProgress()); self::assertTrue(isset($task->getOutput()['spectrogram'])); $node = $this->rootFolder->getFirstNodeById($task->getOutput()['spectrogram']); - self::assertNotNull($node, 'fileId:' . $task->getOutput()['spectrogram']); + self::assertNotNull($node, 'fileId:' . $task->getOutput()['spectrogram']); self::assertInstanceOf(\OCP\Files\File::class, $node); self::assertEquals('World', $node->getContent()); } diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index 9369a20eb8112..03886d4a0be5c 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -530,7 +530,7 @@ protected function IsDatabaseAccessAllowed() { * @param array $vars */ protected function assertTemplate($expectedHtml, $template, $vars = []) { - require_once __DIR__.'/../../lib/private/legacy/template/functions.php'; + require_once __DIR__ . '/../../lib/private/legacy/template/functions.php'; $requestToken = 12345; /** @var Defaults|\PHPUnit\Framework\MockObject\MockObject $l10n */ diff --git a/tests/lib/Updater/VersionCheckTest.php b/tests/lib/Updater/VersionCheckTest.php index b33829a21553f..94347265427a3 100644 --- a/tests/lib/Updater/VersionCheckTest.php +++ b/tests/lib/Updater/VersionCheckTest.php @@ -63,7 +63,7 @@ protected function setUp(): void { * @return string */ private function buildUpdateUrl($baseUrl) { - return $baseUrl . '?version='.implode('x', Util::getVersion()).'xinstalledatx' . time() . 'x'.\OC_Util::getChannel().'xxx'.PHP_MAJOR_VERSION.'x'.PHP_MINOR_VERSION.'x'.PHP_RELEASE_VERSION.'x0x0'; + return $baseUrl . '?version=' . implode('x', Util::getVersion()) . 'xinstalledatx' . time() . 'x' . \OC_Util::getChannel() . 'xxx' . PHP_MAJOR_VERSION . 'x' . PHP_MINOR_VERSION . 'x' . PHP_RELEASE_VERSION . 'x0x0'; } public function testCheckInCache(): void { diff --git a/tests/preseed-config.php b/tests/preseed-config.php index f9c1593946946..3095690e48369 100644 --- a/tests/preseed-config.php +++ b/tests/preseed-config.php @@ -15,7 +15,7 @@ ], ]; -if (is_dir(OC::$SERVERROOT.'/apps2')) { +if (is_dir(OC::$SERVERROOT . '/apps2')) { $CONFIG['apps_paths'][] = [ 'path' => OC::$SERVERROOT . '/apps2', 'url' => '/apps2', diff --git a/vendor-bin/cs-fixer/composer.json b/vendor-bin/cs-fixer/composer.json index 13cc12d0c8638..c2c3ecc5a46c8 100644 --- a/vendor-bin/cs-fixer/composer.json +++ b/vendor-bin/cs-fixer/composer.json @@ -7,6 +7,6 @@ }, "require": { "friendsofphp/php-cs-fixer": "^3.37", - "nextcloud/coding-standard": "^1.1.1" + "nextcloud/coding-standard": "^1.3.1" } } diff --git a/vendor-bin/cs-fixer/composer.lock b/vendor-bin/cs-fixer/composer.lock index e905331a93a3c..6e6a3ac3e90ad 100644 --- a/vendor-bin/cs-fixer/composer.lock +++ b/vendor-bin/cs-fixer/composer.lock @@ -4,23 +4,70 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "80901a880a6a35944b750b56c0e85620", + "content-hash": "427da07c086c9f916d995f88b29aba1b", "packages": [ + { + "name": "kubawerlos/php-cs-fixer-custom-fixers", + "version": "v3.22.0", + "source": { + "type": "git", + "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git", + "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/8701394f0c7cd450ac4fa577d24589122c1d5d5e", + "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "ext-tokenizer": "*", + "friendsofphp/php-cs-fixer": "^3.61.1", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6.4 || ^10.5.29" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpCsFixerCustomFixers\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kuba Werłos", + "email": "werlos@gmail.com" + } + ], + "description": "A set of custom fixers for PHP CS Fixer", + "support": { + "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues", + "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.22.0" + }, + "time": "2024-08-16T20:44:35+00:00" + }, { "name": "nextcloud/coding-standard", - "version": "v1.2.3", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/nextcloud/coding-standard.git", - "reference": "bc9c53a5306114b60c4363057aff9c2ed10a54da" + "reference": "e88acb0df6217b808d1632286ddfec9267a102e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/bc9c53a5306114b60c4363057aff9c2ed10a54da", - "reference": "bc9c53a5306114b60c4363057aff9c2ed10a54da", + "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/e88acb0df6217b808d1632286ddfec9267a102e4", + "reference": "e88acb0df6217b808d1632286ddfec9267a102e4", "shasum": "" }, "require": { + "kubawerlos/php-cs-fixer-custom-fixers": "^3.22", "php": "^7.3|^8.0", "php-cs-fixer/shim": "^3.17" }, @@ -43,22 +90,22 @@ "description": "Nextcloud coding standards for the php cs fixer", "support": { "issues": "https://github.com/nextcloud/coding-standard/issues", - "source": "https://github.com/nextcloud/coding-standard/tree/v1.2.3" + "source": "https://github.com/nextcloud/coding-standard/tree/v1.3.1" }, - "time": "2024-08-23T14:32:32+00:00" + "time": "2024-09-19T09:07:10+00:00" }, { "name": "php-cs-fixer/shim", - "version": "v3.62.0", + "version": "v3.64.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/shim.git", - "reference": "7a91d5ce45c486f5b445d95901228507a02f60ae" + "reference": "81ccfd24baf3a10810dab1152c403981a790b837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/7a91d5ce45c486f5b445d95901228507a02f60ae", - "reference": "7a91d5ce45c486f5b445d95901228507a02f60ae", + "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/81ccfd24baf3a10810dab1152c403981a790b837", + "reference": "81ccfd24baf3a10810dab1152c403981a790b837", "shasum": "" }, "require": { @@ -95,9 +142,9 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/PHP-CS-Fixer/shim/issues", - "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.62.0" + "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.64.0" }, - "time": "2024-08-07T17:03:46+00:00" + "time": "2024-08-30T23:10:11+00:00" } ], "packages-dev": [], From 6285f550b6cd94e13e73a66894744e2ee7be32b5 Mon Sep 17 00:00:00 2001 From: provokateurin Date: Thu, 19 Sep 2024 11:11:29 +0200 Subject: [PATCH 06/10] chore: Add nextcloud/coding-standard v1.3.1 update to git blame ignores Signed-off-by: provokateurin --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index d3e31a586deb0..f2632312ce778 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -11,5 +11,7 @@ aa5f037af71c915424c6dcfd5ad2dc82797dc0d6 af6de04e9e141466dc229e444ff3f146f4a34765 0bd284cb81b6866338aaaa67aa1d81ef9bfbb2ab 8af7ecb2576071f170ecbb0aa2311b26581e40e2 +# Update to coding-standard 1.3.1 +9836e9b16484582d309c8437ab46d82e34956941 # Automated refactorings 49dd79eabb2b8902559a7a4e8f8fcad54f46b604 From b86156d5cc0cd6a48f29b0ae574f0563d373dc2c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 18:29:21 +0000 Subject: [PATCH 07/10] chore(deps): Bump @vueuse/components from 11.0.3 to 11.1.0 Bumps [@vueuse/components](https://github.com/vueuse/vueuse/tree/HEAD/packages/components) from 11.0.3 to 11.1.0. - [Release notes](https://github.com/vueuse/vueuse/releases) - [Commits](https://github.com/vueuse/vueuse/commits/v11.1.0/packages/components) --- updated-dependencies: - dependency-name: "@vueuse/components" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: nextcloud-command --- dist/1762-1762.js.license | 2 +- dist/3794-3794.js.license | 2 +- dist/3920-3920.js.license | 2 +- dist/5528-5528.js.license | 2 +- dist/583-583.js.license | 2 +- dist/6794-6794.js.license | 2 +- dist/7462-7462.js.license | 2 +- dist/802-802.js.license | 2 +- dist/8057-8057.js.license | 2 +- dist/9196-9196.js.license | 2 +- dist/comments-comments-app.js | 4 +- dist/comments-comments-app.js.license | 2 +- dist/comments-comments-app.js.map | 2 +- dist/core-common.js | 4 +- dist/core-common.js.license | 2 +- dist/core-common.js.map | 2 +- dist/core-legacy-unified-search.js.license | 2 +- dist/core-main.js.license | 2 +- dist/core-profile.js.license | 2 +- dist/core-public-page-menu.js.license | 2 +- dist/core-unified-search.js.license | 2 +- dist/dashboard-main.js.license | 2 +- ...-settings-personal-availability.js.license | 2 +- dist/files-main.js | 4 +- dist/files-main.js.license | 2 +- dist/files-main.js.map | 2 +- dist/files-reference-files.js.license | 2 +- dist/files-settings-personal.js.license | 2 +- dist/files-sidebar.js.license | 2 +- dist/files_sharing-init.js.license | 2 +- dist/files_trashbin-init.js.license | 2 +- dist/files_versions-files_versions.js.license | 2 +- dist/settings-apps-view-4529.js.license | 2 +- ...ings-declarative-settings-forms.js.license | 2 +- dist/settings-users-3239.js | 4 +- dist/settings-users-3239.js.license | 2 +- dist/settings-users-3239.js.map | 2 +- .../settings-vue-settings-admin-ai.js.license | 2 +- ...s-vue-settings-admin-delegation.js.license | 2 +- ...ngs-vue-settings-admin-security.js.license | 2 +- ...ings-vue-settings-admin-sharing.js.license | 2 +- ...ings-vue-settings-apps-users-management.js | 4 +- ...-vue-settings-apps-users-management.js.map | 2 +- ...ings-vue-settings-personal-info.js.license | 2 +- dist/systemtags-admin.js.license | 2 +- dist/theming-admin-theming.js.license | 2 +- ...notification-updatenotification.js.license | 2 +- dist/user-status-modal-5133.js.license | 2 +- dist/weather_status-weather-status.js.license | 2 +- dist/workflowengine-workflowengine.js.license | 2 +- package-lock.json | 45 ++++++++++++++++--- package.json | 2 +- 52 files changed, 95 insertions(+), 62 deletions(-) diff --git a/dist/1762-1762.js.license b/dist/1762-1762.js.license index beef9f5cf5aaf..61e578f5ce231 100644 --- a/dist/1762-1762.js.license +++ b/dist/1762-1762.js.license @@ -157,7 +157,7 @@ This file is generated from multiple sources. Included packages: - version: 1.2.0 - license: ISC - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/3794-3794.js.license b/dist/3794-3794.js.license index a4e466fa74017..a14443a1fdae5 100644 --- a/dist/3794-3794.js.license +++ b/dist/3794-3794.js.license @@ -92,7 +92,7 @@ This file is generated from multiple sources. Included packages: - version: 8.17.1 - license: AGPL-3.0-or-later - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/3920-3920.js.license b/dist/3920-3920.js.license index 85cac25af01a8..e8fe55aa1b31e 100644 --- a/dist/3920-3920.js.license +++ b/dist/3920-3920.js.license @@ -103,7 +103,7 @@ This file is generated from multiple sources. Included packages: - version: 6.6.3 - license: MIT - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/5528-5528.js.license b/dist/5528-5528.js.license index 1b0c027174fcd..04e84312b3ba2 100644 --- a/dist/5528-5528.js.license +++ b/dist/5528-5528.js.license @@ -111,7 +111,7 @@ This file is generated from multiple sources. Included packages: - version: 1.2.0 - license: ISC - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/583-583.js.license b/dist/583-583.js.license index edd6a5d0be115..3c2359678b25f 100644 --- a/dist/583-583.js.license +++ b/dist/583-583.js.license @@ -140,7 +140,7 @@ This file is generated from multiple sources. Included packages: - version: 1.2.0 - license: ISC - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/6794-6794.js.license b/dist/6794-6794.js.license index 9539e2c564301..e19bc1def1a19 100644 --- a/dist/6794-6794.js.license +++ b/dist/6794-6794.js.license @@ -114,7 +114,7 @@ This file is generated from multiple sources. Included packages: - version: 8.17.1 - license: AGPL-3.0-or-later - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/7462-7462.js.license b/dist/7462-7462.js.license index 85cac25af01a8..e8fe55aa1b31e 100644 --- a/dist/7462-7462.js.license +++ b/dist/7462-7462.js.license @@ -103,7 +103,7 @@ This file is generated from multiple sources. Included packages: - version: 6.6.3 - license: MIT - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/802-802.js.license b/dist/802-802.js.license index 31262a86b9cf0..1984562da5161 100644 --- a/dist/802-802.js.license +++ b/dist/802-802.js.license @@ -157,7 +157,7 @@ This file is generated from multiple sources. Included packages: - version: 1.2.0 - license: ISC - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/8057-8057.js.license b/dist/8057-8057.js.license index 85cac25af01a8..e8fe55aa1b31e 100644 --- a/dist/8057-8057.js.license +++ b/dist/8057-8057.js.license @@ -103,7 +103,7 @@ This file is generated from multiple sources. Included packages: - version: 6.6.3 - license: MIT - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/9196-9196.js.license b/dist/9196-9196.js.license index 84ccb1591d938..5a02370b3f588 100644 --- a/dist/9196-9196.js.license +++ b/dist/9196-9196.js.license @@ -69,7 +69,7 @@ This file is generated from multiple sources. Included packages: - version: 8.17.1 - license: AGPL-3.0-or-later - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/comments-comments-app.js b/dist/comments-comments-app.js index aa26556757115..62148a116391b 100644 --- a/dist/comments-comments-app.js +++ b/dist/comments-comments-app.js @@ -1,2 +1,2 @@ -(()=>{var e,n,o,s={92085:(e,n,o)=>{"use strict";var s=o(21777),i=o(53334),r=o(65899),a=o(85471),c=o(85168),l=o(55042),m=o(34196),d=o(18740);const u={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var p=o(14486);const A=(0,p.A)(u,(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,"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,h={name:"MessageReplyTextIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},g=(0,p.A)(h,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-icon",attrs:{"aria-hidden":!t.title||null,"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:"M18,8H6V6H18V8M18,11H6V9H18V11M18,14H6V12H18V14M22,4A2,2 0 0,0 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,C={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f=(0,p.A)(C,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon alert-circle-outline-icon",attrs:{"aria-hidden":!t.title||null,"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:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var _=o(89257),v=o(24764),y=o(80114),b=o(41944),x=o(4604),w=o(84237),I=o(80701),k=o(9191),T=o(24325),D=o(11037),N=o(93919),S=o(63814);const M=function(){return(0,S.dC)("dav/comments")};function E(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=new DOMParser;let o=t;for(let t=0;t{B.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})};(0,s.zo)(L),L((0,s.do)());const $=B,j=(0,r.nY)("deletedCommentLimbo",{state:()=>({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){this.idsInLimbo.includes(t)}}}),H=(0,o(35947).YK)().setApp("comments").detectUser().build();var V=o(96763);const P={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,r.n2)(j)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,n,o){const s=["",t,e,n].join("/");return await $.customRequest(s,Object.assign({method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`}))}(this.resourceType,this.resourceId,this.id,e),H.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to edit the comment")),V.error(e)}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,c.Br);(0,c._h)(t("comments","Comment deleted"),(()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}))},async onDelete(){try{await async function(t,e,n){const o=["",t,e,n].join("/");await $.deleteFile(o)}(this.resourceType,this.resourceId,this.id),H.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to delete the comment")),V.error(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,n){const o=["",t,e].join("/"),i=await O.Ay.post(M()+o,{actorDisplayName:(0,s.HW)().displayName,actorId:(0,s.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),r=o+"/"+parseInt(i.headers["content-location"].split("/").pop()),a=await $.stat(r,{details:!0}),c=a.data.props;return c.actorDisplayName=E(c.actorDisplayName,2),c.message=E(c.message,2),a.data}(this.resourceType,this.resourceId,e);H.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to create the comment")),V.error(e)}finally{this.loading=!1}}}},q={name:"Comment",components:{IconArrowRight:k.A,IconClose:T.A,IconDelete:D.A,IconEdit:N.A,NcActionButton:_.A,NcActions:v.A,NcActionSeparator:y.A,NcAvatar:b.A,NcButton:d.A,NcDateTime:x.A,NcLoadingIcon:w.A,NcRichContenteditable:()=>Promise.all([o.e(4208),o.e(5528)]).then(o.bind(o,95528))},mixins:[I.Ay,P],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,r.n2)(j),isOwnComment(){return(0,s.HW)().uid===this.actorId},renderedContent(){return this.isEmptyMessage?"":this.renderContent(this.localMessage)},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:i.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick((()=>{this.$refs.editor.$el.focus()}))):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var z=o(85072),W=o.n(z),F=o(97825),G=o.n(F),U=o(77659),Y=o.n(U),Q=o(55056),K=o.n(Q),Z=o(10540),X=o.n(Z),J=o(41113),tt=o.n(J),et=o(27517),nt={};nt.styleTagTransform=tt(),nt.setAttributes=K(),nt.insert=Y().bind(null,"head"),nt.domAPI=G(),nt.insertStyleElement=X(),W()(et.A,nt),et.A&&et.A.locals&&et.A.locals;const ot=(0,p.A)(q,(function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconEdit",{attrs:{size:20}})]},proxy:!0}],null,!1,649782975)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconDelete",{attrs:{size:20}})]},proxy:!0}],null,!1,881161434)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),value:t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{type:"tertiary-no-background","native-type":"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("div",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},domProps:{innerHTML:t._s(t.renderedContent)},on:{click:t.onExpand}})])])}),[],!1,null,"1f6341c6",null).exports;var st=o(32981);const it=(0,a.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data:()=>({editorData:{actorDisplayName:(0,s.HW)().displayName,actorId:(0,s.HW)().uid,key:"editor"},userData:{}}),methods:{async autoComplete(t,e){const{data:n}=await O.Ay.get((0,S.KT)("core/autocomplete/get"),{params:{search:t,itemType:"files",itemId:this.resourceId,sorter:"commenters|share-recipients",limit:(0,st.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach((t=>{this.userData[t.id]=t})),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach((t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,s.HW)()?.uid===t.mentionId}})),this.userData}}});var rt=o(54290),at=o(90176);const ct=async function(t,e){let{resourceType:n,resourceId:o}=t;const s=["",n,o].join("/"),i=e.datetime?`${e.datetime.toISOString()}`:"",r=await $.customRequest(s,Object.assign({method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${e.limit??20}\n\t\t\t\t${e.offset||0}\n\t\t\t\t${i}\n\t\t\t`},e)),a=await r.text(),c=await(0,R.h4)(a),l=lt(c,!0);return(0,rt.hq)(r,l,!0)},lt=function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{multistatus:{response:n}}=t;return n.map((t=>{const n=t.propstat.prop;return(0,at.ch)(n,n.id.toString(),e)}))};var mt=o(96763);const dt={name:"Comments",components:{Comment:ot,NcEmptyContent:m.A,NcButton:d.A,RefreshIcon:A,MessageReplyTextIcon:g,AlertCircleOutlineIcon:f},directives:{elementVisibility:l.Zx},mixins:[it],data(){return{error:"",loading:!1,done:!1,currentResourceId:this.resourceId,offset:0,comments:[],cancelRequest:()=>{},Comment:ot,userData:{}}},computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:i.Tl,async onVisibilityChange(t){if(t)try{await((t,e,n)=>{const o=["",t,e].join("/"),s=n.toUTCString();return $.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${s}\n\t\t\t\t\n\t\t\t\n\t\t\t`})})(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,c.Qg)(t.message||(0,i.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,n=e.signal;return{request:async function(e,o){return await t(e,Object.assign({signal:n},o))},abort:()=>e.abort()}}(ct);this.cancelRequest=e;const{data:n}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${n.length} comments`,{comments:n}),n.length<20&&(this.done=!0),this.comments.push(...n),this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,i.Tl)("comments","Unable to load the comments list"),mt.error("Error loading the comments list",t)}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex((e=>e.props.id===t));e>-1?this.comments.splice(e,1):mt.error("Could not find the deleted comment in the list",t)},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}};var ut=o(43599),pt={};pt.styleTagTransform=tt(),pt.setAttributes=K(),pt.insert=Y().bind(null,"head"),pt.domAPI=G(),pt.insertStyleElement=X(),W()(ut.A,pt),ut.A&&ut.A.locals&&ut.A.locals;const At=(0,p.A)(dt,(function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("MessageReplyTextIcon")]},proxy:!0}],null,!1,1033639148)}):e("ul",t._l(t.comments,(function(n){return e("Comment",t._b({key:n.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:n.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(n.props.mentions)},on:{"update:message":function(e){return t.$set(n.props,"message",e)},delete:t.onDelete}},"Comment",n.props,!1))})),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AlertCircleOutlineIcon")]},proxy:!0}],null,!1,66050004)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("RefreshIcon")]},proxy:!0}],null,!1,3924573781)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)}),[],!1,null,"df914872",null).exports;a.Ay.use(r.R2),o.nc=(0,s.aV)(),a.Ay.mixin({data:()=>({logger:H}),methods:{t:i.t,n:i.n}});var ht=o(96763);window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(0,r.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:n},new(a.Ay.extend(At))(e)}}}),ht.debug("OCA.Comments.View initialized")},27517:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comment[data-v-1f6341c6]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-1f6341c6]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-1f6341c6]{display:flex;flex-grow:1;flex-direction:column}.comment__header[data-v-1f6341c6]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-1f6341c6]{margin-inline-start:10px !important}.comment__author[data-v-1f6341c6]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-1f6341c6],.comment__timestamp[data-v-1f6341c6]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-1f6341c6]{position:relative}.comment__editor-description[data-v-1f6341c6]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-1f6341c6]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-1f6341c6]{white-space:pre-wrap;word-break:break-word;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-1f6341c6]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-1f6341c6]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,qBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA3EiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: break-word;\n\t\tmax-height: 70px;\n\t\toverflow: hidden;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const a=r},43599:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comments[data-v-df914872]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-df914872],.comments__error[data-v-df914872]{flex:1 0}.comments__retry[data-v-df914872]{margin:0 auto}.comments__info[data-v-df914872]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const a=r},42634:()=>{},63779:()=>{},77199:()=>{},59169:()=>{},86833:()=>{}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var n=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=s,e=[],r.O=(t,n,o,s)=>{if(!n){var i=1/0;for(m=0;m=s)&&Object.keys(r.O).every((t=>r.O[t](n[c])))?n.splice(c--,1):(a=!1,s0&&e[m-1][2]>s;m--)e[m]=e[m-1];e[m]=[n,o,s]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v="+{802:"eddac441912aee9d7aa8",5528:"865f37129312f27eb900",9291:"077955af818a227340aa"}[t],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},o="nextcloud:",r.l=(t,e,s,i)=>{if(n[t])n[t].push(e);else{var a,c;if(void 0!==s)for(var l=document.getElementsByTagName("script"),m=0;m{a.onerror=a.onload=null,clearTimeout(p);var s=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach((t=>t(o))),e)return e(o)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=7062,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=n[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={7062:0};r.f.j=(e,n)=>{var o=r.o(t,e)?t[e]:void 0;if(0!==o)if(o)n.push(o[2]);else{var s=new Promise(((n,s)=>o=t[e]=[n,s]));n.push(o[2]=s);var i=r.p+r.u(e),a=new Error;r.l(i,(n=>{if(r.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var s=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+s+": "+i+")",a.name="ChunkLoadError",a.type=s,a.request=i,o[1](a)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var o,s,i=n[0],a=n[1],c=n[2],l=0;if(i.some((e=>0!==t[e]))){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var m=c(r)}for(e&&e(n);lr(92085)));a=r.O(a)})(); -//# sourceMappingURL=comments-comments-app.js.map?v=534a9f89747997aa7a6d \ No newline at end of file +(()=>{var e,n,o,s={92085:(e,n,o)=>{"use strict";var s=o(21777),i=o(53334),r=o(65899),a=o(85471),c=o(85168),l=o(38631),m=o(34196),d=o(18740);const u={name:"RefreshIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var p=o(14486);const A=(0,p.A)(u,(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,"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,h={name:"MessageReplyTextIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},g=(0,p.A)(h,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-icon",attrs:{"aria-hidden":!t.title||null,"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:"M18,8H6V6H18V8M18,11H6V9H18V11M18,14H6V12H18V14M22,4A2,2 0 0,0 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports,C={name:"AlertCircleOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f=(0,p.A)(C,(function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon alert-circle-outline-icon",attrs:{"aria-hidden":!t.title||null,"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:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])}),[],!1,null,null,null).exports;var _=o(89257),v=o(24764),y=o(80114),b=o(41944),x=o(4604),w=o(84237),I=o(80701),k=o(9191),T=o(24325),D=o(11037),N=o(93919),S=o(63814);const M=function(){return(0,S.dC)("dav/comments")};function E(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=new DOMParser;let o=t;for(let t=0;t{B.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})};(0,s.zo)(L),L((0,s.do)());const $=B,j=(0,r.nY)("deletedCommentLimbo",{state:()=>({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){this.idsInLimbo.includes(t)}}}),H=(0,o(35947).YK)().setApp("comments").detectUser().build();var V=o(96763);const P={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,r.n2)(j)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,n,o){const s=["",t,e,n].join("/");return await $.customRequest(s,Object.assign({method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`}))}(this.resourceType,this.resourceId,this.id,e),H.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to edit the comment")),V.error(e)}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,c.Br);(0,c._h)(t("comments","Comment deleted"),(()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}))},async onDelete(){try{await async function(t,e,n){const o=["",t,e,n].join("/");await $.deleteFile(o)}(this.resourceType,this.resourceId,this.id),H.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to delete the comment")),V.error(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,n){const o=["",t,e].join("/"),i=await O.Ay.post(M()+o,{actorDisplayName:(0,s.HW)().displayName,actorId:(0,s.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:n,objectType:t,verb:"comment"}),r=o+"/"+parseInt(i.headers["content-location"].split("/").pop()),a=await $.stat(r,{details:!0}),c=a.data.props;return c.actorDisplayName=E(c.actorDisplayName,2),c.message=E(c.message,2),a.data}(this.resourceType,this.resourceId,e);H.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to create the comment")),V.error(e)}finally{this.loading=!1}}}},q={name:"Comment",components:{IconArrowRight:k.A,IconClose:T.A,IconDelete:D.A,IconEdit:N.A,NcActionButton:_.A,NcActions:v.A,NcActionSeparator:y.A,NcAvatar:b.A,NcButton:d.A,NcDateTime:x.A,NcLoadingIcon:w.A,NcRichContenteditable:()=>Promise.all([o.e(4208),o.e(5528)]).then(o.bind(o,95528))},mixins:[I.Ay,P],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,r.n2)(j),isOwnComment(){return(0,s.HW)().uid===this.actorId},renderedContent(){return this.isEmptyMessage?"":this.renderContent(this.localMessage)},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:i.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick((()=>{this.$refs.editor.$el.focus()}))):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var z=o(85072),W=o.n(z),F=o(97825),G=o.n(F),U=o(77659),Y=o.n(U),Q=o(55056),K=o.n(Q),Z=o(10540),X=o.n(Z),J=o(41113),tt=o.n(J),et=o(27517),nt={};nt.styleTagTransform=tt(),nt.setAttributes=K(),nt.insert=Y().bind(null,"head"),nt.domAPI=G(),nt.insertStyleElement=X(),W()(et.A,nt),et.A&&et.A.locals&&et.A.locals;const ot=(0,p.A)(q,(function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconEdit",{attrs:{size:20}})]},proxy:!0}],null,!1,649782975)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconDelete",{attrs:{size:20}})]},proxy:!0}],null,!1,881161434)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),value:t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{type:"tertiary-no-background","native-type":"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("div",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},domProps:{innerHTML:t._s(t.renderedContent)},on:{click:t.onExpand}})])])}),[],!1,null,"1f6341c6",null).exports;var st=o(32981);const it=(0,a.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data:()=>({editorData:{actorDisplayName:(0,s.HW)().displayName,actorId:(0,s.HW)().uid,key:"editor"},userData:{}}),methods:{async autoComplete(t,e){const{data:n}=await O.Ay.get((0,S.KT)("core/autocomplete/get"),{params:{search:t,itemType:"files",itemId:this.resourceId,sorter:"commenters|share-recipients",limit:(0,st.C)("comments","maxAutoCompleteResults")}});return n.ocs.data.forEach((t=>{this.userData[t.id]=t})),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach((t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,s.HW)()?.uid===t.mentionId}})),this.userData}}});var rt=o(54290),at=o(90176);const ct=async function(t,e){let{resourceType:n,resourceId:o}=t;const s=["",n,o].join("/"),i=e.datetime?`${e.datetime.toISOString()}`:"",r=await $.customRequest(s,Object.assign({method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${e.limit??20}\n\t\t\t\t${e.offset||0}\n\t\t\t\t${i}\n\t\t\t`},e)),a=await r.text(),c=await(0,R.h4)(a),l=lt(c,!0);return(0,rt.hq)(r,l,!0)},lt=function(t){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const{multistatus:{response:n}}=t;return n.map((t=>{const n=t.propstat.prop;return(0,at.ch)(n,n.id.toString(),e)}))};var mt=o(96763);const dt={name:"Comments",components:{Comment:ot,NcEmptyContent:m.A,NcButton:d.A,RefreshIcon:A,MessageReplyTextIcon:g,AlertCircleOutlineIcon:f},directives:{elementVisibility:l.Zx},mixins:[it],data(){return{error:"",loading:!1,done:!1,currentResourceId:this.resourceId,offset:0,comments:[],cancelRequest:()=>{},Comment:ot,userData:{}}},computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:i.Tl,async onVisibilityChange(t){if(t)try{await((t,e,n)=>{const o=["",t,e].join("/"),s=n.toUTCString();return $.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${s}\n\t\t\t\t\n\t\t\t\n\t\t\t`})})(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,c.Qg)(t.message||(0,i.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,n=e.signal;return{request:async function(e,o){return await t(e,Object.assign({signal:n},o))},abort:()=>e.abort()}}(ct);this.cancelRequest=e;const{data:n}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${n.length} comments`,{comments:n}),n.length<20&&(this.done=!0),this.comments.push(...n),this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,i.Tl)("comments","Unable to load the comments list"),mt.error("Error loading the comments list",t)}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex((e=>e.props.id===t));e>-1?this.comments.splice(e,1):mt.error("Could not find the deleted comment in the list",t)},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}};var ut=o(43599),pt={};pt.styleTagTransform=tt(),pt.setAttributes=K(),pt.insert=Y().bind(null,"head"),pt.domAPI=G(),pt.insertStyleElement=X(),W()(ut.A,pt),ut.A&&ut.A.locals&&ut.A.locals;const At=(0,p.A)(dt,(function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("MessageReplyTextIcon")]},proxy:!0}],null,!1,1033639148)}):e("ul",t._l(t.comments,(function(n){return e("Comment",t._b({key:n.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:n.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(n.props.mentions)},on:{"update:message":function(e){return t.$set(n.props,"message",e)},delete:t.onDelete}},"Comment",n.props,!1))})),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AlertCircleOutlineIcon")]},proxy:!0}],null,!1,66050004)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("RefreshIcon")]},proxy:!0}],null,!1,3924573781)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)}),[],!1,null,"df914872",null).exports;a.Ay.use(r.R2),o.nc=(0,s.aV)(),a.Ay.mixin({data:()=>({logger:H}),methods:{t:i.t,n:i.n}});var ht=o(96763);window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"files",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(0,r.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:n},new(a.Ay.extend(At))(e)}}}),ht.debug("OCA.Comments.View initialized")},27517:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comment[data-v-1f6341c6]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-1f6341c6]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-1f6341c6]{display:flex;flex-grow:1;flex-direction:column}.comment__header[data-v-1f6341c6]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-1f6341c6]{margin-inline-start:10px !important}.comment__author[data-v-1f6341c6]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-1f6341c6],.comment__timestamp[data-v-1f6341c6]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-1f6341c6]{position:relative}.comment__editor-description[data-v-1f6341c6]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-1f6341c6]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-1f6341c6]{white-space:pre-wrap;word-break:break-word;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-1f6341c6]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-1f6341c6]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,qBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA3EiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: break-word;\n\t\tmax-height: 70px;\n\t\toverflow: hidden;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const a=r},43599:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(71354),s=n.n(o),i=n(76314),r=n.n(i)()(s());r.push([t.id,".comments[data-v-df914872]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-df914872],.comments__error[data-v-df914872]{flex:1 0}.comments__retry[data-v-df914872]{margin:0 auto}.comments__info[data-v-df914872]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const a=r},42634:()=>{},63779:()=>{},77199:()=>{},59169:()=>{},86833:()=>{}},i={};function r(t){var e=i[t];if(void 0!==e)return e.exports;var n=i[t]={id:t,loaded:!1,exports:{}};return s[t].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=s,e=[],r.O=(t,n,o,s)=>{if(!n){var i=1/0;for(m=0;m=s)&&Object.keys(r.O).every((t=>r.O[t](n[c])))?n.splice(c--,1):(a=!1,s0&&e[m-1][2]>s;m--)e[m]=e[m-1];e[m]=[n,o,s]},r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.f={},r.e=t=>Promise.all(Object.keys(r.f).reduce(((e,n)=>(r.f[n](t,e),e)),[])),r.u=t=>t+"-"+t+".js?v="+{802:"eddac441912aee9d7aa8",5528:"865f37129312f27eb900",9291:"077955af818a227340aa"}[t],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n={},o="nextcloud:",r.l=(t,e,s,i)=>{if(n[t])n[t].push(e);else{var a,c;if(void 0!==s)for(var l=document.getElementsByTagName("script"),m=0;m{a.onerror=a.onload=null,clearTimeout(p);var s=n[t];if(delete n[t],a.parentNode&&a.parentNode.removeChild(a),s&&s.forEach((t=>t(o))),e)return e(o)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),c&&document.head.appendChild(a)}},r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),r.j=7062,(()=>{var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");if(n.length)for(var o=n.length-1;o>-1&&(!t||!/^http(s?):/.test(t));)t=n[o--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t})(),(()=>{r.b=document.baseURI||self.location.href;var t={7062:0};r.f.j=(e,n)=>{var o=r.o(t,e)?t[e]:void 0;if(0!==o)if(o)n.push(o[2]);else{var s=new Promise(((n,s)=>o=t[e]=[n,s]));n.push(o[2]=s);var i=r.p+r.u(e),a=new Error;r.l(i,(n=>{if(r.o(t,e)&&(0!==(o=t[e])&&(t[e]=void 0),o)){var s=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+e+" failed.\n("+s+": "+i+")",a.name="ChunkLoadError",a.type=s,a.request=i,o[1](a)}}),"chunk-"+e,e)}},r.O.j=e=>0===t[e];var e=(e,n)=>{var o,s,i=n[0],a=n[1],c=n[2],l=0;if(i.some((e=>0!==t[e]))){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(c)var m=c(r)}for(e&&e(n);lr(92085)));a=r.O(a)})(); +//# sourceMappingURL=comments-comments-app.js.map?v=d409f504637aba2ba075 \ No newline at end of file diff --git a/dist/comments-comments-app.js.license b/dist/comments-comments-app.js.license index 1d800ebdf67d3..3b549bc344d14 100644 --- a/dist/comments-comments-app.js.license +++ b/dist/comments-comments-app.js.license @@ -103,7 +103,7 @@ This file is generated from multiple sources. Included packages: - version: 6.6.3 - license: MIT - @vueuse/components - - version: 11.0.3 + - version: 11.1.0 - license: MIT - @vueuse/core - version: 11.0.3 diff --git a/dist/comments-comments-app.js.map b/dist/comments-comments-app.js.map index 5740c3af45e63..f5779c07ed03d 100644 --- a/dist/comments-comments-app.js.map +++ b/dist/comments-comments-app.js.map @@ -1 +1 @@ -{"version":3,"file":"comments-comments-app.js?v=534a9f89747997aa7a6d","mappings":"UAAIA,ECAAC,EACAC,E,4HCmBJ,MCpB0G,EDoB1G,CACEC,KAAM,cACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,M,eEff,SAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,oCAAoCC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,uNAAuN,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACnuB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBmF,ECoBnH,CACEvB,KAAM,uBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,+CAA+CC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,sHAAsH,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAC7oB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBqF,ECoBrH,CACEvB,KAAM,yBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,iDAAiDC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,wLAAwL,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACjtB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBhC,I,kICOA,MAAMC,EAAc,WACnB,OAAOC,EAAAA,EAAAA,IAAkB,eAC1B,ECAO,SAASC,EAAmBC,GAAmB,IAAZC,EAAMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAClD,MAAMG,EAAS,IAAIC,UACnB,IAAIC,EAAUP,EACd,IAAK,IAAIQ,EAAI,EAAGA,EAAIP,EAAQO,IAC3BD,EAAUF,EAAOI,gBAAgBF,EAAS,aAAaG,gBAAgBC,YAExE,OAAOJ,CACR,C,0BCNA,MAAMK,GAASC,EAAAA,EAAAA,IAAahB,KAGtBiB,EAAcC,IACnBH,EAAOE,WAAW,CAEjB,mBAAoB,iBAEpBE,aAAcD,GAAS,IACtB,GAIHE,EAAAA,EAAAA,IAAqBH,GACrBA,GAAWI,EAAAA,EAAAA,OAEX,UCnBaC,GAAyBC,EAAAA,EAAAA,IAAY,sBAAuB,CACxEC,MAAOA,KAAA,CACNC,WAAY,KAEbC,QAAS,CACRC,KAAAA,CAAMC,GACLzC,KAAKsC,WAAWI,KAAKD,EACtB,EAEAE,QAAAA,CAASF,GACR,MAAMG,EAAQ5C,KAAKsC,WAAWO,QAAQJ,GAClCG,GAAS,GACZ5C,KAAKsC,WAAWQ,OAAOF,EAAO,EAEhC,EAEAG,UAAAA,CAAWN,GACVzC,KAAKsC,WAAWU,SAASP,EAC1B,KClBF,GAAeQ,E,SAAAA,MACbC,OAAO,YACPC,aACAC,Q,eCGF,SACC7D,MAAO,CACNkD,GAAI,CACHhD,KAAMK,OACNF,QAAS,MAEVyD,QAAS,CACR5D,KAAMC,OACNE,QAAS,IAEV0D,WAAY,CACX7D,KAAM,CAACC,OAAQI,QACfyD,UAAU,GAEXC,aAAc,CACb/D,KAAMC,OACNE,QAAS,UAIX6D,KAAIA,KACI,CACNC,SAAS,EACTC,SAAS,EACTC,SAAS,IAIXC,SAAU,KACNC,EAAAA,EAAAA,IAAU3B,IAGd4B,QAAS,CAERC,MAAAA,GACChE,KAAK2D,SAAU,CAChB,EACAM,YAAAA,GACCjE,KAAK2D,SAAU,EAEf3D,KAAKkE,mBAAmBlE,KAAKqD,QAC9B,EACA,mBAAMc,CAAcd,GACnBrD,KAAK4D,SAAU,EACf,UC1CYQ,eAAeZ,EAAcF,EAAYe,EAAWhB,GAClE,MAAMiB,EAAc,CAAC,GAAId,EAAcF,EAAYe,GAAWE,KAAK,KAEnE,aAAa3C,EAAO4C,cAAcF,EAAaG,OAAOC,OAAO,CAC5DC,OAAQ,YACRlB,KAAM,8KAMWJ,iFAKnB,CD2BUuB,CAAY5E,KAAKwD,aAAcxD,KAAKsD,WAAYtD,KAAKyC,GAAIY,GAC/DwB,EAAOC,MAAM,iBAAkB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYb,GAAIzC,KAAKyC,GAAIY,YAC5GrD,KAAKQ,MAAM,iBAAkB6C,GAC7BrD,KAAK2D,SAAU,CAChB,CAAE,MAAOoB,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,uDACxBC,EAAQH,MAAMA,EACf,CAAE,QACD/E,KAAK4D,SAAU,CAChB,CACD,EAGAuB,gBAAAA,GACCnF,KAAKQ,MAAM,UACXR,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyB5C,MAAMxC,KAAKyC,IACzC,MAAM4C,EAAgBC,WAAWtF,KAAKuF,SAAUC,EAAAA,KAChDC,EAAAA,EAAAA,IAASR,EAAE,WAAY,oBAAoB,KAC1CS,aAAaL,GACbrF,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyBzC,SAAS3C,KAAKyC,GAAG,GAEjD,EACA,cAAM8C,GACL,UErEYnB,eAAeZ,EAAcF,EAAYe,GACvD,MAAMC,EAAc,CAAC,GAAId,EAAcF,EAAYe,GAAWE,KAAK,WAG7D3C,EAAO+D,WAAWrB,EACzB,CFiEUsB,CAAc5F,KAAKwD,aAAcxD,KAAKsD,WAAYtD,KAAKyC,IAC7DoC,EAAOC,MAAM,kBAAmB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYb,GAAIzC,KAAKyC,KACzGzC,KAAKQ,MAAM,SAAUR,KAAKyC,GAC3B,CAAE,MAAOsC,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,yDACxBC,EAAQH,MAAMA,GACd/E,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyBzC,SAAS3C,KAAKyC,GAC7C,CACD,EAGA,kBAAMoD,CAAaxC,GAClBrD,KAAK4D,SAAU,EACf,IACC,MAAMkC,QGhFK1B,eAAeZ,EAAcF,EAAYD,GACvD,MAAM0C,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KAEnDyB,QAAiBC,EAAAA,GAAMC,KAAKrF,IAAgBkF,EAAc,CAC/DI,kBAAkBC,EAAAA,EAAAA,MAAiBC,YACnCC,SAASF,EAAAA,EAAAA,MAAiBG,IAC1BC,UAAW,QACXC,kBAAmB,IAAIC,MAAQC,cAC/BtD,UACAuD,WAAYpD,EACZqD,KAAM,YAKDvC,EAAcyB,EAAe,IADjBe,SAASd,EAASe,QAAQ,oBAAoBC,MAAM,KAAKC,OAIrEC,QAAgBtF,EAAOuF,KAAK7C,EAAa,CAC9C8C,SAAS,IAGJ7H,EAAQ2H,EAAQzD,KAAKlE,MAO3B,OAHAA,EAAM4G,iBAAmBpF,EAAmBxB,EAAM4G,iBAAkB,GACpE5G,EAAM8D,QAAUtC,EAAmBxB,EAAM8D,QAAS,GAE3C6D,EAAQzD,IAChB,CHkD6B4D,CAAWrH,KAAKwD,aAAcxD,KAAKsD,WAAYD,GACxEwB,EAAOC,MAAM,qBAAsB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYwC,eACnG9F,KAAKQ,MAAM,MAAOsF,GAGlB9F,KAAKQ,MAAM,iBAAkB,IAC7BR,KAAKsH,aAAe,EACrB,CAAE,MAAOvC,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,yDACxBC,EAAQH,MAAMA,EACf,CAAE,QACD/E,KAAK4D,SAAU,CAChB,CACD,IIhHiL,ECiInL,CACAvE,KAAA,UAEAkI,WAAA,CACAC,eAAA,IACAC,UAAA,IACAC,WAAA,IACAC,SAAA,IACAC,eAAA,IACAC,UAAA,IACAC,kBAAA,IACAC,SAAA,IACAC,SAAA,IACAC,WAAA,IACAC,cAAA,IACAC,sBAjBAA,IAAA,0DAmBAC,OAAA,CAAAC,EAAAA,GAAAC,GAEAC,cAAA,EAEAhJ,MAAA,CACA4G,iBAAA,CACA1G,KAAAC,OACA6D,UAAA,GAEA+C,QAAA,CACA7G,KAAAC,OACA6D,UAAA,GAEAkD,iBAAA,CACAhH,KAAAC,OACAE,QAAA,MAMA4I,OAAA,CACA/I,KAAAgJ,QACA7I,SAAA,GAMA8I,aAAA,CACAjJ,KAAAkJ,SACApF,UAAA,GAGAqF,IAAA,CACAnJ,KAAAC,OACAE,QAAA,QAIA6D,KAAAA,KACA,CACAoF,UAAA,EAGAvB,aAAA,GACAwB,WAAA,IAIAjF,SAAA,KACAC,EAAAA,EAAAA,IAAA3B,GAOA4G,YAAAA,GACA,OAAA3C,EAAAA,EAAAA,MAAAG,MAAA,KAAAD,OACA,EAOA0C,eAAAA,GACA,YAAAC,eACA,GAEA,KAAAC,cAAA,KAAA5B,aACA,EAEA2B,cAAAA,GACA,YAAA3B,cAAA,UAAAA,aAAA6B,MACA,EAKAC,SAAAA,GACA,OAAA1C,KAAA2C,MAAA,KAAA5C,iBACA,EAEA6C,OAAAA,GACA,YAAAlE,yBAAArC,WAAA,KAAAN,GACA,GAGA8G,MAAA,CAEAlG,OAAAA,CAAAA,GACA,KAAAa,mBAAAb,EACA,GAGAmG,WAAAA,GAEA,KAAAtF,mBAAA,KAAAb,QACA,EAEAU,QAAA,CACAkB,EAAA,KAOAf,kBAAAA,CAAAb,GACA,KAAAiE,aAAAjE,EAAAoG,WACA,KAAAX,WAAA,CACA,EAKAY,QAAAA,GAEA,aAAApC,aAAA6B,OAIA,YAAAX,QACA,KAAA3C,aAAA,KAAAyB,aAAA6B,aACA,KAAAQ,WAAA,KAEA,KAAAC,MAAApB,OAAAqB,IAAAC,OAAA,UAIA,KAAA3F,cAAA,KAAAmD,aAAA6B,OACA,EAEAY,QAAAA,GACA,KAAAlB,UAAA,CACA,I,yIChRImB,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,IAElBF,GAAQG,OAAS,SAAc,KAAM,QAE3CH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,IAEhB,IAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,OCP1D,UAXgB,OACd,GbTW,WAAkB,IAAIvK,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAGF,EAAI6I,IAAI,CAAC2B,WAAW,CAAC,CAAClL,KAAK,OAAOmL,QAAQ,SAASxJ,OAAQjB,EAAI2D,UAAY3D,EAAIuJ,QAASmB,WAAW,yBAAyB7B,IAAI,YAAYxI,YAAY,UAAUsK,MAAM,CAAC,mBAAoB3K,EAAI6D,UAAU,CAAC3D,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,WAAW,CAACG,YAAY,kBAAkBC,MAAM,CAAC,eAAeN,EAAIoG,iBAAiB,KAAOpG,EAAIuG,QAAQ,KAAO,OAAO,GAAGvG,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIoG,qBAAqBpG,EAAIW,GAAG,KAAMX,EAAIgJ,cAAgBhJ,EAAI0C,KAAO1C,EAAI6D,QAAS3D,EAAG,YAAY,CAACG,YAAY,oBAAoB,CAAGL,EAAI4D,QAAyoB1D,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQP,EAAIkE,cAAc0G,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,aAAa,CAAChL,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,gBAAgB,gBAAp3B,CAAChF,EAAG,iBAAiB,CAACI,MAAM,CAAC,oBAAoB,IAAIC,GAAG,CAAC,MAAQP,EAAIiE,QAAQ2G,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,YAAY,CAAChL,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,iBAAiB,kBAAkBlF,EAAIW,GAAG,KAAKT,EAAG,qBAAqBF,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACI,MAAM,CAAC,oBAAoB,IAAIC,GAAG,CAAC,MAAQP,EAAIoF,kBAAkBwF,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,YAAY,CAAChL,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,mBAAmB,oBAAwR,GAAGlF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI0C,IAAM1C,EAAI6D,QAAS3D,EAAG,MAAM,CAACG,YAAY,uCAAwCL,EAAI0G,iBAAkBxG,EAAG,aAAa,CAACG,YAAY,qBAAqBC,MAAM,CAAC,UAAYN,EAAIqJ,UAAU,kBAAiB,KAAQrJ,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAMX,EAAIyI,QAAUzI,EAAI4D,QAAS1D,EAAG,OAAO,CAACG,YAAY,kBAAkBE,GAAG,CAAC,OAAS,SAASC,GAAQA,EAAOyK,gBAAiB,IAAI,CAAC/K,EAAG,MAAM,CAACG,YAAY,yBAAyB,CAACH,EAAG,wBAAwB,CAACgL,IAAI,SAAS5K,MAAM,CAAC,gBAAgBN,EAAI2I,aAAa,iBAAmB3I,EAAI6D,QAAQ,MAAQ7D,EAAIyI,OAASzI,EAAIkF,EAAE,WAAY,eAAiBlF,EAAIkF,EAAE,WAAY,gBAAgB,YAAclF,EAAIkF,EAAE,WAAY,qBAAqB,MAAQlF,EAAIuH,aAAa,YAAYvH,EAAImL,SAAS,mBAAmB,oCAAoC5K,GAAG,CAAC,eAAeP,EAAImE,mBAAmB,OAASnE,EAAI2J,YAAY3J,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,yBAAyB,cAAc,SAAS,aAAaN,EAAIkF,EAAE,WAAY,gBAAgB,SAAWlF,EAAIkJ,gBAAgB3I,GAAG,CAAC,MAAQP,EAAI2J,UAAUiB,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAE/K,EAAI6D,QAAS3D,EAAG,iBAAiBA,EAAG,iBAAiB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,cAAc,IAAI,GAAGhL,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,8BAA8BC,MAAM,CAAC,GAAK,qCAAqC,CAACN,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,oDAAoD,gBAAgBhF,EAAG,MAAM,CAACG,YAAY,mBAAmBsK,MAAM,CAAC,6BAA8B3K,EAAI8I,UAAUsC,SAAS,CAAC,UAAYpL,EAAIY,GAAGZ,EAAIiJ,kBAAkB1I,GAAG,CAAC,MAAQP,EAAIgK,eACruG,GACsB,IaUpB,EACA,KACA,WACA,MAI8B,Q,gBCVhC,UAAeqB,EAAAA,EAAAA,IAAgB,CAC3B7L,MAAO,CACH+D,WAAY,CACR7D,KAAMK,OACNyD,UAAU,GAEdC,aAAc,CACV/D,KAAMC,OACNE,QAAS,UAGjB6D,KAAIA,KACO,CACH4H,WAAY,CACRlF,kBAAkBC,EAAAA,EAAAA,MAAiBC,YACnCC,SAASF,EAAAA,EAAAA,MAAiBG,IAC1BsE,IAAK,UAETK,SAAU,CAAC,IAGnBnH,QAAS,CAOL,kBAAM2E,CAAa4C,EAAQC,GACvB,MAAM,KAAE9H,SAAewC,EAAAA,GAAMuF,KAAIC,EAAAA,EAAAA,IAAe,yBAA0B,CACtEC,OAAQ,CACJJ,SACAK,SAAU,QACVC,OAAQ5L,KAAKsD,WACbuI,OAAQ,8BACRC,OAAOC,EAAAA,GAAAA,GAAU,WAAY,6BAKrC,OADAtI,EAAKuI,IAAIvI,KAAKwI,SAAQC,IAAUlM,KAAKkL,SAASgB,EAAKzJ,IAAMyJ,CAAI,IACtDX,EAAS9G,OAAO0H,OAAOnM,KAAKkL,UACvC,EAOAkB,eAAAA,CAAgBC,GAaZ,OAZA5H,OAAO0H,OAAOE,GACTC,OACAL,SAAQM,IACTvM,KAAKkL,SAASqB,EAAQC,WAAa,CAE/BC,KAAM,YACNhK,GAAI8J,EAAQC,UACZE,MAAOH,EAAQI,mBACfC,OAAQ,QACRC,SAASzG,EAAAA,EAAAA,OAAkBG,MAAQgG,EAAQC,UAC9C,IAEExM,KAAKkL,QAChB,K,4BC9DD,MAaM4B,GAAc1I,eAAA2I,EAA8C/C,GAAS,IAAvC,aAAExG,EAAY,WAAEF,GAAYyJ,EACnE,MAAMhH,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KACnDyI,EAAWhD,EAAQgD,SAAW,gBAAgBhD,EAAQgD,SAASC,8BAAgC,GAC/FjH,QAAiBpE,EAAO4C,cAAcuB,EAActB,OAAOC,OAAO,CACpEC,OAAQ,SACRlB,KAAM,sPAMEuG,EAAQ8B,OAxBK,qCAyBZ9B,EAAQkD,QAAU,0BAC7BF,kCAEChD,IACGmD,QAAqBnH,EAASoH,OAC9BC,QAAeC,EAAAA,EAAAA,IAASH,GACxBhG,EAAOoG,GAAkBF,GAAQ,GACvC,OAAOG,EAAAA,GAAAA,IAAuBxH,EAAUmB,GAAM,EAClD,EAEMoG,GAAoB,SAAUF,GAA4B,IAApBI,EAAUvM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAElD,MAAQwM,aAAe1H,SAAU2H,IAAqBN,EAEtD,OAAOM,EAAcC,KAAIC,IAErB,MAAMtO,EAAQsO,EAAKC,SAASC,KAC5B,OAAOC,EAAAA,GAAAA,IAAqBzO,EAAOA,EAAMkD,GAAGgH,WAAYgE,EAAW,GAE3E,E,gBC+BA,MCpFoL,GDoFpL,CACApO,KAAA,WAEAkI,WAAA,CACA0G,QAAA,GACAC,eAAA,IACAlG,SAAA,IACAmG,YAAA,EACAC,qBAAA,EACAC,uBAAAA,GAGA9D,WAAA,CACA+D,kBAAAA,EAAAA,IAGAlG,OAAA,CAAAmG,IAEA9K,IAAAA,GACA,OACAsB,MAAA,GACAnB,SAAA,EACA4K,MAAA,EAEAC,kBAAA,KAAAnL,WACA4J,OAAA,EACAwB,SAAA,GAEAC,cAAAA,OAEAV,QAAA,GACA/C,SAAA,GAEA,EAEArH,SAAA,CACA+K,WAAAA,GACA,YAAAF,SAAAvN,OAAA,CACA,EACA0N,cAAAA,GACA,YAAAjL,SAAA,SAAAsJ,MACA,GAGA3D,MAAA,CACAjG,UAAAA,GACA,KAAAmL,kBAAA,KAAAnL,UACA,GAGAS,QAAA,CACAkB,EAAA,KAEA,wBAAA6J,CAAAC,GACA,GAAAA,EACA,SE/HkCC,EAACxL,EAAcF,EAAY2L,KACzD,MAAMlJ,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KACnD2K,EAAaD,EAAKtI,cACxB,OAAO/E,EAAO4C,cAAcuB,EAAc,CACtCpB,OAAQ,YACRlB,KAAM,iLAMQyL,mFAIhB,EFiHNF,CAAA,KAAAxL,aAAA,KAAAiL,kBAAA,IAAA/H,KACA,OAAAyI,IACAnK,EAAAA,EAAAA,IAAAmK,EAAA9L,UAAA4B,EAAAA,EAAAA,IAAA,8CACA,CAEA,EAOA,YAAAmK,CAAA9L,GACA,KAAAmL,kBAAAnL,EACA,KAAA+L,aACA,KAAAvC,aACA,EAKAwC,qBAAAA,GAOA,KAAAvK,OAAA,KAAAyJ,MAAA,KAAA5K,SAGA,KAAAkJ,aACA,EAKA,iBAAAA,GAEA,KAAA6B,cAAA,UAEA,IACA,KAAA/K,SAAA,EACA,KAAAmB,MAAA,GAGA,cAAAwK,EAAA,MAAAC,GG/K0B,SAASD,GAClC,MAAME,EAAa,IAAIC,gBACjBC,EAASF,EAAWE,OAgB1B,MAAO,CACNJ,QATanL,eAAewL,EAAK5F,GAKjC,aAJuBuF,EACtBK,EACAnL,OAAOC,OAAO,CAAEiL,UAAU3F,GAG5B,EAICwF,MAAOA,IAAMC,EAAWD,QAE1B,CHyJAK,CAAA/C,IACA,KAAA6B,cAAAa,EAGA,MAAA/L,KAAAiL,SAAAa,EAAA,CACA/L,aAAA,KAAAA,aACAF,WAAA,KAAAmL,mBACA,CAAAvB,OAAA,KAAAA,UAAA,CAAAzJ,KAAA,IAEA,KAAAoB,OAAAC,MAAA,aAAA4J,EAAAvN,kBAAA,CAAAuN,aAIAA,EAAAvN,OD9L6B,KC+L7B,KAAAqN,MAAA,GAIA,KAAAE,SAAAhM,QAAAgM,GAGA,KAAAxB,QDtM6B,ECuM7B,OAAAnI,GACA,cAAAA,EAAA1B,QACA,OAEA,KAAA0B,OAAAE,EAAAA,EAAAA,IAAA,+CACAC,GAAAH,MAAA,kCAAAA,EACA,SACA,KAAAnB,SAAA,CACA,CACA,EAOAiC,YAAAA,CAAAqB,GACA,KAAAwH,SAAAoB,QAAA5I,EACA,EAOA3B,QAAAA,CAAA9C,GACA,MAAAG,EAAA,KAAA8L,SAAAqB,WAAA7I,GAAAA,EAAA3H,MAAAkD,KAAAA,IACAG,GAAA,EACA,KAAA8L,SAAA5L,OAAAF,EAAA,GAEAsC,GAAAH,MAAA,iDAAAtC,EAEA,EAKA4M,UAAAA,GACA,KAAAtK,MAAA,GACA,KAAAnB,SAAA,EACA,KAAA4K,MAAA,EACA,KAAAtB,OAAA,EACA,KAAAwB,SAAA,EACA,I,gBIhPI,GAAU,CAAC,EAEf,GAAQzE,kBAAoB,KAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAIvK,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACsK,WAAW,CAAC,CAAClL,KAAK,qBAAqBmL,QAAQ,uBAAuBxJ,MAAOjB,EAAI+O,mBAAoBrE,WAAW,uBAAuBrK,YAAY,WAAWsK,MAAM,CAAE,eAAgB3K,EAAI8O,iBAAkB,CAAC5O,EAAG,UAAUF,EAAII,GAAG,CAACC,YAAY,mBAAmBC,MAAM,CAAC,gBAAgBN,EAAI2I,aAAa,gBAAgB3I,EAAIyD,aAAa,QAAS,EAAK,YAAYzD,EAAImL,SAAS,cAAcnL,EAAI0O,mBAAmBnO,GAAG,CAAC,IAAMP,EAAI8F,eAAe,UAAU9F,EAAIsL,YAAW,IAAQtL,EAAIW,GAAG,KAAOX,EAAI8O,eAAg/C9O,EAAIa,KAAp+C,EAAGb,EAAI6O,aAAe7O,EAAIyO,KAAMvO,EAAG,iBAAiB,CAACG,YAAY,kBAAkBC,MAAM,CAAC,KAAON,EAAIkF,EAAE,WAAY,6CAA6C0F,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,wBAAwB,EAAE8K,OAAM,IAAO,MAAK,EAAM,cAAc9K,EAAG,KAAKF,EAAIiQ,GAAIjQ,EAAI2O,UAAU,SAASxH,GAAS,OAAOjH,EAAG,UAAUF,EAAII,GAAG,CAAC0K,IAAI3D,EAAQ3H,MAAMkD,GAAGrC,YAAY,iBAAiBC,MAAM,CAAC,IAAM,KAAK,gBAAgBN,EAAI2I,aAAa,gBAAgB3I,EAAIyD,aAAa,QAAU0D,EAAQ3H,MAAM8D,QAAQ,cAActD,EAAI0O,kBAAkB,YAAY1O,EAAIqM,gBAAgBlF,EAAQ3H,MAAM8M,WAAW/L,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAOR,EAAIkQ,KAAK/I,EAAQ3H,MAAO,UAAWgB,EAAO,EAAE,OAASR,EAAIwF,WAAW,UAAU2B,EAAQ3H,OAAM,GAAO,IAAG,GAAGQ,EAAIW,GAAG,KAAMX,EAAI6D,UAAY7D,EAAI8O,eAAgB5O,EAAG,MAAM,CAACG,YAAY,gCAAiCL,EAAI6O,aAAe7O,EAAIyO,KAAMvO,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,qBAAqB,YAAalF,EAAIgF,MAAO,CAAC9E,EAAG,iBAAiB,CAACG,YAAY,kBAAkBC,MAAM,CAAC,KAAON,EAAIgF,OAAO4F,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,0BAA0B,EAAE8K,OAAM,IAAO,MAAK,EAAM,YAAYhL,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,YAAY,kBAAkBE,GAAG,CAAC,MAAQP,EAAI+M,aAAanC,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,eAAe,EAAE8K,OAAM,IAAO,MAAK,EAAM,aAAa,CAAChL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,UAAU,eAAelF,EAAIa,OAAgB,EAC7iE,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEPhCsP,EAAAA,GAAIC,IAAIC,EAAAA,IAERC,EAAAA,IAAoBC,EAAAA,EAAAA,MAGpBJ,EAAAA,GAAIK,MAAM,CACT9M,KAAIA,KACI,CACNoB,OAAMA,IAGRd,QAAS,CACRkB,EAAC,IACDuL,EAACA,EAAAA,K,gBCjBCC,OAAOC,MAAQD,OAAOC,IAAIC,UAC7BlM,OAAOC,OAAO+L,OAAOC,IAAK,CAAEC,SAAU,CAAC,IAIxClM,OAAOC,OAAO+L,OAAOC,IAAIC,SAAU,CAAEC,KDgBtB,MAQdC,WAAAA,GAAkD,IAAtCrN,EAAYtC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAAS8I,EAAO9I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9C,MAAM4P,GAAQC,EAAAA,EAAAA,MAad,OAVA/G,EAAU,IACNA,EACHgH,UAAW,IACNhH,EAAQgH,WAAa,CAAC,EAC1BxN,gBAEDsN,SAIM,IADMZ,EAAAA,GAAIe,OAAOC,IACjB,CAASlH,EACjB,KCtCD9E,GAAQJ,MAAM,gC,mFCXVqM,E,MAA0B,GAA4B,KAE1DA,EAAwBzO,KAAK,CAAC0O,EAAO3O,GAAI,ytCAA0tC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,udAAud,eAAiB,CAAC,03CAA43C,WAAa,MAE9tG,S,mFCJI0O,E,MAA0B,GAA4B,KAE1DA,EAAwBzO,KAAK,CAAC0O,EAAO3O,GAAI,kUAAmU,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,wHAAwH,eAAiB,CAAC,uTAAuT,WAAa,MAE/5B,S,oECNI4O,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBnQ,IAAjBoQ,EACH,OAAOA,EAAaC,QAGrB,IAAIL,EAASC,EAAyBE,GAAY,CACjD9O,GAAI8O,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKR,EAAOK,QAASL,EAAQA,EAAOK,QAASH,GAG3EF,EAAOM,QAAS,EAGTN,EAAOK,OACf,CAGAH,EAAoBO,EAAIF,EzC5BpBzS,EAAW,GACfoS,EAAoBQ,EAAI,CAACzE,EAAQ0E,EAAUjH,EAAIkH,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAAS1Q,EAAI,EAAGA,EAAItC,EAASiC,OAAQK,IAAK,CACrCuQ,EAAW7S,EAASsC,GAAG,GACvBsJ,EAAK5L,EAASsC,GAAG,GACjBwQ,EAAW9S,EAASsC,GAAG,GAE3B,IAJA,IAGI2Q,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAS5Q,OAAQiR,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAavN,OAAO4N,KAAKf,EAAoBQ,GAAGQ,OAAOzH,GAASyG,EAAoBQ,EAAEjH,GAAKkH,EAASK,MAC9IL,EAASjP,OAAOsP,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbjT,EAAS4D,OAAOtB,IAAK,GACrB,IAAI+Q,EAAIzH,SACE1J,IAANmR,IAAiBlF,EAASkF,EAC/B,CACD,CACA,OAAOlF,CArBP,CAJC2E,EAAWA,GAAY,EACvB,IAAI,IAAIxQ,EAAItC,EAASiC,OAAQK,EAAI,GAAKtC,EAASsC,EAAI,GAAG,GAAKwQ,EAAUxQ,IAAKtC,EAASsC,GAAKtC,EAASsC,EAAI,GACrGtC,EAASsC,GAAK,CAACuQ,EAAUjH,EAAIkH,EAuBjB,E0C3BdV,EAAoBd,EAAKY,IACxB,IAAIoB,EAASpB,GAAUA,EAAOqB,WAC7B,IAAOrB,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoBoB,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdlB,EAAoBoB,EAAI,CAACjB,EAASmB,KACjC,IAAI,IAAI/H,KAAO+H,EACXtB,EAAoBuB,EAAED,EAAY/H,KAASyG,EAAoBuB,EAAEpB,EAAS5G,IAC5EpG,OAAOqO,eAAerB,EAAS5G,EAAK,CAAEkI,YAAY,EAAMvH,IAAKoH,EAAW/H,IAE1E,ECNDyG,EAAoB0B,EAAI,CAAC,EAGzB1B,EAAoBnC,EAAK8D,GACjBC,QAAQC,IAAI1O,OAAO4N,KAAKf,EAAoB0B,GAAGI,QAAO,CAACC,EAAUxI,KACvEyG,EAAoB0B,EAAEnI,GAAKoI,EAASI,GAC7BA,IACL,KCNJ/B,EAAoBgC,EAAKL,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCH7I3B,EAAoBiC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOxT,MAAQ,IAAI2I,SAAS,cAAb,EAChB,CAAE,MAAOwG,GACR,GAAsB,iBAAXsB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBa,EAAoBuB,EAAI,CAACY,EAAK1F,IAAUtJ,OAAOiP,UAAUC,eAAe/B,KAAK6B,EAAK1F,G9CA9E5O,EAAa,CAAC,EACdC,EAAoB,aAExBkS,EAAoBsC,EAAI,CAAChE,EAAKpB,EAAM3D,EAAKoI,KACxC,GAAG9T,EAAWyQ,GAAQzQ,EAAWyQ,GAAKlN,KAAK8L,OAA3C,CACA,IAAIqF,EAAQC,EACZ,QAAW1S,IAARyJ,EAEF,IADA,IAAIkJ,EAAUC,SAASC,qBAAqB,UACpCzS,EAAI,EAAGA,EAAIuS,EAAQ5S,OAAQK,IAAK,CACvC,IAAI0S,EAAIH,EAAQvS,GAChB,GAAG0S,EAAEC,aAAa,QAAUvE,GAAOsE,EAAEC,aAAa,iBAAmB/U,EAAoByL,EAAK,CAAEgJ,EAASK,EAAG,KAAO,CACpH,CAEGL,IACHC,GAAa,GACbD,EAASG,SAASI,cAAc,WAEzBC,QAAU,QACjBR,EAAOS,QAAU,IACbhD,EAAoBiD,IACvBV,EAAOW,aAAa,QAASlD,EAAoBiD,IAElDV,EAAOW,aAAa,eAAgBpV,EAAoByL,GAExDgJ,EAAOY,IAAM7E,GAEdzQ,EAAWyQ,GAAO,CAACpB,GACnB,IAAIkG,EAAmB,CAACC,EAAMC,KAE7Bf,EAAOgB,QAAUhB,EAAOiB,OAAS,KACjCpP,aAAa4O,GACb,IAAIS,EAAU5V,EAAWyQ,GAIzB,UAHOzQ,EAAWyQ,GAClBiE,EAAOmB,YAAcnB,EAAOmB,WAAWC,YAAYpB,GACnDkB,GAAWA,EAAQ9I,SAASnB,GAAQA,EAAG8J,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAUhP,WAAWoP,EAAiBQ,KAAK,UAAM9T,EAAW,CAAE3B,KAAM,UAAW0V,OAAQtB,IAAW,MACtGA,EAAOgB,QAAUH,EAAiBQ,KAAK,KAAMrB,EAAOgB,SACpDhB,EAAOiB,OAASJ,EAAiBQ,KAAK,KAAMrB,EAAOiB,QACnDhB,GAAcE,SAASoB,KAAKC,YAAYxB,EApCkB,CAoCX,E+CvChDvC,EAAoBiB,EAAKd,IACH,oBAAX6D,QAA0BA,OAAOC,aAC1C9Q,OAAOqO,eAAerB,EAAS6D,OAAOC,YAAa,CAAEvU,MAAO,WAE7DyD,OAAOqO,eAAerB,EAAS,aAAc,CAAEzQ,OAAO,GAAO,ECL9DsQ,EAAoBkE,IAAOpE,IAC1BA,EAAOqE,MAAQ,GACVrE,EAAOsE,WAAUtE,EAAOsE,SAAW,IACjCtE,GCHRE,EAAoBc,EAAI,K,MCAxB,IAAIuD,EACArE,EAAoBiC,EAAEqC,gBAAeD,EAAYrE,EAAoBiC,EAAEsC,SAAW,IACtF,IAAI7B,EAAW1C,EAAoBiC,EAAES,SACrC,IAAK2B,GAAa3B,IACbA,EAAS8B,eAAkE,WAAjD9B,EAAS8B,cAAcC,QAAQC,gBAC5DL,EAAY3B,EAAS8B,cAAcrB,MAC/BkB,GAAW,CACf,IAAI5B,EAAUC,EAASC,qBAAqB,UAC5C,GAAGF,EAAQ5S,OAEV,IADA,IAAIK,EAAIuS,EAAQ5S,OAAS,EAClBK,GAAK,KAAOmU,IAAc,aAAaM,KAAKN,KAAaA,EAAY5B,EAAQvS,KAAKiT,GAE3F,CAID,IAAKkB,EAAW,MAAM,IAAIO,MAAM,yDAChCP,EAAYA,EAAUQ,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpF7E,EAAoB8E,EAAIT,C,WClBxBrE,EAAoB+E,EAAIrC,SAASsC,SAAWC,KAAKV,SAASW,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPnF,EAAoB0B,EAAEZ,EAAI,CAACa,EAASI,KAElC,IAAIqD,EAAqBpF,EAAoBuB,EAAE4D,EAAiBxD,GAAWwD,EAAgBxD,QAAW7R,EACtG,GAA0B,IAAvBsV,EAGF,GAAGA,EACFrD,EAAS3Q,KAAKgU,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIzD,SAAQ,CAAC0D,EAASC,IAAYH,EAAqBD,EAAgBxD,GAAW,CAAC2D,EAASC,KAC1GxD,EAAS3Q,KAAKgU,EAAmB,GAAKC,GAGtC,IAAI/G,EAAM0B,EAAoB8E,EAAI9E,EAAoBgC,EAAEL,GAEpDlO,EAAQ,IAAImR,MAgBhB5E,EAAoBsC,EAAEhE,GAfFgF,IACnB,GAAGtD,EAAoBuB,EAAE4D,EAAiBxD,KAEf,KAD1ByD,EAAqBD,EAAgBxD,MACRwD,EAAgBxD,QAAW7R,GACrDsV,GAAoB,CACtB,IAAII,EAAYlC,IAAyB,SAAfA,EAAMnV,KAAkB,UAAYmV,EAAMnV,MAChEsX,EAAUnC,GAASA,EAAMO,QAAUP,EAAMO,OAAOV,IACpD1P,EAAM1B,QAAU,iBAAmB4P,EAAU,cAAgB6D,EAAY,KAAOC,EAAU,IAC1FhS,EAAM1F,KAAO,iBACb0F,EAAMtF,KAAOqX,EACb/R,EAAMwK,QAAUwH,EAChBL,EAAmB,GAAG3R,EACvB,CACD,GAEwC,SAAWkO,EAASA,EAE/D,CACD,EAWF3B,EAAoBQ,EAAEM,EAAKa,GAA0C,IAA7BwD,EAAgBxD,GAGxD,IAAI+D,EAAuB,CAACC,EAA4BxT,KACvD,IAKI8N,EAAU0B,EALVlB,EAAWtO,EAAK,GAChByT,EAAczT,EAAK,GACnB0T,EAAU1T,EAAK,GAGIjC,EAAI,EAC3B,GAAGuQ,EAASqF,MAAM3U,GAAgC,IAAxBgU,EAAgBhU,KAAa,CACtD,IAAI8O,KAAY2F,EACZ5F,EAAoBuB,EAAEqE,EAAa3F,KACrCD,EAAoBO,EAAEN,GAAY2F,EAAY3F,IAGhD,GAAG4F,EAAS,IAAI9J,EAAS8J,EAAQ7F,EAClC,CAEA,IADG2F,GAA4BA,EAA2BxT,GACrDjC,EAAIuQ,EAAS5Q,OAAQK,IACzByR,EAAUlB,EAASvQ,GAChB8P,EAAoBuB,EAAE4D,EAAiBxD,IAAYwD,EAAgBxD,IACrEwD,EAAgBxD,GAAS,KAE1BwD,EAAgBxD,GAAW,EAE5B,OAAO3B,EAAoBQ,EAAEzE,EAAO,EAGjCgK,EAAqBd,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fc,EAAmBpL,QAAQ+K,EAAqB9B,KAAK,KAAM,IAC3DmC,EAAmB3U,KAAOsU,EAAqB9B,KAAK,KAAMmC,EAAmB3U,KAAKwS,KAAKmC,G,KCvFvF/F,EAAoBiD,QAAKnT,ECGzB,IAAIkW,EAAsBhG,EAAoBQ,OAAE1Q,EAAW,CAAC,OAAO,IAAOkQ,EAAoB,SAC9FgG,EAAsBhG,EAAoBQ,EAAEwF,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","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=7301d745","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyText.vue?2121","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue?vue&type=template&id=5b37a4cf","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=4aed4486","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?1444","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack://nextcloud/./apps/comments/src/views/Comments.vue?5e43","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true","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\n","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=7301d745\"\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 \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyText.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./MessageReplyText.vue?vue&type=template&id=5b37a4cf\"\nimport script from \"./MessageReplyText.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyText.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 message-reply-text-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\":\"M18,8H6V6H18V8M18,11H6V9H18V11M18,14H6V12H18V14M22,4A2,2 0 0,0 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z\"}},[(_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!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=4aed4486\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.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 alert-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\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_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;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{'comment--loading': _vm.loading}},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconEdit',{attrs:{\"size\":20}})]},proxy:true}],null,false,649782975)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconDelete',{attrs:{\"size\":20}})]},proxy:true}],null,false,881161434)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\",\"native-type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('div',{staticClass:\"comment__message\",class:{'comment__message--expanded': _vm.expanded},domProps:{\"innerHTML\":_vm._s(_vm.renderedContent)},on:{\"click\":_vm.onExpand}})])])\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\nimport { generateRemoteUrl } from '@nextcloud/router'\n\nconst getRootPath = function() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\nconst setHeaders = (token) => {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\tthis.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport NewComment from '../services/NewComment.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport { mapStores } from 'pinia'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\nimport logger from '../logger.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, Object.assign({\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t}))\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport axios from '@nextcloud/axios'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\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!./Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=1f6341c6&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=1f6341c6&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 \"1f6341c6\",\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 axios from '@nextcloud/axios';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param {string} search the query\n * @param {Function} callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: 'files',\n itemId: this.resourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach(user => { this.userData[user.id] = user; });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach(mention => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\n// https://github.com/perry-mitchell/webdav-client/issues/339\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param {object} data destructuring object\n * @param {string} data.resourceType the resource type\n * @param {number} data.resourceId the resource ID\n * @param {object} [options] optional options for axios\n * @param {number} [options.offset] the pagination offset\n * @param {number} [options.limit] the pagination limit, defaults to 20\n * @param {Date} [options.datetime] optional date to query\n * @return {{data: object[]}} the comments list\n */\nexport const getComments = async function ({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, Object.assign({\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n }, options));\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n return processResponsePayload(response, stat, true);\n};\n// https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\nconst getDirectoryFiles = function (result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map(item => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n};\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.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!./Comments.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 */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport const markCommentsAsRead = (resourceType, resourceId, date) => {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const readMarker = date.toUTCString();\n return client.customRequest(resourcePath, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nconst cancelableRequest = function(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\tObject.assign({ signal }, options),\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\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!./Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=df914872&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=df914872&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 \"df914872\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('MessageReplyTextIcon')]},proxy:true}],null,false,1033639148)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircleOutlineIcon')]},proxy:true}],null,false,66050004)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('RefreshIcon')]},proxy:true}],null,false,3924573781)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\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\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\nimport { PiniaVuePlugin, createPinia } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nconsole.debug('OCA.Comments.View initialized')\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, `.comment[data-v-1f6341c6]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-1f6341c6]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-1f6341c6]{display:flex;flex-grow:1;flex-direction:column}.comment__header[data-v-1f6341c6]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-1f6341c6]{margin-inline-start:10px !important}.comment__author[data-v-1f6341c6]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-1f6341c6],.comment__timestamp[data-v-1f6341c6]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-1f6341c6]{position:relative}.comment__editor-description[data-v-1f6341c6]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-1f6341c6]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-1f6341c6]{white-space:pre-wrap;word-break:break-word;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-1f6341c6]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-1f6341c6]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,qBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA3EiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: break-word;\\n\\t\\tmax-height: 70px;\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\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, `.comments[data-v-df914872]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-df914872],.comments__error[data-v-df914872]{flex:1 0}.comments__retry[data-v-df914872]{margin:0 auto}.comments__info[data-v-df914872]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// 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=\" + {\"802\":\"eddac441912aee9d7aa8\",\"5528\":\"865f37129312f27eb900\",\"9291\":\"077955af818a227340aa\"}[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 = 7062;","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(/#.*$/, \"\").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\t7062: 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__(92085)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","getRootPath","generateRemoteUrl","decodeHtmlEntities","value","passes","arguments","length","undefined","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","push","removeId","index","indexOf","splice","checkForId","includes","getLoggerBuilder","setApp","detectUser","build","message","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","methods","onEdit","onEditCancel","updateLocalMessage","onEditComment","async","commentId","commentPath","join","customRequest","Object","assign","method","EditComment","logger","debug","error","showError","t","console","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","deleteFile","DeleteComment","onNewComment","newComment","resourcePath","response","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","uid","actorType","creationDateTime","Date","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","NewComment","localMessage","components","IconArrowRight","IconClose","IconDelete","IconEdit","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","mixins","RichEditorMixin","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","tag","expanded","submitted","isOwnComment","renderedContent","isEmptyMessage","renderContent","trim","timestamp","parse","isLimbo","watch","beforeMount","toString","onSubmit","$nextTick","$refs","$el","focus","onExpand","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","key","fn","proxy","preventDefault","ref","userData","domProps","defineComponent","editorData","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","forEach","user","values","genMentionsData","mentions","flat","mention","mentionId","icon","label","mentionDisplayName","source","primary","getComments","_ref","datetime","toISOString","offset","responseData","text","result","parseXML","getDirectoryFiles","processResponsePayload","isDetailed","multistatus","responseItems","map","item","propstat","prop","prepareFileFromProps","Comment","NcEmptyContent","RefreshIcon","MessageReplyTextIcon","AlertCircleOutlineIcon","elementVisibility","CommentView","done","currentResourceId","comments","cancelRequest","hasComments","isFirstLoading","onVisibilityChange","isVisible","markCommentsAsRead","date","readMarker","e","update","resetState","onScrollBottomReached","request","abort","controller","AbortController","signal","url","cancelableRequest","unshift","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","n","window","OCA","Comments","View","constructor","pinia","createPinia","propsData","extend","CommentsApp","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","obj","prototype","hasOwnProperty","l","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"comments-comments-app.js?v=d409f504637aba2ba075","mappings":"UAAIA,ECAAC,EACAC,E,4HCmBJ,MCpB0G,EDoB1G,CACEC,KAAM,cACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,M,eEff,SAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,oCAAoCC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,uNAAuN,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACnuB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBmF,ECoBnH,CACEvB,KAAM,uBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,+CAA+CC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,sHAAsH,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UAC7oB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBqF,ECoBrH,CACEvB,KAAM,yBACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLC,KAAMC,QAERC,UAAW,CACTF,KAAMC,OACNE,QAAS,gBAEXC,KAAM,CACJJ,KAAMK,OACNF,QAAS,MCff,GAXgB,OACd,GCRW,WAAkB,IAAIG,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,iDAAiDC,MAAM,CAAC,eAAcN,EAAIP,OAAQ,KAAY,aAAaO,EAAIP,MAAM,KAAO,OAAOc,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIJ,UAAU,MAAQI,EAAIF,KAAK,OAASE,EAAIF,KAAK,QAAU,cAAc,CAACI,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,wLAAwL,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIP,UAAUO,EAAIa,UACjtB,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,QElBhC,I,kICOA,MAAMC,EAAc,WACnB,OAAOC,EAAAA,EAAAA,IAAkB,eAC1B,ECAO,SAASC,EAAmBC,GAAmB,IAAZC,EAAMC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,EAClD,MAAMG,EAAS,IAAIC,UACnB,IAAIC,EAAUP,EACd,IAAK,IAAIQ,EAAI,EAAGA,EAAIP,EAAQO,IAC3BD,EAAUF,EAAOI,gBAAgBF,EAAS,aAAaG,gBAAgBC,YAExE,OAAOJ,CACR,C,0BCNA,MAAMK,GAASC,EAAAA,EAAAA,IAAahB,KAGtBiB,EAAcC,IACnBH,EAAOE,WAAW,CAEjB,mBAAoB,iBAEpBE,aAAcD,GAAS,IACtB,GAIHE,EAAAA,EAAAA,IAAqBH,GACrBA,GAAWI,EAAAA,EAAAA,OAEX,UCnBaC,GAAyBC,EAAAA,EAAAA,IAAY,sBAAuB,CACxEC,MAAOA,KAAA,CACNC,WAAY,KAEbC,QAAS,CACRC,KAAAA,CAAMC,GACLzC,KAAKsC,WAAWI,KAAKD,EACtB,EAEAE,QAAAA,CAASF,GACR,MAAMG,EAAQ5C,KAAKsC,WAAWO,QAAQJ,GAClCG,GAAS,GACZ5C,KAAKsC,WAAWQ,OAAOF,EAAO,EAEhC,EAEAG,UAAAA,CAAWN,GACVzC,KAAKsC,WAAWU,SAASP,EAC1B,KClBF,GAAeQ,E,SAAAA,MACbC,OAAO,YACPC,aACAC,Q,eCGF,SACC7D,MAAO,CACNkD,GAAI,CACHhD,KAAMK,OACNF,QAAS,MAEVyD,QAAS,CACR5D,KAAMC,OACNE,QAAS,IAEV0D,WAAY,CACX7D,KAAM,CAACC,OAAQI,QACfyD,UAAU,GAEXC,aAAc,CACb/D,KAAMC,OACNE,QAAS,UAIX6D,KAAIA,KACI,CACNC,SAAS,EACTC,SAAS,EACTC,SAAS,IAIXC,SAAU,KACNC,EAAAA,EAAAA,IAAU3B,IAGd4B,QAAS,CAERC,MAAAA,GACChE,KAAK2D,SAAU,CAChB,EACAM,YAAAA,GACCjE,KAAK2D,SAAU,EAEf3D,KAAKkE,mBAAmBlE,KAAKqD,QAC9B,EACA,mBAAMc,CAAcd,GACnBrD,KAAK4D,SAAU,EACf,UC1CYQ,eAAeZ,EAAcF,EAAYe,EAAWhB,GAClE,MAAMiB,EAAc,CAAC,GAAId,EAAcF,EAAYe,GAAWE,KAAK,KAEnE,aAAa3C,EAAO4C,cAAcF,EAAaG,OAAOC,OAAO,CAC5DC,OAAQ,YACRlB,KAAM,8KAMWJ,iFAKnB,CD2BUuB,CAAY5E,KAAKwD,aAAcxD,KAAKsD,WAAYtD,KAAKyC,GAAIY,GAC/DwB,EAAOC,MAAM,iBAAkB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYb,GAAIzC,KAAKyC,GAAIY,YAC5GrD,KAAKQ,MAAM,iBAAkB6C,GAC7BrD,KAAK2D,SAAU,CAChB,CAAE,MAAOoB,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,uDACxBC,EAAQH,MAAMA,EACf,CAAE,QACD/E,KAAK4D,SAAU,CAChB,CACD,EAGAuB,gBAAAA,GACCnF,KAAKQ,MAAM,UACXR,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyB5C,MAAMxC,KAAKyC,IACzC,MAAM4C,EAAgBC,WAAWtF,KAAKuF,SAAUC,EAAAA,KAChDC,EAAAA,EAAAA,IAASR,EAAE,WAAY,oBAAoB,KAC1CS,aAAaL,GACbrF,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyBzC,SAAS3C,KAAKyC,GAAG,GAEjD,EACA,cAAM8C,GACL,UErEYnB,eAAeZ,EAAcF,EAAYe,GACvD,MAAMC,EAAc,CAAC,GAAId,EAAcF,EAAYe,GAAWE,KAAK,WAG7D3C,EAAO+D,WAAWrB,EACzB,CFiEUsB,CAAc5F,KAAKwD,aAAcxD,KAAKsD,WAAYtD,KAAKyC,IAC7DoC,EAAOC,MAAM,kBAAmB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYb,GAAIzC,KAAKyC,KACzGzC,KAAKQ,MAAM,SAAUR,KAAKyC,GAC3B,CAAE,MAAOsC,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,yDACxBC,EAAQH,MAAMA,GACd/E,KAAK0D,SAAU,EACf1D,KAAKoF,yBAAyBzC,SAAS3C,KAAKyC,GAC7C,CACD,EAGA,kBAAMoD,CAAaxC,GAClBrD,KAAK4D,SAAU,EACf,IACC,MAAMkC,QGhFK1B,eAAeZ,EAAcF,EAAYD,GACvD,MAAM0C,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KAEnDyB,QAAiBC,EAAAA,GAAMC,KAAKrF,IAAgBkF,EAAc,CAC/DI,kBAAkBC,EAAAA,EAAAA,MAAiBC,YACnCC,SAASF,EAAAA,EAAAA,MAAiBG,IAC1BC,UAAW,QACXC,kBAAmB,IAAIC,MAAQC,cAC/BtD,UACAuD,WAAYpD,EACZqD,KAAM,YAKDvC,EAAcyB,EAAe,IADjBe,SAASd,EAASe,QAAQ,oBAAoBC,MAAM,KAAKC,OAIrEC,QAAgBtF,EAAOuF,KAAK7C,EAAa,CAC9C8C,SAAS,IAGJ7H,EAAQ2H,EAAQzD,KAAKlE,MAO3B,OAHAA,EAAM4G,iBAAmBpF,EAAmBxB,EAAM4G,iBAAkB,GACpE5G,EAAM8D,QAAUtC,EAAmBxB,EAAM8D,QAAS,GAE3C6D,EAAQzD,IAChB,CHkD6B4D,CAAWrH,KAAKwD,aAAcxD,KAAKsD,WAAYD,GACxEwB,EAAOC,MAAM,qBAAsB,CAAEtB,aAAcxD,KAAKwD,aAAcF,WAAYtD,KAAKsD,WAAYwC,eACnG9F,KAAKQ,MAAM,MAAOsF,GAGlB9F,KAAKQ,MAAM,iBAAkB,IAC7BR,KAAKsH,aAAe,EACrB,CAAE,MAAOvC,IACRC,EAAAA,EAAAA,IAAUC,EAAE,WAAY,yDACxBC,EAAQH,MAAMA,EACf,CAAE,QACD/E,KAAK4D,SAAU,CAChB,CACD,IIhHiL,ECiInL,CACAvE,KAAA,UAEAkI,WAAA,CACAC,eAAA,IACAC,UAAA,IACAC,WAAA,IACAC,SAAA,IACAC,eAAA,IACAC,UAAA,IACAC,kBAAA,IACAC,SAAA,IACAC,SAAA,IACAC,WAAA,IACAC,cAAA,IACAC,sBAjBAA,IAAA,0DAmBAC,OAAA,CAAAC,EAAAA,GAAAC,GAEAC,cAAA,EAEAhJ,MAAA,CACA4G,iBAAA,CACA1G,KAAAC,OACA6D,UAAA,GAEA+C,QAAA,CACA7G,KAAAC,OACA6D,UAAA,GAEAkD,iBAAA,CACAhH,KAAAC,OACAE,QAAA,MAMA4I,OAAA,CACA/I,KAAAgJ,QACA7I,SAAA,GAMA8I,aAAA,CACAjJ,KAAAkJ,SACApF,UAAA,GAGAqF,IAAA,CACAnJ,KAAAC,OACAE,QAAA,QAIA6D,KAAAA,KACA,CACAoF,UAAA,EAGAvB,aAAA,GACAwB,WAAA,IAIAjF,SAAA,KACAC,EAAAA,EAAAA,IAAA3B,GAOA4G,YAAAA,GACA,OAAA3C,EAAAA,EAAAA,MAAAG,MAAA,KAAAD,OACA,EAOA0C,eAAAA,GACA,YAAAC,eACA,GAEA,KAAAC,cAAA,KAAA5B,aACA,EAEA2B,cAAAA,GACA,YAAA3B,cAAA,UAAAA,aAAA6B,MACA,EAKAC,SAAAA,GACA,OAAA1C,KAAA2C,MAAA,KAAA5C,iBACA,EAEA6C,OAAAA,GACA,YAAAlE,yBAAArC,WAAA,KAAAN,GACA,GAGA8G,MAAA,CAEAlG,OAAAA,CAAAA,GACA,KAAAa,mBAAAb,EACA,GAGAmG,WAAAA,GAEA,KAAAtF,mBAAA,KAAAb,QACA,EAEAU,QAAA,CACAkB,EAAA,KAOAf,kBAAAA,CAAAb,GACA,KAAAiE,aAAAjE,EAAAoG,WACA,KAAAX,WAAA,CACA,EAKAY,QAAAA,GAEA,aAAApC,aAAA6B,OAIA,YAAAX,QACA,KAAA3C,aAAA,KAAAyB,aAAA6B,aACA,KAAAQ,WAAA,KAEA,KAAAC,MAAApB,OAAAqB,IAAAC,OAAA,UAIA,KAAA3F,cAAA,KAAAmD,aAAA6B,OACA,EAEAY,QAAAA,GACA,KAAAlB,UAAA,CACA,I,yIChRImB,GAAU,CAAC,EAEfA,GAAQC,kBAAoB,KAC5BD,GAAQE,cAAgB,IAElBF,GAAQG,OAAS,SAAc,KAAM,QAE3CH,GAAQI,OAAS,IACjBJ,GAAQK,mBAAqB,IAEhB,IAAI,KAASL,IAKJ,MAAW,KAAQM,QAAS,KAAQA,OCP1D,UAXgB,OACd,GbTW,WAAkB,IAAIvK,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAGF,EAAI6I,IAAI,CAAC2B,WAAW,CAAC,CAAClL,KAAK,OAAOmL,QAAQ,SAASxJ,OAAQjB,EAAI2D,UAAY3D,EAAIuJ,QAASmB,WAAW,yBAAyB7B,IAAI,YAAYxI,YAAY,UAAUsK,MAAM,CAAC,mBAAoB3K,EAAI6D,UAAU,CAAC3D,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,WAAW,CAACG,YAAY,kBAAkBC,MAAM,CAAC,eAAeN,EAAIoG,iBAAiB,KAAOpG,EAAIuG,QAAQ,KAAO,OAAO,GAAGvG,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,iBAAiB,CAACH,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,OAAO,CAACG,YAAY,mBAAmB,CAACL,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIoG,qBAAqBpG,EAAIW,GAAG,KAAMX,EAAIgJ,cAAgBhJ,EAAI0C,KAAO1C,EAAI6D,QAAS3D,EAAG,YAAY,CAACG,YAAY,oBAAoB,CAAGL,EAAI4D,QAAyoB1D,EAAG,iBAAiB,CAACK,GAAG,CAAC,MAAQP,EAAIkE,cAAc0G,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,aAAa,CAAChL,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,gBAAgB,gBAAp3B,CAAChF,EAAG,iBAAiB,CAACI,MAAM,CAAC,oBAAoB,IAAIC,GAAG,CAAC,MAAQP,EAAIiE,QAAQ2G,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,YAAY,CAAChL,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,iBAAiB,kBAAkBlF,EAAIW,GAAG,KAAKT,EAAG,qBAAqBF,EAAIW,GAAG,KAAKT,EAAG,iBAAiB,CAACI,MAAM,CAAC,oBAAoB,IAAIC,GAAG,CAAC,MAAQP,EAAIoF,kBAAkBwF,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,aAAa,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,YAAY,CAAChL,EAAIW,GAAG,iBAAiBX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,mBAAmB,oBAAwR,GAAGlF,EAAIa,KAAKb,EAAIW,GAAG,KAAMX,EAAI0C,IAAM1C,EAAI6D,QAAS3D,EAAG,MAAM,CAACG,YAAY,uCAAwCL,EAAI0G,iBAAkBxG,EAAG,aAAa,CAACG,YAAY,qBAAqBC,MAAM,CAAC,UAAYN,EAAIqJ,UAAU,kBAAiB,KAAQrJ,EAAIa,MAAM,GAAGb,EAAIW,GAAG,KAAMX,EAAIyI,QAAUzI,EAAI4D,QAAS1D,EAAG,OAAO,CAACG,YAAY,kBAAkBE,GAAG,CAAC,OAAS,SAASC,GAAQA,EAAOyK,gBAAiB,IAAI,CAAC/K,EAAG,MAAM,CAACG,YAAY,yBAAyB,CAACH,EAAG,wBAAwB,CAACgL,IAAI,SAAS5K,MAAM,CAAC,gBAAgBN,EAAI2I,aAAa,iBAAmB3I,EAAI6D,QAAQ,MAAQ7D,EAAIyI,OAASzI,EAAIkF,EAAE,WAAY,eAAiBlF,EAAIkF,EAAE,WAAY,gBAAgB,YAAclF,EAAIkF,EAAE,WAAY,qBAAqB,MAAQlF,EAAIuH,aAAa,YAAYvH,EAAImL,SAAS,mBAAmB,oCAAoC5K,GAAG,CAAC,eAAeP,EAAImE,mBAAmB,OAASnE,EAAI2J,YAAY3J,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,mBAAmB,CAACH,EAAG,WAAW,CAACI,MAAM,CAAC,KAAO,yBAAyB,cAAc,SAAS,aAAaN,EAAIkF,EAAE,WAAY,gBAAgB,SAAWlF,EAAIkJ,gBAAgB3I,GAAG,CAAC,MAAQP,EAAI2J,UAAUiB,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAE/K,EAAI6D,QAAS3D,EAAG,iBAAiBA,EAAG,iBAAiB,CAACI,MAAM,CAAC,KAAO,MAAM,EAAE0K,OAAM,IAAO,MAAK,EAAM,cAAc,IAAI,GAAGhL,EAAIW,GAAG,KAAKT,EAAG,MAAM,CAACG,YAAY,8BAA8BC,MAAM,CAAC,GAAK,qCAAqC,CAACN,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,oDAAoD,gBAAgBhF,EAAG,MAAM,CAACG,YAAY,mBAAmBsK,MAAM,CAAC,6BAA8B3K,EAAI8I,UAAUsC,SAAS,CAAC,UAAYpL,EAAIY,GAAGZ,EAAIiJ,kBAAkB1I,GAAG,CAAC,MAAQP,EAAIgK,eACruG,GACsB,IaUpB,EACA,KACA,WACA,MAI8B,Q,gBCVhC,UAAeqB,EAAAA,EAAAA,IAAgB,CAC3B7L,MAAO,CACH+D,WAAY,CACR7D,KAAMK,OACNyD,UAAU,GAEdC,aAAc,CACV/D,KAAMC,OACNE,QAAS,UAGjB6D,KAAIA,KACO,CACH4H,WAAY,CACRlF,kBAAkBC,EAAAA,EAAAA,MAAiBC,YACnCC,SAASF,EAAAA,EAAAA,MAAiBG,IAC1BsE,IAAK,UAETK,SAAU,CAAC,IAGnBnH,QAAS,CAOL,kBAAM2E,CAAa4C,EAAQC,GACvB,MAAM,KAAE9H,SAAewC,EAAAA,GAAMuF,KAAIC,EAAAA,EAAAA,IAAe,yBAA0B,CACtEC,OAAQ,CACJJ,SACAK,SAAU,QACVC,OAAQ5L,KAAKsD,WACbuI,OAAQ,8BACRC,OAAOC,EAAAA,GAAAA,GAAU,WAAY,6BAKrC,OADAtI,EAAKuI,IAAIvI,KAAKwI,SAAQC,IAAUlM,KAAKkL,SAASgB,EAAKzJ,IAAMyJ,CAAI,IACtDX,EAAS9G,OAAO0H,OAAOnM,KAAKkL,UACvC,EAOAkB,eAAAA,CAAgBC,GAaZ,OAZA5H,OAAO0H,OAAOE,GACTC,OACAL,SAAQM,IACTvM,KAAKkL,SAASqB,EAAQC,WAAa,CAE/BC,KAAM,YACNhK,GAAI8J,EAAQC,UACZE,MAAOH,EAAQI,mBACfC,OAAQ,QACRC,SAASzG,EAAAA,EAAAA,OAAkBG,MAAQgG,EAAQC,UAC9C,IAEExM,KAAKkL,QAChB,K,4BC9DD,MAaM4B,GAAc1I,eAAA2I,EAA8C/C,GAAS,IAAvC,aAAExG,EAAY,WAAEF,GAAYyJ,EACnE,MAAMhH,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KACnDyI,EAAWhD,EAAQgD,SAAW,gBAAgBhD,EAAQgD,SAASC,8BAAgC,GAC/FjH,QAAiBpE,EAAO4C,cAAcuB,EAActB,OAAOC,OAAO,CACpEC,OAAQ,SACRlB,KAAM,sPAMEuG,EAAQ8B,OAxBK,qCAyBZ9B,EAAQkD,QAAU,0BAC7BF,kCAEChD,IACGmD,QAAqBnH,EAASoH,OAC9BC,QAAeC,EAAAA,EAAAA,IAASH,GACxBhG,EAAOoG,GAAkBF,GAAQ,GACvC,OAAOG,EAAAA,GAAAA,IAAuBxH,EAAUmB,GAAM,EAClD,EAEMoG,GAAoB,SAAUF,GAA4B,IAApBI,EAAUvM,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAElD,MAAQwM,aAAe1H,SAAU2H,IAAqBN,EAEtD,OAAOM,EAAcC,KAAIC,IAErB,MAAMtO,EAAQsO,EAAKC,SAASC,KAC5B,OAAOC,EAAAA,GAAAA,IAAqBzO,EAAOA,EAAMkD,GAAGgH,WAAYgE,EAAW,GAE3E,E,gBC+BA,MCpFoL,GDoFpL,CACApO,KAAA,WAEAkI,WAAA,CACA0G,QAAA,GACAC,eAAA,IACAlG,SAAA,IACAmG,YAAA,EACAC,qBAAA,EACAC,uBAAAA,GAGA9D,WAAA,CACA+D,kBAAAA,EAAAA,IAGAlG,OAAA,CAAAmG,IAEA9K,IAAAA,GACA,OACAsB,MAAA,GACAnB,SAAA,EACA4K,MAAA,EAEAC,kBAAA,KAAAnL,WACA4J,OAAA,EACAwB,SAAA,GAEAC,cAAAA,OAEAV,QAAA,GACA/C,SAAA,GAEA,EAEArH,SAAA,CACA+K,WAAAA,GACA,YAAAF,SAAAvN,OAAA,CACA,EACA0N,cAAAA,GACA,YAAAjL,SAAA,SAAAsJ,MACA,GAGA3D,MAAA,CACAjG,UAAAA,GACA,KAAAmL,kBAAA,KAAAnL,UACA,GAGAS,QAAA,CACAkB,EAAA,KAEA,wBAAA6J,CAAAC,GACA,GAAAA,EACA,SE/HkCC,EAACxL,EAAcF,EAAY2L,KACzD,MAAMlJ,EAAe,CAAC,GAAIvC,EAAcF,GAAYiB,KAAK,KACnD2K,EAAaD,EAAKtI,cACxB,OAAO/E,EAAO4C,cAAcuB,EAAc,CACtCpB,OAAQ,YACRlB,KAAM,iLAMQyL,mFAIhB,EFiHNF,CAAA,KAAAxL,aAAA,KAAAiL,kBAAA,IAAA/H,KACA,OAAAyI,IACAnK,EAAAA,EAAAA,IAAAmK,EAAA9L,UAAA4B,EAAAA,EAAAA,IAAA,8CACA,CAEA,EAOA,YAAAmK,CAAA9L,GACA,KAAAmL,kBAAAnL,EACA,KAAA+L,aACA,KAAAvC,aACA,EAKAwC,qBAAAA,GAOA,KAAAvK,OAAA,KAAAyJ,MAAA,KAAA5K,SAGA,KAAAkJ,aACA,EAKA,iBAAAA,GAEA,KAAA6B,cAAA,UAEA,IACA,KAAA/K,SAAA,EACA,KAAAmB,MAAA,GAGA,cAAAwK,EAAA,MAAAC,GG/K0B,SAASD,GAClC,MAAME,EAAa,IAAIC,gBACjBC,EAASF,EAAWE,OAgB1B,MAAO,CACNJ,QATanL,eAAewL,EAAK5F,GAKjC,aAJuBuF,EACtBK,EACAnL,OAAOC,OAAO,CAAEiL,UAAU3F,GAG5B,EAICwF,MAAOA,IAAMC,EAAWD,QAE1B,CHyJAK,CAAA/C,IACA,KAAA6B,cAAAa,EAGA,MAAA/L,KAAAiL,SAAAa,EAAA,CACA/L,aAAA,KAAAA,aACAF,WAAA,KAAAmL,mBACA,CAAAvB,OAAA,KAAAA,UAAA,CAAAzJ,KAAA,IAEA,KAAAoB,OAAAC,MAAA,aAAA4J,EAAAvN,kBAAA,CAAAuN,aAIAA,EAAAvN,OD9L6B,KC+L7B,KAAAqN,MAAA,GAIA,KAAAE,SAAAhM,QAAAgM,GAGA,KAAAxB,QDtM6B,ECuM7B,OAAAnI,GACA,cAAAA,EAAA1B,QACA,OAEA,KAAA0B,OAAAE,EAAAA,EAAAA,IAAA,+CACAC,GAAAH,MAAA,kCAAAA,EACA,SACA,KAAAnB,SAAA,CACA,CACA,EAOAiC,YAAAA,CAAAqB,GACA,KAAAwH,SAAAoB,QAAA5I,EACA,EAOA3B,QAAAA,CAAA9C,GACA,MAAAG,EAAA,KAAA8L,SAAAqB,WAAA7I,GAAAA,EAAA3H,MAAAkD,KAAAA,IACAG,GAAA,EACA,KAAA8L,SAAA5L,OAAAF,EAAA,GAEAsC,GAAAH,MAAA,iDAAAtC,EAEA,EAKA4M,UAAAA,GACA,KAAAtK,MAAA,GACA,KAAAnB,SAAA,EACA,KAAA4K,MAAA,EACA,KAAAtB,OAAA,EACA,KAAAwB,SAAA,EACA,I,gBIhPI,GAAU,CAAC,EAEf,GAAQzE,kBAAoB,KAC5B,GAAQC,cAAgB,IAElB,GAAQC,OAAS,SAAc,KAAM,QAE3C,GAAQC,OAAS,IACjB,GAAQC,mBAAqB,IAEhB,IAAI,KAAS,IAKJ,MAAW,KAAQC,QAAS,KAAQA,OCP1D,UAXgB,OACd,ICTW,WAAkB,IAAIvK,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACsK,WAAW,CAAC,CAAClL,KAAK,qBAAqBmL,QAAQ,uBAAuBxJ,MAAOjB,EAAI+O,mBAAoBrE,WAAW,uBAAuBrK,YAAY,WAAWsK,MAAM,CAAE,eAAgB3K,EAAI8O,iBAAkB,CAAC5O,EAAG,UAAUF,EAAII,GAAG,CAACC,YAAY,mBAAmBC,MAAM,CAAC,gBAAgBN,EAAI2I,aAAa,gBAAgB3I,EAAIyD,aAAa,QAAS,EAAK,YAAYzD,EAAImL,SAAS,cAAcnL,EAAI0O,mBAAmBnO,GAAG,CAAC,IAAMP,EAAI8F,eAAe,UAAU9F,EAAIsL,YAAW,IAAQtL,EAAIW,GAAG,KAAOX,EAAI8O,eAAg/C9O,EAAIa,KAAp+C,EAAGb,EAAI6O,aAAe7O,EAAIyO,KAAMvO,EAAG,iBAAiB,CAACG,YAAY,kBAAkBC,MAAM,CAAC,KAAON,EAAIkF,EAAE,WAAY,6CAA6C0F,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,wBAAwB,EAAE8K,OAAM,IAAO,MAAK,EAAM,cAAc9K,EAAG,KAAKF,EAAIiQ,GAAIjQ,EAAI2O,UAAU,SAASxH,GAAS,OAAOjH,EAAG,UAAUF,EAAII,GAAG,CAAC0K,IAAI3D,EAAQ3H,MAAMkD,GAAGrC,YAAY,iBAAiBC,MAAM,CAAC,IAAM,KAAK,gBAAgBN,EAAI2I,aAAa,gBAAgB3I,EAAIyD,aAAa,QAAU0D,EAAQ3H,MAAM8D,QAAQ,cAActD,EAAI0O,kBAAkB,YAAY1O,EAAIqM,gBAAgBlF,EAAQ3H,MAAM8M,WAAW/L,GAAG,CAAC,iBAAiB,SAASC,GAAQ,OAAOR,EAAIkQ,KAAK/I,EAAQ3H,MAAO,UAAWgB,EAAO,EAAE,OAASR,EAAIwF,WAAW,UAAU2B,EAAQ3H,OAAM,GAAO,IAAG,GAAGQ,EAAIW,GAAG,KAAMX,EAAI6D,UAAY7D,EAAI8O,eAAgB5O,EAAG,MAAM,CAACG,YAAY,gCAAiCL,EAAI6O,aAAe7O,EAAIyO,KAAMvO,EAAG,MAAM,CAACG,YAAY,kBAAkB,CAACL,EAAIW,GAAG,WAAWX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,qBAAqB,YAAalF,EAAIgF,MAAO,CAAC9E,EAAG,iBAAiB,CAACG,YAAY,kBAAkBC,MAAM,CAAC,KAAON,EAAIgF,OAAO4F,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,0BAA0B,EAAE8K,OAAM,IAAO,MAAK,EAAM,YAAYhL,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,YAAY,kBAAkBE,GAAG,CAAC,MAAQP,EAAI+M,aAAanC,YAAY5K,EAAI6K,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC7K,EAAG,eAAe,EAAE8K,OAAM,IAAO,MAAK,EAAM,aAAa,CAAChL,EAAIW,GAAG,aAAaX,EAAIY,GAAGZ,EAAIkF,EAAE,WAAY,UAAU,eAAelF,EAAIa,OAAgB,EAC7iE,GACsB,IDUpB,EACA,KACA,WACA,MAI8B,QEPhCsP,EAAAA,GAAIC,IAAIC,EAAAA,IAERC,EAAAA,IAAoBC,EAAAA,EAAAA,MAGpBJ,EAAAA,GAAIK,MAAM,CACT9M,KAAIA,KACI,CACNoB,OAAMA,IAGRd,QAAS,CACRkB,EAAC,IACDuL,EAACA,EAAAA,K,gBCjBCC,OAAOC,MAAQD,OAAOC,IAAIC,UAC7BlM,OAAOC,OAAO+L,OAAOC,IAAK,CAAEC,SAAU,CAAC,IAIxClM,OAAOC,OAAO+L,OAAOC,IAAIC,SAAU,CAAEC,KDgBtB,MAQdC,WAAAA,GAAkD,IAAtCrN,EAAYtC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAAS8I,EAAO9I,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC9C,MAAM4P,GAAQC,EAAAA,EAAAA,MAad,OAVA/G,EAAU,IACNA,EACHgH,UAAW,IACNhH,EAAQgH,WAAa,CAAC,EAC1BxN,gBAEDsN,SAIM,IADMZ,EAAAA,GAAIe,OAAOC,IACjB,CAASlH,EACjB,KCtCD9E,GAAQJ,MAAM,gC,mFCXVqM,E,MAA0B,GAA4B,KAE1DA,EAAwBzO,KAAK,CAAC0O,EAAO3O,GAAI,ytCAA0tC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,udAAud,eAAiB,CAAC,03CAA43C,WAAa,MAE9tG,S,mFCJI0O,E,MAA0B,GAA4B,KAE1DA,EAAwBzO,KAAK,CAAC0O,EAAO3O,GAAI,kUAAmU,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,wHAAwH,eAAiB,CAAC,uTAAuT,WAAa,MAE/5B,S,oECNI4O,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBnQ,IAAjBoQ,EACH,OAAOA,EAAaC,QAGrB,IAAIL,EAASC,EAAyBE,GAAY,CACjD9O,GAAI8O,EACJG,QAAQ,EACRD,QAAS,CAAC,GAUX,OANAE,EAAoBJ,GAAUK,KAAKR,EAAOK,QAASL,EAAQA,EAAOK,QAASH,GAG3EF,EAAOM,QAAS,EAGTN,EAAOK,OACf,CAGAH,EAAoBO,EAAIF,EzC5BpBzS,EAAW,GACfoS,EAAoBQ,EAAI,CAACzE,EAAQ0E,EAAUjH,EAAIkH,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAAS1Q,EAAI,EAAGA,EAAItC,EAASiC,OAAQK,IAAK,CACrCuQ,EAAW7S,EAASsC,GAAG,GACvBsJ,EAAK5L,EAASsC,GAAG,GACjBwQ,EAAW9S,EAASsC,GAAG,GAE3B,IAJA,IAGI2Q,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAS5Q,OAAQiR,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAavN,OAAO4N,KAAKf,EAAoBQ,GAAGQ,OAAOzH,GAASyG,EAAoBQ,EAAEjH,GAAKkH,EAASK,MAC9IL,EAASjP,OAAOsP,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbjT,EAAS4D,OAAOtB,IAAK,GACrB,IAAI+Q,EAAIzH,SACE1J,IAANmR,IAAiBlF,EAASkF,EAC/B,CACD,CACA,OAAOlF,CArBP,CAJC2E,EAAWA,GAAY,EACvB,IAAI,IAAIxQ,EAAItC,EAASiC,OAAQK,EAAI,GAAKtC,EAASsC,EAAI,GAAG,GAAKwQ,EAAUxQ,IAAKtC,EAASsC,GAAKtC,EAASsC,EAAI,GACrGtC,EAASsC,GAAK,CAACuQ,EAAUjH,EAAIkH,EAuBjB,E0C3BdV,EAAoBd,EAAKY,IACxB,IAAIoB,EAASpB,GAAUA,EAAOqB,WAC7B,IAAOrB,EAAiB,QACxB,IAAM,EAEP,OADAE,EAAoBoB,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdlB,EAAoBoB,EAAI,CAACjB,EAASmB,KACjC,IAAI,IAAI/H,KAAO+H,EACXtB,EAAoBuB,EAAED,EAAY/H,KAASyG,EAAoBuB,EAAEpB,EAAS5G,IAC5EpG,OAAOqO,eAAerB,EAAS5G,EAAK,CAAEkI,YAAY,EAAMvH,IAAKoH,EAAW/H,IAE1E,ECNDyG,EAAoB0B,EAAI,CAAC,EAGzB1B,EAAoBnC,EAAK8D,GACjBC,QAAQC,IAAI1O,OAAO4N,KAAKf,EAAoB0B,GAAGI,QAAO,CAACC,EAAUxI,KACvEyG,EAAoB0B,EAAEnI,GAAKoI,EAASI,GAC7BA,IACL,KCNJ/B,EAAoBgC,EAAKL,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCH7I3B,EAAoBiC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOxT,MAAQ,IAAI2I,SAAS,cAAb,EAChB,CAAE,MAAOwG,GACR,GAAsB,iBAAXsB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBa,EAAoBuB,EAAI,CAACY,EAAK1F,IAAUtJ,OAAOiP,UAAUC,eAAe/B,KAAK6B,EAAK1F,G9CA9E5O,EAAa,CAAC,EACdC,EAAoB,aAExBkS,EAAoBsC,EAAI,CAAChE,EAAKpB,EAAM3D,EAAKoI,KACxC,GAAG9T,EAAWyQ,GAAQzQ,EAAWyQ,GAAKlN,KAAK8L,OAA3C,CACA,IAAIqF,EAAQC,EACZ,QAAW1S,IAARyJ,EAEF,IADA,IAAIkJ,EAAUC,SAASC,qBAAqB,UACpCzS,EAAI,EAAGA,EAAIuS,EAAQ5S,OAAQK,IAAK,CACvC,IAAI0S,EAAIH,EAAQvS,GAChB,GAAG0S,EAAEC,aAAa,QAAUvE,GAAOsE,EAAEC,aAAa,iBAAmB/U,EAAoByL,EAAK,CAAEgJ,EAASK,EAAG,KAAO,CACpH,CAEGL,IACHC,GAAa,GACbD,EAASG,SAASI,cAAc,WAEzBC,QAAU,QACjBR,EAAOS,QAAU,IACbhD,EAAoBiD,IACvBV,EAAOW,aAAa,QAASlD,EAAoBiD,IAElDV,EAAOW,aAAa,eAAgBpV,EAAoByL,GAExDgJ,EAAOY,IAAM7E,GAEdzQ,EAAWyQ,GAAO,CAACpB,GACnB,IAAIkG,EAAmB,CAACC,EAAMC,KAE7Bf,EAAOgB,QAAUhB,EAAOiB,OAAS,KACjCpP,aAAa4O,GACb,IAAIS,EAAU5V,EAAWyQ,GAIzB,UAHOzQ,EAAWyQ,GAClBiE,EAAOmB,YAAcnB,EAAOmB,WAAWC,YAAYpB,GACnDkB,GAAWA,EAAQ9I,SAASnB,GAAQA,EAAG8J,KACpCD,EAAM,OAAOA,EAAKC,EAAM,EAExBN,EAAUhP,WAAWoP,EAAiBQ,KAAK,UAAM9T,EAAW,CAAE3B,KAAM,UAAW0V,OAAQtB,IAAW,MACtGA,EAAOgB,QAAUH,EAAiBQ,KAAK,KAAMrB,EAAOgB,SACpDhB,EAAOiB,OAASJ,EAAiBQ,KAAK,KAAMrB,EAAOiB,QACnDhB,GAAcE,SAASoB,KAAKC,YAAYxB,EApCkB,CAoCX,E+CvChDvC,EAAoBiB,EAAKd,IACH,oBAAX6D,QAA0BA,OAAOC,aAC1C9Q,OAAOqO,eAAerB,EAAS6D,OAAOC,YAAa,CAAEvU,MAAO,WAE7DyD,OAAOqO,eAAerB,EAAS,aAAc,CAAEzQ,OAAO,GAAO,ECL9DsQ,EAAoBkE,IAAOpE,IAC1BA,EAAOqE,MAAQ,GACVrE,EAAOsE,WAAUtE,EAAOsE,SAAW,IACjCtE,GCHRE,EAAoBc,EAAI,K,MCAxB,IAAIuD,EACArE,EAAoBiC,EAAEqC,gBAAeD,EAAYrE,EAAoBiC,EAAEsC,SAAW,IACtF,IAAI7B,EAAW1C,EAAoBiC,EAAES,SACrC,IAAK2B,GAAa3B,IACbA,EAAS8B,eAAkE,WAAjD9B,EAAS8B,cAAcC,QAAQC,gBAC5DL,EAAY3B,EAAS8B,cAAcrB,MAC/BkB,GAAW,CACf,IAAI5B,EAAUC,EAASC,qBAAqB,UAC5C,GAAGF,EAAQ5S,OAEV,IADA,IAAIK,EAAIuS,EAAQ5S,OAAS,EAClBK,GAAK,KAAOmU,IAAc,aAAaM,KAAKN,KAAaA,EAAY5B,EAAQvS,KAAKiT,GAE3F,CAID,IAAKkB,EAAW,MAAM,IAAIO,MAAM,yDAChCP,EAAYA,EAAUQ,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpF7E,EAAoB8E,EAAIT,C,WClBxBrE,EAAoB+E,EAAIrC,SAASsC,SAAWC,KAAKV,SAASW,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAGPnF,EAAoB0B,EAAEZ,EAAI,CAACa,EAASI,KAElC,IAAIqD,EAAqBpF,EAAoBuB,EAAE4D,EAAiBxD,GAAWwD,EAAgBxD,QAAW7R,EACtG,GAA0B,IAAvBsV,EAGF,GAAGA,EACFrD,EAAS3Q,KAAKgU,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIzD,SAAQ,CAAC0D,EAASC,IAAYH,EAAqBD,EAAgBxD,GAAW,CAAC2D,EAASC,KAC1GxD,EAAS3Q,KAAKgU,EAAmB,GAAKC,GAGtC,IAAI/G,EAAM0B,EAAoB8E,EAAI9E,EAAoBgC,EAAEL,GAEpDlO,EAAQ,IAAImR,MAgBhB5E,EAAoBsC,EAAEhE,GAfFgF,IACnB,GAAGtD,EAAoBuB,EAAE4D,EAAiBxD,KAEf,KAD1ByD,EAAqBD,EAAgBxD,MACRwD,EAAgBxD,QAAW7R,GACrDsV,GAAoB,CACtB,IAAII,EAAYlC,IAAyB,SAAfA,EAAMnV,KAAkB,UAAYmV,EAAMnV,MAChEsX,EAAUnC,GAASA,EAAMO,QAAUP,EAAMO,OAAOV,IACpD1P,EAAM1B,QAAU,iBAAmB4P,EAAU,cAAgB6D,EAAY,KAAOC,EAAU,IAC1FhS,EAAM1F,KAAO,iBACb0F,EAAMtF,KAAOqX,EACb/R,EAAMwK,QAAUwH,EAChBL,EAAmB,GAAG3R,EACvB,CACD,GAEwC,SAAWkO,EAASA,EAE/D,CACD,EAWF3B,EAAoBQ,EAAEM,EAAKa,GAA0C,IAA7BwD,EAAgBxD,GAGxD,IAAI+D,EAAuB,CAACC,EAA4BxT,KACvD,IAKI8N,EAAU0B,EALVlB,EAAWtO,EAAK,GAChByT,EAAczT,EAAK,GACnB0T,EAAU1T,EAAK,GAGIjC,EAAI,EAC3B,GAAGuQ,EAASqF,MAAM3U,GAAgC,IAAxBgU,EAAgBhU,KAAa,CACtD,IAAI8O,KAAY2F,EACZ5F,EAAoBuB,EAAEqE,EAAa3F,KACrCD,EAAoBO,EAAEN,GAAY2F,EAAY3F,IAGhD,GAAG4F,EAAS,IAAI9J,EAAS8J,EAAQ7F,EAClC,CAEA,IADG2F,GAA4BA,EAA2BxT,GACrDjC,EAAIuQ,EAAS5Q,OAAQK,IACzByR,EAAUlB,EAASvQ,GAChB8P,EAAoBuB,EAAE4D,EAAiBxD,IAAYwD,EAAgBxD,IACrEwD,EAAgBxD,GAAS,KAE1BwD,EAAgBxD,GAAW,EAE5B,OAAO3B,EAAoBQ,EAAEzE,EAAO,EAGjCgK,EAAqBd,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1Fc,EAAmBpL,QAAQ+K,EAAqB9B,KAAK,KAAM,IAC3DmC,EAAmB3U,KAAOsU,EAAqB9B,KAAK,KAAMmC,EAAmB3U,KAAKwS,KAAKmC,G,KCvFvF/F,EAAoBiD,QAAKnT,ECGzB,IAAIkW,EAAsBhG,EAAoBQ,OAAE1Q,EAAW,CAAC,OAAO,IAAOkQ,EAAoB,SAC9FgG,EAAsBhG,EAAoBQ,EAAEwF,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","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=7301d745","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyText.vue?2121","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyText.vue?vue&type=template&id=5b37a4cf","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=4aed4486","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?1444","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack://nextcloud/./apps/comments/src/views/Comments.vue?5e43","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true","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\n","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=7301d745\"\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 \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyText.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyText.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./MessageReplyText.vue?vue&type=template&id=5b37a4cf\"\nimport script from \"./MessageReplyText.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyText.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 message-reply-text-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\":\"M18,8H6V6H18V8M18,11H6V9H18V11M18,14H6V12H18V14M22,4A2,2 0 0,0 20,2H4A2,2 0 0,0 2,4V16A2,2 0 0,0 4,18H18L22,22V4Z\"}},[(_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!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=4aed4486\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.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 alert-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\":\"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z\"}},[(_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;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{'comment--loading': _vm.loading}},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconEdit',{attrs:{\"size\":20}})]},proxy:true}],null,false,649782975)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconDelete',{attrs:{\"size\":20}})]},proxy:true}],null,false,881161434)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\",\"native-type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('div',{staticClass:\"comment__message\",class:{'comment__message--expanded': _vm.expanded},domProps:{\"innerHTML\":_vm._s(_vm.renderedContent)},on:{\"click\":_vm.onExpand}})])])\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\nimport { generateRemoteUrl } from '@nextcloud/router'\n\nconst getRootPath = function() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\nconst setHeaders = (token) => {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\tthis.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport NewComment from '../services/NewComment.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport { mapStores } from 'pinia'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\nimport logger from '../logger.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tconsole.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, Object.assign({\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t}))\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport axios from '@nextcloud/axios'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.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!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\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!./Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=1f6341c6&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=1f6341c6&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=1f6341c6&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 \"1f6341c6\",\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 axios from '@nextcloud/axios';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true,\n },\n resourceType: {\n type: String,\n default: 'files',\n },\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor',\n },\n userData: {},\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param {string} search the query\n * @param {Function} callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: 'files',\n itemId: this.resourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults'),\n },\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach(user => { this.userData[user.id] = user; });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions)\n .flat()\n .forEach(mention => {\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: getCurrentUser()?.uid === mention.mentionId,\n };\n });\n return this.userData;\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\n// https://github.com/perry-mitchell/webdav-client/issues/339\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param {object} data destructuring object\n * @param {string} data.resourceType the resource type\n * @param {number} data.resourceId the resource ID\n * @param {object} [options] optional options for axios\n * @param {number} [options.offset] the pagination offset\n * @param {number} [options.limit] the pagination limit, defaults to 20\n * @param {Date} [options.datetime] optional date to query\n * @return {{data: object[]}} the comments list\n */\nexport const getComments = async function ({ resourceType, resourceId }, options) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n const response = await client.customRequest(resourcePath, Object.assign({\n method: 'REPORT',\n data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n }, options));\n const responseData = await response.text();\n const result = await parseXML(responseData);\n const stat = getDirectoryFiles(result, true);\n return processResponsePayload(response, stat, true);\n};\n// https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\nconst getDirectoryFiles = function (result, isDetailed = false) {\n // Extract the response items (directory contents)\n const { multistatus: { response: responseItems }, } = result;\n // Map all items to a consistent output structure (results)\n return responseItems.map(item => {\n // Each item should contain a stat object\n const props = item.propstat.prop;\n return prepareFileFromProps(props, props.id.toString(), isDetailed);\n });\n};\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.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!./Comments.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 */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport const markCommentsAsRead = (resourceType, resourceId, date) => {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const readMarker = date.toUTCString();\n return client.customRequest(resourcePath, {\n method: 'PROPPATCH',\n data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nconst cancelableRequest = function(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\tObject.assign({ signal }, options),\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\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!./Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=df914872&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=df914872&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=df914872&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 \"df914872\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('MessageReplyTextIcon')]},proxy:true}],null,false,1033639148)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircleOutlineIcon')]},proxy:true}],null,false,66050004)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('RefreshIcon')]},proxy:true}],null,false,3924573781)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\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\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { t, n } from '@nextcloud/l10n'\nimport { PiniaVuePlugin, createPinia } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nconsole.debug('OCA.Comments.View initialized')\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, `.comment[data-v-1f6341c6]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-1f6341c6]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-1f6341c6]{display:flex;flex-grow:1;flex-direction:column}.comment__header[data-v-1f6341c6]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-1f6341c6]{margin-inline-start:10px !important}.comment__author[data-v-1f6341c6]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-1f6341c6],.comment__timestamp[data-v-1f6341c6]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-1f6341c6]{position:relative}.comment__editor-description[data-v-1f6341c6]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-1f6341c6]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-1f6341c6]{white-space:pre-wrap;word-break:break-word;max-height:70px;overflow:hidden;margin-top:-6px}.comment__message--expanded[data-v-1f6341c6]{max-height:none;overflow:visible}.rich-contenteditable__input[data-v-1f6341c6]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,qBAAA,CACA,eAAA,CACA,eAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YA3EiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: break-word;\\n\\t\\tmax-height: 70px;\\n\\t\\toverflow: hidden;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\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, `.comments[data-v-df914872]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-df914872],.comments__error[data-v-df914872]{flex:1 0}.comments__retry[data-v-df914872]{margin:0 auto}.comments__info[data-v-df914872]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// 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=\" + {\"802\":\"eddac441912aee9d7aa8\",\"5528\":\"865f37129312f27eb900\",\"9291\":\"077955af818a227340aa\"}[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 = 7062;","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(/#.*$/, \"\").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\t7062: 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__(92085)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","getRootPath","generateRemoteUrl","decodeHtmlEntities","value","passes","arguments","length","undefined","parser","DOMParser","decoded","i","parseFromString","documentElement","textContent","client","createClient","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","push","removeId","index","indexOf","splice","checkForId","includes","getLoggerBuilder","setApp","detectUser","build","message","resourceId","required","resourceType","data","deleted","editing","loading","computed","mapStores","methods","onEdit","onEditCancel","updateLocalMessage","onEditComment","async","commentId","commentPath","join","customRequest","Object","assign","method","EditComment","logger","debug","error","showError","t","console","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","setTimeout","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","deleteFile","DeleteComment","onNewComment","newComment","resourcePath","response","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","uid","actorType","creationDateTime","Date","toUTCString","objectType","verb","parseInt","headers","split","pop","comment","stat","details","NewComment","localMessage","components","IconArrowRight","IconClose","IconDelete","IconEdit","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","mixins","RichEditorMixin","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","tag","expanded","submitted","isOwnComment","renderedContent","isEmptyMessage","renderContent","trim","timestamp","parse","isLimbo","watch","beforeMount","toString","onSubmit","$nextTick","$refs","$el","focus","onExpand","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","key","fn","proxy","preventDefault","ref","userData","domProps","defineComponent","editorData","search","callback","get","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","forEach","user","values","genMentionsData","mentions","flat","mention","mentionId","icon","label","mentionDisplayName","source","primary","getComments","_ref","datetime","toISOString","offset","responseData","text","result","parseXML","getDirectoryFiles","processResponsePayload","isDetailed","multistatus","responseItems","map","item","propstat","prop","prepareFileFromProps","Comment","NcEmptyContent","RefreshIcon","MessageReplyTextIcon","AlertCircleOutlineIcon","elementVisibility","CommentView","done","currentResourceId","comments","cancelRequest","hasComments","isFirstLoading","onVisibilityChange","isVisible","markCommentsAsRead","date","readMarker","e","update","resetState","onScrollBottomReached","request","abort","controller","AbortController","signal","url","cancelableRequest","unshift","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","n","window","OCA","Comments","View","constructor","pinia","createPinia","propsData","extend","CommentsApp","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","r","getter","__esModule","d","a","definition","o","defineProperty","enumerable","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","obj","prototype","hasOwnProperty","l","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core-common.js b/dist/core-common.js index 36f9fd23cf9d8..a95715491310e 100644 --- a/dist/core-common.js +++ b/dist/core-common.js @@ -1,2 +1,2 @@ -(self.webpackChunknextcloud=self.webpackChunknextcloud||[]).push([[4208],{30352:(e,t,n)=>{"use strict";n.d(t,{ZL:()=>l});var a=n(85471);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}var i={selector:"vue-portal-target-".concat(((e=21)=>{let t="",n=e;for(;n--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t})())},o="undefined"!=typeof window&&void 0!==("undefined"==typeof document?"undefined":r(document)),s=a.Ay.extend({abstract:!0,name:"PortalOutlet",props:["nodes","tag"],data:function(e){return{updatedNodes:e.nodes}},render:function(e){var t=this.updatedNodes&&this.updatedNodes();return t?1!==t.length||t[0].text?e(this.tag||"DIV",t):t:e()},destroyed:function(){var e=this.$el;e&&e.parentNode.removeChild(e)}}),l=a.Ay.extend({name:"VueSimplePortal",props:{disabled:{type:Boolean},prepend:{type:Boolean},selector:{type:String,default:function(){return"#".concat(i.selector)}},tag:{type:String,default:"DIV"}},render:function(e){if(this.disabled){var t=this.$scopedSlots&&this.$scopedSlots.default();return t?t.length<2&&!t[0].text?t:e(this.tag,t):e()}return e()},created:function(){this.getTargetEl()||this.insertTargetEl()},updated:function(){var e=this;this.$nextTick((function(){e.disabled||e.slotFn===e.$scopedSlots.default||(e.container.updatedNodes=e.$scopedSlots.default),e.slotFn=e.$scopedSlots.default}))},beforeDestroy:function(){this.unmount()},watch:{disabled:{immediate:!0,handler:function(e){e?this.unmount():this.$nextTick(this.mount)}}},methods:{getTargetEl:function(){if(o)return document.querySelector(this.selector)},insertTargetEl:function(){if(o){var e=document.querySelector("body"),t=document.createElement(this.tag);t.id=this.selector.substring(1),e.appendChild(t)}},mount:function(){if(o){var e=this.getTargetEl(),t=document.createElement("DIV");this.prepend&&e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t),this.container=new s({el:t,parent:this,propsData:{tag:this.tag,nodes:this.$scopedSlots.default}})}},unmount:function(){this.container&&(this.container.$destroy(),delete this.container)}}});"undefined"!=typeof window&&window.Vue&&window.Vue===a.Ay&&a.Ay.use((function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.component(n.name||"portal",l),n.defaultSelector&&(t=n.defaultSelector,i.selector=t)}))},42660:(e,t,n)=>{"use strict";var a=n(49574),r=Object.prototype.hasOwnProperty,i={align:"text-align",valign:"vertical-align",height:"height",width:"width"};function o(e){var t;if("tr"===e.tagName||"td"===e.tagName||"th"===e.tagName)for(t in i)r.call(i,t)&&void 0!==e.properties[t]&&(s(e,i[t],e.properties[t]),delete e.properties[t])}function s(e,t,n){var a=(e.properties.style||"").trim();a&&!/;\s*/.test(a)&&(a+=";"),a&&(a+=" ");var r=a+t+": "+n+";";e.properties.style=r}e.exports=function(e){return a(e,"element",o),e}},20856:e=>{"use strict";function t(e){if("string"==typeof e)return function(e){return function(t){return Boolean(t&&t.type===e)}}(e);if(null==e)return r;if("object"==typeof e)return("length"in e?a:n)(e);if("function"==typeof e)return e;throw new Error("Expected function, string, or object as test")}function n(e){return function(t){var n;for(n in e)if(t[n]!==e[n])return!1;return!0}}function a(e){var n=function(e){for(var n=[],a=e.length,r=-1;++r{"use strict";e.exports=s;var a=n(20856),r=!0,i="skip",o=!1;function s(e,t,n,r){var s;"function"==typeof t&&"function"!=typeof n&&(r=n,n=t,t=null),s=a(t),function e(a,u,d){var c,m=[];return(t&&!s(a,u,d[d.length-1]||null)||(m=l(n(a,d)))[0]!==o)&&a.children&&m[0]!==i?(c=l(function(t,n){for(var a,i=r?-1:1,s=(r?t.length:-1)+i;s>-1&&s{"use strict";e.exports=s;var a=n(29222),r=a.CONTINUE,i=a.SKIP,o=a.EXIT;function s(e,t,n,r){"function"==typeof t&&"function"!=typeof n&&(r=n,n=t,t=null),a(e,t,(function(e,t){var a=t[t.length-1],r=a?a.children.indexOf(e):null;return n(e,r,a)}),r)}s.CONTINUE=r,s.SKIP=i,s.EXIT=o},59097:(e,t,n)=>{"use strict";t.c0=function(e){return new a.default(e)};var a=r(n(59457));r(n(50432));function r(e){return e&&e.__esModule?e:{default:e}}},50432:(e,t)=>{"use strict";function n(e,t,n){return(t="symbol"==typeof(a=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?a:a+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e;var a}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;class a{constructor(e,t,r){n(this,"scope",void 0),n(this,"wrapped",void 0),this.scope="".concat(r?a.GLOBAL_SCOPE_PERSISTENT:a.GLOBAL_SCOPE_VOLATILE,"_").concat(btoa(e),"_"),this.wrapped=t}scopeKey(e){return"".concat(this.scope).concat(e)}setItem(e,t){this.wrapped.setItem(this.scopeKey(e),t)}getItem(e){return this.wrapped.getItem(this.scopeKey(e))}removeItem(e){this.wrapped.removeItem(this.scopeKey(e))}clear(){Object.keys(this.wrapped).filter((e=>e.startsWith(this.scope))).map(this.wrapped.removeItem.bind(this.wrapped))}}t.default=a,n(a,"GLOBAL_SCOPE_VOLATILE","nextcloud_vol"),n(a,"GLOBAL_SCOPE_PERSISTENT","nextcloud_per")},59457:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,r=(a=n(50432))&&a.__esModule?a:{default:a};function i(e,t,n){return(t="symbol"==typeof(a=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?a:a+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e;var a}t.default=class{constructor(e){i(this,"appId",void 0),i(this,"persisted",!1),i(this,"clearedOnLogout",!1),this.appId=e}persist(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.persisted=e,this}clearOnLogout(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.clearedOnLogout=e,this}build(){return new r.default(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}},80599:(e,t,n)=>{"use strict";n(25440)},9052:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n="~";function a(){}function r(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,a,i,o){if("function"!=typeof a)throw new TypeError("The listener must be a function");var s=new r(a,i||e,o),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],s]:e._events[l].push(s):(e._events[l]=s,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new a:delete e._events[t]}function s(){this._events=new a,this._eventsCount=0}Object.create&&(a.prototype=Object.create(null),(new a).__proto__||(n=!1)),s.prototype.eventNames=function(){var e,a,r=[];if(0===this._eventsCount)return r;for(a in e=this._events)t.call(e,a)&&r.push(n?a.slice(1):a);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(e)):r},s.prototype.listeners=function(e){var t=n?n+e:e,a=this._events[t];if(!a)return[];if(a.fn)return[a.fn];for(var r=0,i=a.length,o=new Array(i);r{var e={646:e=>{e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},860:e=>{e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},319:(e,t,n)=>{var a=n(646),r=n(860),i=n(206);e.exports=function(e){return a(e)||r(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};return(()=>{"use strict";n.r(r),n.d(r,{VueSelect:()=>v,default:()=>A,mixins:()=>b});var e=n(319),t=n.n(e),i=n(8),o=n.n(i),s=n(713),l=n.n(s);const u={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(e){var t=this;this.autoscroll&&e&&this.$nextTick((function(){return t.maybeAdjustScroll()}))}},methods:{maybeAdjustScroll:function(){var e,t=(null===(e=this.$refs.dropdownMenu)||void 0===e?void 0:e.children[this.typeAheadPointer])||!1;if(t){var n=this.getDropdownViewport(),a=t.getBoundingClientRect(),r=a.top,i=a.bottom,o=a.height;if(rn.bottom)return this.$refs.dropdownMenu.scrollTop=t.offsetTop-(n.height-o)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},d={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){if(this.resetFocusOnOptionsChange)for(var e=0;e=0;e--)if(this.selectable(this.filteredOptions[e])){this.typeAheadPointer=e;break}},typeAheadDown:function(){for(var e=this.typeAheadPointer+1;e0&&void 0!==arguments[0]?arguments[0]:null;return this.mutableLoading=null==e?!this.mutableLoading:e}}};function m(e,t,n,a,r,i,o,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),o?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(e,t){return l.call(t),d(e,t)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:u}}const h={Deselect:m({},(function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"}},[t("path",{attrs:{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"}})])}),[],!1,null,null,null).exports,OpenIndicator:m({},(function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"}},[t("path",{attrs:{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"}})])}),[],!1,null,null,null).exports},f={inserted:function(e,t,n){var a=n.context;if(a.appendToBody){document.body.appendChild(e);var r=a.$refs.toggle.getBoundingClientRect(),i=r.height,o=r.top,s=r.left,l=r.width,u=window.scrollX||window.pageXOffset,d=window.scrollY||window.pageYOffset;e.unbindPosition=a.calculatePosition(e,a,{width:l+"px",left:u+s+"px",top:d+o+i+"px"})}},unbind:function(e,t,n){n.context.appendToBody&&(e.unbindPosition&&"function"==typeof e.unbindPosition&&e.unbindPosition(),e.parentNode&&e.parentNode.removeChild(e))}};var p=0;function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function _(e){for(var t=1;t-1}},filter:{type:Function,default:function(e,t){var n=this;return e.filter((function(e){var a=n.getOptionLabel(e);return"number"==typeof a&&(a=a.toString()),n.filterBy(e,a,t)}))}},createOption:{type:Function,default:function(e){return"object"===o()(this.optionList[0])?l()({},this.label,e):e}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:function(e){return["function","boolean"].includes(o()(e))}},clearSearchOnBlur:{type:Function,default:function(e){var t=e.clearSearchOnSelect,n=e.multiple;return t&&!n}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:function(e,t){return e}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(e,t,n){var a=n.width,r=n.top,i=n.left;e.style.top=r,e.style.left=i,e.style.width=a}},dropdownShouldOpen:{type:Function,default:function(e){var t=e.noDrop,n=e.open,a=e.mutableLoading;return!t&&n&&!a}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:function(){return++p}}},data:function(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[]}},computed:{isTrackingValues:function(){return void 0===this.value||this.$options.propsData.hasOwnProperty("reduce")},selectedValue:function(){var e=this.value;return this.isTrackingValues&&(e=this.$data._value),null!=e&&""!==e?[].concat(e):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var e=this,t={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:_({id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":"vs-".concat(this.uid,"__listbox"),"aria-owns":"vs-".concat(this.uid,"__listbox"),"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":"vs-".concat(this.uid,"__option-").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return e.isComposing=!0},compositionend:function(){return e.isComposing=!1},keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(t){return e.search=t.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:t,listFooter:t,header:_({},t,{deselect:this.deselect}),footer:_({},t,{deselect:this.deselect})}},childComponents:function(){return _({},h,{},this.components)},stateClasses:function(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return this.dropdownShouldOpen(this)},searchPlaceholder:function(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions:function(){var e=this,t=function(t){return null!==e.limit?t.slice(0,e.limit):t},n=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return t(n);var a=this.search.length?this.filter(n,this.search,this):n;if(this.taggable&&this.search.length){var r=this.createOption(this.search);this.optionExists(r)||a.unshift(r)}return t(a)},isValueEmpty:function(){return 0===this.selectedValue.length},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options:function(e,t){var n=this;!this.taggable&&("function"==typeof n.resetOnOptionsChange?n.resetOnOptionsChange(e,t,n.selectedValue):n.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:{immediate:!0,handler:function(e){this.isTrackingValues&&this.setInternalValueFromOptions(e)}},multiple:function(){this.clearSelection()},open:function(e){this.$emit(e?"open":"close")},search:function(e){e.length&&(this.open=!0)}},created:function(){this.mutableLoading=this.loading,this.$on("option:created",this.pushTag)},methods:{setInternalValueFromOptions:function(e){var t=this;Array.isArray(e)?this.$data._value=e.map((function(e){return t.findOptionFromReducedValue(e)})):this.$data._value=this.findOptionFromReducedValue(e)},select:function(e){this.$emit("option:selecting",e),this.isOptionSelected(e)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(e):(this.taggable&&!this.optionExists(e)&&this.$emit("option:created",e),this.multiple&&(e=this.selectedValue.concat(e)),this.updateValue(e),this.$emit("option:selected",e)),this.onAfterSelect(e)},deselect:function(e){var t=this;this.$emit("option:deselecting",e),this.updateValue(this.selectedValue.filter((function(n){return!t.optionComparator(n,e)}))),this.$emit("option:deselected",e)},keyboardDeselect:function(e,t){var n,a;this.deselect(e);var r=null===(n=this.$refs.deselectButtons)||void 0===n?void 0:n[t+1],i=null===(a=this.$refs.deselectButtons)||void 0===a?void 0:a[t-1],o=null!=r?r:i;o?o.focus():this.searchEl.focus()},clearSelection:function(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect:function(e){var t=this;this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick((function(){return t.$refs.search.focus()}))},updateValue:function(e){var t=this;void 0===this.value&&(this.$data._value=e),null!==e&&(e=Array.isArray(e)?e.map((function(e){return t.reduce(e)})):this.reduce(e)),this.$emit("input",e)},toggleDropdown:function(e){var n=e.target!==this.searchEl;n&&e.preventDefault();var a=[].concat(t()(this.$refs.deselectButtons||[]),t()([this.$refs.clearButton]||0));void 0===this.searchEl||a.filter(Boolean).some((function(t){return t.contains(e.target)||t===e.target}))?e.preventDefault():this.open&&n?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(e){var t=this;return this.selectedValue.some((function(n){return t.optionComparator(n,e)}))},isOptionDeselectable:function(e){return this.isOptionSelected(e)&&this.deselectFromDropdown},hasKeyboardFocusBorder:function(e){return!(!this.keyboardFocusBorder||!this.isKeyboardNavigation)&&e===this.typeAheadPointer},optionComparator:function(e,t){return this.getOptionKey(e)===this.getOptionKey(t)},findOptionFromReducedValue:function(e){var n=this,a=[].concat(t()(this.options),t()(this.pushedTags)).filter((function(t){return JSON.stringify(n.reduce(t))===JSON.stringify(e)}));return 1===a.length?a[0]:a.find((function(e){return n.optionComparator(e,n.$data._value)}))||e},closeSearchOptions:function(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var e=null;this.multiple&&(e=t()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(e)}},optionExists:function(e){var t=this;return this.optionList.some((function(n){return t.optionComparator(n,e)}))},optionAriaSelected:function(e){return this.selectable(e)?String(this.isOptionSelected(e)):null},normalizeOptionForSlot:function(e){return"object"===o()(e)?e:l()({},this.label,e)},pushTag:function(e){this.pushedTags.push(e)},onEscape:function(){this.search.length?this.search="":this.open=!1},onSearchBlur:function(){if(!this.mousedown||this.searching){var e=this.clearSearchOnSelect,t=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:e,multiple:t})&&(this.search=""),void this.closeSearchOptions()}this.mousedown=!1,0!==this.search.length||0!==this.options.length||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit("search:focus")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onMouseMove:function(e,t){this.isKeyboardNavigation=!1,this.selectable(e)&&(this.typeAheadPointer=t)},onSearchKeyDown:function(e){var t=this,n=function(e){if(e.preventDefault(),t.open)return!t.isComposing&&t.typeAheadSelect();t.open=!0},a={8:function(e){return t.maybeDeleteValue()},9:function(e){return t.onTab()},27:function(e){return t.onEscape()},38:function(e){if(e.preventDefault(),t.isKeyboardNavigation=!0,t.open)return t.typeAheadUp();t.open=!0},40:function(e){if(e.preventDefault(),t.isKeyboardNavigation=!0,t.open)return t.typeAheadDown();t.open=!0}};this.selectOnKeyCodes.forEach((function(e){return a[e]=n}));var r=this.mapKeydown(a,this);if("function"==typeof r[e.keyCode])return r[e.keyCode](e)},onSearchKeyPress:function(e){this.open||32!==e.keyCode||(e.preventDefault(),this.open=!0)}}},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"v-select",class:e.stateClasses,attrs:{id:"v-select-"+e.uid,dir:e.dir}},[e._t("header",null,null,e.scope.header),e._v(" "),n("div",{ref:"toggle",staticClass:"vs__dropdown-toggle"},[n("div",{ref:"selectedOptions",staticClass:"vs__selected-options",on:{mousedown:e.toggleDropdown}},[e._l(e.selectedValue,(function(t,a){return e._t("selected-option-container",[n("span",{key:e.getOptionKey(t),staticClass:"vs__selected"},[e._t("selected-option",[e._v("\n "+e._s(e.getOptionLabel(t))+"\n ")],null,e.normalizeOptionForSlot(t)),e._v(" "),e.multiple?n("button",{ref:"deselectButtons",refInFor:!0,staticClass:"vs__deselect",attrs:{disabled:e.disabled,type:"button",title:e.ariaLabelDeselectOption(e.getOptionLabel(t)),"aria-label":e.ariaLabelDeselectOption(e.getOptionLabel(t))},on:{mousedown:function(n){return n.stopPropagation(),e.deselect(t)},keydown:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:e.keyboardDeselect(t,a)}}},[n(e.childComponents.Deselect,{tag:"component"})],1):e._e()],2)],{option:e.normalizeOptionForSlot(t),deselect:e.deselect,multiple:e.multiple,disabled:e.disabled})})),e._v(" "),e._t("search",[n("input",e._g(e._b({staticClass:"vs__search"},"input",e.scope.search.attributes,!1),e.scope.search.events))],null,e.scope.search)],2),e._v(" "),n("div",{ref:"actions",staticClass:"vs__actions"},[n("button",{directives:[{name:"show",rawName:"v-show",value:e.showClearButton,expression:"showClearButton"}],ref:"clearButton",staticClass:"vs__clear",attrs:{disabled:e.disabled,type:"button",title:e.ariaLabelClearSelected,"aria-label":e.ariaLabelClearSelected},on:{click:e.clearSelection}},[n(e.childComponents.Deselect,{tag:"component"})],1),e._v(" "),e.noDrop?e._e():n("button",{ref:"openIndicatorButton",staticClass:"vs__open-indicator-button",attrs:{type:"button",tabindex:"-1","aria-labelledby":"vs-"+e.uid+"__listbox","aria-controls":"vs-"+e.uid+"__listbox","aria-expanded":e.dropdownOpen.toString()},on:{mousedown:e.toggleDropdown}},[e._t("open-indicator",[n(e.childComponents.OpenIndicator,e._b({tag:"component"},"component",e.scope.openIndicator.attributes,!1))],null,e.scope.openIndicator)],2),e._v(" "),e._t("spinner",[n("div",{directives:[{name:"show",rawName:"v-show",value:e.mutableLoading,expression:"mutableLoading"}],staticClass:"vs__spinner"},[e._v("Loading...")])],null,e.scope.spinner)],2)]),e._v(" "),n("transition",{attrs:{name:e.transition}},[e.dropdownOpen?n("ul",{directives:[{name:"append-to-body",rawName:"v-append-to-body"}],key:"vs-"+e.uid+"__listbox",ref:"dropdownMenu",staticClass:"vs__dropdown-menu",attrs:{id:"vs-"+e.uid+"__listbox",role:"listbox","aria-label":e.ariaLabelListbox,"aria-multiselectable":e.multiple,tabindex:"-1"},on:{mousedown:function(t){return t.preventDefault(),e.onMousedown(t)},mouseup:e.onMouseUp}},[e._t("list-header",null,null,e.scope.listHeader),e._v(" "),e._l(e.filteredOptions,(function(t,a){return n("li",{key:e.getOptionKey(t),staticClass:"vs__dropdown-option",class:{"vs__dropdown-option--deselect":e.isOptionDeselectable(t)&&a===e.typeAheadPointer,"vs__dropdown-option--selected":e.isOptionSelected(t),"vs__dropdown-option--highlight":a===e.typeAheadPointer,"vs__dropdown-option--kb-focus":e.hasKeyboardFocusBorder(a),"vs__dropdown-option--disabled":!e.selectable(t)},attrs:{id:"vs-"+e.uid+"__option-"+a,role:"option","aria-selected":e.optionAriaSelected(t)},on:{mousemove:function(n){return e.onMouseMove(t,a)},click:function(n){n.preventDefault(),n.stopPropagation(),e.selectable(t)&&e.select(t)}}},[e._t("option",[e._v("\n "+e._s(e.getOptionLabel(t))+"\n ")],null,e.normalizeOptionForSlot(t))],2)})),e._v(" "),0===e.filteredOptions.length?n("li",{staticClass:"vs__no-options"},[e._t("no-options",[e._v("\n Sorry, no matching options.\n ")],null,e.scope.noOptions)],2):e._e(),e._v(" "),e._t("list-footer",null,null,e.scope.listFooter)],2):n("ul",{staticStyle:{display:"none",visibility:"hidden"},attrs:{id:"vs-"+e.uid+"__listbox",role:"listbox","aria-label":e.ariaLabelListbox}})]),e._v(" "),e._t("footer",null,null,e.scope.footer)],2)}),[],!1,null,null,null).exports,b={ajax:c,pointer:d,pointerScroll:u},A=v})(),r})()},8110:(e,t,n)=>{"use strict";n.d(t,{K:()=>a,N:()=>r});const a="devtools-plugin:setup",r="plugin:settings:set"},80082:(e,t,n)=>{"use strict";function a(){return r().__VUE_DEVTOOLS_GLOBAL_HOOK__}function r(){return"undefined"!=typeof navigator&&"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}}n.d(t,{Cx:()=>i,EW:()=>r,HH:()=>a});const i="function"==typeof Proxy},63757:(e,t,n)=>{"use strict";if(n.d(t,{$q:()=>o}),/^(2(122|131|689|882)|1171|6776|7062)$/.test(n.j))var a=n(80082);if(/^(2(122|131|689|882)|1171|6776|7062)$/.test(n.j))var r=n(8110);if(/^(2(122|131|689|882)|1171|6776|7062)$/.test(n.j))var i=n(7285);function o(e,t){const n=e,o=(0,a.EW)(),s=(0,a.HH)(),l=a.Cx&&n.enableEarlyProxy;if(!s||!o.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__&&l){const e=l?new i.R(n,s):null;(o.__VUE_DEVTOOLS_PLUGINS__=o.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:e}),e&&t(e.proxiedTarget)}else s.emit(r.K,e,t)}},7285:(e,t,n)=>{"use strict";if(n.d(t,{R:()=>i}),/^(2(122|131|689|882)|1171|6776|7062)$/.test(n.j))var a=n(8110);if(/^(2(122|131|689|882)|1171|6776|7062)$/.test(n.j))var r=n(22308);class i{constructor(e,t){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=e,this.hook=t;const n={};if(e.settings)for(const t in e.settings){const a=e.settings[t];n[t]=a.defaultValue}const i=`__vue-devtools-plugin-settings__${e.id}`;let o=Object.assign({},n);try{const e=localStorage.getItem(i),t=JSON.parse(e);Object.assign(o,t)}catch(e){}this.fallbacks={getSettings:()=>o,setSettings(e){try{localStorage.setItem(i,JSON.stringify(e))}catch(e){}o=e},now:()=>(0,r.M)()},t&&t.on(a.N,((e,t)=>{e===this.plugin.id&&this.fallbacks.setSettings(t)})),this.proxiedOn=new Proxy({},{get:(e,t)=>this.target?this.target.on[t]:(...e)=>{this.onQueue.push({method:t,args:e})}}),this.proxiedTarget=new Proxy({},{get:(e,t)=>this.target?this.target[t]:"on"===t?this.proxiedOn:Object.keys(this.fallbacks).includes(t)?(...e)=>(this.targetQueue.push({method:t,args:e,resolve:()=>{}}),this.fallbacks[t](...e)):(...e)=>new Promise((n=>{this.targetQueue.push({method:t,args:e,resolve:n})}))})}async setRealTarget(e){this.target=e;for(const e of this.onQueue)this.target.on[e.method](...e.args);for(const e of this.targetQueue)e.resolve(await this.target[e.method](...e.args))}}},22308:(e,t,n)=>{"use strict";let a,r;function i(){return void 0!==a||("undefined"!=typeof window&&window.performance?(a=!0,r=window.performance):"undefined"!=typeof globalThis&&(null===(e=globalThis.perf_hooks)||void 0===e?void 0:e.performance)?(a=!0,r=globalThis.perf_hooks.performance):a=!1),a?r.now():Date.now();var e}n.d(t,{M:()=>i})},94148:(e,t,n)=>{"use strict";var a=n(65606),r=n(96763);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function o(e,t){for(var n=0;n1?n-1:0),r=1;r1?n-1:0),r=1;r1?n-1:0),r=1;r1?n-1:0),r=1;r{"use strict";var a=n(65606);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;te.length)&&(n=e.length),e.substring(n-t.length,n)===t}var b="",A="",y="",F="",k={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function w(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function C(e){return g(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var E=function(e,t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}(E,e);var n,r,s,d,c=(n=E,r=m(),function(){var e,t=f(n);if(r){var a=f(this).constructor;e=Reflect.construct(t,arguments,a)}else e=t.apply(this,arguments);return l(this,e)});function E(e){var t;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,E),"object"!==p(e)||null===e)throw new _("options","Object",e);var n=e.message,r=e.operator,i=e.stackStartFn,o=e.actual,s=e.expected,d=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=n)t=c.call(this,String(n));else if(a.stderr&&a.stderr.isTTY&&(a.stderr&&a.stderr.getColorDepth&&1!==a.stderr.getColorDepth()?(b="",A="",F="",y=""):(b="",A="",F="",y="")),"object"===p(o)&&null!==o&&"object"===p(s)&&null!==s&&"stack"in o&&o instanceof Error&&"stack"in s&&s instanceof Error&&(o=w(o),s=w(s)),"deepStrictEqual"===r||"strictEqual"===r)t=c.call(this,function(e,t,n){var r="",i="",o=0,s="",l=!1,u=C(e),d=u.split("\n"),c=C(t).split("\n"),m=0,h="";if("strictEqual"===n&&"object"===p(e)&&"object"===p(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===d.length&&1===c.length&&d[0]!==c[0]){var f=d[0].length+c[0].length;if(f<=10){if(!("object"===p(e)&&null!==e||"object"===p(t)&&null!==t||0===e&&0===t))return"".concat(k[n],"\n\n")+"".concat(d[0]," !== ").concat(c[0],"\n")}else if("strictEqualObject"!==n&&f<(a.stderr&&a.stderr.isTTY?a.stderr.columns:80)){for(;d[0][m]===c[0][m];)m++;m>2&&(h="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",m),"^"),m=0)}}for(var g=d[d.length-1],_=c[c.length-1];g===_&&(m++<2?s="\n ".concat(g).concat(s):r=g,d.pop(),c.pop(),0!==d.length&&0!==c.length);)g=d[d.length-1],_=c[c.length-1];var w=Math.max(d.length,c.length);if(0===w){var E=u.split("\n");if(E.length>30)for(E[26]="".concat(b,"...").concat(F);E.length>27;)E.pop();return"".concat(k.notIdentical,"\n\n").concat(E.join("\n"),"\n")}m>3&&(s="\n".concat(b,"...").concat(F).concat(s),l=!0),""!==r&&(s="\n ".concat(r).concat(s),r="");var T=0,x=k[n]+"\n".concat(A,"+ actual").concat(F," ").concat(y,"- expected").concat(F),D=" ".concat(b,"...").concat(F," Lines skipped");for(m=0;m1&&m>2&&(S>4?(i+="\n".concat(b,"...").concat(F),l=!0):S>3&&(i+="\n ".concat(c[m-2]),T++),i+="\n ".concat(c[m-1]),T++),o=m,r+="\n".concat(y,"-").concat(F," ").concat(c[m]),T++;else if(c.length1&&m>2&&(S>4?(i+="\n".concat(b,"...").concat(F),l=!0):S>3&&(i+="\n ".concat(d[m-2]),T++),i+="\n ".concat(d[m-1]),T++),o=m,i+="\n".concat(A,"+").concat(F," ").concat(d[m]),T++;else{var B=c[m],M=d[m],L=M!==B&&(!v(M,",")||M.slice(0,-1)!==B);L&&v(B,",")&&B.slice(0,-1)===M&&(L=!1,M+=","),L?(S>1&&m>2&&(S>4?(i+="\n".concat(b,"...").concat(F),l=!0):S>3&&(i+="\n ".concat(d[m-2]),T++),i+="\n ".concat(d[m-1]),T++),o=m,i+="\n".concat(A,"+").concat(F," ").concat(M),r+="\n".concat(y,"-").concat(F," ").concat(B),T+=2):(i+=r,r="",1!==S&&0!==m||(i+="\n ".concat(M),T++))}if(T>20&&m30)for(h[26]="".concat(b,"...").concat(F);h.length>27;)h.pop();t=1===h.length?c.call(this,"".concat(m," ").concat(h[0])):c.call(this,"".concat(m,"\n\n").concat(h.join("\n"),"\n"))}else{var f=C(o),g="",T=k[r];"notDeepEqual"===r||"notEqual"===r?(f="".concat(k[r],"\n\n").concat(f)).length>1024&&(f="".concat(f.slice(0,1021),"...")):(g="".concat(C(s)),f.length>512&&(f="".concat(f.slice(0,509),"...")),g.length>512&&(g="".concat(g.slice(0,509),"...")),"deepEqual"===r||"equal"===r?f="".concat(T,"\n\n").concat(f,"\n\nshould equal\n\n"):g=" ".concat(r," ").concat(g)),t=c.call(this,"".concat(f).concat(g))}return Error.stackTraceLimit=d,t.generatedMessage=!n,Object.defineProperty(u(t),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),t.code="ERR_ASSERTION",t.actual=o,t.expected=s,t.operator=r,Error.captureStackTrace&&Error.captureStackTrace(u(t),i),t.stack,t.name="AssertionError",l(t)}return s=E,(d=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(e,t){return g(this,i(i({},t),{},{customInspect:!1,depth:0}))}}])&&o(s.prototype,d),Object.defineProperty(s,"prototype",{writable:!1}),E}(d(Error),g.custom);e.exports=E},69597:(e,t,n)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}var o,s,l={};function u(e,t,n){n||(n=Error);var o=function(n){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)}(d,n);var o,s,l,u=(s=d,l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=i(s);if(l){var n=i(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,e)});function d(n,a,r){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),i=u.call(this,function(e,n,a){return"string"==typeof t?t:t(e,n,a)}(n,a,r)),i.code=e,i}return o=d,Object.defineProperty(o,"prototype",{writable:!1}),o}(n);l[e]=o}function d(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(e,t,r){var i,s,l,u,c;if(void 0===o&&(o=n(94148)),o("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(0,4)===s)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))l="The ".concat(e," ").concat(i," ").concat(d(t,"type"));else{var m=("number"!=typeof c&&(c=0),c+1>(u=e).length||-1===u.indexOf(".",c)?"argument":"property");l='The "'.concat(e,'" ').concat(m," ").concat(i," ").concat(d(t,"type"))}return l+". Received type ".concat(a(r))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=n(40537));var r=s.inspect(t);return r.length>128&&(r="".concat(r.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(a,". Received ").concat(r)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var r;return r=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(a(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(r,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),a=0;a0,"At least one arg needs to be specified");var r="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:r+="".concat(t[0]," argument");break;case 2:r+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:r+=t.slice(0,i-1).join(", "),r+=", and ".concat(t[i-1]," arguments")}return"".concat(r," must be specified")}),TypeError),e.exports.codes=l},82299:(e,t,n)=>{"use strict";function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,s=[],l=!0,u=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=i.call(n)).done)&&(s.push(a.value),s.length!==t);l=!0);}catch(e){u=!0,r=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw r}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function L(e){return Object.keys(e).filter(M).concat(d(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function N(e,t){if(e===t)return 0;for(var n=e.length,a=t.length,r=0,i=Math.min(n,a);r{const a=n(34581),{MAX_LENGTH:r,MAX_SAFE_INTEGER:i}=n(12003),{safeRe:o,t:s}=n(47405),l=n(12890),{compareIdentifiers:u}=n(63138);class d{constructor(e,t){if(t=l(t),e instanceof d){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>r)throw new TypeError(`version is longer than ${r} characters`);a("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?o[s.LOOSE]:o[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[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");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t=0;)"number"==typeof this.prerelease[a]&&(this.prerelease[a]++,a=-2);if(-1===a){if(t===this.prerelease.join(".")&&!1===n)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(e)}}if(t){let a=[t,e];!1===n&&(a=[t]),0===u(this.prerelease[0],t)?isNaN(this.prerelease[1])&&(this.prerelease=a):this.prerelease=a}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}e.exports=d},54881:(e,t,n)=>{const a=n(44849);e.exports=(e,t)=>new a(e,t).major},99855:(e,t,n)=>{const a=n(44849);e.exports=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e instanceof a)return e;try{return new a(e,t)}catch(e){if(!n)return null;throw e}}},3974:(e,t,n)=>{const a=n(99855);e.exports=(e,t)=>{const n=a(e,t);return n?n.version:null}},12003:e=>{const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={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}},34581:(e,t,n)=>{var a=n(65606),r=n(96763);const i="object"==typeof a&&a.env&&a.env.NODE_DEBUG&&/\bsemver\b/i.test(a.env.NODE_DEBUG)?function(){for(var e=arguments.length,t=new Array(e),n=0;n{};e.exports=i},63138:e=>{const t=/^[0-9]+$/,n=(e,n)=>{const a=t.test(e),r=t.test(n);return a&&r&&(e=+e,n=+n),e===n?0:a&&!r?-1:r&&!a?1:en(t,e)}},12890:e=>{const t=Object.freeze({loose:!0}),n=Object.freeze({});e.exports=e=>e?"object"!=typeof e?t:e:n},47405:(e,t,n)=>{const{MAX_SAFE_COMPONENT_LENGTH:a,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:i}=n(12003),o=n(34581),s=(t=e.exports={}).re=[],l=t.safeRe=[],u=t.src=[],d=t.t={};let c=0;const m="[a-zA-Z0-9-]",h=[["\\s",1],["\\d",i],[m,r]],f=(e,t,n)=>{const a=(e=>{for(const[t,n]of h)e=e.split(`${t}*`).join(`${t}{0,${n}}`).split(`${t}+`).join(`${t}{1,${n}}`);return e})(t),r=c++;o(e,r,t),d[e]=r,u[r]=t,s[r]=new RegExp(t,n?"g":void 0),l[r]=new RegExp(a,n?"g":void 0)};f("NUMERICIDENTIFIER","0|[1-9]\\d*"),f("NUMERICIDENTIFIERLOOSE","\\d+"),f("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),f("MAINVERSION",`(${u[d.NUMERICIDENTIFIER]})\\.(${u[d.NUMERICIDENTIFIER]})\\.(${u[d.NUMERICIDENTIFIER]})`),f("MAINVERSIONLOOSE",`(${u[d.NUMERICIDENTIFIERLOOSE]})\\.(${u[d.NUMERICIDENTIFIERLOOSE]})\\.(${u[d.NUMERICIDENTIFIERLOOSE]})`),f("PRERELEASEIDENTIFIER",`(?:${u[d.NUMERICIDENTIFIER]}|${u[d.NONNUMERICIDENTIFIER]})`),f("PRERELEASEIDENTIFIERLOOSE",`(?:${u[d.NUMERICIDENTIFIERLOOSE]}|${u[d.NONNUMERICIDENTIFIER]})`),f("PRERELEASE",`(?:-(${u[d.PRERELEASEIDENTIFIER]}(?:\\.${u[d.PRERELEASEIDENTIFIER]})*))`),f("PRERELEASELOOSE",`(?:-?(${u[d.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${u[d.PRERELEASEIDENTIFIERLOOSE]})*))`),f("BUILDIDENTIFIER",`${m}+`),f("BUILD",`(?:\\+(${u[d.BUILDIDENTIFIER]}(?:\\.${u[d.BUILDIDENTIFIER]})*))`),f("FULLPLAIN",`v?${u[d.MAINVERSION]}${u[d.PRERELEASE]}?${u[d.BUILD]}?`),f("FULL",`^${u[d.FULLPLAIN]}$`),f("LOOSEPLAIN",`[v=\\s]*${u[d.MAINVERSIONLOOSE]}${u[d.PRERELEASELOOSE]}?${u[d.BUILD]}?`),f("LOOSE",`^${u[d.LOOSEPLAIN]}$`),f("GTLT","((?:<|>)?=?)"),f("XRANGEIDENTIFIERLOOSE",`${u[d.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),f("XRANGEIDENTIFIER",`${u[d.NUMERICIDENTIFIER]}|x|X|\\*`),f("XRANGEPLAIN",`[v=\\s]*(${u[d.XRANGEIDENTIFIER]})(?:\\.(${u[d.XRANGEIDENTIFIER]})(?:\\.(${u[d.XRANGEIDENTIFIER]})(?:${u[d.PRERELEASE]})?${u[d.BUILD]}?)?)?`),f("XRANGEPLAINLOOSE",`[v=\\s]*(${u[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[d.XRANGEIDENTIFIERLOOSE]})(?:\\.(${u[d.XRANGEIDENTIFIERLOOSE]})(?:${u[d.PRERELEASELOOSE]})?${u[d.BUILD]}?)?)?`),f("XRANGE",`^${u[d.GTLT]}\\s*${u[d.XRANGEPLAIN]}$`),f("XRANGELOOSE",`^${u[d.GTLT]}\\s*${u[d.XRANGEPLAINLOOSE]}$`),f("COERCEPLAIN",`(^|[^\\d])(\\d{1,${a}})(?:\\.(\\d{1,${a}}))?(?:\\.(\\d{1,${a}}))?`),f("COERCE",`${u[d.COERCEPLAIN]}(?:$|[^\\d])`),f("COERCEFULL",u[d.COERCEPLAIN]+`(?:${u[d.PRERELEASE]})?`+`(?:${u[d.BUILD]})?(?:$|[^\\d])`),f("COERCERTL",u[d.COERCE],!0),f("COERCERTLFULL",u[d.COERCEFULL],!0),f("LONETILDE","(?:~>?)"),f("TILDETRIM",`(\\s*)${u[d.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",f("TILDE",`^${u[d.LONETILDE]}${u[d.XRANGEPLAIN]}$`),f("TILDELOOSE",`^${u[d.LONETILDE]}${u[d.XRANGEPLAINLOOSE]}$`),f("LONECARET","(?:\\^)"),f("CARETTRIM",`(\\s*)${u[d.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",f("CARET",`^${u[d.LONECARET]}${u[d.XRANGEPLAIN]}$`),f("CARETLOOSE",`^${u[d.LONECARET]}${u[d.XRANGEPLAINLOOSE]}$`),f("COMPARATORLOOSE",`^${u[d.GTLT]}\\s*(${u[d.LOOSEPLAIN]})$|^$`),f("COMPARATOR",`^${u[d.GTLT]}\\s*(${u[d.FULLPLAIN]})$|^$`),f("COMPARATORTRIM",`(\\s*)${u[d.GTLT]}\\s*(${u[d.LOOSEPLAIN]}|${u[d.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",f("HYPHENRANGE",`^\\s*(${u[d.XRANGEPLAIN]})\\s+-\\s+(${u[d.XRANGEPLAIN]})\\s*$`),f("HYPHENRANGELOOSE",`^\\s*(${u[d.XRANGEPLAINLOOSE]})\\s+-\\s+(${u[d.XRANGEPLAINLOOSE]})\\s*$`),f("STAR","(<|>)?=?\\s*\\*"),f("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),f("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")},44349:function(e,t,n){"use strict";var a;!function(){if("function"!=typeof r){var r=function(e){return e};r.nonNative=!0}const i=r("plaintext"),o=r("html"),s=r("comment"),l=/<(\w*)>/g,u=/<\/?([^\s\/>]+)/;function d(e,t,n){return m(e=e||"",c(t=t||[],n=n||""))}function c(e,t){return{allowable_tags:e=function(e){let t=new Set;if("string"==typeof e){let n;for(;n=l.exec(e);)t.add(n[1])}else r.nonNative||"function"!=typeof e[r.iterator]?"function"==typeof e.forEach&&e.forEach(t.add,t):t=new Set(e);return t}(e),tag_replacement:t,state:i,tag_buffer:"",depth:0,in_quote_char:""}}function m(e,t){if("string"!=typeof e)throw new TypeError("'html' parameter must be a string");let n=t.allowable_tags,a=t.tag_replacement,r=t.state,l=t.tag_buffer,u=t.depth,d=t.in_quote_char,c="";for(let t=0,m=e.length;t":if(d)break;if(u){u--;break}d="",r=i,l+=">",n.has(h(l))?c+=l:c+=a,l="";break;case'"':case"'":d=m===d?"":d||m,l+=m;break;case"-":""===m?("--"==l.slice(-2)&&(r=i),l=""):l+=m)}return t.state=r,t.tag_buffer=l,t.depth=u,t.in_quote_char=d,c}function h(e){let t=u.exec(e);return t?t[1].toLowerCase():null}d.init_streaming_mode=function(e,t){let n=c(e=e||[],t=t||"");return function(e){return m(e||"",n)}},void 0===(a=function(){return d}.call(t,n,t,e))||(e.exports=a)}()},84093:function(e,t,n){var a,r=n(96763);a=function(e){var t=function(e){return new t.lib.init(e)};function n(e,t){return t.offset[e]?isNaN(t.offset[e])?t.offset[e]:t.offset[e]+"px":"0px"}function a(e,t){return!(!e||"string"!=typeof t||!(e.className&&e.className.trim().split(/\s+/gi).indexOf(t)>-1))}return t.defaults={oldestFirst:!0,text:"Toastify is awesome!",node:void 0,duration:3e3,selector:void 0,callback:function(){},destination:void 0,newWindow:!1,close:!1,gravity:"toastify-top",positionLeft:!1,position:"",backgroundColor:"",avatar:"",className:"",stopOnFocus:!0,onClick:function(){},offset:{x:0,y:0},escapeMarkup:!0,ariaLive:"polite",style:{background:""}},t.lib=t.prototype={toastify:"1.12.0",constructor:t,init:function(e){return e||(e={}),this.options={},this.toastElement=null,this.options.text=e.text||t.defaults.text,this.options.node=e.node||t.defaults.node,this.options.duration=0===e.duration?0:e.duration||t.defaults.duration,this.options.selector=e.selector||t.defaults.selector,this.options.callback=e.callback||t.defaults.callback,this.options.destination=e.destination||t.defaults.destination,this.options.newWindow=e.newWindow||t.defaults.newWindow,this.options.close=e.close||t.defaults.close,this.options.gravity="bottom"===e.gravity?"toastify-bottom":t.defaults.gravity,this.options.positionLeft=e.positionLeft||t.defaults.positionLeft,this.options.position=e.position||t.defaults.position,this.options.backgroundColor=e.backgroundColor||t.defaults.backgroundColor,this.options.avatar=e.avatar||t.defaults.avatar,this.options.className=e.className||t.defaults.className,this.options.stopOnFocus=void 0===e.stopOnFocus?t.defaults.stopOnFocus:e.stopOnFocus,this.options.onClick=e.onClick||t.defaults.onClick,this.options.offset=e.offset||t.defaults.offset,this.options.escapeMarkup=void 0!==e.escapeMarkup?e.escapeMarkup:t.defaults.escapeMarkup,this.options.ariaLive=e.ariaLive||t.defaults.ariaLive,this.options.style=e.style||t.defaults.style,e.backgroundColor&&(this.options.style.background=e.backgroundColor),this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var e=document.createElement("div");for(var t in e.className="toastify on "+this.options.className,this.options.position?e.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(e.className+=" toastify-left",r.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):e.className+=" toastify-right",e.className+=" "+this.options.gravity,this.options.backgroundColor&&r.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.'),this.options.style)e.style[t]=this.options.style[t];if(this.options.ariaLive&&e.setAttribute("aria-live",this.options.ariaLive),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)e.appendChild(this.options.node);else if(this.options.escapeMarkup?e.innerText=this.options.text:e.innerHTML=this.options.text,""!==this.options.avatar){var a=document.createElement("img");a.src=this.options.avatar,a.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?e.appendChild(a):e.insertAdjacentElement("afterbegin",a)}if(!0===this.options.close){var i=document.createElement("button");i.type="button",i.setAttribute("aria-label","Close"),i.className="toast-close",i.innerHTML="✖",i.addEventListener("click",function(e){e.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var o=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&o>360?e.insertAdjacentElement("afterbegin",i):e.appendChild(i)}if(this.options.stopOnFocus&&this.options.duration>0){var s=this;e.addEventListener("mouseover",(function(t){window.clearTimeout(e.timeOutValue)})),e.addEventListener("mouseleave",(function(){e.timeOutValue=window.setTimeout((function(){s.removeElement(e)}),s.options.duration)}))}if(void 0!==this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&e.addEventListener("click",function(e){e.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var l=n("x",this.options),u=n("y",this.options),d="left"==this.options.position?l:"-"+l,c="toastify-top"==this.options.gravity?u:"-"+u;e.style.transform="translate("+d+","+c+")"}return e},showToast:function(){var e;if(this.toastElement=this.buildToast(),!(e="string"==typeof this.options.selector?document.getElementById(this.options.selector):this.options.selector instanceof HTMLElement||"undefined"!=typeof ShadowRoot&&this.options.selector instanceof ShadowRoot?this.options.selector:document.body))throw"Root element is not defined";var n=t.defaults.oldestFirst?e.firstChild:e.lastChild;return e.insertBefore(this.toastElement,n),t.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(e){e.className=e.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),e.parentNode&&e.parentNode.removeChild(e),this.options.callback.call(e),t.reposition()}.bind(this),400)}},t.reposition=function(){for(var e,t={top:15,bottom:15},n={top:15,bottom:15},r={top:15,bottom:15},i=document.getElementsByClassName("toastify"),o=0;o0?window.innerWidth:screen.width)<=360?(i[o].style[e]=r[e]+"px",r[e]+=s+15):!0===a(i[o],"toastify-left")?(i[o].style[e]=t[e]+"px",t[e]+=s+15):(i[o].style[e]=n[e]+"px",n[e]+=s+15)}return this},t.lib.init.prototype=t.lib,t},e.exports?e.exports=a():this.Toastify=a()},80284:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>dt});var a=n(82284),r=n(49922);function i(e,t,n){return(t=(0,r.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;n=0)return 1;return 0}(),d=l&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),u))}};function c(e){return e&&"[object Function]"==={}.toString.call(e)}function m(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function h(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function f(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=m(e),n=t.overflow,a=t.overflowX,r=t.overflowY;return/(auto|scroll|overlay)/.test(n+r+a)?e:f(h(e))}function p(e){return e&&e.referenceNode?e.referenceNode:e}var g=l&&!(!window.MSInputMethodContext||!document.documentMode),_=l&&/MSIE 10/.test(navigator.userAgent);function v(e){return 11===e?g:10===e?_:g||_}function b(e){if(!e)return document.documentElement;for(var t=v(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var a=n&&n.nodeName;return a&&"BODY"!==a&&"HTML"!==a?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===m(n,"position")?b(n):n:e?e.ownerDocument.documentElement:document.documentElement}function A(e){return null!==e.parentNode?A(e.parentNode):e}function y(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?e:t,r=n?t:e,i=document.createRange();i.setStart(a,0),i.setEnd(r,0);var o,s,l=i.commonAncestorContainer;if(e!==l&&t!==l||a.contains(r))return"BODY"===(s=(o=l).nodeName)||"HTML"!==s&&b(o.firstElementChild)!==o?b(l):l;var u=A(e);return u.host?y(u.host,t):y(e,A(t).host)}function F(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=e.nodeName;if("BODY"===n||"HTML"===n){var a=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||a)[t]}return e[t]}function k(e,t){var n="x"===t?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+a+"Width"])}function w(e,t,n,a){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],v(10)?parseInt(n["offset"+e])+parseInt(a["margin"+("Height"===e?"Top":"Left")])+parseInt(a["margin"+("Height"===e?"Bottom":"Right")]):0)}function C(e){var t=e.body,n=e.documentElement,a=v(10)&&getComputedStyle(n);return{height:w("Height",t,n,a),width:w("Width",t,n,a)}}var E=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],a=v(10),r="HTML"===t.nodeName,i=S(e),o=S(t),s=f(e),l=m(t),u=parseFloat(l.borderTopWidth),d=parseFloat(l.borderLeftWidth);n&&r&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var c=D({top:i.top-o.top-u,left:i.left-o.left-d,width:i.width,height:i.height});if(c.marginTop=0,c.marginLeft=0,!a&&r){var h=parseFloat(l.marginTop),p=parseFloat(l.marginLeft);c.top-=u-h,c.bottom-=u-h,c.left-=d-p,c.right-=d-p,c.marginTop=h,c.marginLeft=p}return(a&&!n?t.contains(s):t===s&&"BODY"!==s.nodeName)&&(c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=F(t,"top"),r=F(t,"left"),i=n?-1:1;return e.top+=a*i,e.bottom+=a*i,e.left+=r*i,e.right+=r*i,e}(c,t)),c}function M(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===m(e,"position"))return!0;var n=h(e);return!!n&&M(n)}function L(e){if(!e||!e.parentElement||v())return document.documentElement;for(var t=e.parentElement;t&&"none"===m(t,"transform");)t=t.parentElement;return t||document.documentElement}function N(e,t,n,a){var r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},o=r?L(e):y(e,p(t));if("viewport"===a)i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,a=B(e,n),r=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),o=t?0:F(n),s=t?0:F(n,"left");return D({top:o-a.top+a.marginTop,left:s-a.left+a.marginLeft,width:r,height:i})}(o,r);else{var s=void 0;"scrollParent"===a?"BODY"===(s=f(h(t))).nodeName&&(s=e.ownerDocument.documentElement):s="window"===a?e.ownerDocument.documentElement:a;var l=B(s,o,r);if("HTML"!==s.nodeName||M(o))i=l;else{var u=C(e.ownerDocument),d=u.height,c=u.width;i.top+=l.top-l.marginTop,i.bottom=d+l.top,i.left+=l.left-l.marginLeft,i.right=c+l.left}}var m="number"==typeof(n=n||0);return i.left+=m?n:n.left||0,i.top+=m?n:n.top||0,i.right-=m?n:n.right||0,i.bottom-=m?n:n.bottom||0,i}function j(e,t,n,a,r){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var o=N(n,a,i,r),s={top:{width:o.width,height:t.top-o.top},right:{width:o.right-t.right,height:o.height},bottom:{width:o.width,height:o.bottom-t.bottom},left:{width:t.left-o.left,height:o.height}},l=Object.keys(s).map((function(e){return x({key:e},s[e],{area:(t=s[e],t.width*t.height)});var t})).sort((function(e,t){return t.area-e.area})),u=l.filter((function(e){var t=e.width,a=e.height;return t>=n.clientWidth&&a>=n.clientHeight})),d=u.length>0?u[0].key:l[0].key,c=e.split("-")[1];return d+(c?"-"+c:"")}function O(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return B(n,a?L(t):y(t,p(n)),a)}function P(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),a=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+a,height:e.offsetHeight+n}}function Y(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function R(e,t,n){n=n.split("-")[0];var a=P(e),r={width:a.width,height:a.height},i=-1!==["right","left"].indexOf(n),o=i?"top":"left",s=i?"left":"top",l=i?"height":"width",u=i?"width":"height";return r[o]=t[o]+t[l]/2-a[l]/2,r[s]=n===s?t[s]-a[u]:t[Y(s)],r}function I(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function H(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===n}));var a=I(e,(function(e){return e[t]===n}));return e.indexOf(a)}(e,"name",n))).forEach((function(e){e.function&&s.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&c(n)&&(t.offsets.popper=D(t.offsets.popper),t.offsets.reference=D(t.offsets.reference),t=n(t,e))})),t}function z(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=O(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=j(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=R(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=H(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function U(e,t){return e.some((function(e){var n=e.name;return e.enabled&&n===t}))}function q(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),a=0;a1&&void 0!==arguments[1]&&arguments[1],n=ne.indexOf(e),a=ne.slice(n+1).concat(ne.slice(0,n));return t?a.reverse():a}var re={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],a=t.split("-")[1];if(a){var r=e.offsets,i=r.reference,o=r.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",u=s?"width":"height",d={start:T({},l,i[l]),end:T({},l,i[l]+i[u]-o[u])};e.offsets.popper=x({},o,d[a])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n,a=t.offset,r=e.placement,i=e.offsets,o=i.popper,l=i.reference,u=r.split("-")[0];return n=K(+a)?[+a,0]:function(e,t,n,a){var r=[0,0],i=-1!==["right","left"].indexOf(a),o=e.split(/(\+|\-)/).map((function(e){return e.trim()})),l=o.indexOf(I(o,(function(e){return-1!==e.search(/,|\s/)})));o[l]&&-1===o[l].indexOf(",")&&s.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var u=/\s*,\s*|\s+/,d=-1!==l?[o.slice(0,l).concat([o[l].split(u)[0]]),[o[l].split(u)[1]].concat(o.slice(l+1))]:[o];return(d=d.map((function(e,a){var r=(1===a?!i:i)?"height":"width",o=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,o=!0,e):o?(e[e.length-1]+=t,o=!1,e):e.concat(t)}),[]).map((function(e){return function(e,t,n,a){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+r[1],o=r[2];return i?0===o.indexOf("%")?D("%p"===o?n:a)[t]/100*i:"vh"===o||"vw"===o?("vh"===o?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i:i:e}(e,r,t,n)}))}))).forEach((function(e,t){e.forEach((function(n,a){K(n)&&(r[t]+=n*("-"===e[a-1]?-1:1))}))})),r}(a,o,l,u),"left"===u?(o.top+=n[0],o.left-=n[1]):"right"===u?(o.top+=n[0],o.left+=n[1]):"top"===u?(o.left+=n[0],o.top-=n[1]):"bottom"===u&&(o.left+=n[0],o.top+=n[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||b(e.instance.popper);e.instance.reference===n&&(n=b(n));var a=q("transform"),r=e.instance.popper.style,i=r.top,o=r.left,s=r[a];r.top="",r.left="",r[a]="";var l=N(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);r.top=i,r.left=o,r[a]=s,t.boundaries=l;var u=t.priority,d=e.offsets.popper,c={primary:function(e){var n=d[e];return d[e]l[e]&&!t.escapeWithReference&&(a=Math.min(d[n],l[e]-("right"===e?d.width:d.height))),T({},n,a)}};return u.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=x({},d,c[t](e))})),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,a=t.reference,r=e.placement.split("-")[0],i=Math.floor,o=-1!==["top","bottom"].indexOf(r),s=o?"right":"bottom",l=o?"left":"top",u=o?"width":"height";return n[s]i(a[s])&&(e.offsets.popper[l]=i(a[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!ee(e.instance.modifiers,"arrow","keepTogether"))return e;var a=t.element;if("string"==typeof a){if(!(a=e.instance.popper.querySelector(a)))return e}else if(!e.instance.popper.contains(a))return s.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var r=e.placement.split("-")[0],i=e.offsets,o=i.popper,l=i.reference,u=-1!==["left","right"].indexOf(r),d=u?"height":"width",c=u?"Top":"Left",h=c.toLowerCase(),f=u?"left":"top",p=u?"bottom":"right",g=P(a)[d];l[p]-go[p]&&(e.offsets.popper[h]+=l[h]+g-o[p]),e.offsets.popper=D(e.offsets.popper);var _=l[h]+l[d]/2-g/2,v=m(e.instance.popper),b=parseFloat(v["margin"+c]),A=parseFloat(v["border"+c+"Width"]),y=_-e.offsets.popper[h]-b-A;return y=Math.max(Math.min(o[d]-g,y),0),e.arrowElement=a,e.offsets.arrow=(T(n={},h,Math.round(y)),T(n,f,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(U(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=N(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),a=e.placement.split("-")[0],r=Y(a),i=e.placement.split("-")[1]||"",o=[];switch(t.behavior){case"flip":o=[a,r];break;case"clockwise":o=ae(a);break;case"counterclockwise":o=ae(a,!0);break;default:o=t.behavior}return o.forEach((function(s,l){if(a!==s||o.length===l+1)return e;a=e.placement.split("-")[0],r=Y(a);var u=e.offsets.popper,d=e.offsets.reference,c=Math.floor,m="left"===a&&c(u.right)>c(d.left)||"right"===a&&c(u.left)c(d.top)||"bottom"===a&&c(u.top)c(n.right),p=c(u.top)c(n.bottom),_="left"===a&&h||"right"===a&&f||"top"===a&&p||"bottom"===a&&g,v=-1!==["top","bottom"].indexOf(a),b=!!t.flipVariations&&(v&&"start"===i&&h||v&&"end"===i&&f||!v&&"start"===i&&p||!v&&"end"===i&&g),A=!!t.flipVariationsByContent&&(v&&"start"===i&&f||v&&"end"===i&&h||!v&&"start"===i&&g||!v&&"end"===i&&p),y=b||A;(m||_||y)&&(e.flipped=!0,(m||_)&&(a=o[l+1]),y&&(i=function(e){return"end"===e?"start":"start"===e?"end":e}(i)),e.placement=a+(i?"-"+i:""),e.offsets.popper=x({},e.offsets.popper,R(e.instance.popper,e.offsets.reference,e.placement)),e=H(e.instance.modifiers,e,"flip"))})),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],a=e.offsets,r=a.popper,i=a.reference,o=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return r[o?"left":"top"]=i[n]-(s?r[o?"width":"height"]:0),e.placement=Y(t),e.offsets.popper=D(r),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ee(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=I(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(a.update)},this.update=d(this.update.bind(this)),this.options=x({},e.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(x({},e.Defaults.modifiers,r.modifiers)).forEach((function(t){a.options.modifiers[t]=x({},e.Defaults.modifiers[t]||{},r.modifiers?r.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return x({name:e},a.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&c(e.onLoad)&&e.onLoad(a.reference,a.popper,a.options,e,a.state)})),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return E(e,[{key:"update",value:function(){return z.call(this)}},{key:"destroy",value:function(){return G.call(this)}},{key:"enableEventListeners",value:function(){return V.call(this)}},{key:"disableEventListeners",value:function(){return X.call(this)}}]),e}();oe.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,oe.placements=te,oe.Defaults=ie;const se=oe;var le,ue=n(2404),de=n.n(ue);function ce(){ce.init||(ce.init=!0,le=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}())}function me(e,t,n,a,r,i,o,s,l,u){"boolean"!=typeof o&&(l=s,s=o,o=!1);var d,c="function"==typeof n?n.options:n;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,r&&(c.functional=!0)),a&&(c._scopeId=a),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},c._ssrRegister=d):t&&(d=o?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),d)if(c.functional){var m=c.render;c.render=function(e,t){return d.call(t),m(e,t)}}else{var h=c.beforeCreate;c.beforeCreate=h?[].concat(h,d):[d]}return n}var he={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;ce(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",le&&this.$el.appendChild(t),t.data="about:blank",le||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},fe=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};fe._withStripped=!0;var pe=me({render:fe,staticRenderFns:[]},void 0,he,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),ge={version:"1.0.1",install:function(e){e.component("resize-observer",pe),e.component("ResizeObserver",pe)}},_e=null;"undefined"!=typeof window?_e=window.Vue:void 0!==n.g&&(_e=n.g.Vue),_e&&_e.use(ge);var ve=n(55364),be=n.n(ve),Ae=n(96763),ye=function(){};function Fe(e){return"string"==typeof e&&(e=e.split(" ")),e}function ke(e,t){var n,a=Fe(t);n=e.className instanceof ye?Fe(e.className.baseVal):Fe(e.className),a.forEach((function(e){-1===n.indexOf(e)&&n.push(e)})),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}function we(e,t){var n,a=Fe(t);n=e.className instanceof ye?Fe(e.className.baseVal):Fe(e.className),a.forEach((function(e){var t=n.indexOf(e);-1!==t&&n.splice(t,1)})),e instanceof SVGElement?e.setAttribute("class",n.join(" ")):e.className=n.join(" ")}"undefined"!=typeof window&&(ye=window.SVGAnimatedString);var Ce=!1;if("undefined"!=typeof window){Ce=!1;try{var Ee=Object.defineProperty({},"passive",{get:function(){Ce=!0}});window.addEventListener("test",null,Ee)}catch(e){}}function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function xe(e){for(var t=1;t
',trigger:"hover focus",offset:0},Se=[],Be=function(){function e(t,n){var a=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i(this,"_events",[]),i(this,"_setTooltipNodeEvent",(function(e,t,n,r){var i=e.relatedreference||e.toElement||e.relatedTarget;return!!a._tooltipNode.contains(i)&&(a._tooltipNode.addEventListener(e.type,(function n(i){var o=i.relatedreference||i.toElement||i.relatedTarget;a._tooltipNode.removeEventListener(e.type,n),t.contains(o)||a._scheduleHide(t,r.delay,r,i)})),!0)})),n=xe(xe({},De),n),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=n,this._isOpen=!1,this._init()}return t=e,(n=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,n=e&&e.classes||ze.options.defaultClass;de()(this._classes,n)||(this.setClasses(n),t=!0),e=Pe(e);var a=!1,r=!1;for(var i in this.options.offset===e.offset&&this.options.placement===e.placement||(a=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(r=!0),e)this.options[i]=e[i];if(this._tooltipNode)if(r){var o=this._isOpen;this.dispose(),this._init(),o&&this.show()}else a&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter((function(e){return-1!==["click","hover","focus"].indexOf(e)})),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var n=this,a=window.document.createElement("div");a.innerHTML=t.trim();var r=a.childNodes[0];return r.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),r.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(r.addEventListener("mouseenter",(function(t){return n._scheduleHide(e,n.options.delay,n.options,t)})),r.addEventListener("click",(function(t){return n._scheduleHide(e,n.options.delay,n.options,t)}))),r}},{key:"_setContent",value:function(e,t){var n=this;this.asyncContent=!1,this._applyContent(e,t).then((function(){n.popperInstance&&n.popperInstance.update()}))}},{key:"_applyContent",value:function(e,t){var n=this;return new Promise((function(a,r){var i=t.html,o=n._tooltipNode;if(o){var s=o.querySelector(n.options.innerSelector);if(1===e.nodeType){if(i){for(;s.firstChild;)s.removeChild(s.firstChild);s.appendChild(e)}}else{if("function"==typeof e){var l=e();return void(l&&"function"==typeof l.then?(n.asyncContent=!0,t.loadingClass&&ke(o,t.loadingClass),t.loadingContent&&n._applyContent(t.loadingContent,t),l.then((function(e){return t.loadingClass&&we(o,t.loadingClass),n._applyContent(e,t)})).then(a).catch(r)):n._applyContent(l,t).then(a).catch(r))}i?s.innerHTML=e:s.innerText=e}a()}}))}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var n=!0;this._tooltipNode&&(ke(this._tooltipNode,this._classes),n=!1);var a=this._ensureShown(e,t);return n&&this._tooltipNode&&ke(this._tooltipNode,this._classes),ke(e,["v-tooltip-open"]),a}}},{key:"_ensureShown",value:function(e,t){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,Se.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var a=e.getAttribute("title")||t.title;if(!a)return this;var r=this._create(e,t.template);this._tooltipNode=r,e.setAttribute("aria-describedby",r.id);var i=this._findContainer(t.container,e);this._append(r,i);var o=xe(xe({},t.popperOptions),{},{placement:t.placement});return o.modifiers=xe(xe({},o.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(o.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new se(e,r,o),this._setContent(a,t),requestAnimationFrame((function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame((function(){n._isDisposed?n.dispose():n._isOpen&&r.setAttribute("aria-hidden","false")}))):n.dispose()})),this}},{key:"_noLongerOpen",value:function(){var e=Se.indexOf(this);-1!==e&&Se.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout((function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())}),t)),we(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach((function(t){var n=t.func,a=t.event;e.reference.removeEventListener(a,n)})),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,n){var a=this,r=[],i=[];t.forEach((function(e){switch(e){case"hover":r.push("mouseenter"),i.push("mouseleave"),a.options.hideOnTargetClick&&i.push("click");break;case"focus":r.push("focus"),i.push("blur"),a.options.hideOnTargetClick&&i.push("click");break;case"click":r.push("click"),i.push("click")}})),r.forEach((function(t){var r=function(t){!0!==a._isOpen&&(t.usedByTooltip=!0,a._scheduleShow(e,n.delay,n,t))};a._events.push({event:t,func:r}),e.addEventListener(t,r)})),i.forEach((function(t){var r=function(t){!0!==t.usedByTooltip&&a._scheduleHide(e,n.delay,n,t)};a._events.push({event:t,func:r}),e.addEventListener(t,r)}))}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,n){var a=this,r=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){return a._show(e,n)}),r)}},{key:"_scheduleHide",value:function(e,t,n,a){var r=this,i=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout((function(){if(!1!==r._isOpen&&r._tooltipNode.ownerDocument.body.contains(r._tooltipNode)){if("mouseleave"===a.type&&r._setTooltipNodeEvent(a,e,t,n))return;r._hide(e,n)}}),i)}}])&&o(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,n}();function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Le(e){for(var t=1;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Pe(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:Le({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var n=(0,a.A)(t.offset),r=t.offset;("number"===n||"string"===n&&-1===r.indexOf(","))&&(r="0, ".concat(r)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:r}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function Ye(e,t){for(var n=e.placement,a=0;a2&&void 0!==arguments[2]?arguments[2]:{},r=Re(t),i=void 0!==t.classes?t.classes:ze.options.defaultClass,o=Le({title:r},Pe(Le(Le({},"object"===(0,a.A)(t)?t:{}),{},{placement:Ye(t,n)}))),s=e._tooltip=new Be(e,o);s.setClasses(i),s._vueEl=e;var l=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=l,ke(e,l),s}(e,n,i),void 0!==n.show&&n.show!==e._tooltipOldShow&&(e._tooltipOldShow=n.show,n.show?r.show():r.hide())):Ie(e)}var ze={options:Oe,bind:He,update:He,unbind:function(e){Ie(e)}};function Ue(e){e.addEventListener("click",Ge),e.addEventListener("touchstart",Ze,!!Ce&&{passive:!0})}function qe(e){e.removeEventListener("click",Ge),e.removeEventListener("touchstart",Ze),e.removeEventListener("touchend",$e),e.removeEventListener("touchcancel",We)}function Ge(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ze(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",$e),t.addEventListener("touchcancel",We)}}function $e(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var n=e.changedTouches[0],a=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-a.screenY)<20&&Math.abs(n.screenX-a.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function We(e){e.currentTarget.$_vclosepopover_touch=!1}var Ve={bind:function(e,t){var n=t.value,a=t.modifiers;e.$_closePopoverModifiers=a,(void 0===n||n)&&Ue(e)},update:function(e,t){var n=t.value,a=t.oldValue,r=t.modifiers;e.$_closePopoverModifiers=r,n!==a&&(void 0===n||n?Ue(e):qe(e))},unbind:function(e){qe(e)}};function Xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ke(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},n=t.event;t.skipDelay;var a=t.force;!(void 0!==a&&a)&&this.disabled||(this.$_scheduleShow(n),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame((function(){e.$_beingShowed=!1}))},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,n=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var a=this.$_findContainer(this.container,t);if(!a)return void Ae.warn("No container for popover",this);a.appendChild(n),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame((function(){e.hidden||(e.isOpen=!0)}))}if(!this.popperInstance){var r=Ke(Ke({},this.popperOptions),{},{placement:this.placement});if(r.modifiers=Ke(Ke({},r.modifiers),{},{arrow:Ke(Ke({},r.modifiers&&r.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var i=this.$_getOffset();r.modifiers.offset=Ke(Ke({},r.modifiers&&r.modifiers.offset),{},{offset:i})}this.boundariesElement&&(r.modifiers.preventOverflow=Ke(Ke({},r.modifiers&&r.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new se(t,n,r),requestAnimationFrame((function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame((function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0}))):e.dispose()}))}var o=this.openGroup;if(o)for(var s,l=0;l1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),n)this.$_hide();else{var a=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout((function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}}),a)}},$_setTooltipNodeEvent:function(e){var t=this,n=this.$refs.trigger,a=this.$refs.popover,r=e.relatedreference||e.toElement||e.relatedTarget;return!!a.contains(r)&&(a.addEventListener(e.type,(function r(i){var o=i.relatedreference||i.toElement||i.relatedTarget;a.removeEventListener(e.type,r),n.contains(o)||t.hide({event:i})})),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach((function(t){var n=t.func,a=t.event;e.removeEventListener(a,n)})),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),n&&(this.$_preventOpen=!0,setTimeout((function(){t.$_preventOpen=!1}),300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function at(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=function(n){var a=et[n];if(a.$refs.popover){var r=a.$refs.popover.contains(e.target);requestAnimationFrame((function(){(e.closeAllPopover||e.closePopover&&r||a.autoHide&&!r)&&a.$_handleGlobalClose(e,t)}))}},a=0;a1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var a={};be()(a,Oe,n),lt.options=a,ze.options=a,t.directive("tooltip",ze),t.directive("close-popover",Ve),t.component("VPopover",st)}},get enabled(){return Ne.enabled},set enabled(e){Ne.enabled=e}},ut=null;"undefined"!=typeof window?ut=window.Vue:void 0!==n.g&&(ut=n.g.Vue),ut&&ut.use(lt);const dt=lt},8505:e=>{"use strict";function t(e,t,r){e instanceof RegExp&&(e=n(e,r)),t instanceof RegExp&&(t=n(t,r));var i=a(e,t,r);return i&&{start:i[0],end:i[1],pre:r.slice(0,i[0]),body:r.slice(i[0]+e.length,i[1]),post:r.slice(i[1]+t.length)}}function n(e,t){var n=t.match(e);return n?n[0]:null}function a(e,t,n){var a,r,i,o,s,l=n.indexOf(e),u=n.indexOf(t,l+1),d=l;if(l>=0&&u>0){if(e===t)return[l,u];for(a=[],i=n.length;d>=0&&!s;)d==l?(a.push(d),l=n.indexOf(e,d+1)):1==a.length?s=[a.pop(),u]:((r=a.pop())=0?l:u;a.length&&(s=[i,o])}return s}e.exports=t,t.range=a},85914:function(e,t,n){var a;e=n.nmd(e),function(){var r=(e&&e.exports,"object"==typeof n.g&&n.g);r.global!==r&&r.window;var i=function(e){this.message=e};(i.prototype=new Error).name="InvalidCharacterError";var o=function(e){throw new i(e)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,u={encode:function(e){e=String(e),/[^\0-\xFF]/.test(e)&&o("The string to be encoded contains characters outside of the Latin1 range.");for(var t,n,a,r,i=e.length%3,l="",u=-1,d=e.length-i;++u>18&63)+s.charAt(r>>12&63)+s.charAt(r>>6&63)+s.charAt(63&r);return 2==i?(t=e.charCodeAt(u)<<8,n=e.charCodeAt(++u),l+=s.charAt((r=t+n)>>10)+s.charAt(r>>4&63)+s.charAt(r<<2&63)+"="):1==i&&(r=e.charCodeAt(u),l+=s.charAt(r>>2)+s.charAt(r<<4&63)+"=="),l},decode:function(e){var t=(e=String(e).replace(l,"")).length;t%4==0&&(t=(e=e.replace(/==?$/,"")).length),(t%4==1||/[^+a-zA-Z0-9/]/.test(e))&&o("Invalid character: the string to be decoded is not correctly encoded.");for(var n,a,r=0,i="",u=-1;++u>(-2*r&6)));return i},version:"1.0.0"};void 0===(a=function(){return u}.call(t,n,t,e))||(e.exports=a)}()},67526:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),n=t[0],a=t[1];return 3*(n+a)/4-a},t.toByteArray=function(e){var t,n,i=s(e),o=i[0],l=i[1],u=new r(function(e,t,n){return 3*(t+n)/4-n}(0,o,l)),d=0,c=l>0?o-4:o;for(n=0;n>16&255,u[d++]=t>>8&255,u[d++]=255&t;return 2===l&&(t=a[e.charCodeAt(n)]<<2|a[e.charCodeAt(n+1)]>>4,u[d++]=255&t),1===l&&(t=a[e.charCodeAt(n)]<<10|a[e.charCodeAt(n+1)]<<4|a[e.charCodeAt(n+2)]>>2,u[d++]=t>>8&255,u[d++]=255&t),u},t.fromByteArray=function(e){for(var t,a=e.length,r=a%3,i=[],o=16383,s=0,u=a-r;su?u:s+o));return 1===r?(t=e[a-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[a-2]<<8)+e[a-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],a=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=i[o],a[i.charCodeAt(o)]=o;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,a){for(var r,i,o=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return o.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},68928:(e,t,n)=>{var a=n(8505);e.exports=function(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),g(function(e){return e.split("\\\\").join(r).split("\\{").join(i).split("\\}").join(o).split("\\,").join(s).split("\\.").join(l)}(e),!0).map(d)):[]};var r="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",o="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function u(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function d(e){return e.split(r).join("\\").split(i).join("{").split(o).join("}").split(s).join(",").split(l).join(".")}function c(e){if(!e)return[""];var t=[],n=a("{","}",e);if(!n)return e.split(",");var r=n.pre,i=n.body,o=n.post,s=r.split(",");s[s.length-1]+="{"+i+"}";var l=c(o);return o.length&&(s[s.length-1]+=l.shift(),s.push.apply(s,l)),t.push.apply(t,s),t}function m(e){return"{"+e+"}"}function h(e){return/^-?0\d/.test(e)}function f(e,t){return e<=t}function p(e,t){return e>=t}function g(e,t){var n=[],r=a("{","}",e);if(!r)return[e];var i=r.pre,s=r.post.length?g(r.post,!1):[""];if(/\$$/.test(r.pre))for(var l=0;l=0;if(!y&&!F)return r.post.match(/,.*\}/)?g(e=r.pre+"{"+r.body+o+r.post):[e];if(y)_=r.body.split(/\.\./);else if(1===(_=c(r.body)).length&&1===(_=g(_[0],!1).map(m)).length)return s.map((function(e){return r.pre+_[0]+e}));if(y){var k=u(_[0]),w=u(_[1]),C=Math.max(_[0].length,_[1].length),E=3==_.length?Math.abs(u(_[2])):1,T=f;w0){var M=new Array(B+1).join("0");S=D<0?"-"+M+S.slice(1):M+S}}v.push(S)}}else{v=[];for(var L=0;L<_.length;L++)v.push.apply(v,g(_[L],!1))}for(L=0;L{"use strict";var a=n(96763),r=n(67526),i=n(251),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;var s=2147483647;function l(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return m(e)}return d(e,t,n)}function d(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|g(e,t),a=l(n),r=a.write(e,t);return r!==n&&(a=a.slice(0,r)),a}(e,t);if(ArrayBuffer.isView(e))return function(e){if(z(e,Uint8Array)){var t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(z(e,ArrayBuffer)||e&&z(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(z(e,SharedArrayBuffer)||e&&z(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var a=e.valueOf&&e.valueOf();if(null!=a&&a!==e)return u.from(a,t,n);var r=function(e){if(u.isBuffer(e)){var t=0|p(e.length),n=l(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||U(e.length)?l(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function m(e){return c(e),l(e<0?0:0|p(e))}function h(e){for(var t=e.length<0?0:0|p(e.length),n=l(t),a=0;a=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function g(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||z(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return R(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return I(e).length;default:if(r)return a?-1:R(e).length;t=(""+t).toLowerCase(),r=!0}}function _(e,t,n){var a=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return B(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return D(this,t,n);case"latin1":case"binary":return S(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function v(e,t,n){var a=e[t];e[t]=e[n],e[n]=a}function b(e,t,n,a,r){if(0===e.length)return-1;if("string"==typeof n?(a=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),U(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=u.from(t,a)),u.isBuffer(t))return 0===t.length?-1:A(e,t,n,a,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):A(e,[t],n,a,r);throw new TypeError("val must be string, number or Buffer")}function A(e,t,n,a,r){var i,o=1,s=e.length,l=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;o=2,s/=2,l/=2,n/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(r){var d=-1;for(i=n;is&&(n=s-l),i=n;i>=0;i--){for(var c=!0,m=0;mr&&(a=r):a=r;var i=t.length;a>i/2&&(a=i/2);for(var o=0;o>8,r=n%256,i.push(r),i.push(a);return i}(t,e.length-n),e,n,a)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var a=[],r=t;r239?4:u>223?3:u>191?2:1;if(r+c<=n)switch(c){case 1:u<128&&(d=u);break;case 2:128==(192&(i=e[r+1]))&&(l=(31&u)<<6|63&i)>127&&(d=l);break;case 3:i=e[r+1],o=e[r+2],128==(192&i)&&128==(192&o)&&(l=(15&u)<<12|(63&i)<<6|63&o)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:i=e[r+1],o=e[r+2],s=e[r+3],128==(192&i)&&128==(192&o)&&128==(192&s)&&(l=(15&u)<<18|(63&i)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(d=l)}null===d?(d=65533,c=1):d>65535&&(d-=65536,a.push(d>>>10&1023|55296),d=56320|1023&d),a.push(d),r+=c}return function(e){var t=e.length;if(t<=x)return String.fromCharCode.apply(String,e);for(var n="",a=0;aa.length?u.from(i).copy(a,r):Uint8Array.prototype.set.call(a,i,r);else{if(!u.isBuffer(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(a,r)}r+=i.length}return a},u.byteLength=g,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tn&&(e+=" ... "),""},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(e,t,n,a,r){if(z(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===a&&(a=0),void 0===r&&(r=this.length),t<0||n>e.length||a<0||r>this.length)throw new RangeError("out of range index");if(a>=r&&t>=n)return 0;if(a>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(r>>>=0)-(a>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(i,o),l=this.slice(a,r),d=e.slice(t,n),c=0;c>>=0,isFinite(n)?(n>>>=0,void 0===a&&(a="utf8")):(a=n,n=void 0)}var r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");for(var i=!1;;)switch(a){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return F(this,e,t,n);case"ascii":case"latin1":case"binary":return k(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var x=4096;function D(e,t,n){var a="";n=Math.min(e.length,n);for(var r=t;ra)&&(n=a);for(var r="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,a,r,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function j(e,t,n,a,r,i){if(n+a>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function O(e,t,n,a,r){return t=+t,n>>>=0,r||j(e,0,n,4),i.write(e,t,n,a,23,4),n+4}function P(e,t,n,a,r){return t=+t,n>>>=0,r||j(e,0,n,8),i.write(e,t,n,a,52,8),n+8}u.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||L(e,t,this.length);for(var a=this[e],r=1,i=0;++i>>=0,t>>>=0,n||L(e,t,this.length);for(var a=this[e+--t],r=1;t>0&&(r*=256);)a+=this[e+--t]*r;return a},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||L(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||L(e,t,this.length);for(var a=this[e],r=1,i=0;++i=(r*=128)&&(a-=Math.pow(2,8*t)),a},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||L(e,t,this.length);for(var a=t,r=1,i=this[e+--a];a>0&&(r*=256);)i+=this[e+--a]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return e>>>=0,t||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return e>>>=0,t||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,a){e=+e,t>>>=0,n>>>=0,a||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,i=0;for(this[t]=255&e;++i>>=0,n>>>=0,a||N(this,e,t,n,Math.pow(2,8*n)-1,0);var r=n-1,i=1;for(this[t+r]=255&e;--r>=0&&(i*=256);)this[t+r]=e/i&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeIntLE=function(e,t,n,a){if(e=+e,t>>>=0,!a){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}var i=0,o=1,s=0;for(this[t]=255&e;++i>>=0,!a){var r=Math.pow(2,8*n-1);N(this,e,t,n,r-1,-r)}var i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o|0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeFloatLE=function(e,t,n){return O(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return O(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return P(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return P(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,a){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===a){(t-=3)>-1&&i.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function I(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Y,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function H(e,t,n,a){for(var r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function U(e){return e!=e}var q=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var a=16*n,r=0;r<16;++r)t[a+r]=e[n]+e[r];return t}()},86866:e=>{e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},67691:(e,t)=>{"use strict";t.d=function(e){if(!e)return 0;for(var t=(e=e.toString()).length,n=e.length;n--;){var a=e.charCodeAt(n);56320<=a&&a<=57343&&n--,127{"use strict";var a=n(70453),r=n(10487),i=r(a("String.prototype.indexOf"));e.exports=function(e,t){var n=a(e,!!t);return"function"==typeof n&&i(e,".prototype.")>-1?r(n):n}},10487:(e,t,n)=>{"use strict";var a=n(66743),r=n(70453),i=n(96897),o=n(69675),s=r("%Function.prototype.apply%"),l=r("%Function.prototype.call%"),u=r("%Reflect.apply%",!0)||a.call(l,s),d=n(30655),c=r("%Math.max%");e.exports=function(e){if("function"!=typeof e)throw new o("a function is required");var t=u(a,l,arguments);return i(t,1+c(0,e.length-(arguments.length-1)),!0)};var m=function(){return u(a,s,arguments)};d?d(e.exports,"apply",{value:m}):e.exports.apply=m},36117:function(e,t,n){var a,r,i=n(96763);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&self,a=function(e){"use strict";function t(e,n){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},t(e,n)}function n(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=a(e);if(t){var i=a(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===o(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function r(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw i}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],n=0;n{var a=n(40537),r=n(94148);function i(){return(new Date).getTime()}var o,s=Array.prototype.slice,l={};o=void 0!==n.g&&n.g.console?n.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var u=[[function(){},"log"],[function(){o.log.apply(o,arguments)},"info"],[function(){o.log.apply(o,arguments)},"warn"],[function(){o.warn.apply(o,arguments)},"error"],[function(e){l[e]=i()},"time"],[function(e){var t=l[e];if(!t)throw new Error("No such label: "+e);delete l[e];var n=i()-t;o.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=a.format.apply(null,arguments),o.error(e.stack)},"trace"],[function(e){o.log(a.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=s.call(arguments,1);r.ok(!1,a.format.apply(null,t))}},"assert"]],d=0;d{var t,n;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&n.rotl(e,8)|4278255360&n.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],n=0,a=0;n>>5]|=e[n]<<24-a%32;return t},wordsToBytes:function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},bytesToHex:function(e){for(var t=[],n=0;n>>4).toString(16)),t.push((15&e[n]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],n=0;n>>6*(3-i)&63)):n.push("=");return n.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var n=[],a=0,r=0;a>>6-2*r);return n}},e.exports=n},34076:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,".vue-password-confirmation {\n display: flex;\n flex-direction: column;\n margin-inline: 6px;\n margin-block-end: 6px;\n gap: 10px 0;\n}\n.vue-password-confirmation__form {\n display: flex;\n flex-direction: column;\n gap: 8px 0;\n padding: 2px;\n}\n.vue-password-confirmation__submit {\n align-self: end;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/password-confirmation/dist/style.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;AACb;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,UAAU;EACV,YAAY;AACd;AACA;EACE,eAAe;AACjB",sourcesContent:[".vue-password-confirmation {\n display: flex;\n flex-direction: column;\n margin-inline: 6px;\n margin-block-end: 6px;\n gap: 10px 0;\n}\n.vue-password-confirmation__form {\n display: flex;\n flex-direction: column;\n gap: 8px 0;\n padding: 2px;\n}\n.vue-password-confirmation__submit {\n align-self: end;\n}"],sourceRoot:""}]);const s=/^(2(131|228|689)|7(115|584|801)|1418|4423|5098|6282|8830|9255)$/.test(n.j)?o:null},8567:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"\n.invalid-filename-dialog__input[data-v-3a479259] {\n\t/* Ensure the helper text can always be shown without jumping */\n\tmin-height: calc(var(--default-clickable-area) + 4 * var(--default-font-size));\n}\n.upload-picker[data-v-a005e528] {\n display: inline-flex;\n align-items: center;\n height: var(--default-clickable-area);\n}\n.upload-picker__progress[data-v-a005e528] {\n width: 200px;\n max-width: 0;\n transition: max-width var(--animation-quick) ease-in-out;\n margin-top: 8px;\n}\n.upload-picker__progress p[data-v-a005e528] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-a005e528] {\n max-width: 200px;\n margin-right: 20px;\n margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-a005e528] {\n animation: breathing-a005e528 3s ease-out infinite normal;\n}\n@keyframes breathing-a005e528 {\n0% {\n opacity: 0.5;\n}\n25% {\n opacity: 1;\n}\n60% {\n opacity: 0.5;\n}\n100% {\n opacity: 0.5;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/upload/dist/assets/index-BbS3HZwl.css"],names:[],mappings:";AACA;CACC,+DAA+D;CAC/D,8EAA8E;AAC/E;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,qCAAqC;AACvC;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;AACA;IACI,YAAY;AAChB;AACA;IACI,UAAU;AACd;AACA;IACI,YAAY;AAChB;AACA;IACI,YAAY;AAChB;AACA",sourcesContent:["\n.invalid-filename-dialog__input[data-v-3a479259] {\n\t/* Ensure the helper text can always be shown without jumping */\n\tmin-height: calc(var(--default-clickable-area) + 4 * var(--default-font-size));\n}\n.upload-picker[data-v-a005e528] {\n display: inline-flex;\n align-items: center;\n height: var(--default-clickable-area);\n}\n.upload-picker__progress[data-v-a005e528] {\n width: 200px;\n max-width: 0;\n transition: max-width var(--animation-quick) ease-in-out;\n margin-top: 8px;\n}\n.upload-picker__progress p[data-v-a005e528] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-a005e528] {\n max-width: 200px;\n margin-right: 20px;\n margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-a005e528] {\n animation: breathing-a005e528 3s ease-out infinite normal;\n}\n@keyframes breathing-a005e528 {\n0% {\n opacity: 0.5;\n}\n25% {\n opacity: 1;\n}\n60% {\n opacity: 0.5;\n}\n100% {\n opacity: 0.5;\n}\n}"],sourceRoot:""}]);const s=/^(1171|2882|5102|9804)$/.test(n.j)?o:null},3090:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,":host,:root{--vs-colors--lightest:rgba(60,60,60,0.26);--vs-colors--light:rgba(60,60,60,0.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,0.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-0.115,0.975,0.855);--vs-transition-duration:150ms}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,0.5,0.8,1);--vs-transition-duration:0.15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled .vs__clear,.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__open-indicator,.vs--disabled .vs__open-indicator-button,.vs--disabled .vs__search,.vs--disabled .vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);background-color:transparent;border:0;cursor:pointer;margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{fill:var(--vs-controls-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--loading .vs__selected,.vs--single.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search:-ms-input-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;-webkit-animation:vSelectSpinner 1.1s linear infinite;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39%,.1);border-left-color:rgba(60,60,60,.45);font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}\n\n/*# sourceMappingURL=vue-select.css.map*/","",{version:3,sources:["webpack://VueSelect/src/css/global/variables.css","webpack://VueSelect/src/css/global/component.css","webpack://VueSelect/src/css/global/animations.css","webpack://VueSelect/src/css/global/states.css","webpack://VueSelect/src/css/modules/dropdown-toggle.css","webpack://VueSelect/src/css/modules/open-indicator-button.css","webpack://VueSelect/src/css/modules/open-indicator.css","webpack://VueSelect/src/css/modules/clear.css","webpack://VueSelect/src/css/modules/dropdown-menu.css","webpack://VueSelect/src/css/modules/dropdown-option.css","webpack://VueSelect/src/css/modules/selected.css","webpack://VueSelect/src/css/modules/search-input.css","webpack://VueSelect/src/css/modules/spinner.css","webpack://./node_modules/@nextcloud/vue-select/dist/vue-select.css"],names:[],mappings:"AAAA,YAEI,yCAA6C,CAC7C,qCAAyC,CACzC,sBAAuB,CACvB,qCAAyC,CAGzC,+BAAgC,CAChC,yBAAwC,CACxC,2CAA4C,CAG5C,mBAAoB,CACpB,oBAAqB,CAGrB,8BAA0C,CAC1C,iDAAkD,CAClD,0DAA2D,CAC3D,sCAAuC,CAGvC,4CAA6C,CAC7C,qBAAsB,CACtB,uBAAwB,CACxB,sBAAuB,CAGvB,kCAAmC,CAGnC,2CAA4C,CAC5C,oBAAqB,CACrB,gDAAiD,CAGjD,wBAAyB,CACzB,0CAA2C,CAC3C,iDAAkD,CAClD,iDAAkD,CAClD,iDAAkD,CAGlD,qBAAsB,CACtB,2BAA4B,CAC5B,0BAA2B,CAC3B,6BAA8B,CAC9B,8BAA+B,CAC/B,kEAAmE,CAGnE,4BAA6B,CAC7B,mDAAoD,CACpD,qCAAsC,CAGtC,uCAAwC,CACxC,uCAAwC,CAGxC,uEAAwE,CAGxE,yCAA0C,CAC1C,yCAA0C,CAG1C,kEAAsE,CACtE,8BACJ,CCtEA,UAEE,mBAAoB,CADpB,iBAEF,CAEA,sBAEE,qBACF,CCRA,MACI,yDAA6D,CAC7D,8BACJ,CAGA,kCACI,GACI,sBACJ,CACA,GACI,uBACJ,CACJ,CAEA,0BACI,GACI,sBACJ,CACA,GACI,uBACJ,CACJ,CAGA,8CAEI,mBAAoB,CACpB,qFAEJ,CACA,mCAEI,SACJ,CCvBA,MACI,4CAA6C,CAC7C,kDAAmD,CACnD,oDACJ,CAGI,6LAOI,sCAAuC,CADvC,gCAEJ,CAYA,gCACI,mBACJ,CAEA,8BACI,eAAgB,CAChB,cACJ,CAEA,iCACI,aAAc,CACd,gBACJ,CAEA,sCACI,gBACJ,CC1CJ,qBACI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAGhB,oCAAqC,CACrC,2EAA4E,CAC5E,qCAAsC,CAJtC,YAAa,CACb,eAAkB,CAIlB,kBACJ,CAEA,sBACI,YAAa,CACb,eAAgB,CAChB,WAAY,CACZ,cAAe,CACf,WAAY,CACZ,aAAc,CACd,iBACJ,CAEA,aAEI,kBAAmB,CADnB,YAAa,CAEb,iCACJ,CAGA,qCACI,WACJ,CACA,uCACI,cACJ,CACA,+BACI,+BAAgC,CAChC,2BAA4B,CAC5B,4BACJ,CC/CA,2BAGI,4BAA6B,CAD7B,QAAS,CAET,cAAe,CAHf,SAIJ,CCAA,oBACI,6BAA8B,CAC9B,wCAAyC,CACzC,uFACwC,CACxC,+DACJ,CAIA,8BACI,uDACJ,CAIA,iCACI,SACJ,CCvBA,WACI,6BAA8B,CAG9B,4BAA6B,CAD7B,QAAS,CAET,cAAe,CACf,gBAAiB,CAJjB,SAKJ,CCPA,mBAoBI,gCAAiC,CALjC,2EAA4E,CAE5E,iEAAkE,CADlE,qBAAsB,CAFtB,wCAAyC,CAZzC,qBAAsB,CAmBtB,8BAA+B,CApB/B,aAAc,CAKd,MAAO,CAaP,eAAgB,CAVhB,QAAS,CAET,wCAAyC,CACzC,sCAAuC,CACvC,eAAgB,CALhB,aAAc,CALd,iBAAkB,CAelB,eAAgB,CAbhB,uCAAwC,CAKxC,UAAW,CAHX,kCAeJ,CAEA,gBACI,iBACJ,CC3BA,qBAII,UAAW,CACX,qCAAsC,CAEtC,cAAe,CALf,aAAc,CADd,sBAAuB,CAEvB,yCAA0C,CAG1C,kBAEJ,CAEA,gCACI,+CAAgD,CAChD,6CACJ,CAEA,+BACI,yDACJ,CAEA,+BACI,iDAAkD,CAClD,+CACJ,CAEA,+BACI,sCAAuC,CACvC,oCAAqC,CACrC,sCACJ,CC5BA,cAEI,kBAAmB,CACnB,sCAAuC,CACvC,sGACmC,CACnC,qCAAsC,CACtC,8BAA+B,CAN/B,YAAa,CAOb,iCAAkC,CAClC,gBAAuB,CACvB,WAAY,CACZ,eAAiB,CACjB,SACJ,CAEA,cAQI,6BAA8B,CAN9B,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAKhB,eAAgB,CAFhB,QAAS,CACT,cAAe,CALf,mBAAoB,CAEpB,eAAgB,CAChB,SAAU,CAKV,oDACJ,CAKI,0BACI,4BAA6B,CAC7B,wBACJ,CACA,yEAEI,cAAe,CAEf,UAAY,CADZ,iBAEJ,CACA,wCACI,YACJ,CCpCJ,0CACI,YACJ,CAEA,wJAII,YACJ,CAEA,8BAGI,uBAAgB,CAAhB,oBAAgB,CAAhB,eAAgB,CAQhB,eAAgB,CAJhB,4BAAiB,CAAjB,gBAAiB,CAKjB,eAAgB,CAVhB,kCAAmC,CAanC,WAAY,CAVZ,6BAA8B,CAD9B,iCAAkC,CAKlC,cAAiB,CAKjB,cAAe,CANf,YAAa,CAEb,aAAc,CAGd,OAAQ,CAGR,SACJ,CAEA,8BACI,8CACJ,CAFA,kCACI,8CACJ,CAFA,yBACI,8CACJ,CAQI,8BACI,SACJ,CACA,iDACI,cACJ,CAKA,uEACI,UACJ,CC1DJ,aACI,iBAAkB,CAWlB,qDAA8C,CAA9C,6CAA8C,CAH9C,mCAA+C,CAA/C,oCAA+C,CAN/C,aAAc,CADd,SAAU,CAGV,eAAgB,CADhB,mBAAoB,CAMpB,uFACoE,CAEpE,sBACJ,CACA,gCAEI,iBAAkB,CAElB,UAAW,CACX,yEAA2E,CAF3E,SAGJ,CAGA,0BACI,SACJ;;ACzBA,wCAAwC",sourcesContent:[":root,\n:host {\n --vs-colors--lightest: rgba(60, 60, 60, 0.26);\n --vs-colors--light: rgba(60, 60, 60, 0.5);\n --vs-colors--dark: #333;\n --vs-colors--darkest: rgba(0, 0, 0, 0.15);\n\n /* Search Input */\n --vs-search-input-color: inherit;\n --vs-search-input-bg: rgb(255, 255, 255);\n --vs-search-input-placeholder-color: inherit;\n\n /* Font */\n --vs-font-size: 1rem;\n --vs-line-height: 1.4;\n\n /* Disabled State */\n --vs-state-disabled-bg: rgb(248, 248, 248);\n --vs-state-disabled-color: var(--vs-colors--light);\n --vs-state-disabled-controls-color: var(--vs-colors--light);\n --vs-state-disabled-cursor: not-allowed;\n\n /* Borders */\n --vs-border-color: var(--vs-colors--lightest);\n --vs-border-width: 1px;\n --vs-border-style: solid;\n --vs-border-radius: 4px;\n\n /* Actions: house the component controls */\n --vs-actions-padding: 4px 6px 0 3px;\n\n /* Component Controls: Clear, Open Indicator */\n --vs-controls-color: var(--vs-colors--light);\n --vs-controls-size: 1;\n --vs-controls--deselect-text-shadow: 0 1px 0 #fff;\n\n /* Selected */\n --vs-selected-bg: #f0f0f0;\n --vs-selected-color: var(--vs-colors--dark);\n --vs-selected-border-color: var(--vs-border-color);\n --vs-selected-border-style: var(--vs-border-style);\n --vs-selected-border-width: var(--vs-border-width);\n\n /* Dropdown */\n --vs-dropdown-bg: #fff;\n --vs-dropdown-color: inherit;\n --vs-dropdown-z-index: 1000;\n --vs-dropdown-min-width: 160px;\n --vs-dropdown-max-height: 350px;\n --vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);\n\n /* Options */\n --vs-dropdown-option-bg: #000;\n --vs-dropdown-option-color: var(--vs-dropdown-color);\n --vs-dropdown-option-padding: 3px 20px;\n\n /* Active State */\n --vs-dropdown-option--active-bg: #136cfb;\n --vs-dropdown-option--active-color: #fff;\n\n /* Keyboard Focus State */\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px #949494;\n\n /* Deselect State */\n --vs-dropdown-option--deselect-bg: #fb5858;\n --vs-dropdown-option--deselect-color: #fff;\n\n /* Transitions */\n --vs-transition-timing-function: cubic-bezier(1, -0.115, 0.975, 0.855);\n --vs-transition-duration: 150ms;\n}\n",".v-select {\n position: relative;\n font-family: inherit;\n}\n\n.v-select,\n.v-select * {\n box-sizing: border-box;\n}\n",":root {\n --vs-transition-timing-function: cubic-bezier(1, 0.5, 0.8, 1);\n --vs-transition-duration: 0.15s;\n}\n\n/* KeyFrames */\n@-webkit-keyframes vSelectSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes vSelectSpinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Dropdown Default Transition */\n.vs__fade-enter-active,\n.vs__fade-leave-active {\n pointer-events: none;\n transition: opacity var(--vs-transition-duration)\n var(--vs-transition-timing-function);\n}\n.vs__fade-enter,\n.vs__fade-leave-to {\n opacity: 0;\n}\n","/** Component States */\n\n/*\n * Disabled\n *\n * When the component is disabled, all interaction\n * should be prevented. Here we modify the bg color,\n * and change the cursor displayed on the interactive\n * components.\n */\n\n:root {\n --vs-disabled-bg: var(--vs-state-disabled-bg);\n --vs-disabled-color: var(--vs-state-disabled-color);\n --vs-disabled-cursor: var(--vs-state-disabled-cursor);\n}\n\n.vs--disabled {\n .vs__dropdown-toggle,\n .vs__clear,\n .vs__search,\n .vs__selected,\n .vs__open-indicator-button,\n .vs__open-indicator {\n cursor: var(--vs-disabled-cursor);\n background-color: var(--vs-disabled-bg);\n }\n}\n\n/*\n * RTL - Right to Left Support\n *\n * Because we're using a flexbox layout, the `dir=\"rtl\"`\n * HTML attribute does most of the work for us by\n * rearranging the child elements visually.\n */\n\n.v-select[dir='rtl'] {\n .vs__actions {\n padding: 0 3px 0 6px;\n }\n\n .vs__clear {\n margin-left: 6px;\n margin-right: 0;\n }\n\n .vs__deselect {\n margin-left: 0;\n margin-right: 2px;\n }\n\n .vs__dropdown-menu {\n text-align: right;\n }\n}\n","/**\n Dropdown Toggle\n\n The dropdown toggle is the primary wrapper of the component. It\n has two direct descendants: .vs__selected-options, and .vs__actions.\n\n .vs__selected-options holds the .vs__selected's as well as the\n main search input.\n\n .vs__actions holds the clear button and dropdown toggle.\n */\n\n.vs__dropdown-toggle {\n appearance: none;\n display: flex;\n padding: 0 0 4px 0;\n background: var(--vs-search-input-bg);\n border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);\n border-radius: var(--vs-border-radius);\n white-space: normal;\n}\n\n.vs__selected-options {\n display: flex;\n flex-basis: 100%;\n flex-grow: 1;\n flex-wrap: wrap;\n min-width: 0;\n padding: 0 2px;\n position: relative;\n}\n\n.vs__actions {\n display: flex;\n align-items: center;\n padding: var(--vs-actions-padding);\n}\n\n/* Dropdown Toggle States */\n.vs--searchable .vs__dropdown-toggle {\n cursor: text;\n}\n.vs--unsearchable .vs__dropdown-toggle {\n cursor: pointer;\n}\n.vs--open .vs__dropdown-toggle {\n border-bottom-color: transparent;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n","/* Open Indicator Button */\n\n.vs__open-indicator-button {\n padding: 0;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n}\n","/* Open Indicator */\n\n/*\n The open indicator appears as a down facing\n caret on the right side of the select.\n */\n\n.vs__open-indicator {\n fill: var(--vs-controls-color);\n transform: scale(var(--vs-controls-size));\n transition: transform var(--vs-transition-duration)\n var(--vs-transition-timing-function);\n transition-timing-function: var(--vs-transition-timing-function);\n}\n\n/* Open State */\n\n.vs--open .vs__open-indicator {\n transform: rotate(180deg) scale(var(--vs-controls-size));\n}\n\n/* Loading State */\n\n.vs--loading .vs__open-indicator {\n opacity: 0;\n}\n","/* Clear Button */\n\n.vs__clear {\n fill: var(--vs-controls-color);\n padding: 0;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n margin-right: 8px;\n}\n","/* Dropdown Menu */\n\n.vs__dropdown-menu {\n display: block;\n box-sizing: border-box;\n position: absolute;\n /* calc to ensure the left and right borders of the dropdown appear flush with the toggle. */\n top: calc(100% - var(--vs-border-width));\n left: 0;\n z-index: var(--vs-dropdown-z-index);\n padding: 5px 0;\n margin: 0;\n width: 100%;\n max-height: var(--vs-dropdown-max-height);\n min-width: var(--vs-dropdown-min-width);\n overflow-y: auto;\n box-shadow: var(--vs-dropdown-box-shadow);\n border: var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);\n border-top-style: none;\n border-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\n text-align: left;\n list-style: none;\n background: var(--vs-dropdown-bg);\n color: var(--vs-dropdown-color);\n}\n\n.vs__no-options {\n text-align: center;\n}\n","/* List Items */\n.vs__dropdown-option {\n line-height: 1.42857143; /* Normalize line height */\n display: block;\n padding: var(--vs-dropdown-option-padding);\n clear: both;\n color: var(--vs-dropdown-option-color); /* Overrides most CSS frameworks */\n white-space: nowrap;\n cursor: pointer;\n}\n\n.vs__dropdown-option--highlight {\n background: var(--vs-dropdown-option--active-bg);\n color: var(--vs-dropdown-option--active-color);\n}\n\n.vs__dropdown-option--kb-focus {\n box-shadow: var(--vs-dropdown-option--kb-focus-box-shadow);\n}\n\n.vs__dropdown-option--deselect {\n background: var(--vs-dropdown-option--deselect-bg);\n color: var(--vs-dropdown-option--deselect-color);\n}\n\n.vs__dropdown-option--disabled {\n background: var(--vs-state-disabled-bg);\n color: var(--vs-state-disabled-color);\n cursor: var(--vs-state-disabled-cursor);\n}\n","/* Selected Tags */\n.vs__selected {\n display: flex;\n align-items: center;\n background-color: var(--vs-selected-bg);\n border: var(--vs-selected-border-width) var(--vs-selected-border-style)\n var(--vs-selected-border-color);\n border-radius: var(--vs-border-radius);\n color: var(--vs-selected-color);\n line-height: var(--vs-line-height);\n margin: 4px 2px 0px 2px;\n min-width: 0;\n padding: 0 0.25em;\n z-index: 0;\n}\n\n.vs__deselect {\n display: inline-flex;\n appearance: none;\n margin-left: 4px;\n padding: 0;\n border: 0;\n cursor: pointer;\n background: none;\n fill: var(--vs-controls-color);\n text-shadow: var(--vs-controls--deselect-text-shadow);\n}\n\n/* States */\n\n.vs--single {\n .vs__selected {\n background-color: transparent;\n border-color: transparent;\n }\n &.vs--open .vs__selected,\n &.vs--loading .vs__selected {\n max-width: 100%;\n position: absolute;\n opacity: 0.4;\n }\n &.vs--searching .vs__selected {\n display: none;\n }\n}\n","/* Search Input */\n\n/**\n * Super weird bug... If this declaration is grouped\n * below, the cancel button will still appear in chrome.\n * If it's up here on it's own, it'll hide it.\n */\n.vs__search::-webkit-search-cancel-button {\n display: none;\n}\n\n.vs__search::-webkit-search-decoration,\n.vs__search::-webkit-search-results-button,\n.vs__search::-webkit-search-results-decoration,\n.vs__search::-ms-clear {\n display: none;\n}\n\n.vs__search,\n.vs__search:focus {\n color: var(--vs-search-input-color);\n appearance: none;\n line-height: var(--vs-line-height);\n font-size: var(--vs-font-size);\n border: 1px solid transparent;\n border-left: none;\n outline: none;\n margin: 4px 0 0 0;\n padding: 0 7px;\n background: none;\n box-shadow: none;\n width: 0;\n max-width: 100%;\n flex-grow: 1;\n z-index: 1;\n}\n\n.vs__search::placeholder {\n color: var(--vs-search-input-placeholder-color);\n}\n\n/**\n States\n */\n\n/* Unsearchable */\n.vs--unsearchable {\n .vs__search {\n opacity: 1;\n }\n &:not(.vs--disabled) .vs__search {\n cursor: pointer;\n }\n}\n\n/* Single, when searching but not loading or open */\n.vs--single.vs--searching:not(.vs--open):not(.vs--loading) {\n .vs__search {\n opacity: 0.2;\n }\n}\n","/* Loading Spinner */\n.vs__spinner {\n align-self: center;\n opacity: 0;\n font-size: 5px;\n text-indent: -9999em;\n overflow: hidden;\n border-top: 0.9em solid rgba(100, 100, 100, 0.1);\n border-right: 0.9em solid rgba(100, 100, 100, 0.1);\n border-bottom: 0.9em solid rgba(100, 100, 100, 0.1);\n border-left: 0.9em solid rgba(60, 60, 60, 0.45);\n transform: translateZ(0)\n scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));\n animation: vSelectSpinner 1.1s infinite linear;\n transition: opacity 0.1s;\n}\n.vs__spinner,\n.vs__spinner:after {\n border-radius: 50%;\n width: 5em;\n height: 5em;\n transform: scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));\n}\n\n/* Loading Spinner States */\n.vs--loading .vs__spinner {\n opacity: 1;\n}\n",":host,:root{--vs-colors--lightest:rgba(60,60,60,0.26);--vs-colors--light:rgba(60,60,60,0.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,0.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#136cfb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--kb-focus-box-shadow:inset 0px 0px 0px 2px #949494;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-0.115,0.975,0.855);--vs-transition-duration:150ms}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,0.5,0.8,1);--vs-transition-duration:0.15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled .vs__clear,.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__open-indicator,.vs--disabled .vs__open-indicator-button,.vs--disabled .vs__search,.vs--disabled .vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;min-width:0;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator-button{background-color:transparent;border:0;cursor:pointer;padding:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);background-color:transparent;border:0;cursor:pointer;margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--kb-focus{box-shadow:var(--vs-dropdown-option--kb-focus-box-shadow)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;min-width:0;padding:0 .25em;z-index:0}.vs__deselect{fill:var(--vs-controls-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--loading .vs__selected,.vs--single.vs--open .vs__selected{max-width:100%;opacity:.4;position:absolute}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search:-ms-input-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;-webkit-animation:vSelectSpinner 1.1s linear infinite;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid hsla(0,0%,39%,.1);border-left-color:rgba(60,60,60,.45);font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}\n\n/*# sourceMappingURL=vue-select.css.map*/"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},11932:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-dba65098] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-dba65098] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-dba65098] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-dba65098]:hover, .action--disabled[data-v-dba65098]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-dba65098] {\n opacity: 1 !important;\n}\n.action-button[data-v-dba65098] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-button > span[data-v-dba65098] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-button__icon[data-v-dba65098] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-button[data-v-dba65098] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-button[data-v-dba65098] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-button__longtext-wrapper[data-v-dba65098], .action-button__longtext[data-v-dba65098] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-button__longtext[data-v-dba65098] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-button__name[data-v-dba65098] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-button__menu-icon[data-v-dba65098] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button__pressed-icon[data-v-dba65098] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionButton-D90PTEA5.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,+DAA+D;EAC/D,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,mEAAmE;AACrE;AACA;EACE,iBAAiB;EACjB,mEAAmE;AACrE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-dba65098] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-dba65098] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-dba65098] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-dba65098]:hover, .action--disabled[data-v-dba65098]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-dba65098] {\n opacity: 1 !important;\n}\n.action-button[data-v-dba65098] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-button > span[data-v-dba65098] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-button__icon[data-v-dba65098] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-button[data-v-dba65098] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-button[data-v-dba65098] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-button__longtext-wrapper[data-v-dba65098], .action-button__longtext[data-v-dba65098] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-button__longtext[data-v-dba65098] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-button__name[data-v-dba65098] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-button__menu-icon[data-v-dba65098] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action-button__pressed-icon[data-v-dba65098] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},51662:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-button-group-base > div {\n text-align: center;\n color: var(--color-text-maxcontrast);\n}\n.nc-button-group-base ul.nc-button-group-content {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n}\n.nc-button-group-base ul.nc-button-group-content li {\n flex: 1 1;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button {\n padding: 0 !important;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active {\n background-color: var(--color-primary-element);\n border-radius: var(--border-radius-large);\n color: var(--color-primary-element-text);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:hover, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus-within {\n background-color: var(--color-primary-element-hover);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button .action-button__pressed-icon {\n display: none;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionButtonGroup-CQxLn2fv.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,oCAAoC;AACtC;AACA;EACE,aAAa;EACb,QAAQ;EACR,8BAA8B;AAChC;AACA;EACE,SAAS;AACX;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,8CAA8C;EAC9C,yCAAyC;EACzC,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,aAAa;AACf",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-button-group-base > div {\n text-align: center;\n color: var(--color-text-maxcontrast);\n}\n.nc-button-group-base ul.nc-button-group-content {\n display: flex;\n gap: 4px;\n justify-content: space-between;\n}\n.nc-button-group-base ul.nc-button-group-content li {\n flex: 1 1;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button {\n padding: 0 !important;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active {\n background-color: var(--color-primary-element);\n border-radius: var(--border-radius-large);\n color: var(--color-primary-element-text);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:hover, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus, .nc-button-group-base ul.nc-button-group-content .action-button.action-button--active:focus-within {\n background-color: var(--color-primary-element-hover);\n}\n.nc-button-group-base ul.nc-button-group-content .action-button .action-button__pressed-icon {\n display: none;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},34834:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b9668c9e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-b9668c9e] {\n color: var(--color-text-maxcontrast);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n text-overflow: ellipsis;\n box-shadow: none !important;\n user-select: none;\n pointer-events: none;\n margin-left: 12px;\n padding-right: 14px;\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionCaption-B7FZTc3Y.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,0CAA0C;EAC1C,mBAAmB;EACnB,uBAAuB;EACvB,2BAA2B;EAC3B,iBAAiB;EACjB,oBAAoB;EACpB,iBAAiB;EACjB,mBAAmB;EACnB,qCAAqC;EACrC,aAAa;EACb,mBAAmB;AACrB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b9668c9e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-b9668c9e] {\n color: var(--color-text-maxcontrast);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n text-overflow: ellipsis;\n box-shadow: none !important;\n user-select: none;\n pointer-events: none;\n margin-left: 12px;\n padding-right: 14px;\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},41861:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1a743a21] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-1a743a21] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-1a743a21] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-1a743a21]:hover, .action--disabled[data-v-1a743a21]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-1a743a21] {\n opacity: 1 !important;\n}\n.action-checkbox[data-v-1a743a21] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-checkbox__checkbox[data-v-1a743a21] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-checkbox__label[data-v-1a743a21] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-checkbox__label[data-v-1a743a21]::before {\n margin-block: 0 !important;\n margin-inline: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-checkbox--disabled[data-v-1a743a21],\n.action-checkbox--disabled .action-checkbox__label[data-v-1a743a21] {\n cursor: pointer;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionCheckbox-sIGqnckr.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,WAAW;AACb;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,0EAA0E;AAC5E;AACA;EACE,0BAA0B;EAC1B,0EAA0E;AAC5E;AACA;;EAEE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1a743a21] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-1a743a21] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-1a743a21] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-1a743a21]:hover, .action--disabled[data-v-1a743a21]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-1a743a21] {\n opacity: 1 !important;\n}\n.action-checkbox[data-v-1a743a21] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-checkbox__checkbox[data-v-1a743a21] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-checkbox__label[data-v-1a743a21] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-checkbox__label[data-v-1a743a21]::before {\n margin-block: 0 !important;\n margin-inline: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-checkbox--disabled[data-v-1a743a21],\n.action-checkbox--disabled .action-checkbox__label[data-v-1a743a21] {\n cursor: pointer;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},78657:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6ba44c48] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n/* Default global values */\nbutton[data-v-6ba44c48]:not(.button-vue),\ninput[data-v-6ba44c48]:not([type=range]),\ntextarea[data-v-6ba44c48] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n /* Primary action button, use sparingly */\n}\nbutton[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-6ba44c48],\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-6ba44c48],\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):hover,\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-6ba44c48] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-6ba44c48]:not(.button-vue):disabled,\ninput[data-v-6ba44c48]:not([type=range]):disabled,\ntextarea[data-v-6ba44c48]:disabled {\n cursor: default;\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-6ba44c48]:not(.button-vue):required,\ninput[data-v-6ba44c48]:not([type=range]):required,\ntextarea[data-v-6ba44c48]:required {\n box-shadow: none;\n}\nbutton[data-v-6ba44c48]:not(.button-vue):invalid,\ninput[data-v-6ba44c48]:not([type=range]):invalid,\ntextarea[data-v-6ba44c48]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48],\ninput:not([type=range]).primary[data-v-6ba44c48],\ntextarea.primary[data-v-6ba44c48] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):hover, button:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):focus, button:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):active,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):hover,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):focus,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):active,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:disabled,\ninput:not([type=range]).primary[data-v-6ba44c48]:disabled,\ntextarea.primary[data-v-6ba44c48]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-6ba44c48] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-6ba44c48] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-6ba44c48]:hover, .action--disabled[data-v-6ba44c48]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-6ba44c48] {\n opacity: 1 !important;\n}\n.action-input[data-v-6ba44c48] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] {\n display: flex;\n align-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-input > span[data-v-6ba44c48] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-input__icon[data-v-6ba44c48] {\n min-width: 0; /* Overwrite icons*/\n min-height: 0;\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n}\n.action-input__form[data-v-6ba44c48] {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n margin: 4px 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.action-input__container[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__input-container[data-v-6ba44c48] {\n display: flex;\n}\n.action-input__input-container .colorpicker__trigger[data-v-6ba44c48], .action-input__input-container .colorpicker__preview[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__input-container .colorpicker__preview[data-v-6ba44c48] {\n width: 100%;\n height: 36px;\n border-radius: var(--border-radius-large);\n border: 2px solid var(--color-border-maxcontrast);\n box-shadow: none !important;\n}\n.action-input__text-label[data-v-6ba44c48] {\n padding: 4px 0;\n display: block;\n}\n.action-input__text-label--hidden[data-v-6ba44c48] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-input__datetimepicker[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__datetimepicker[data-v-6ba44c48] .mx-input {\n margin: 0;\n}\n.action-input__multi[data-v-6ba44c48] {\n width: 100%;\n}\nli:last-child > .action-input[data-v-6ba44c48] {\n padding-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-input[data-v-6ba44c48]:not(.action-input--visible-label) {\n padding-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionInput-C_3Csa6A.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;;;;EAIE;AACF,0BAA0B;AAC1B;;;EAGE,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,gCAAgC;EAChC,0CAA0C;EAC1C,mCAAmC;EACnC,aAAa;EACb,8CAA8C;EAC9C,eAAe;EACf,yCAAyC;AAC3C;AACA;;;;;;;EAOE,sCAAsC;EACtC,0CAA0C;EAC1C,aAAa;AACf;AACA;;;EAGE,8BAA8B;EAC9B,aAAa;EACb,8CAA8C;AAChD;AACA;;;EAGE,eAAe;EACf,YAAY;EACZ,oCAAoC;EACpC,8CAA8C;AAChD;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gCAAgC;EAChC,2BAA2B;AAC7B;AACA;;;EAGE,eAAe;EACf,wCAAwC;EACxC,0CAA0C;EAC1C,8CAA8C;AAChD;AACA;;;;;;;EAOE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;;;EAGE,6CAA6C;AAC/C;AACA;;;EAGE,eAAe;EACf,6CAA6C;EAC7C,8CAA8C;AAChD;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,YAAY,EAAE,mBAAmB;EACjC,aAAa;EACb,wHAAwH;EACxH,4EAA4E;EAC5E,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,aAAa;EACb,+DAA+D;AACjE;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;EACX,YAAY;EACZ,yCAAyC;EACzC,iDAAiD;EACjD,2BAA2B;AAC7B;AACA;EACE,cAAc;EACd,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,WAAW;AACb;AACA;EACE,SAAS;AACX;AACA;EACE,WAAW;AACb;AACA;EACE,sEAAsE;AACxE;AACA;EACE,mEAAmE;AACrE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6ba44c48] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n/* Default global values */\nbutton[data-v-6ba44c48]:not(.button-vue),\ninput[data-v-6ba44c48]:not([type=range]),\ntextarea[data-v-6ba44c48] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n /* Primary action button, use sparingly */\n}\nbutton[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-6ba44c48],\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-6ba44c48],\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):hover,\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-6ba44c48] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-6ba44c48]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-6ba44c48]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-6ba44c48]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-6ba44c48]:not(.button-vue):disabled,\ninput[data-v-6ba44c48]:not([type=range]):disabled,\ntextarea[data-v-6ba44c48]:disabled {\n cursor: default;\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-6ba44c48]:not(.button-vue):required,\ninput[data-v-6ba44c48]:not([type=range]):required,\ntextarea[data-v-6ba44c48]:required {\n box-shadow: none;\n}\nbutton[data-v-6ba44c48]:not(.button-vue):invalid,\ninput[data-v-6ba44c48]:not([type=range]):invalid,\ntextarea[data-v-6ba44c48]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48],\ninput:not([type=range]).primary[data-v-6ba44c48],\ntextarea.primary[data-v-6ba44c48] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):hover, button:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):focus, button:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):active,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):hover,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):focus,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-6ba44c48]:not(:disabled):active,\ntextarea.primary[data-v-6ba44c48]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-6ba44c48]:disabled,\ninput:not([type=range]).primary[data-v-6ba44c48]:disabled,\ntextarea.primary[data-v-6ba44c48]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-6ba44c48] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-6ba44c48] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-6ba44c48]:hover, .action--disabled[data-v-6ba44c48]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-6ba44c48] {\n opacity: 1 !important;\n}\n.action-input[data-v-6ba44c48] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] {\n display: flex;\n align-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-input__icon-wrapper[data-v-6ba44c48] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-input > span[data-v-6ba44c48] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-input__icon[data-v-6ba44c48] {\n min-width: 0; /* Overwrite icons*/\n min-height: 0;\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n}\n.action-input__form[data-v-6ba44c48] {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n margin: 4px 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.action-input__container[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__input-container[data-v-6ba44c48] {\n display: flex;\n}\n.action-input__input-container .colorpicker__trigger[data-v-6ba44c48], .action-input__input-container .colorpicker__preview[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__input-container .colorpicker__preview[data-v-6ba44c48] {\n width: 100%;\n height: 36px;\n border-radius: var(--border-radius-large);\n border: 2px solid var(--color-border-maxcontrast);\n box-shadow: none !important;\n}\n.action-input__text-label[data-v-6ba44c48] {\n padding: 4px 0;\n display: block;\n}\n.action-input__text-label--hidden[data-v-6ba44c48] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-input__datetimepicker[data-v-6ba44c48] {\n width: 100%;\n}\n.action-input__datetimepicker[data-v-6ba44c48] .mx-input {\n margin: 0;\n}\n.action-input__multi[data-v-6ba44c48] {\n width: 100%;\n}\nli:last-child > .action-input[data-v-6ba44c48] {\n padding-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-input[data-v-6ba44c48]:not(.action-input--visible-label) {\n padding-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},9448:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-30c015f0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-30c015f0] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-link[data-v-30c015f0] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-link > span[data-v-30c015f0] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-link__icon[data-v-30c015f0] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-link[data-v-30c015f0] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-link[data-v-30c015f0] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-link__longtext-wrapper[data-v-30c015f0], .action-link__longtext[data-v-30c015f0] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-link__longtext[data-v-30c015f0] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-link__name[data-v-30c015f0] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-link__menu-icon[data-v-30c015f0] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionLink-Db_ZlqWs.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,+DAA+D;EAC/D,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,mEAAmE;AACrE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-30c015f0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-30c015f0] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-link[data-v-30c015f0] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-link > span[data-v-30c015f0] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-link__icon[data-v-30c015f0] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-link[data-v-30c015f0] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-link[data-v-30c015f0] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-link__longtext-wrapper[data-v-30c015f0], .action-link__longtext[data-v-30c015f0] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-link__longtext[data-v-30c015f0] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-link__name[data-v-30c015f0] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-link__menu-icon[data-v-30c015f0] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},48934:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8c1a9122] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-8c1a9122] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-8c1a9122] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-8c1a9122]:hover, .action--disabled[data-v-8c1a9122]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-8c1a9122] {\n opacity: 1 !important;\n}\n.action-radio[data-v-8c1a9122] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-radio__radio[data-v-8c1a9122] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-radio__label[data-v-8c1a9122] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-radio__label[data-v-8c1a9122]::before {\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-radio--disabled[data-v-8c1a9122],\n.action-radio--disabled .action-radio__label[data-v-8c1a9122] {\n cursor: pointer;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionRadio-DFcWmvae.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,UAAU;EACV,WAAW;AACb;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,0EAA0E;AAC5E;AACA;EACE,mEAAmE;AACrE;AACA;;EAEE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8c1a9122] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-8c1a9122] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-8c1a9122] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-8c1a9122]:hover, .action--disabled[data-v-8c1a9122]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-8c1a9122] {\n opacity: 1 !important;\n}\n.action-radio[data-v-8c1a9122] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* checkbox/radio fixes */\n}\n.action-radio__radio[data-v-8c1a9122] {\n position: absolute;\n top: auto;\n left: -10000px;\n overflow: hidden;\n width: 1px;\n height: 1px;\n}\n.action-radio__label[data-v-8c1a9122] {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0 !important;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2) !important;\n}\n.action-radio__label[data-v-8c1a9122]::before {\n margin: calc((var(--default-clickable-area) - 14px) / 2) !important;\n}\n.action-radio--disabled[data-v-8c1a9122],\n.action-radio--disabled .action-radio__label[data-v-8c1a9122] {\n cursor: pointer;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},45927:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-579c6b4d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-579c6b4d] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-router[data-v-579c6b4d] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-router > span[data-v-579c6b4d] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-router__icon[data-v-579c6b4d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-router[data-v-579c6b4d] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-router[data-v-579c6b4d] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-router__longtext-wrapper[data-v-579c6b4d], .action-router__longtext[data-v-579c6b4d] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-router__longtext[data-v-579c6b4d] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-router__name[data-v-579c6b4d] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-router__menu-icon[data-v-579c6b4d] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-579c6b4d] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-579c6b4d]:hover, .action--disabled[data-v-579c6b4d]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-579c6b4d] {\n opacity: 1 !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionRouter-DidTlbov.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,+DAA+D;EAC/D,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,mEAAmE;AACrE;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-579c6b4d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-579c6b4d] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-router[data-v-579c6b4d] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-router > span[data-v-579c6b4d] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-router__icon[data-v-579c6b4d] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-router[data-v-579c6b4d] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-router[data-v-579c6b4d] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-router__longtext-wrapper[data-v-579c6b4d], .action-router__longtext[data-v-579c6b4d] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-router__longtext[data-v-579c6b4d] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-router__name[data-v-579c6b4d] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-router__menu-icon[data-v-579c6b4d] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-579c6b4d] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-579c6b4d]:hover, .action--disabled[data-v-579c6b4d]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-579c6b4d] {\n opacity: 1 !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},63120:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3e2324b7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-separator[data-v-3e2324b7] {\n height: 0;\n margin: 5px 10px 5px 15px;\n border-bottom: 1px solid var(--color-border-dark);\n cursor: default;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionSeparator-CEbb5P6P.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,SAAS;EACT,yBAAyB;EACzB,iDAAiD;EACjD,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3e2324b7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-separator[data-v-3e2324b7] {\n height: 0;\n margin: 5px 10px 5px 15px;\n border-bottom: 1px solid var(--color-border-dark);\n cursor: default;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},23101:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-824615f4] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-824615f4] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-text[data-v-824615f4] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-text > span[data-v-824615f4] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text__icon[data-v-824615f4] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-text[data-v-824615f4] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-text[data-v-824615f4] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text__longtext-wrapper[data-v-824615f4], .action-text__longtext[data-v-824615f4] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-text__longtext[data-v-824615f4] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-text__name[data-v-824615f4] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-text__menu-icon[data-v-824615f4] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-824615f4] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-824615f4]:hover, .action--disabled[data-v-824615f4]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-824615f4] {\n opacity: 1 !important;\n}\n.action-text[data-v-824615f4],\n.action-text span[data-v-824615f4] {\n cursor: default;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionText-DCx1DWXe.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,+DAA+D;EAC/D,sBAAsB;EACtB,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,mCAAmC;EACnC,0CAA0C;AAC5C;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;EACV,4EAA4E;EAC5E,qBAAqB;EACrB,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4DAA4D;EAC5D,eAAe;EACf,gBAAgB;EAChB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,gCAAgC;AAClC;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,mEAAmE;AACrE;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;;EAEE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-824615f4] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-824615f4] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action-text[data-v-824615f4] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n}\n.action-text > span[data-v-824615f4] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text__icon[data-v-824615f4] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n background-repeat: no-repeat;\n}\n.action-text[data-v-824615f4] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-text[data-v-824615f4] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text__longtext-wrapper[data-v-824615f4], .action-text__longtext[data-v-824615f4] {\n max-width: 220px;\n line-height: 1.6em;\n padding: calc((var(--default-clickable-area) - 1.6em) / 2) 0;\n cursor: pointer;\n text-align: left;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-text__longtext[data-v-824615f4] {\n cursor: pointer;\n white-space: pre-wrap !important;\n}\n.action-text__name[data-v-824615f4] {\n font-weight: bold;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n max-width: 100%;\n display: inline-block;\n}\n.action-text__menu-icon[data-v-824615f4] {\n margin-left: auto;\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n}\n.action--disabled[data-v-824615f4] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-824615f4]:hover, .action--disabled[data-v-824615f4]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-824615f4] {\n opacity: 1 !important;\n}\n.action-text[data-v-824615f4],\n.action-text span[data-v-824615f4] {\n cursor: default;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},88653:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c9d92b93] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n/* Default global values */\nbutton[data-v-c9d92b93]:not(.button-vue),\ninput[data-v-c9d92b93]:not([type=range]),\ntextarea[data-v-c9d92b93] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n /* Primary action button, use sparingly */\n}\nbutton[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-c9d92b93],\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-c9d92b93],\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):hover,\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-c9d92b93] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-c9d92b93]:not(.button-vue):disabled,\ninput[data-v-c9d92b93]:not([type=range]):disabled,\ntextarea[data-v-c9d92b93]:disabled {\n cursor: default;\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-c9d92b93]:not(.button-vue):required,\ninput[data-v-c9d92b93]:not([type=range]):required,\ntextarea[data-v-c9d92b93]:required {\n box-shadow: none;\n}\nbutton[data-v-c9d92b93]:not(.button-vue):invalid,\ninput[data-v-c9d92b93]:not([type=range]):invalid,\ntextarea[data-v-c9d92b93]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93],\ninput:not([type=range]).primary[data-v-c9d92b93],\ntextarea.primary[data-v-c9d92b93] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):hover, button:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):focus, button:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):active,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):hover,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):focus,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):active,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:disabled,\ninput:not([type=range]).primary[data-v-c9d92b93]:disabled,\ntextarea.primary[data-v-c9d92b93]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-c9d92b93] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-c9d92b93] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-c9d92b93]:hover, .action--disabled[data-v-c9d92b93]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-c9d92b93] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-c9d92b93] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* Inputs inside popover supports text, submit & reset */\n}\n.action-text-editable > span[data-v-c9d92b93] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-c9d92b93] {\n min-width: 0; /* Overwrite icons*/\n min-height: 0;\n /* Keep padding to define the width to\n \tassure correct position of a possible text */\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n}\n.action-text-editable[data-v-c9d92b93] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-text-editable[data-v-c9d92b93] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-c9d92b93] {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n margin: 4px 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.action-text-editable__submit[data-v-c9d92b93] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-text-editable__label[data-v-c9d92b93] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: calc((var(--default-clickable-area) - 16px) / 2 + 1);\n bottom: 1px;\n width: calc(var(--default-clickable-area) - 8px);\n height: calc(var(--default-clickable-area) - 8px);\n box-sizing: border-box;\n margin: 0;\n padding: 7px 6px;\n border: 0;\n border-radius: 50%;\n /* Avoid background under border */\n background-color: var(--color-main-background);\n background-clip: padding-box;\n}\n.action-text-editable__label[data-v-c9d92b93], .action-text-editable__label *[data-v-c9d92b93] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-c9d92b93] {\n flex: 1 1 auto;\n color: inherit;\n border-color: var(--color-border-maxcontrast);\n min-height: calc(var(--default-clickable-area) * 2 - 8px); /* twice the element margin-y */\n max-height: calc(var(--default-clickable-area) * 3 - 8px); /* twice the element margin-y */\n min-width: calc(var(--default-clickable-area) * 4);\n width: 100% !important;\n margin: 0;\n /* only show confirm borders if input is not focused */\n}\n.action-text-editable__textarea[data-v-c9d92b93]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-c9d92b93] {\n background-color: var(--color-error);\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:focus {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-c9d92b93], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-c9d92b93], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-c9d92b93] {\n /* above previous input */\n z-index: 2;\n border-color: var(--color-primary-element);\n border-left-color: transparent;\n}\nli:last-child > .action-text-editable[data-v-c9d92b93] {\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-text-editable[data-v-c9d92b93] {\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActionTextEditable-Dud9NOdm.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;;;;EAIE;AACF,0BAA0B;AAC1B;;;EAGE,SAAS;EACT,gBAAgB;EAChB,YAAY;EACZ,gCAAgC;EAChC,0CAA0C;EAC1C,mCAAmC;EACnC,aAAa;EACb,8CAA8C;EAC9C,eAAe;EACf,yCAAyC;AAC3C;AACA;;;;;;;EAOE,sCAAsC;EACtC,0CAA0C;EAC1C,aAAa;AACf;AACA;;;EAGE,8BAA8B;EAC9B,aAAa;EACb,8CAA8C;AAChD;AACA;;;EAGE,eAAe;EACf,YAAY;EACZ,oCAAoC;EACpC,8CAA8C;AAChD;AACA;;;EAGE,gBAAgB;AAClB;AACA;;;EAGE,gCAAgC;EAChC,2BAA2B;AAC7B;AACA;;;EAGE,eAAe;EACf,wCAAwC;EACxC,0CAA0C;EAC1C,8CAA8C;AAChD;AACA;;;;;;;EAOE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;;;EAGE,6CAA6C;AAC/C;AACA;;;EAGE,eAAe;EACf,6CAA6C;EAC7C,8CAA8C;AAChD;AACA;;;EAGE;AACF;EACE,+CAA+C;EAC/C,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,YAAY;AACd;AACA;EACE,eAAe;EACf,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,UAAU;EACV,eAAe;EACf,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;EACT,gBAAgB;EAChB,6BAA6B;EAC7B,gBAAgB;EAChB,mBAAmB;EACnB,0CAA0C;EAC1C,wDAAwD;AAC1D;AACA;EACE,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,YAAY,EAAE,mBAAmB;EACjC,aAAa;EACb;+CAC6C;EAC7C,wHAAwH;EACxH,4EAA4E;EAC5E,qBAAqB;AACvB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,aAAa;EACb,+DAA+D;AACjE;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,2DAA2D;EAC3D,WAAW;EACX,gDAAgD;EAChD,iDAAiD;EACjD,sBAAsB;EACtB,SAAS;EACT,gBAAgB;EAChB,SAAS;EACT,kBAAkB;EAClB,kCAAkC;EAClC,8CAA8C;EAC9C,4BAA4B;AAC9B;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,cAAc;EACd,6CAA6C;EAC7C,yDAAyD,EAAE,+BAA+B;EAC1F,yDAAyD,EAAE,+BAA+B;EAC1F,kDAAkD;EAClD,sBAAsB;EACtB,SAAS;EACT,sDAAsD;AACxD;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,yBAAyB;EACzB,UAAU;EACV,0CAA0C;EAC1C,8BAA8B;AAChC;AACA;EACE,qEAAqE;AACvE;AACA;EACE,kEAAkE;AACpE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c9d92b93] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * color-text-lighter\t\tnormal state\n * color-text-lighter\t\tactive state\n * color-text-maxcontrast \tdisabled state\n */\n/* Default global values */\nbutton[data-v-c9d92b93]:not(.button-vue),\ninput[data-v-c9d92b93]:not([type=range]),\ntextarea[data-v-c9d92b93] {\n margin: 0;\n padding: 7px 6px;\n cursor: text;\n color: var(--color-text-lighter);\n border: 1px solid var(--color-border-dark);\n border-radius: var(--border-radius);\n outline: none;\n background-color: var(--color-main-background);\n font-size: 13px;\n /* Primary action button, use sparingly */\n}\nbutton[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):hover, button[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):focus, button:not(.button-vue):not(:disabled):not(.primary).active[data-v-c9d92b93],\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):hover,\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):focus,\ninput:not([type=range]):not(:disabled):not(.primary).active[data-v-c9d92b93],\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):hover,\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):focus,\ntextarea:not(:disabled):not(.primary).active[data-v-c9d92b93] {\n /* active class used for multiselect */\n border-color: var(--color-primary-element);\n outline: none;\n}\nbutton[data-v-c9d92b93]:not(.button-vue):not(:disabled):not(.primary):active,\ninput[data-v-c9d92b93]:not([type=range]):not(:disabled):not(.primary):active,\ntextarea[data-v-c9d92b93]:not(:disabled):not(.primary):active {\n color: var(--color-text-light);\n outline: none;\n background-color: var(--color-main-background);\n}\nbutton[data-v-c9d92b93]:not(.button-vue):disabled,\ninput[data-v-c9d92b93]:not([type=range]):disabled,\ntextarea[data-v-c9d92b93]:disabled {\n cursor: default;\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n background-color: var(--color-background-dark);\n}\nbutton[data-v-c9d92b93]:not(.button-vue):required,\ninput[data-v-c9d92b93]:not([type=range]):required,\ntextarea[data-v-c9d92b93]:required {\n box-shadow: none;\n}\nbutton[data-v-c9d92b93]:not(.button-vue):invalid,\ninput[data-v-c9d92b93]:not([type=range]):invalid,\ntextarea[data-v-c9d92b93]:invalid {\n border-color: var(--color-error);\n box-shadow: none !important;\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93],\ninput:not([type=range]).primary[data-v-c9d92b93],\ntextarea.primary[data-v-c9d92b93] {\n cursor: pointer;\n color: var(--color-primary-element-text);\n border-color: var(--color-primary-element);\n background-color: var(--color-primary-element);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):hover, button:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):focus, button:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):hover,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):focus,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):active,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):hover,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):focus,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):active {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:not(:disabled):active,\ninput:not([type=range]).primary[data-v-c9d92b93]:not(:disabled):active,\ntextarea.primary[data-v-c9d92b93]:not(:disabled):active {\n color: var(--color-primary-element-text-dark);\n}\nbutton:not(.button-vue).primary[data-v-c9d92b93]:disabled,\ninput:not([type=range]).primary[data-v-c9d92b93]:disabled,\ntextarea.primary[data-v-c9d92b93]:disabled {\n cursor: default;\n color: var(--color-primary-element-text-dark);\n background-color: var(--color-primary-element);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nli.action.active[data-v-c9d92b93] {\n background-color: var(--color-background-hover);\n border-radius: 6px;\n padding: 0;\n}\n.action--disabled[data-v-c9d92b93] {\n pointer-events: none;\n opacity: 0.5;\n}\n.action--disabled[data-v-c9d92b93]:hover, .action--disabled[data-v-c9d92b93]:focus {\n cursor: default;\n opacity: 0.5;\n}\n.action--disabled *[data-v-c9d92b93] {\n opacity: 1 !important;\n}\n.action-text-editable[data-v-c9d92b93] {\n display: flex;\n align-items: flex-start;\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n cursor: pointer;\n white-space: nowrap;\n color: var(--color-main-text);\n border: 0;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n font-weight: normal;\n line-height: var(--default-clickable-area);\n /* Inputs inside popover supports text, submit & reset */\n}\n.action-text-editable > span[data-v-c9d92b93] {\n cursor: pointer;\n white-space: nowrap;\n}\n.action-text-editable__icon[data-v-c9d92b93] {\n min-width: 0; /* Overwrite icons*/\n min-height: 0;\n /* Keep padding to define the width to\n \tassure correct position of a possible text */\n padding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px;\n}\n.action-text-editable[data-v-c9d92b93] .material-design-icon {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 1;\n}\n.action-text-editable[data-v-c9d92b93] .material-design-icon .material-design-icon__svg {\n vertical-align: middle;\n}\n.action-text-editable__form[data-v-c9d92b93] {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n position: relative;\n margin: 4px 0;\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.action-text-editable__submit[data-v-c9d92b93] {\n position: absolute;\n left: -10000px;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n.action-text-editable__label[data-v-c9d92b93] {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n right: calc((var(--default-clickable-area) - 16px) / 2 + 1);\n bottom: 1px;\n width: calc(var(--default-clickable-area) - 8px);\n height: calc(var(--default-clickable-area) - 8px);\n box-sizing: border-box;\n margin: 0;\n padding: 7px 6px;\n border: 0;\n border-radius: 50%;\n /* Avoid background under border */\n background-color: var(--color-main-background);\n background-clip: padding-box;\n}\n.action-text-editable__label[data-v-c9d92b93], .action-text-editable__label *[data-v-c9d92b93] {\n cursor: pointer;\n}\n.action-text-editable__textarea[data-v-c9d92b93] {\n flex: 1 1 auto;\n color: inherit;\n border-color: var(--color-border-maxcontrast);\n min-height: calc(var(--default-clickable-area) * 2 - 8px); /* twice the element margin-y */\n max-height: calc(var(--default-clickable-area) * 3 - 8px); /* twice the element margin-y */\n min-width: calc(var(--default-clickable-area) * 4);\n width: 100% !important;\n margin: 0;\n /* only show confirm borders if input is not focused */\n}\n.action-text-editable__textarea[data-v-c9d92b93]:disabled {\n cursor: default;\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):invalid + .action-text-editable__label[data-v-c9d92b93] {\n background-color: var(--color-error);\n}\n.action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:active, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:hover, .action-text-editable__textarea:not(:active):not(:hover):not(:focus):not(:disabled) + .action-text-editable__label[data-v-c9d92b93]:focus {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.action-text-editable__textarea:active:not(:disabled) + .action-text-editable__label[data-v-c9d92b93], .action-text-editable__textarea:hover:not(:disabled) + .action-text-editable__label[data-v-c9d92b93], .action-text-editable__textarea:focus:not(:disabled) + .action-text-editable__label[data-v-c9d92b93] {\n /* above previous input */\n z-index: 2;\n border-color: var(--color-primary-element);\n border-left-color: transparent;\n}\nli:last-child > .action-text-editable[data-v-c9d92b93] {\n margin-bottom: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}\nli:first-child > .action-text-editable[data-v-c9d92b93] {\n margin-top: calc((var(--default-clickable-area) - 16px) / 2 - 4px);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},63793:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cc61c052] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-cc61c052] {\n display: flex;\n align-items: center;\n}\n.action-items > button[data-v-cc61c052] {\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-cc61c052] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-cc61c052] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-cc61c052] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-cc61c052] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-cc61c052] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-cc61c052] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-cc61c052] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-cc61c052] {\n background-color: var(--open-background-color);\n}\n.action-item__menutoggle__icon[data-v-cc61c052] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-large);\n overflow: hidden;\n}\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-large);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcActions-f24RrX8r.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,kEAAkE;AACpE;AACA;EACE,gFAAgF;EAChF,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,iEAAiE;AACnE;AACA;EACE,iDAAiD;AACnD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,mDAAmD;AACrD;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yCAAyC;EACzC,gBAAgB;AAClB;AACA;EACE,yCAAyC;EACzC,YAAY;EACZ,8CAA8C;EAC9C,cAAc;AAChB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cc61c052] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.action-items[data-v-cc61c052] {\n display: flex;\n align-items: center;\n}\n.action-items > button[data-v-cc61c052] {\n margin-right: calc((var(--default-clickable-area) - 16px) / 2 / 2);\n}\n.action-item[data-v-cc61c052] {\n --open-background-color: var(--color-background-hover, $action-background-hover);\n position: relative;\n display: inline-block;\n}\n.action-item.action-item--primary[data-v-cc61c052] {\n --open-background-color: var(--color-primary-element-hover);\n}\n.action-item.action-item--secondary[data-v-cc61c052] {\n --open-background-color: var(--color-primary-element-light-hover);\n}\n.action-item.action-item--error[data-v-cc61c052] {\n --open-background-color: var(--color-error-hover);\n}\n.action-item.action-item--warning[data-v-cc61c052] {\n --open-background-color: var(--color-warning-hover);\n}\n.action-item.action-item--success[data-v-cc61c052] {\n --open-background-color: var(--color-success-hover);\n}\n.action-item.action-item--tertiary-no-background[data-v-cc61c052] {\n --open-background-color: transparent;\n}\n.action-item.action-item--open .action-item__menutoggle[data-v-cc61c052] {\n background-color: var(--open-background-color);\n}\n.action-item__menutoggle__icon[data-v-cc61c052] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper {\n border-radius: var(--border-radius-large);\n overflow: hidden;\n}\n.v-popper--theme-dropdown.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner {\n border-radius: var(--border-radius-large);\n padding: 4px;\n max-height: calc(100vh - var(--header-height));\n overflow: auto;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(78|96)43|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},25109:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7692fc78] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-details-toggle[data-v-7692fc78] {\n position: sticky;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n padding: calc((var(--default-clickable-area) - 16px) / 2);\n cursor: pointer;\n opacity: 0.6;\n transform: rotate(180deg);\n background-color: var(--color-main-background);\n z-index: 2000;\n top: var(--app-navigation-padding);\n left: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n}\n.app-details-toggle--mobile[data-v-7692fc78] {\n left: var(--app-navigation-padding);\n}\n.app-details-toggle[data-v-7692fc78]:active, .app-details-toggle[data-v-7692fc78]:hover, .app-details-toggle[data-v-7692fc78]:focus {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de6986e3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-content[data-v-de6986e3] {\n position: initial;\n z-index: 1000;\n flex-basis: 100vw;\n height: 100%;\n margin: 0 !important;\n background-color: var(--color-main-background);\n min-width: 0;\n}\n.app-content[data-v-de6986e3]:not(.app-content--has-list) {\n overflow: auto;\n}\n.app-content-wrapper[data-v-de6986e3] {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {\n display: flex;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-details {\n display: none;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-list {\n display: none;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-details {\n display: block;\n}\n[data-v-de6986e3] .splitpanes.default-theme .app-content-list {\n max-width: none;\n /* Thin scrollbar is hard to catch on resizable columns */\n scrollbar-width: auto;\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane {\n background-color: transparent;\n transition: none;\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {\n min-width: 300px;\n position: sticky;\n}\n@media only screen and (width < 1024px) {\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {\n display: none;\n}\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {\n overflow-y: auto;\n}\n@media only screen and (width < 1024px) {\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {\n min-width: 100%;\n}\n}\n[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter {\n background-color: var(--color-main-background);\n border-left: 1px solid var(--color-border);\n}\n[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::before,[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::after {\n background-color: var(--color-border);\n}\n.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {\n max-width: none;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppContent-DVBVZyuW.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,oCAAoC;EACpC,qCAAqC;EACrC,yDAAyD;EACzD,eAAe;EACf,YAAY;EACZ,yBAAyB;EACzB,8CAA8C;EAC9C,aAAa;EACb,kCAAkC;EAClC,6EAA6E;AAC/E;AACA;EACE,mCAAmC;AACrC;AACA;EACE,UAAU;AACZ,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ,oBAAoB;EACpB,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,eAAe;EACf,yDAAyD;EACzD,qBAAqB;AACvB;AACA;EACE,6BAA6B;EAC7B,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;AACA;IACI,aAAa;AACjB;AACA;AACA;EACE,gBAAgB;AAClB;AACA;AACA;IACI,eAAe;AACnB;AACA;AACA;EACE,8CAA8C;EAC9C,0CAA0C;AAC5C;AACA;EACE,qCAAqC;AACvC;AACA;EACE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7692fc78] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-details-toggle[data-v-7692fc78] {\n position: sticky;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n padding: calc((var(--default-clickable-area) - 16px) / 2);\n cursor: pointer;\n opacity: 0.6;\n transform: rotate(180deg);\n background-color: var(--color-main-background);\n z-index: 2000;\n top: var(--app-navigation-padding);\n left: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2);\n}\n.app-details-toggle--mobile[data-v-7692fc78] {\n left: var(--app-navigation-padding);\n}\n.app-details-toggle[data-v-7692fc78]:active, .app-details-toggle[data-v-7692fc78]:hover, .app-details-toggle[data-v-7692fc78]:focus {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de6986e3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-content[data-v-de6986e3] {\n position: initial;\n z-index: 1000;\n flex-basis: 100vw;\n height: 100%;\n margin: 0 !important;\n background-color: var(--color-main-background);\n min-width: 0;\n}\n.app-content[data-v-de6986e3]:not(.app-content--has-list) {\n overflow: auto;\n}\n.app-content-wrapper[data-v-de6986e3] {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {\n display: flex;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-list[data-v-de6986e3] .app-content-details {\n display: none;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-list {\n display: none;\n}\n.app-content-wrapper--no-split.app-content-wrapper--show-details[data-v-de6986e3] .app-content-details {\n display: block;\n}\n[data-v-de6986e3] .splitpanes.default-theme .app-content-list {\n max-width: none;\n /* Thin scrollbar is hard to catch on resizable columns */\n scrollbar-width: auto;\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane {\n background-color: transparent;\n transition: none;\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {\n min-width: 300px;\n position: sticky;\n}\n@media only screen and (width < 1024px) {\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-list {\n display: none;\n}\n}\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {\n overflow-y: auto;\n}\n@media only screen and (width < 1024px) {\n[data-v-de6986e3] .splitpanes.default-theme .splitpanes__pane-details {\n min-width: 100%;\n}\n}\n[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter {\n background-color: var(--color-main-background);\n border-left: 1px solid var(--color-border);\n}\n[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::before,[data-v-de6986e3] .splitpanes.default-theme.splitpanes--vertical .splitpanes__splitter::after {\n background-color: var(--color-border);\n}\n.app-content-wrapper--show-list[data-v-de6986e3] .app-content-list {\n max-width: none;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590|6174|6371)$/.test(n.j)?null:o},95042:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation,\n.app-content {\n /** Distance of the app navigation toggle and the first navigation item to the top edge of the app content container */\n --app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e7d078cc] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation[data-v-e7d078cc] {\n --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\n transition: transform var(--animation-quick), margin var(--animation-quick);\n width: 300px;\n --app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n max-width: var(--app-navigation-max-width);\n position: relative;\n top: 0;\n left: 0;\n padding: 0px;\n z-index: 1800;\n height: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n flex-grow: 0;\n flex-shrink: 0;\n background-color: var(--color-main-background-blur, var(--color-main-background));\n -webkit-backdrop-filter: var(--filter-background-blur, none);\n backdrop-filter: var(--filter-background-blur, none);\n}\n.app-navigation--close[data-v-e7d078cc] {\n margin-left: calc(-1 * min(300px, var(--app-navigation-max-width)));\n}\n.app-navigation__search[data-v-e7d078cc] {\n width: 100%;\n}\n.app-navigation__body[data-v-e7d078cc] {\n overflow-y: scroll;\n}\n.app-navigation__content > ul[data-v-e7d078cc] {\n position: relative;\n width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline, 4px);\n padding: var(--app-navigation-padding);\n}\n.app-navigation .app-navigation__list[data-v-e7d078cc] {\n height: 100%;\n}\n.app-navigation__body--no-list[data-v-e7d078cc] {\n flex: 1 1 auto;\n overflow: auto;\n height: 100%;\n}\n.app-navigation__content[data-v-e7d078cc] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n[data-themes*=highcontrast] .app-navigation[data-v-e7d078cc] {\n border-inline-end: 1px solid var(--color-border);\n}\n@media only screen and (max-width: 1024px) {\n.app-navigation[data-v-e7d078cc] {\n position: absolute;\n border-inline-end: 1px solid var(--color-border);\n}\n}\n@media only screen and (max-width: 512px) {\n.app-navigation[data-v-e7d078cc] {\n z-index: 1400;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigation-fhylfTxx.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;EAEE,sHAAsH;EACtH,qEAAqE;AACvE,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,8GAA8G;EAC9G,2EAA2E;EAC3E,YAAY;EACZ,wIAAwI;EACxI,0CAA0C;EAC1C,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,aAAa;EACb,YAAY;EACZ,sBAAsB;EACtB,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,iFAAiF;EACjF,4DAA4D;EAC5D,oDAAoD;AACtD;AACA;EACE,mEAAmE;AACrE;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,sBAAsB;EACtB,sCAAsC;EACtC,sCAAsC;AACxC;AACA;EACE,YAAY;AACd;AACA;EACE,cAAc;EACd,cAAc;EACd,YAAY;AACd;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,gDAAgD;AAClD;AACA;AACA;IACI,kBAAkB;IAClB,gDAAgD;AACpD;AACA;AACA;AACA;IACI,aAAa;AACjB;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation,\n.app-content {\n /** Distance of the app navigation toggle and the first navigation item to the top edge of the app content container */\n --app-navigation-padding: calc(var(--default-grid-baseline, 4px) * 2);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e7d078cc] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation[data-v-e7d078cc] {\n --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-text-maxcontrast-default));\n transition: transform var(--animation-quick), margin var(--animation-quick);\n width: 300px;\n --app-navigation-max-width: calc(100vw - (var(--app-navigation-padding) + var(--default-clickable-area) + var(--default-grid-baseline)));\n max-width: var(--app-navigation-max-width);\n position: relative;\n top: 0;\n left: 0;\n padding: 0px;\n z-index: 1800;\n height: 100%;\n box-sizing: border-box;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n flex-grow: 0;\n flex-shrink: 0;\n background-color: var(--color-main-background-blur, var(--color-main-background));\n -webkit-backdrop-filter: var(--filter-background-blur, none);\n backdrop-filter: var(--filter-background-blur, none);\n}\n.app-navigation--close[data-v-e7d078cc] {\n margin-left: calc(-1 * min(300px, var(--app-navigation-max-width)));\n}\n.app-navigation__search[data-v-e7d078cc] {\n width: 100%;\n}\n.app-navigation__body[data-v-e7d078cc] {\n overflow-y: scroll;\n}\n.app-navigation__content > ul[data-v-e7d078cc] {\n position: relative;\n width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline, 4px);\n padding: var(--app-navigation-padding);\n}\n.app-navigation .app-navigation__list[data-v-e7d078cc] {\n height: 100%;\n}\n.app-navigation__body--no-list[data-v-e7d078cc] {\n flex: 1 1 auto;\n overflow: auto;\n height: 100%;\n}\n.app-navigation__content[data-v-e7d078cc] {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n[data-themes*=highcontrast] .app-navigation[data-v-e7d078cc] {\n border-inline-end: 1px solid var(--color-border);\n}\n@media only screen and (max-width: 1024px) {\n.app-navigation[data-v-e7d078cc] {\n position: absolute;\n border-inline-end: 1px solid var(--color-border);\n}\n}\n@media only screen and (max-width: 512px) {\n.app-navigation[data-v-e7d078cc] {\n z-index: 1400;\n}\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},63693:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-af6cfb9c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-af6cfb9c] {\n display: flex;\n justify-content: space-between;\n}\n.app-navigation-caption--heading[data-v-af6cfb9c] {\n padding: var(--app-navigation-padding);\n}\n.app-navigation-caption--heading[data-v-af6cfb9c]:not(:first-child):not(:last-child) {\n padding: 0 var(--app-navigation-padding);\n}\n.app-navigation-caption__name[data-v-af6cfb9c] {\n font-weight: bold;\n color: var(--color-main-text);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-shadow: none !important;\n flex-shrink: 1;\n padding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 2);\n padding-right: 0;\n margin-top: 0px;\n margin-bottom: var(--default-grid-baseline);\n}\n.app-navigation-caption__actions[data-v-af6cfb9c] {\n flex: 0 0 var(--default-clickable-area);\n}\n.app-navigation-caption[data-v-af6cfb9c]:not(:first-child) {\n margin-top: calc(var(--default-clickable-area) / 2);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationCaption-zgtPq3Od.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,8BAA8B;AAChC;AACA;EACE,sCAAsC;AACxC;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,iBAAiB;EACjB,6BAA6B;EAC7B,mCAAmC;EACnC,0CAA0C;EAC1C,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,2BAA2B;EAC3B,cAAc;EACd,oGAAoG;EACpG,gBAAgB;EAChB,eAAe;EACf,2CAA2C;AAC7C;AACA;EACE,uCAAuC;AACzC;AACA;EACE,mDAAmD;AACrD",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-af6cfb9c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-caption[data-v-af6cfb9c] {\n display: flex;\n justify-content: space-between;\n}\n.app-navigation-caption--heading[data-v-af6cfb9c] {\n padding: var(--app-navigation-padding);\n}\n.app-navigation-caption--heading[data-v-af6cfb9c]:not(:first-child):not(:last-child) {\n padding: 0 var(--app-navigation-padding);\n}\n.app-navigation-caption__name[data-v-af6cfb9c] {\n font-weight: bold;\n color: var(--color-main-text);\n font-size: var(--default-font-size);\n line-height: var(--default-clickable-area);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n box-shadow: none !important;\n flex-shrink: 1;\n padding: 0 calc(var(--default-grid-baseline, 4px) * 2) 0 calc(var(--default-grid-baseline, 4px) * 2);\n padding-right: 0;\n margin-top: 0px;\n margin-bottom: var(--default-grid-baseline);\n}\n.app-navigation-caption__actions[data-v-af6cfb9c] {\n flex: 0 0 var(--default-clickable-area);\n}\n.app-navigation-caption[data-v-af6cfb9c]:not(:first-child) {\n margin-top: calc(var(--default-clickable-area) / 2);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},45282:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-938dadb1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry__icon-bullet[data-v-938dadb1] {\n display: block;\n padding: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\n}\n.app-navigation-entry__icon-bullet div[data-v-938dadb1] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n transition: background 100ms ease-in-out;\n border: none;\n border-radius: 50%;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationIconBullet-By_0o2dG.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,+DAA+D;AACjE;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,wCAAwC;EACxC,YAAY;EACZ,kBAAkB;AACpB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-938dadb1] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-entry__icon-bullet[data-v-938dadb1] {\n display: block;\n padding: calc((var(--default-clickable-area) - 16px) / 2 + 1px);\n}\n.app-navigation-entry__icon-bullet div[data-v-938dadb1] {\n width: 14px;\n height: 14px;\n cursor: pointer;\n transition: background 100ms ease-in-out;\n border: none;\n border-radius: 50%;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},7198:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cadd59ae] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue.icon-collapse[data-v-cadd59ae] {\n position: relative;\n z-index: 105;\n color: var(--color-main-text);\n right: 0;\n}\n.button-vue.icon-collapse--open[data-v-cadd59ae] {\n color: var(--color-main-text);\n}\n.button-vue.icon-collapse--open[data-v-cadd59ae]:hover {\n color: var(--color-primary-element);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-018c4203] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.app-navigation-entry[data-v-018c4203] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: var(--default-clickable-area);\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color 200ms ease-in-out;\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n /* hide deletion/collapse of subitems */\n}\n.app-navigation-entry-wrapper[data-v-018c4203] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-018c4203] {\n display: none;\n}\n.app-navigation-entry.active[data-v-018c4203] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active[data-v-018c4203]:hover {\n background-color: var(--color-primary-element-hover) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry.active .app-navigation-entry-button[data-v-018c4203] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-018c4203]:focus-within, .app-navigation-entry[data-v-018c4203]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-018c4203], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-018c4203], .app-navigation-entry:hover .app-navigation-entry__children[data-v-018c4203] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-018c4203] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-018c4203] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button[data-v-018c4203] {\n z-index: 100; /* above the bullet to allow click*/\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: var(--default-clickable-area);\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px 16px;\n line-height: var(--default-clickable-area);\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-018c4203] {\n display: flex;\n align-items: center;\n flex: 0 0 var(--default-clickable-area);\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-018c4203] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-018c4203] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-018c4203]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-018c4203]:focus-visible {\n box-shadow: 0 0 0 4px var(--color-main-background);\n outline: 2px solid var(--color-main-text);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n}\n/* Second level nesting for lists */\n.app-navigation-entry__children[data-v-018c4203] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-018c4203] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n/* Deleted entries */\n.app-navigation-entry__deleted[data-v-018c4203] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-018c4203] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: var(--default-clickable-area);\n}\n/* counter and actions */\n.app-navigation-entry__utils[data-v-018c4203] {\n display: flex;\n min-width: var(--default-clickable-area);\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n /* counter */\n /* actions */\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-018c4203] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-018c4203] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-018c4203] {\n display: none;\n}\n/* editing state */\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-018c4203] {\n z-index: 250;\n opacity: 1;\n}\n/* deleted state */\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-018c4203] {\n z-index: 250;\n transform: translateX(0);\n}\n/* pinned state */\n.app-navigation-entry--pinned[data-v-018c4203] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-018c4203] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-018c4203]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationItem-Vg0-UrGT.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,6BAA6B;EAC7B,QAAQ;AACV;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,mCAAmC;AACrC,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;EACX,yCAAyC;EACzC,+DAA+D;EAC/D,8CAA8C;EAC9C,sEAAsE;EACtE,uCAAuC;AACzC;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAyD;AAC3D;AACA;EACE,+DAA+D;AACjE;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;AACf;AACA;EACE,+DAA+D;AACjE;AACA;EACE,YAAY,EAAE,mCAAmC;EACjD,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,yCAAyC;EACzC,UAAU;EACV,mBAAmB;EACnB,6BAA6B;EAC7B,4BAA4B;EAC5B,4EAA4E;EAC5E,0BAA0B;EAC1B,0CAA0C;AAC5C;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uCAAuC;EACvC,uBAAuB;EACvB,oCAAoC;EACpC,qCAAqC;EACrC,0BAA0B;EAC1B,4BAA4B;EAC5B,4EAA4E;AAC9E;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iDAAiD;EACjD,YAAY;AACd;AACA;EACE,kDAAkD;EAClD,yCAAyC;EACzC,sEAAsE;AACxE;AACA,mCAAmC;AACnC;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;AACxC;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;AACpB;AACA,oBAAoB;AACpB;EACE,oBAAoB;EACpB,WAAW;EACX,yGAAyG;AAC3G;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,uBAAuB;EACvB,0CAA0C;AAC5C;AACA,wBAAwB;AACxB;EACE,aAAa;EACb,wCAAwC;EACxC,mBAAmB;EACnB,cAAc;EACd,yBAAyB;EACzB,YAAY;EACZ,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,oDAAoD;EACpD,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA,kBAAkB;AAClB;EACE,YAAY;EACZ,UAAU;AACZ;AACA,kBAAkB;AAClB;EACE,YAAY;EACZ,wBAAwB;AAC1B;AACA,iBAAiB;AACjB;EACE,QAAQ;EACR,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,qEAAqE;AACvE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cadd59ae] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue.icon-collapse[data-v-cadd59ae] {\n position: relative;\n z-index: 105;\n color: var(--color-main-text);\n right: 0;\n}\n.button-vue.icon-collapse--open[data-v-cadd59ae] {\n color: var(--color-main-text);\n}\n.button-vue.icon-collapse--open[data-v-cadd59ae]:hover {\n color: var(--color-primary-element);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-018c4203] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.app-navigation-entry[data-v-018c4203] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: var(--default-clickable-area);\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color 200ms ease-in-out;\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n /* hide deletion/collapse of subitems */\n}\n.app-navigation-entry-wrapper[data-v-018c4203] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-018c4203] {\n display: none;\n}\n.app-navigation-entry.active[data-v-018c4203] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active[data-v-018c4203]:hover {\n background-color: var(--color-primary-element-hover) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry.active .app-navigation-entry-button[data-v-018c4203] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-018c4203]:focus-within, .app-navigation-entry[data-v-018c4203]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-018c4203], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-018c4203], .app-navigation-entry:hover .app-navigation-entry__children[data-v-018c4203] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-018c4203] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-018c4203] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-018c4203] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button[data-v-018c4203] {\n z-index: 100; /* above the bullet to allow click*/\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: var(--default-clickable-area);\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px 16px;\n line-height: var(--default-clickable-area);\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-018c4203] {\n display: flex;\n align-items: center;\n flex: 0 0 var(--default-clickable-area);\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-018c4203] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-018c4203], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-018c4203] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-018c4203]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-018c4203]:focus-visible {\n box-shadow: 0 0 0 4px var(--color-main-background);\n outline: 2px solid var(--color-main-text);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n}\n/* Second level nesting for lists */\n.app-navigation-entry__children[data-v-018c4203] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-018c4203] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n/* Deleted entries */\n.app-navigation-entry__deleted[data-v-018c4203] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-018c4203] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: var(--default-clickable-area);\n}\n/* counter and actions */\n.app-navigation-entry__utils[data-v-018c4203] {\n display: flex;\n min-width: var(--default-clickable-area);\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n /* counter */\n /* actions */\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-018c4203] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-018c4203] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-018c4203] {\n display: none;\n}\n/* editing state */\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-018c4203] {\n z-index: 250;\n opacity: 1;\n}\n/* deleted state */\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-018c4203] {\n z-index: 250;\n transform: translateX(0);\n}\n/* pinned state */\n.app-navigation-entry--pinned[data-v-018c4203] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-018c4203] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-018c4203]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},59925:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-058e6060] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-list[data-v-058e6060] {\n position: relative;\n width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline, 4px);\n padding: var(--app-navigation-padding);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationList-BIbyyT7b.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,sBAAsB;EACtB,sCAAsC;EACtC,sCAAsC;AACxC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-058e6060] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-list[data-v-058e6060] {\n position: relative;\n width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline, 4px);\n padding: var(--app-navigation-padding);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},76966:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-810cb824] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/* 'New' button */\n.app-navigation-new[data-v-810cb824] {\n display: block;\n padding: calc(var(--default-grid-baseline, 4px) * 2);\n}\n.app-navigation-new button[data-v-810cb824] {\n width: 100%;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNew-BKfawNII.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,iBAAiB;AACjB;EACE,cAAc;EACd,oDAAoD;AACtD;AACA;EACE,WAAW;AACb",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-810cb824] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/* 'New' button */\n.app-navigation-new[data-v-810cb824] {\n display: block;\n padding: calc(var(--default-grid-baseline, 4px) * 2);\n}\n.app-navigation-new button[data-v-810cb824] {\n width: 100%;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},33890:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fe96d301] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.app-navigation-entry[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: var(--default-clickable-area);\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color 200ms ease-in-out;\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n /* hide deletion/collapse of subitems */\n}\n.app-navigation-entry-wrapper[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-fe96d301] {\n display: none;\n}\n.app-navigation-entry.active[data-v-fe96d301] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active[data-v-fe96d301]:hover {\n background-color: var(--color-primary-element-hover) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry.active .app-navigation-entry-button[data-v-fe96d301] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-fe96d301]:focus-within, .app-navigation-entry[data-v-fe96d301]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-fe96d301], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-fe96d301], .app-navigation-entry:hover .app-navigation-entry__children[data-v-fe96d301] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-fe96d301] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fe96d301] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button[data-v-fe96d301] {\n z-index: 100; /* above the bullet to allow click*/\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: var(--default-clickable-area);\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px 16px;\n line-height: var(--default-clickable-area);\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-fe96d301] {\n display: flex;\n align-items: center;\n flex: 0 0 var(--default-clickable-area);\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-fe96d301] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-fe96d301] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-fe96d301]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-fe96d301]:focus-visible {\n box-shadow: 0 0 0 4px var(--color-main-background);\n outline: 2px solid var(--color-main-text);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n}\n/* Second level nesting for lists */\n.app-navigation-entry__children[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-fe96d301] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n/* Deleted entries */\n.app-navigation-entry__deleted[data-v-fe96d301] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-fe96d301] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: var(--default-clickable-area);\n}\n/* counter and actions */\n.app-navigation-entry__utils[data-v-fe96d301] {\n display: flex;\n min-width: var(--default-clickable-area);\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n /* counter */\n /* actions */\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-fe96d301] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-fe96d301] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-fe96d301] {\n display: none;\n}\n/* editing state */\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-fe96d301] {\n z-index: 250;\n opacity: 1;\n}\n/* deleted state */\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-fe96d301] {\n z-index: 250;\n transform: translateX(0);\n}\n/* pinned state */\n.app-navigation-entry--pinned[data-v-fe96d301] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-fe96d301] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-fe96d301]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}\n.app-navigation-new-item__name[data-v-fe96d301] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-left: 7px;\n font-size: 14px;\n}\n.newItemContainer[data-v-fe96d301] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationNewItem-s6Dd9PrB.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;EAGE;AACF;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;EACX,yCAAyC;EACzC,+DAA+D;EAC/D,8CAA8C;EAC9C,sEAAsE;EACtE,uCAAuC;AACzC;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,eAAe;EACf,sBAAsB;EACtB,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAyD;AAC3D;AACA;EACE,+DAA+D;AACjE;AACA;EACE,mDAAmD;AACrD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,qBAAqB;AACvB;AACA;EACE,aAAa;AACf;AACA;EACE,+DAA+D;AACjE;AACA;EACE,YAAY,EAAE,mCAAmC;EACjD,aAAa;EACb,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,yCAAyC;EACzC,UAAU;EACV,mBAAmB;EACnB,6BAA6B;EAC7B,4BAA4B;EAC5B,4EAA4E;EAC5E,0BAA0B;EAC1B,0CAA0C;AAC5C;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uCAAuC;EACvC,uBAAuB;EACvB,oCAAoC;EACpC,qCAAqC;EACrC,0BAA0B;EAC1B,4BAA4B;EAC5B,4EAA4E;AAC9E;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iDAAiD;EACjD,YAAY;AACd;AACA;EACE,kDAAkD;EAClD,yCAAyC;EACzC,sEAAsE;AACxE;AACA,mCAAmC;AACnC;EACE,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,WAAW;EACX,sCAAsC;AACxC;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;AACpB;AACA,oBAAoB;AACpB;EACE,oBAAoB;EACpB,WAAW;EACX,yGAAyG;AAC3G;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,uBAAuB;EACvB,0CAA0C;AAC5C;AACA,wBAAwB;AACxB;EACE,aAAa;EACb,wCAAwC;EACxC,mBAAmB;EACnB,cAAc;EACd,yBAAyB;EACzB,YAAY;EACZ,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,oDAAoD;EACpD,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA,kBAAkB;AAClB;EACE,YAAY;EACZ,UAAU;AACZ;AACA,kBAAkB;AAClB;EACE,YAAY;EACZ,wBAAwB;AAC1B;AACA,iBAAiB;AACjB;EACE,QAAQ;EACR,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,qEAAqE;AACvE;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,iDAAiD;EACjD,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fe96d301] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n.app-navigation-entry[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n min-height: var(--default-clickable-area);\n transition: background-color var(--animation-quick) ease-in-out;\n transition: background-color 200ms ease-in-out;\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n /* hide deletion/collapse of subitems */\n}\n.app-navigation-entry-wrapper[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n box-sizing: border-box;\n width: 100%;\n}\n.app-navigation-entry-wrapper.app-navigation-entry--collapsible:not(.app-navigation-entry--opened) > ul[data-v-fe96d301] {\n display: none;\n}\n.app-navigation-entry.active[data-v-fe96d301] {\n background-color: var(--color-primary-element) !important;\n}\n.app-navigation-entry.active[data-v-fe96d301]:hover {\n background-color: var(--color-primary-element-hover) !important;\n}\n.app-navigation-entry.active .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry.active .app-navigation-entry-button[data-v-fe96d301] {\n color: var(--color-primary-element-text) !important;\n}\n.app-navigation-entry[data-v-fe96d301]:focus-within, .app-navigation-entry[data-v-fe96d301]:hover {\n background-color: var(--color-background-hover);\n}\n.app-navigation-entry.active .app-navigation-entry__children[data-v-fe96d301], .app-navigation-entry:focus-within .app-navigation-entry__children[data-v-fe96d301], .app-navigation-entry:hover .app-navigation-entry__children[data-v-fe96d301] {\n background-color: var(--color-main-background);\n}\n.app-navigation-entry.active .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry.app-navigation-entry--deleted .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:focus .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:focus-within .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301], .app-navigation-entry:hover .app-navigation-entry__utils .app-navigation-entry__actions[data-v-fe96d301] {\n display: inline-block;\n}\n.app-navigation-entry.app-navigation-entry--deleted > ul[data-v-fe96d301] {\n display: none;\n}\n.app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry:not(.app-navigation-entry--editing) .app-navigation-entry-button[data-v-fe96d301] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button[data-v-fe96d301] {\n z-index: 100; /* above the bullet to allow click*/\n display: flex;\n overflow: hidden;\n flex: 1 1 0;\n box-sizing: border-box;\n min-height: var(--default-clickable-area);\n padding: 0;\n white-space: nowrap;\n color: var(--color-main-text);\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n background-size: 16px 16px;\n line-height: var(--default-clickable-area);\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry-icon[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry-icon[data-v-fe96d301] {\n display: flex;\n align-items: center;\n flex: 0 0 var(--default-clickable-area);\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n background-size: 16px 16px;\n background-repeat: no-repeat;\n background-position: calc((var(--default-clickable-area) - 16px) / 2) center;\n}\n.app-navigation-entry .app-navigation-entry-link .app-navigation-entry__name[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .app-navigation-entry__name[data-v-fe96d301] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-navigation-entry .app-navigation-entry-link .editingContainer[data-v-fe96d301], .app-navigation-entry .app-navigation-entry-button .editingContainer[data-v-fe96d301] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}\n.app-navigation-entry .app-navigation-entry-link[data-v-fe96d301]:focus-visible, .app-navigation-entry .app-navigation-entry-button[data-v-fe96d301]:focus-visible {\n box-shadow: 0 0 0 4px var(--color-main-background);\n outline: 2px solid var(--color-main-text);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n}\n/* Second level nesting for lists */\n.app-navigation-entry__children[data-v-fe96d301] {\n position: relative;\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\n width: 100%;\n gap: var(--default-grid-baseline, 4px);\n}\n.app-navigation-entry__children .app-navigation-entry[data-v-fe96d301] {\n display: inline-flex;\n flex-wrap: wrap;\n padding-left: 16px;\n}\n/* Deleted entries */\n.app-navigation-entry__deleted[data-v-fe96d301] {\n display: inline-flex;\n flex: 1 1 0;\n padding-left: calc(var(--default-clickable-area) - (var(--default-clickable-area) - 16px) / 2) !important;\n}\n.app-navigation-entry__deleted .app-navigation-entry__deleted-description[data-v-fe96d301] {\n position: relative;\n overflow: hidden;\n flex: 1 1 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: var(--default-clickable-area);\n}\n/* counter and actions */\n.app-navigation-entry__utils[data-v-fe96d301] {\n display: flex;\n min-width: var(--default-clickable-area);\n align-items: center;\n flex: 0 1 auto;\n justify-content: flex-end;\n /* counter */\n /* actions */\n}\n.app-navigation-entry__utils.app-navigation-entry__utils--display-actions .action-item.app-navigation-entry__actions[data-v-fe96d301] {\n display: inline-block;\n}\n.app-navigation-entry__utils .app-navigation-entry__counter-wrapper[data-v-fe96d301] {\n margin-right: calc(var(--default-grid-baseline) * 3);\n display: flex;\n align-items: center;\n flex: 0 1 auto;\n}\n.app-navigation-entry__utils .action-item.app-navigation-entry__actions[data-v-fe96d301] {\n display: none;\n}\n/* editing state */\n.app-navigation-entry--editing .app-navigation-entry-edit[data-v-fe96d301] {\n z-index: 250;\n opacity: 1;\n}\n/* deleted state */\n.app-navigation-entry--deleted .app-navigation-entry-deleted[data-v-fe96d301] {\n z-index: 250;\n transform: translateX(0);\n}\n/* pinned state */\n.app-navigation-entry--pinned[data-v-fe96d301] {\n order: 2;\n margin-top: auto;\n}\n.app-navigation-entry--pinned ~ .app-navigation-entry--pinned[data-v-fe96d301] {\n margin-top: 0;\n}\n[data-themes*=highcontrast] .app-navigation-entry[data-v-fe96d301]:active {\n background-color: var(--color-primary-element-light-hover) !important;\n}\n.app-navigation-new-item__name[data-v-fe96d301] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-left: 7px;\n font-size: 14px;\n}\n.newItemContainer[data-v-fe96d301] {\n width: calc(100% - var(--default-clickable-area));\n margin: auto;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},61559:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-70fd8f35] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-search[data-v-70fd8f35] {\n display: flex;\n gap: var(--app-navigation-padding);\n padding: var(--app-navigation-padding);\n}\n.app-navigation-search--has-actions .app-navigation-search__input[data-v-70fd8f35] {\n flex-grow: 1;\n z-index: 3;\n}\n.app-navigation-search__actions[data-v-70fd8f35] {\n display: flex;\n gap: var(--default-grid-baseline);\n margin-inline-start: 0;\n max-width: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));\n max-height: var(--default-clickable-area);\n transition: margin-inline-start var(--animation-quick);\n}\n.app-navigation-search__actions--hidden[data-v-70fd8f35] {\n margin-inline-start: calc(-1 * var(--default-clickable-area));\n}\n.app-navigation-search__input[data-v-70fd8f35] {\n --input-border-radius: var(--border-radius-element, var(--border-radius-pill)) !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSearch-BLGG_WBn.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,kCAAkC;EAClC,sCAAsC;AACxC;AACA;EACE,YAAY;EACZ,UAAU;AACZ;AACA;EACE,aAAa;EACb,iCAAiC;EACjC,sBAAsB;EACtB,iFAAiF;EACjF,yCAAyC;EACzC,sDAAsD;AACxD;AACA;EACE,6DAA6D;AAC/D;AACA;EACE,yFAAyF;AAC3F",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-70fd8f35] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-search[data-v-70fd8f35] {\n display: flex;\n gap: var(--app-navigation-padding);\n padding: var(--app-navigation-padding);\n}\n.app-navigation-search--has-actions .app-navigation-search__input[data-v-70fd8f35] {\n flex-grow: 1;\n z-index: 3;\n}\n.app-navigation-search__actions[data-v-70fd8f35] {\n display: flex;\n gap: var(--default-grid-baseline);\n margin-inline-start: 0;\n max-width: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline));\n max-height: var(--default-clickable-area);\n transition: margin-inline-start var(--animation-quick);\n}\n.app-navigation-search__actions--hidden[data-v-70fd8f35] {\n margin-inline-start: calc(-1 * var(--default-clickable-area));\n}\n.app-navigation-search__input[data-v-70fd8f35] {\n --input-border-radius: var(--border-radius-element, var(--border-radius-pill)) !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},62018:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-981e215c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-981e215c] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-981e215c] {\n box-sizing: border-box;\n margin: 0 3px 3px 3px;\n}\n#app-settings__header .settings-button[data-v-981e215c] {\n display: flex;\n flex: 1 1 0;\n height: var(--default-clickable-area);\n width: 100%;\n padding: 0;\n margin: 0;\n background-color: transparent;\n box-shadow: none;\n border: 0;\n border-radius: var(--body-container-radius);\n text-align: left;\n font-weight: normal;\n font-size: 100%;\n color: var(--color-main-text);\n padding-right: 14px;\n line-height: var(--default-clickable-area);\n}\n#app-settings__header .settings-button[data-v-981e215c]:hover, #app-settings__header .settings-button[data-v-981e215c]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-981e215c] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n}\n#app-settings__header .settings-button__label[data-v-981e215c] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-981e215c] {\n display: block;\n padding: 10px;\n /* prevent scrolled contents from stopping too early */\n margin-bottom: -3px;\n /* restrict height of settings and make scrollable */\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-981e215c],\n.slide-up-enter-active[data-v-981e215c] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-981e215c],\n.slide-up-leave-to[data-v-981e215c] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSettings-AzpTlUym.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,qBAAqB;AACvB;AACA;EACE,aAAa;EACb,WAAW;EACX,qCAAqC;EACrC,WAAW;EACX,UAAU;EACV,SAAS;EACT,6BAA6B;EAC7B,gBAAgB;EAChB,SAAS;EACT,2CAA2C;EAC3C,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,6BAA6B;EAC7B,mBAAmB;EACnB,0CAA0C;AAC5C;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,aAAa;EACb,sDAAsD;EACtD,mBAAmB;EACnB,oDAAoD;EACpD,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;AACxB;AACA;;EAEE,0CAA0C;EAC1C,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;;EAEE,wBAAwB;EACxB,0BAA0B;AAC5B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-981e215c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#app-settings[data-v-981e215c] {\n margin-top: auto;\n padding: 3px;\n}\n#app-settings__header[data-v-981e215c] {\n box-sizing: border-box;\n margin: 0 3px 3px 3px;\n}\n#app-settings__header .settings-button[data-v-981e215c] {\n display: flex;\n flex: 1 1 0;\n height: var(--default-clickable-area);\n width: 100%;\n padding: 0;\n margin: 0;\n background-color: transparent;\n box-shadow: none;\n border: 0;\n border-radius: var(--body-container-radius);\n text-align: left;\n font-weight: normal;\n font-size: 100%;\n color: var(--color-main-text);\n padding-right: 14px;\n line-height: var(--default-clickable-area);\n}\n#app-settings__header .settings-button[data-v-981e215c]:hover, #app-settings__header .settings-button[data-v-981e215c]:focus {\n background-color: var(--color-background-hover);\n}\n#app-settings__header .settings-button__icon[data-v-981e215c] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n}\n#app-settings__header .settings-button__label[data-v-981e215c] {\n overflow: hidden;\n max-width: 100%;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n#app-settings__content[data-v-981e215c] {\n display: block;\n padding: 10px;\n /* prevent scrolled contents from stopping too early */\n margin-bottom: -3px;\n /* restrict height of settings and make scrollable */\n max-height: 300px;\n overflow-y: auto;\n box-sizing: border-box;\n}\n.slide-up-leave-active[data-v-981e215c],\n.slide-up-enter-active[data-v-981e215c] {\n transition-duration: var(--animation-slow);\n transition-property: max-height, padding;\n overflow-y: hidden !important;\n}\n.slide-up-enter[data-v-981e215c],\n.slide-up-leave-to[data-v-981e215c] {\n max-height: 0 !important;\n padding: 0 10px !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},74594:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"\n.app-navigation-spacer[data-v-b699c557] {\n\tflex-shrink: 0;\n\theight: 22px;\n}\n\n","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationSpacer-CfNqmQeR.css"],names:[],mappings:";AACA;CACC,cAAc;CACd,YAAY;AACb",sourcesContent:["\n.app-navigation-spacer[data-v-b699c557] {\n\tflex-shrink: 0;\n\theight: 22px;\n}\n\n"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},76786:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b6024aba] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-toggle-wrapper[data-v-b6024aba] {\n position: absolute;\n top: var(--app-navigation-padding);\n right: calc(0px - var(--app-navigation-padding));\n margin-right: calc(-1 * var(--default-clickable-area));\n}\nbutton.app-navigation-toggle[data-v-b6024aba] {\n background-color: var(--color-main-background);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppNavigationToggle-DvYpNzHv.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,kCAAkC;EAClC,gDAAgD;EAChD,sDAAsD;AACxD;AACA;EACE,8CAA8C;AAChD",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b6024aba] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-toggle-wrapper[data-v-b6024aba] {\n position: absolute;\n top: var(--app-navigation-padding);\n right: calc(0px - var(--app-navigation-padding));\n margin-right: calc(-1 * var(--default-clickable-area));\n}\nbutton.app-navigation-toggle[data-v-b6024aba] {\n background-color: var(--color-main-background);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},276:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0674bd2e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-0674bd2e] .app-settings__navigation {\n min-width: 200px;\n margin-right: calc(4 * var(--default-grid-baseline));\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n}\n[data-v-0674bd2e] .app-settings__content {\n box-sizing: border-box;\n padding-inline: calc(4 * var(--default-grid-baseline));\n}\n.navigation-list[data-v-0674bd2e] {\n height: 100%;\n box-sizing: border-box;\n overflow-y: auto;\n padding: calc(3 * var(--default-grid-baseline));\n}\n.navigation-list__link[data-v-0674bd2e] {\n display: flex;\n align-content: center;\n font-size: 16px;\n height: var(--default-clickable-area);\n margin: 4px 0;\n line-height: var(--default-clickable-area);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n font-weight: bold;\n padding: 0 calc(4 * var(--default-grid-baseline));\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n background-color: transparent;\n border: none;\n}\n.navigation-list__link[data-v-0674bd2e]:hover, .navigation-list__link[data-v-0674bd2e]:focus {\n background-color: var(--color-background-hover);\n}\n.navigation-list__link--active[data-v-0674bd2e] {\n background-color: var(--color-primary-element-light) !important;\n}\n.navigation-list__link--icon[data-v-0674bd2e] {\n padding-inline-start: calc(2 * var(--default-grid-baseline));\n gap: var(--default-grid-baseline);\n}\n.navigation-list__link-icon[data-v-0674bd2e] {\n display: flex;\n justify-content: center;\n align-content: center;\n width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n max-width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n}\n@media only screen and (max-width: 512px) {\n.app-settings[data-v-0674bd2e] .dialog__name {\n padding-inline-start: 16px;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppSettingsDialog-QF6aTZ3s.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,oDAAoD;EACpD,kBAAkB;EAClB,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,sBAAsB;EACtB,sDAAsD;AACxD;AACA;EACE,YAAY;EACZ,sBAAsB;EACtB,gBAAgB;EAChB,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,qBAAqB;EACrB,eAAe;EACf,qCAAqC;EACrC,aAAa;EACb,0CAA0C;EAC1C,sEAAsE;EACtE,iBAAiB;EACjB,iDAAiD;EACjD,eAAe;EACf,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;EAChB,6BAA6B;EAC7B,YAAY;AACd;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+DAA+D;AACjE;AACA;EACE,4DAA4D;EAC5D,iCAAiC;AACnC;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,qBAAqB;EACrB,6EAA6E;EAC7E,iFAAiF;AACnF;AACA;AACA;IACI,0BAA0B;AAC9B;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0674bd2e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-0674bd2e] .app-settings__navigation {\n min-width: 200px;\n margin-right: calc(4 * var(--default-grid-baseline));\n overflow-x: hidden;\n overflow-y: auto;\n position: relative;\n}\n[data-v-0674bd2e] .app-settings__content {\n box-sizing: border-box;\n padding-inline: calc(4 * var(--default-grid-baseline));\n}\n.navigation-list[data-v-0674bd2e] {\n height: 100%;\n box-sizing: border-box;\n overflow-y: auto;\n padding: calc(3 * var(--default-grid-baseline));\n}\n.navigation-list__link[data-v-0674bd2e] {\n display: flex;\n align-content: center;\n font-size: 16px;\n height: var(--default-clickable-area);\n margin: 4px 0;\n line-height: var(--default-clickable-area);\n border-radius: var(--border-radius-element, var(--border-radius-pill));\n font-weight: bold;\n padding: 0 calc(4 * var(--default-grid-baseline));\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n background-color: transparent;\n border: none;\n}\n.navigation-list__link[data-v-0674bd2e]:hover, .navigation-list__link[data-v-0674bd2e]:focus {\n background-color: var(--color-background-hover);\n}\n.navigation-list__link--active[data-v-0674bd2e] {\n background-color: var(--color-primary-element-light) !important;\n}\n.navigation-list__link--icon[data-v-0674bd2e] {\n padding-inline-start: calc(2 * var(--default-grid-baseline));\n gap: var(--default-grid-baseline);\n}\n.navigation-list__link-icon[data-v-0674bd2e] {\n display: flex;\n justify-content: center;\n align-content: center;\n width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n max-width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n}\n@media only screen and (max-width: 512px) {\n.app-settings[data-v-0674bd2e] .dialog__name {\n padding-inline-start: 16px;\n}\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},72903:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e970c9f7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-settings-section[data-v-e970c9f7] {\n margin-bottom: 80px;\n}\n.app-settings-section__name[data-v-e970c9f7] {\n font-size: 1.6em;\n margin: 0;\n padding: 20px 0;\n font-weight: bold;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppSettingsSection-qU4SUZvh.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,SAAS;EACT,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e970c9f7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-settings-section[data-v-e970c9f7] {\n margin-bottom: 80px;\n}\n.app-settings-section__name[data-v-e970c9f7] {\n font-size: 1.6em;\n margin: 0;\n padding: 20px 0;\n font-weight: bold;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},45812:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,'/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-77326a9c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar-tabs[data-v-77326a9c] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 100%;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] {\n display: flex;\n justify-content: stretch;\n margin: 10px 8px 0 8px;\n border-bottom: 1px solid var(--color-border);\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant {\n border: unset !important;\n border-radius: 0 !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant .checkbox-content {\n padding: var(--default-grid-baseline);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0 !important;\n margin: 0 !important;\n border-bottom: var(--default-grid-baseline) solid transparent !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant .checkbox-content .checkbox-content__icon--checked > * {\n color: var(--color-main-text) !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content {\n background: transparent !important;\n color: var(--color-main-text) !important;\n border-bottom: var(--default-grid-baseline) solid var(--color-primary-element) !important;\n}\n.app-sidebar-tabs__tab[data-v-77326a9c] {\n flex: 1 1;\n}\n.app-sidebar-tabs__tab.active[data-v-77326a9c] {\n color: var(--color-primary-element);\n}\n.app-sidebar-tabs__tab-caption[data-v-77326a9c] {\n flex: 0 1 100%;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-align: center;\n}\n.app-sidebar-tabs__tab-icon[data-v-77326a9c] {\n display: flex;\n align-items: center;\n justify-content: center;\n background-size: 20px;\n}\n.app-sidebar-tabs__tab[data-v-77326a9c] .checkbox-radio-switch__content {\n max-width: unset;\n}\n.app-sidebar-tabs__content[data-v-77326a9c] {\n position: relative;\n min-height: 256px;\n height: 100%;\n}\n.app-sidebar-tabs__content--multiple[data-v-77326a9c] > :not(section) {\n display: none;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n@property --app-sidebar-offset {\n syntax: "";\n initial-value: 0;\n inherits: true;\n}\n.content {\n --app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);\n --app-sidebar-offset: 0;\n transition: --app-sidebar-offset 0ms !important;\n}\n.content:has(.app-sidebar.slide-right-enter-active),\n.content:has(.app-sidebar.slide-right-leave-active) {\n transition: --app-sidebar-offset var(--animation-quick);\n}\n.content:has(.app-sidebar__toggle) {\n --app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area));\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2d142c0a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*\n\tSidebar: to be used within #content\n\tapp-content will be shrinked properly\n*/\n.app-sidebar[data-v-2d142c0a] {\n --app-sidebar-width: clamp(300px, 27vw, 500px);\n width: var(--app-sidebar-width);\n z-index: 1500;\n top: 0;\n right: 0;\n display: flex;\n overflow-x: hidden;\n overflow-y: auto;\n flex-direction: column;\n flex-shrink: 0;\n height: 100%;\n border-left: 1px solid var(--color-border);\n background: var(--color-main-background);\n position: relative;\n}\n.app-sidebar__toggle[data-v-2d142c0a] {\n position: absolute !important;\n inset-block-start: var(--app-sidebar-padding);\n inset-inline-end: var(--app-sidebar-padding);\n z-index: 1001;\n}\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a] {\n position: absolute;\n z-index: 100;\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-grid-baseline, 4px) * 2);\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 0.7;\n border-radius: calc(var(--default-clickable-area) / 2);\n}\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:hover, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:active, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:focus {\n opacity: 1;\n background-color: rgba(127, 127, 127, 0.25);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-2d142c0a] {\n flex-direction: row;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-2d142c0a] {\n --figure-size: calc($desc-height + var(--app-sidebar-padding));\n z-index: 2;\n width: var(--figure-size);\n height: var(--figure-size);\n margin: calc(var(--app-sidebar-padding) / 2);\n border-radius: 3px;\n flex: 0 0 auto;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-2d142c0a] {\n padding-left: 0;\n flex: 1 1 auto;\n min-width: 0;\n padding-right: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n padding-top: var(--app-sidebar-padding);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-2d142c0a] {\n z-index: 3;\n position: absolute;\n top: calc(var(--app-sidebar-padding) / 2);\n left: calc(-1 * var(--default-clickable-area));\n gap: 0;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-2d142c0a] {\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n position: absolute;\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-2d142c0a] {\n position: absolute;\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-grid-baseline, 4px) * 2 + var(--default-clickable-area));\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) * 2 + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-2d142c0a] {\n display: flex;\n flex-direction: column;\n}\n.app-sidebar .app-sidebar-header__figure[data-v-2d142c0a] {\n width: 100%;\n height: 250px;\n max-height: 250px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n.app-sidebar .app-sidebar-header__figure--with-action[data-v-2d142c0a] {\n cursor: pointer;\n}\n.app-sidebar .app-sidebar-header__desc[data-v-2d142c0a] {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding-inline: var(--app-sidebar-padding);\n padding-block: calc(var(--default-grid-baseline, 4px) * 2) calc(var(--app-sidebar-padding) / 2);\n gap: 0 4px;\n}\n.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-2d142c0a] {\n padding-left: 6px;\n}\n.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-2d142c0a], .app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-2d142c0a] {\n margin-top: -2px;\n margin-bottom: -2px;\n}\n.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-2d142c0a] {\n margin-top: -2px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-2d142c0a] {\n display: flex;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n justify-content: center;\n flex: 0 0 auto;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-2d142c0a] {\n box-shadow: none;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-2d142c0a]:not([aria-pressed=true]):hover {\n box-shadow: none;\n background-color: var(--color-background-hover);\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-2d142c0a] {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-2d142c0a] {\n display: flex;\n align-items: center;\n min-height: var(--default-clickable-area);\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-2d142c0a] {\n padding: 0;\n min-height: 30px;\n font-size: 20px;\n line-height: 30px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-2d142c0a] .linkified {\n cursor: pointer;\n text-decoration: underline;\n margin: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-2d142c0a] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-2d142c0a] {\n flex: 1 1 auto;\n margin: 0;\n padding: 7px;\n font-size: 20px;\n font-weight: bold;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-2d142c0a] {\n margin-left: 5px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-2d142c0a],\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-2d142c0a] {\n overflow: hidden;\n width: 100%;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-2d142c0a] {\n color: var(--color-text-maxcontrast);\n font-size: var(--default-font-size);\n padding: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname *[data-v-2d142c0a] {\n vertical-align: text-bottom;\n}\n.app-sidebar .app-sidebar-header__description[data-v-2d142c0a] {\n display: flex;\n align-items: center;\n margin: 0 10px;\n}\n@media only screen and (max-width: 512px) {\n.app-sidebar[data-v-2d142c0a] {\n position: absolute;\n --app-sidebar-width: 100vw;\n}\n}\n.slide-right-leave-active[data-v-2d142c0a],\n.slide-right-enter-active[data-v-2d142c0a] {\n transition-duration: var(--animation-quick);\n transition-property: margin-right;\n}\n.slide-right-enter-to[data-v-2d142c0a],\n.slide-right-leave[data-v-2d142c0a] {\n margin-right: 0;\n}\n.slide-right-enter[data-v-2d142c0a],\n.slide-right-leave-to[data-v-2d142c0a] {\n margin-right: calc(-1 * var(--app-sidebar-width));\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar-header__description button, .app-sidebar-header__description .button,\n.app-sidebar-header__description input[type=button],\n.app-sidebar-header__description input[type=submit],\n.app-sidebar-header__description input[type=reset] {\n padding: 6px 22px;\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppSidebar-CpV7czJx.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,cAAc;AAChB;AACA;EACE,aAAa;EACb,wBAAwB;EACxB,sBAAsB;EACtB,4CAA4C;AAC9C;AACA;EACE,wBAAwB;EACxB,2BAA2B;AAC7B;AACA;EACE,qCAAqC;EACrC,uFAAuF;EACvF,oBAAoB;EACpB,wEAAwE;AAC1E;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,kCAAkC;EAClC,wCAAwC;EACxC,yFAAyF;AAC3F;AACA;EACE,SAAS;AACX;AACA;EACE,mCAAmC;AACrC;AACA;EACE,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,qBAAqB;AACvB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,YAAY;AACd;AACA;EACE,aAAa;AACf,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,kEAAkE;EAClE,uBAAuB;EACvB,+CAA+C;AACjD;AACA;;EAEE,uDAAuD;AACzD;AACA;EACE,sFAAsF;AACxF,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;CAGC;AACD;EACE,8CAA8C;EAC9C,+BAA+B;EAC/B,aAAa;EACb,MAAM;EACN,QAAQ;EACR,aAAa;EACb,kBAAkB;EAClB,gBAAgB;EAChB,sBAAsB;EACtB,cAAc;EACd,YAAY;EACZ,0CAA0C;EAC1C,wCAAwC;EACxC,kBAAkB;AACpB;AACA;EACE,6BAA6B;EAC7B,6CAA6C;EAC7C,4CAA4C;EAC5C,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gDAAgD;EAChD,kDAAkD;EAClD,oCAAoC;EACpC,qCAAqC;EACrC,YAAY;EACZ,sDAAsD;AACxD;AACA;EACE,UAAU;EACV,2CAA2C;AAC7C;AACA;EACE,mBAAmB;AACrB;AACA;EACE,8DAA8D;EAC9D,UAAU;EACV,yBAAyB;EACzB,0BAA0B;EAC1B,4CAA4C;EAC5C,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,eAAe;EACf,cAAc;EACd,YAAY;EACZ,8FAA8F;EAC9F,uCAAuC;AACzC;AACA;EACE,0FAA0F;AAC5F;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,yCAAyC;EACzC,8CAA8C;EAC9C,MAAM;AACR;AACA;EACE,gDAAgD;EAChD,kFAAkF;EAClF,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,gDAAgD;EAChD,kFAAkF;AACpF;AACA;EACE,8FAA8F;AAChG;AACA;EACE,0FAA0F;AAC5F;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,aAAa;EACb,iBAAiB;EACjB,4BAA4B;EAC5B,2BAA2B;EAC3B,wBAAwB;AAC1B;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,mBAAmB;EACnB,0CAA0C;EAC1C,+FAA+F;EAC/F,UAAU;AACZ;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,qCAAqC;EACrC,oCAAoC;EACpC,uBAAuB;EACvB,cAAc;AAChB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,+CAA+C;AACjD;AACA;EACE,cAAc;EACd,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,yCAAyC;AAC3C;AACA;EACE,UAAU;EACV,gBAAgB;EAChB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,eAAe;EACf,0BAA0B;EAC1B,SAAS;AACX;AACA;EACE,aAAa;EACb,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,SAAS;EACT,YAAY;EACZ,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,gBAAgB;AAClB;AACA;;EAEE,gBAAgB;EAChB,WAAW;EACX,SAAS;EACT,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,mCAAmC;EACnC,UAAU;AACZ;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,cAAc;AAChB;AACA;AACA;IACI,kBAAkB;IAClB,0BAA0B;AAC9B;AACA;AACA;;EAEE,2CAA2C;EAC3C,iCAAiC;AACnC;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,iDAAiD;AACnD,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;;EAIE,iBAAiB;AACnB",sourcesContent:['/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-77326a9c] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar-tabs[data-v-77326a9c] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1 1 100%;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] {\n display: flex;\n justify-content: stretch;\n margin: 10px 8px 0 8px;\n border-bottom: 1px solid var(--color-border);\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant {\n border: unset !important;\n border-radius: 0 !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant .checkbox-content {\n padding: var(--default-grid-baseline);\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0 !important;\n margin: 0 !important;\n border-bottom: var(--default-grid-baseline) solid transparent !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant .checkbox-content .checkbox-content__icon--checked > * {\n color: var(--color-main-text) !important;\n}\n.app-sidebar-tabs__nav[data-v-77326a9c] .checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content {\n background: transparent !important;\n color: var(--color-main-text) !important;\n border-bottom: var(--default-grid-baseline) solid var(--color-primary-element) !important;\n}\n.app-sidebar-tabs__tab[data-v-77326a9c] {\n flex: 1 1;\n}\n.app-sidebar-tabs__tab.active[data-v-77326a9c] {\n color: var(--color-primary-element);\n}\n.app-sidebar-tabs__tab-caption[data-v-77326a9c] {\n flex: 0 1 100%;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-align: center;\n}\n.app-sidebar-tabs__tab-icon[data-v-77326a9c] {\n display: flex;\n align-items: center;\n justify-content: center;\n background-size: 20px;\n}\n.app-sidebar-tabs__tab[data-v-77326a9c] .checkbox-radio-switch__content {\n max-width: unset;\n}\n.app-sidebar-tabs__content[data-v-77326a9c] {\n position: relative;\n min-height: 256px;\n height: 100%;\n}\n.app-sidebar-tabs__content--multiple[data-v-77326a9c] > :not(section) {\n display: none;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n@property --app-sidebar-offset {\n syntax: "";\n initial-value: 0;\n inherits: true;\n}\n.content {\n --app-sidebar-padding: calc(var(--default-grid-baseline, 4px) * 2);\n --app-sidebar-offset: 0;\n transition: --app-sidebar-offset 0ms !important;\n}\n.content:has(.app-sidebar.slide-right-enter-active),\n.content:has(.app-sidebar.slide-right-leave-active) {\n transition: --app-sidebar-offset var(--animation-quick);\n}\n.content:has(.app-sidebar__toggle) {\n --app-sidebar-offset: calc(var(--app-sidebar-padding) + var(--default-clickable-area));\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2d142c0a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/*\n\tSidebar: to be used within #content\n\tapp-content will be shrinked properly\n*/\n.app-sidebar[data-v-2d142c0a] {\n --app-sidebar-width: clamp(300px, 27vw, 500px);\n width: var(--app-sidebar-width);\n z-index: 1500;\n top: 0;\n right: 0;\n display: flex;\n overflow-x: hidden;\n overflow-y: auto;\n flex-direction: column;\n flex-shrink: 0;\n height: 100%;\n border-left: 1px solid var(--color-border);\n background: var(--color-main-background);\n position: relative;\n}\n.app-sidebar__toggle[data-v-2d142c0a] {\n position: absolute !important;\n inset-block-start: var(--app-sidebar-padding);\n inset-inline-end: var(--app-sidebar-padding);\n z-index: 1001;\n}\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a] {\n position: absolute;\n z-index: 100;\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-grid-baseline, 4px) * 2);\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n opacity: 0.7;\n border-radius: calc(var(--default-clickable-area) / 2);\n}\n.app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:hover, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:active, .app-sidebar .app-sidebar-header > .app-sidebar__close[data-v-2d142c0a]:focus {\n opacity: 1;\n background-color: rgba(127, 127, 127, 0.25);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info[data-v-2d142c0a] {\n flex-direction: row;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__figure[data-v-2d142c0a] {\n --figure-size: calc($desc-height + var(--app-sidebar-padding));\n z-index: 2;\n width: var(--figure-size);\n height: var(--figure-size);\n margin: calc(var(--app-sidebar-padding) / 2);\n border-radius: 3px;\n flex: 0 0 auto;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc[data-v-2d142c0a] {\n padding-left: 0;\n flex: 1 1 auto;\n min-width: 0;\n padding-right: calc(2 * var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n padding-top: var(--app-sidebar-padding);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-2d142c0a] {\n z-index: 3;\n position: absolute;\n top: calc(var(--app-sidebar-padding) / 2);\n left: calc(-1 * var(--default-clickable-area));\n gap: 0;\n}\n.app-sidebar .app-sidebar-header--compact.app-sidebar-header--with-figure .app-sidebar-header__info .app-sidebar-header__desc .app-sidebar-header__menu[data-v-2d142c0a] {\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n position: absolute;\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__menu[data-v-2d142c0a] {\n position: absolute;\n top: calc(var(--default-grid-baseline, 4px) * 2);\n right: calc(var(--default-grid-baseline, 4px) * 2 + var(--default-clickable-area));\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) * 2 + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header:not(.app-sidebar-header--with-figure) .app-sidebar-header__desc.app-sidebar-header__desc--without-actions[data-v-2d142c0a] {\n padding-right: calc(var(--default-clickable-area) + var(--default-grid-baseline, 4px) * 2);\n}\n.app-sidebar .app-sidebar-header .app-sidebar-header__info[data-v-2d142c0a] {\n display: flex;\n flex-direction: column;\n}\n.app-sidebar .app-sidebar-header__figure[data-v-2d142c0a] {\n width: 100%;\n height: 250px;\n max-height: 250px;\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n.app-sidebar .app-sidebar-header__figure--with-action[data-v-2d142c0a] {\n cursor: pointer;\n}\n.app-sidebar .app-sidebar-header__desc[data-v-2d142c0a] {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding-inline: var(--app-sidebar-padding);\n padding-block: calc(var(--default-grid-baseline, 4px) * 2) calc(var(--app-sidebar-padding) / 2);\n gap: 0 4px;\n}\n.app-sidebar .app-sidebar-header__desc--with-tertiary-action[data-v-2d142c0a] {\n padding-left: 6px;\n}\n.app-sidebar .app-sidebar-header__desc--editable .app-sidebar-header__mainname-form[data-v-2d142c0a], .app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__mainname-form[data-v-2d142c0a] {\n margin-top: -2px;\n margin-bottom: -2px;\n}\n.app-sidebar .app-sidebar-header__desc--with-subname--editable .app-sidebar-header__subname[data-v-2d142c0a] {\n margin-top: -2px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions[data-v-2d142c0a] {\n display: flex;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n justify-content: center;\n flex: 0 0 auto;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-2d142c0a] {\n box-shadow: none;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__tertiary-actions .app-sidebar-header__star[data-v-2d142c0a]:not([aria-pressed=true]):hover {\n box-shadow: none;\n background-color: var(--color-background-hover);\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container[data-v-2d142c0a] {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container[data-v-2d142c0a] {\n display: flex;\n align-items: center;\n min-height: var(--default-clickable-area);\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-2d142c0a] {\n padding: 0;\n min-height: 30px;\n font-size: 20px;\n line-height: 30px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname[data-v-2d142c0a] .linkified {\n cursor: pointer;\n text-decoration: underline;\n margin: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form[data-v-2d142c0a] {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__mainname-form input.app-sidebar-header__mainname-input[data-v-2d142c0a] {\n flex: 1 1 auto;\n margin: 0;\n padding: 7px;\n font-size: 20px;\n font-weight: bold;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname-container .app-sidebar-header__menu[data-v-2d142c0a] {\n margin-left: 5px;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__mainname[data-v-2d142c0a],\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-2d142c0a] {\n overflow: hidden;\n width: 100%;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname[data-v-2d142c0a] {\n color: var(--color-text-maxcontrast);\n font-size: var(--default-font-size);\n padding: 0;\n}\n.app-sidebar .app-sidebar-header__desc .app-sidebar-header__name-container .app-sidebar-header__subname *[data-v-2d142c0a] {\n vertical-align: text-bottom;\n}\n.app-sidebar .app-sidebar-header__description[data-v-2d142c0a] {\n display: flex;\n align-items: center;\n margin: 0 10px;\n}\n@media only screen and (max-width: 512px) {\n.app-sidebar[data-v-2d142c0a] {\n position: absolute;\n --app-sidebar-width: 100vw;\n}\n}\n.slide-right-leave-active[data-v-2d142c0a],\n.slide-right-enter-active[data-v-2d142c0a] {\n transition-duration: var(--animation-quick);\n transition-property: margin-right;\n}\n.slide-right-enter-to[data-v-2d142c0a],\n.slide-right-leave[data-v-2d142c0a] {\n margin-right: 0;\n}\n.slide-right-enter[data-v-2d142c0a],\n.slide-right-leave-to[data-v-2d142c0a] {\n margin-right: calc(-1 * var(--app-sidebar-width));\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar-header__description button, .app-sidebar-header__description .button,\n.app-sidebar-header__description input[type=button],\n.app-sidebar-header__description input[type=submit],\n.app-sidebar-header__description input[type=reset] {\n padding: 6px 22px;\n}'],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},40369:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-095ea4ce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar__tab[data-v-095ea4ce] {\n display: none;\n padding: 10px;\n min-height: 100%;\n max-height: 100%;\n height: 100%;\n overflow: auto;\n}\n.app-sidebar__tab[data-v-095ea4ce]:focus {\n border-color: var(--color-primary-element);\n box-shadow: 0 0 0.2em var(--color-primary-element);\n outline: 0;\n}\n.app-sidebar__tab--active[data-v-095ea4ce] {\n display: block;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAppSidebarTab-BieYhqvk.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,aAAa;EACb,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,cAAc;AAChB;AACA;EACE,0CAA0C;EAC1C,kDAAkD;EAClD,UAAU;AACZ;AACA;EACE,cAAc;AAChB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-095ea4ce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-sidebar__tab[data-v-095ea4ce] {\n display: none;\n padding: 10px;\n min-height: 100%;\n max-height: 100%;\n height: 100%;\n overflow: auto;\n}\n.app-sidebar__tab[data-v-095ea4ce]:focus {\n border-color: var(--color-primary-element);\n box-shadow: 0 0 0.2em var(--color-primary-element);\n outline: 0;\n}\n.app-sidebar__tab--active[data-v-095ea4ce] {\n display: block;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},80590:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-9ce7ef1d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.avatardiv[data-v-9ce7ef1d] {\n position: relative;\n display: inline-block;\n width: var(--size);\n height: var(--size);\n}\n.avatardiv--unknown[data-v-9ce7ef1d] {\n position: relative;\n background-color: var(--color-main-background);\n white-space: normal;\n}\n.avatardiv[data-v-9ce7ef1d]:not(.avatardiv--unknown) {\n background-color: var(--color-main-background) !important;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] {\n cursor: pointer;\n}\n.avatardiv--with-menu .action-item[data-v-9ce7ef1d] {\n position: absolute;\n top: 0;\n left: 0;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .action-item__menutoggle {\n cursor: pointer;\n opacity: 0;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d]:focus-within .action-item__menutoggle, .avatardiv--with-menu[data-v-9ce7ef1d]:hover .action-item__menutoggle, .avatardiv--with-menu.avatardiv--with-menu-loading[data-v-9ce7ef1d] .action-item__menutoggle {\n opacity: 1;\n}\n.avatardiv--with-menu:focus-within img[data-v-9ce7ef1d], .avatardiv--with-menu:hover img[data-v-9ce7ef1d], .avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-9ce7ef1d] {\n opacity: 0.3;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .action-item__menutoggle,\n.avatardiv--with-menu img[data-v-9ce7ef1d] {\n transition: opacity var(--animation-quick);\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .button-vue,\n.avatardiv--with-menu[data-v-9ce7ef1d] .button-vue__icon {\n height: var(--size);\n min-height: var(--size);\n width: var(--size) !important;\n min-width: var(--size);\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] > .button-vue, .avatardiv--with-menu[data-v-9ce7ef1d] > .action-item .button-vue {\n --button-radius: calc(var(--size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper[data-v-9ce7ef1d] {\n display: block;\n height: var(--size);\n width: var(--size);\n background-color: var(--color-main-background);\n border-radius: calc(var(--size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-9ce7ef1d] {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n text-align: center;\n font-weight: normal;\n}\n.avatardiv img[data-v-9ce7ef1d] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.avatardiv .material-design-icon[data-v-9ce7ef1d] {\n width: var(--size);\n height: var(--size);\n}\n.avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n box-sizing: border-box;\n position: absolute;\n right: -4px;\n bottom: -4px;\n min-height: 14px;\n min-width: 14px;\n max-height: 18px;\n max-width: 18px;\n height: 40%;\n width: 40%;\n line-height: 1;\n font-size: clamp(var(--font-size-small), 85%, var(--default-font-size));\n border: 2px solid var(--color-main-background);\n background-color: var(--color-main-background);\n background-repeat: no-repeat;\n background-size: 16px;\n background-position: center;\n border-radius: 50%;\n}\n.acli:hover .avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n border-color: var(--color-background-hover);\n background-color: var(--color-background-hover);\n}\n.acli.active .avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\n.avatardiv .avatardiv__user-status--icon[data-v-9ce7ef1d] {\n border: none;\n background-color: transparent;\n}\n.avatardiv .popovermenu-wrapper[data-v-9ce7ef1d] {\n position: relative;\n display: inline-block;\n}\n.avatar-class-icon[data-v-9ce7ef1d] {\n display: block;\n border-radius: calc(var(--size) / 2);\n background-color: var(--color-background-darker);\n height: 100%;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcAvatar-CfUWTmJW.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,kBAAkB;EAClB,8CAA8C;EAC9C,mBAAmB;AACrB;AACA;EACE,yDAAyD;EACzD,6CAA6C;AAC/C;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;AACT;AACA;EACE,eAAe;EACf,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;;EAEE,0CAA0C;AAC5C;AACA;;EAEE,mBAAmB;EACnB,uBAAuB;EACvB,6BAA6B;EAC7B,sBAAsB;AACxB;AACA;EACE,sCAAsC;AACxC;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,kBAAkB;EAClB,8CAA8C;EAC9C,oCAAoC;AACtC;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;EACX,UAAU;EACV,cAAc;EACd,uEAAuE;EACvE,8CAA8C;EAC9C,8CAA8C;EAC9C,4BAA4B;EAC5B,qBAAqB;EACrB,2BAA2B;EAC3B,kBAAkB;AACpB;AACA;EACE,2CAA2C;EAC3C,+CAA+C;AACjD;AACA;EACE,gDAAgD;EAChD,oDAAoD;AACtD;AACA;EACE,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,cAAc;EACd,oCAAoC;EACpC,gDAAgD;EAChD,YAAY;AACd",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-9ce7ef1d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.avatardiv[data-v-9ce7ef1d] {\n position: relative;\n display: inline-block;\n width: var(--size);\n height: var(--size);\n}\n.avatardiv--unknown[data-v-9ce7ef1d] {\n position: relative;\n background-color: var(--color-main-background);\n white-space: normal;\n}\n.avatardiv[data-v-9ce7ef1d]:not(.avatardiv--unknown) {\n background-color: var(--color-main-background) !important;\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.05) inset;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] {\n cursor: pointer;\n}\n.avatardiv--with-menu .action-item[data-v-9ce7ef1d] {\n position: absolute;\n top: 0;\n left: 0;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .action-item__menutoggle {\n cursor: pointer;\n opacity: 0;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d]:focus-within .action-item__menutoggle, .avatardiv--with-menu[data-v-9ce7ef1d]:hover .action-item__menutoggle, .avatardiv--with-menu.avatardiv--with-menu-loading[data-v-9ce7ef1d] .action-item__menutoggle {\n opacity: 1;\n}\n.avatardiv--with-menu:focus-within img[data-v-9ce7ef1d], .avatardiv--with-menu:hover img[data-v-9ce7ef1d], .avatardiv--with-menu.avatardiv--with-menu-loading img[data-v-9ce7ef1d] {\n opacity: 0.3;\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .action-item__menutoggle,\n.avatardiv--with-menu img[data-v-9ce7ef1d] {\n transition: opacity var(--animation-quick);\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] .button-vue,\n.avatardiv--with-menu[data-v-9ce7ef1d] .button-vue__icon {\n height: var(--size);\n min-height: var(--size);\n width: var(--size) !important;\n min-width: var(--size);\n}\n.avatardiv--with-menu[data-v-9ce7ef1d] > .button-vue, .avatardiv--with-menu[data-v-9ce7ef1d] > .action-item .button-vue {\n --button-radius: calc(var(--size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper[data-v-9ce7ef1d] {\n display: block;\n height: var(--size);\n width: var(--size);\n background-color: var(--color-main-background);\n border-radius: calc(var(--size) / 2);\n}\n.avatardiv .avatardiv__initials-wrapper .avatardiv__initials[data-v-9ce7ef1d] {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n text-align: center;\n font-weight: normal;\n}\n.avatardiv img[data-v-9ce7ef1d] {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.avatardiv .material-design-icon[data-v-9ce7ef1d] {\n width: var(--size);\n height: var(--size);\n}\n.avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n box-sizing: border-box;\n position: absolute;\n right: -4px;\n bottom: -4px;\n min-height: 14px;\n min-width: 14px;\n max-height: 18px;\n max-width: 18px;\n height: 40%;\n width: 40%;\n line-height: 1;\n font-size: clamp(var(--font-size-small), 85%, var(--default-font-size));\n border: 2px solid var(--color-main-background);\n background-color: var(--color-main-background);\n background-repeat: no-repeat;\n background-size: 16px;\n background-position: center;\n border-radius: 50%;\n}\n.acli:hover .avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n border-color: var(--color-background-hover);\n background-color: var(--color-background-hover);\n}\n.acli.active .avatardiv .avatardiv__user-status[data-v-9ce7ef1d] {\n border-color: var(--color-primary-element-light);\n background-color: var(--color-primary-element-light);\n}\n.avatardiv .avatardiv__user-status--icon[data-v-9ce7ef1d] {\n border: none;\n background-color: transparent;\n}\n.avatardiv .popovermenu-wrapper[data-v-9ce7ef1d] {\n position: relative;\n display: inline-block;\n}\n.avatar-class-icon[data-v-9ce7ef1d] {\n display: block;\n border-radius: calc(var(--size) / 2);\n background-color: var(--color-background-darker);\n height: 100%;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},27464:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cfe13af3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.vue-crumb[data-v-cfe13af3] {\n background-image: none;\n display: inline-flex;\n height: var(--default-clickable-area);\n padding: 0;\n}\n.vue-crumb[data-v-cfe13af3]:last-child {\n min-width: 0;\n}\n.vue-crumb:last-child .vue-crumb__separator[data-v-cfe13af3] {\n display: none;\n}\n.vue-crumb--hidden[data-v-cfe13af3] {\n display: none;\n}\n.vue-crumb__separator[data-v-cfe13af3] {\n padding: 0;\n color: var(--color-text-maxcontrast);\n}\n.vue-crumb.vue-crumb--hovered[data-v-cfe13af3] .button-vue {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue {\n color: var(--color-text-maxcontrast);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue:hover, .vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue:focus {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue__text {\n font-weight: normal;\n}\n.vue-crumb[data-v-cfe13af3] .button-vue__text {\n margin: 0;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item {\n max-width: 100%;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item .button-vue {\n padding: 0 4px 0 16px;\n max-width: 100%;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item .button-vue__wrapper {\n flex-direction: row-reverse;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcBreadcrumb-DOvK-XG1.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;EACtB,oBAAoB;EACpB,qCAAqC;EACrC,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,UAAU;EACV,oCAAoC;AACtC;AACA;EACE,8CAA8C;EAC9C,6BAA6B;AAC/B;AACA;EACE,oCAAoC;AACtC;AACA;EACE,8CAA8C;EAC9C,6BAA6B;AAC/B;AACA;EACE,mBAAmB;AACrB;AACA;EACE,SAAS;AACX;AACA;EACE,eAAe;AACjB;AACA;EACE,qBAAqB;EACrB,eAAe;AACjB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,8CAA8C;EAC9C,6BAA6B;AAC/B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cfe13af3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.vue-crumb[data-v-cfe13af3] {\n background-image: none;\n display: inline-flex;\n height: var(--default-clickable-area);\n padding: 0;\n}\n.vue-crumb[data-v-cfe13af3]:last-child {\n min-width: 0;\n}\n.vue-crumb:last-child .vue-crumb__separator[data-v-cfe13af3] {\n display: none;\n}\n.vue-crumb--hidden[data-v-cfe13af3] {\n display: none;\n}\n.vue-crumb__separator[data-v-cfe13af3] {\n padding: 0;\n color: var(--color-text-maxcontrast);\n}\n.vue-crumb.vue-crumb--hovered[data-v-cfe13af3] .button-vue {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue {\n color: var(--color-text-maxcontrast);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue:hover, .vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue:focus {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}\n.vue-crumb[data-v-cfe13af3]:not(:last-child) .button-vue__text {\n font-weight: normal;\n}\n.vue-crumb[data-v-cfe13af3] .button-vue__text {\n margin: 0;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item {\n max-width: 100%;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item .button-vue {\n padding: 0 4px 0 16px;\n max-width: 100%;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item .button-vue__wrapper {\n flex-direction: row-reverse;\n}\n.vue-crumb[data-v-cfe13af3]:not(.dropdown) .action-item.action-item--open .action-item__menutoggle {\n background-color: var(--color-background-dark);\n color: var(--color-main-text);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},67733:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-629bf30f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.breadcrumb[data-v-629bf30f] {\n width: 100%;\n flex-grow: 1;\n display: inline-flex;\n align-items: center;\n}\n.breadcrumb--collapsed[data-v-629bf30f] .vue-crumb:last-child {\n min-width: 100px;\n}\n.breadcrumb nav[data-v-629bf30f] {\n flex-shrink: 1;\n min-width: 0;\n}\n.breadcrumb .breadcrumb__crumbs[data-v-629bf30f] {\n max-width: 100%;\n}\n.breadcrumb .breadcrumb__crumbs[data-v-629bf30f], .breadcrumb .breadcrumb__actions[data-v-629bf30f] {\n display: inline-flex;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcBreadcrumbs-CPUAM38l.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,oBAAoB;AACtB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-629bf30f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.breadcrumb[data-v-629bf30f] {\n width: 100%;\n flex-grow: 1;\n display: inline-flex;\n align-items: center;\n}\n.breadcrumb--collapsed[data-v-629bf30f] .vue-crumb:last-child {\n min-width: 100px;\n}\n.breadcrumb nav[data-v-629bf30f] {\n flex-shrink: 1;\n min-width: 0;\n}\n.breadcrumb .breadcrumb__crumbs[data-v-629bf30f] {\n max-width: 100%;\n}\n.breadcrumb .breadcrumb__crumbs[data-v-629bf30f], .breadcrumb .breadcrumb__actions[data-v-629bf30f] {\n display: inline-flex;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},80603:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c3d9e0ce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-c3d9e0ce] {\n --button-size: var(--default-clickable-area);\n --button-radius: var(--border-radius-element, calc(var(--button-size) / 2));\n --button-padding: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));\n position: relative;\n width: fit-content;\n overflow: hidden;\n border: 0;\n padding: 0;\n font-size: var(--default-font-size);\n font-weight: bold;\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: var(--button-radius);\n transition-property: color, border-color, background-color;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n}\n.button-vue--size-small[data-v-c3d9e0ce] {\n --button-size: var(--clickable-area-small, 24px);\n --button-radius: var(--border-radius);\n}\n.button-vue--size-large[data-v-c3d9e0ce] {\n --button-size: var(--clickable-area-large, 48px);\n}\n.button-vue *[data-v-c3d9e0ce],\n.button-vue span[data-v-c3d9e0ce] {\n cursor: pointer;\n}\n.button-vue[data-v-c3d9e0ce]:focus {\n outline: none;\n}\n.button-vue[data-v-c3d9e0ce]:disabled {\n cursor: default;\n opacity: 0.5;\n filter: saturate(0.7);\n}\n.button-vue:disabled *[data-v-c3d9e0ce] {\n cursor: default;\n}\n.button-vue[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-c3d9e0ce]:active {\n background-color: var(--color-primary-element-light);\n}\n.button-vue__wrapper[data-v-c3d9e0ce] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-c3d9e0ce] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-c3d9e0ce] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-c3d9e0ce] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse.button-vue--icon-and-text[data-v-c3d9e0ce] {\n padding-inline: var(--button-padding) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-c3d9e0ce] {\n height: var(--button-size);\n width: var(--button-size);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-c3d9e0ce] {\n font-weight: bold;\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue--icon-only[data-v-c3d9e0ce] {\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue--text-only[data-v-c3d9e0ce] {\n padding: 0 var(--button-padding);\n}\n.button-vue--text-only .button-vue__text[data-v-c3d9e0ce] {\n margin-left: 4px;\n margin-right: 4px;\n}\n.button-vue--icon-and-text[data-v-c3d9e0ce] {\n --button-padding: min(calc(var(--default-grid-baseline) + var(--button-radius)), calc(var(--default-grid-baseline) * 4));\n padding-block: 0;\n padding-inline: var(--default-grid-baseline) var(--button-padding);\n}\n.button-vue--wide[data-v-c3d9e0ce] {\n width: 100%;\n}\n.button-vue[data-v-c3d9e0ce]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element, var(--border-radius));\n background-color: transparent;\n}\n.button-vue--vue-primary[data-v-c3d9e0ce] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.button-vue--vue-primary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--vue-primary[data-v-c3d9e0ce]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--vue-secondary[data-v-c3d9e0ce] {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n}\n.button-vue--vue-secondary[data-v-c3d9e0ce]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--vue-tertiary[data-v-c3d9e0ce] {\n color: var(--color-main-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce] {\n color: var(--color-main-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {\n color: var(--color-primary-element-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--vue-success[data-v-c3d9e0ce] {\n background-color: var(--color-success);\n color: white;\n}\n.button-vue--vue-success[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--vue-success[data-v-c3d9e0ce]:active {\n background-color: var(--color-success);\n}\n.button-vue--vue-warning[data-v-c3d9e0ce] {\n background-color: var(--color-warning);\n color: white;\n}\n.button-vue--vue-warning[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--vue-warning[data-v-c3d9e0ce]:active {\n background-color: var(--color-warning);\n}\n.button-vue--vue-error[data-v-c3d9e0ce] {\n background-color: var(--color-error);\n color: white;\n}\n.button-vue--vue-error[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--vue-error[data-v-c3d9e0ce]:active {\n background-color: var(--color-error);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcButton-DYJAoXeG.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,4CAA4C;EAC5C,2EAA2E;EAC3E,mHAAmH;EACnH,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,mCAAmC;EACnC,iBAAiB;EACjB,8BAA8B;EAC9B,6BAA6B;EAC7B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,mCAAmC;EACnC,0DAA0D;EAC1D,yBAAyB;EACzB,kCAAkC;EAClC,8CAA8C;EAC9C,oDAAoD;AACtD;AACA;EACE,gDAAgD;EAChD,qCAAqC;AACvC;AACA;EACE,gDAAgD;AAClD;AACA;;EAEE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,eAAe;EACf,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oDAAoD;AACtD;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;AACb;AACA;EACE,oBAAoB;AACtB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kEAAkE;AACpE;AACA;EACE,0BAA0B;EAC1B,yBAAyB;EACzB,8BAA8B;EAC9B,6BAA6B;EAC7B,aAAa;EACb,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,YAAY;EACZ,WAAW;AACb;AACA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,cAAc;EACd,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,oCAAoC;AACtC;AACA;EACE,gCAAgC;AAClC;AACA;EACE,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,wHAAwH;EACxH,gBAAgB;EAChB,kEAAkE;AACpE;AACA;EACE,WAAW;AACb;AACA;EACE,oDAAoD;EACpD,6DAA6D;AAC/D;AACA;EACE,oDAAoD;EACpD,iEAAiE;EACjE,6BAA6B;AAC/B;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,oDAAoD;AACtD;AACA;EACE,8CAA8C;AAChD;AACA;EACE,8CAA8C;EAC9C,oDAAoD;AACtD;AACA;EACE,8CAA8C;EAC9C,0DAA0D;AAC5D;AACA;EACE,6BAA6B;EAC7B,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,6BAA6B;EAC7B,6BAA6B;AAC/B;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,wCAAwC;EACxC,6BAA6B;AAC/B;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,sCAAsC;EACtC,YAAY;AACd;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,sCAAsC;EACtC,YAAY;AACd;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,sCAAsC;AACxC;AACA;EACE,oCAAoC;EACpC,YAAY;AACd;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,oCAAoC;AACtC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c3d9e0ce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.button-vue[data-v-c3d9e0ce] {\n --button-size: var(--default-clickable-area);\n --button-radius: var(--border-radius-element, calc(var(--button-size) / 2));\n --button-padding: clamp(var(--default-grid-baseline), var(--button-radius), calc(var(--default-grid-baseline) * 4));\n position: relative;\n width: fit-content;\n overflow: hidden;\n border: 0;\n padding: 0;\n font-size: var(--default-font-size);\n font-weight: bold;\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: var(--button-radius);\n transition-property: color, border-color, background-color;\n transition-duration: 0.1s;\n transition-timing-function: linear;\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n}\n.button-vue--size-small[data-v-c3d9e0ce] {\n --button-size: var(--clickable-area-small, 24px);\n --button-radius: var(--border-radius);\n}\n.button-vue--size-large[data-v-c3d9e0ce] {\n --button-size: var(--clickable-area-large, 48px);\n}\n.button-vue *[data-v-c3d9e0ce],\n.button-vue span[data-v-c3d9e0ce] {\n cursor: pointer;\n}\n.button-vue[data-v-c3d9e0ce]:focus {\n outline: none;\n}\n.button-vue[data-v-c3d9e0ce]:disabled {\n cursor: default;\n opacity: 0.5;\n filter: saturate(0.7);\n}\n.button-vue:disabled *[data-v-c3d9e0ce] {\n cursor: default;\n}\n.button-vue[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue[data-v-c3d9e0ce]:active {\n background-color: var(--color-primary-element-light);\n}\n.button-vue__wrapper[data-v-c3d9e0ce] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n}\n.button-vue--end .button-vue__wrapper[data-v-c3d9e0ce] {\n justify-content: end;\n}\n.button-vue--start .button-vue__wrapper[data-v-c3d9e0ce] {\n justify-content: start;\n}\n.button-vue--reverse .button-vue__wrapper[data-v-c3d9e0ce] {\n flex-direction: row-reverse;\n}\n.button-vue--reverse.button-vue--icon-and-text[data-v-c3d9e0ce] {\n padding-inline: var(--button-padding) var(--default-grid-baseline);\n}\n.button-vue__icon[data-v-c3d9e0ce] {\n height: var(--button-size);\n width: var(--button-size);\n min-height: var(--button-size);\n min-width: var(--button-size);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] > * {\n max-height: 16px;\n max-width: 16px;\n}\n.button-vue--size-small .button-vue__icon[data-v-c3d9e0ce] svg {\n height: 16px;\n width: 16px;\n}\n.button-vue__text[data-v-c3d9e0ce] {\n font-weight: bold;\n margin-bottom: 1px;\n padding: 2px 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.button-vue--icon-only[data-v-c3d9e0ce] {\n line-height: 1;\n width: var(--button-size) !important;\n}\n.button-vue--text-only[data-v-c3d9e0ce] {\n padding: 0 var(--button-padding);\n}\n.button-vue--text-only .button-vue__text[data-v-c3d9e0ce] {\n margin-left: 4px;\n margin-right: 4px;\n}\n.button-vue--icon-and-text[data-v-c3d9e0ce] {\n --button-padding: min(calc(var(--default-grid-baseline) + var(--button-radius)), calc(var(--default-grid-baseline) * 4));\n padding-block: 0;\n padding-inline: var(--default-grid-baseline) var(--button-padding);\n}\n.button-vue--wide[data-v-c3d9e0ce] {\n width: 100%;\n}\n.button-vue[data-v-c3d9e0ce]:focus-visible {\n outline: 2px solid var(--color-main-text) !important;\n box-shadow: 0 0 0 4px var(--color-main-background) !important;\n}\n.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {\n outline: 2px solid var(--color-primary-element-text);\n border-radius: var(--border-radius-element, var(--border-radius));\n background-color: transparent;\n}\n.button-vue--vue-primary[data-v-c3d9e0ce] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.button-vue--vue-primary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-primary-element-hover);\n}\n.button-vue--vue-primary[data-v-c3d9e0ce]:active {\n background-color: var(--color-primary-element);\n}\n.button-vue--vue-secondary[data-v-c3d9e0ce] {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light);\n}\n.button-vue--vue-secondary[data-v-c3d9e0ce]:hover:not(:disabled) {\n color: var(--color-primary-element-light-text);\n background-color: var(--color-primary-element-light-hover);\n}\n.button-vue--vue-tertiary[data-v-c3d9e0ce] {\n color: var(--color-main-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-background-hover);\n}\n.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce] {\n color: var(--color-main-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary-no-background[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce] {\n color: var(--color-primary-element-text);\n background-color: transparent;\n}\n.button-vue--vue-tertiary-on-primary[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: transparent;\n}\n.button-vue--vue-success[data-v-c3d9e0ce] {\n background-color: var(--color-success);\n color: white;\n}\n.button-vue--vue-success[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-success-hover);\n}\n.button-vue--vue-success[data-v-c3d9e0ce]:active {\n background-color: var(--color-success);\n}\n.button-vue--vue-warning[data-v-c3d9e0ce] {\n background-color: var(--color-warning);\n color: white;\n}\n.button-vue--vue-warning[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-warning-hover);\n}\n.button-vue--vue-warning[data-v-c3d9e0ce]:active {\n background-color: var(--color-warning);\n}\n.button-vue--vue-error[data-v-c3d9e0ce] {\n background-color: var(--color-error);\n color: white;\n}\n.button-vue--vue-error[data-v-c3d9e0ce]:hover:not(:disabled) {\n background-color: var(--color-error-hover);\n}\n.button-vue--vue-error[data-v-c3d9e0ce]:active {\n background-color: var(--color-error);\n}"],sourceRoot:""}]);const s=/^(2(076|299|766)|82(0|79)|1952|3260|3604|4897|5438|590|6371|9643)$/.test(n.j)?null:o},32058:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e75842d8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-content[data-v-e75842d8] {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: var(--default-grid-baseline);\n user-select: none;\n min-height: var(--default-clickable-area);\n border-radius: var(--checkbox-radio-switch--border-radius);\n padding: var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);\n width: 100%;\n max-width: fit-content;\n}\n.checkbox-content__text[data-v-e75842d8] {\n flex: 1 0;\n}\n.checkbox-content__text[data-v-e75842d8]:empty {\n display: none;\n}\n.checkbox-content__icon > *[data-v-e75842d8] {\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.checkbox-content--button-variant .checkbox-content__icon:not(.checkbox-content__icon--checked) > *[data-v-e75842d8] {\n color: var(--color-primary-element);\n}\n.checkbox-content--button-variant .checkbox-content__icon--checked > *[data-v-e75842d8] {\n color: var(--color-primary-element-text);\n}\n.checkbox-content--has-text[data-v-e75842d8] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-content:not(.checkbox-content--button-variant) .checkbox-content__icon > *[data-v-e75842d8] {\n color: var(--color-primary-element);\n}\n.checkbox-content[data-v-e75842d8], .checkbox-content *[data-v-e75842d8] {\n cursor: pointer;\n flex-shrink: 0;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-00597cce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-radio-switch[data-v-00597cce] {\n display: flex;\n align-items: center;\n color: var(--color-main-text);\n background-color: transparent;\n font-size: var(--default-font-size);\n line-height: var(--default-line-height);\n padding: 0;\n position: relative;\n --checkbox-radio-switch--border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));\n --checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px);\n /* Special rules for vertical button groups */\n /* Special rules for horizontal button groups */\n}\n.checkbox-radio-switch__input[data-v-00597cce] {\n position: absolute;\n z-index: -1;\n opacity: 0 !important;\n width: var(--icon-size);\n height: var(--icon-size);\n margin: 4px calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-radio-switch__input:focus-visible + .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch__input[data-v-00597cce]:focus-visible {\n outline: 2px solid var(--color-main-text);\n border-color: var(--color-main-background);\n outline-offset: -2px;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-00597cce] {\n opacity: 0.5;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-00597cce] .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-background-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-primary-element-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-primary-element-light-hover);\n}\n.checkbox-radio-switch-switch[data-v-00597cce]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-text-maxcontrast);\n}\n.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-00597cce] .checkbox-radio-switch__icon > * {\n color: var(--color-primary-element-light);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-00597cce] {\n background-color: var(--color-main-background);\n border: 2px solid var(--color-border-maxcontrast);\n overflow: hidden;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-00597cce] {\n font-weight: bold;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-00597cce] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce] .checkbox-radio-switch__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce] .checkbox-radio-switch__icon:empty {\n display: none;\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped), .checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-00597cce] {\n border-radius: var(--checkbox-radio-switch--border-radius);\n}\n.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-00597cce] {\n flex-basis: 100%;\n max-width: unset;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:first-of-type {\n border-top-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-top-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:last-of-type {\n border-bottom-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:not(:last-of-type) {\n border-bottom: 0 !important;\n}\n.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-00597cce] {\n margin-bottom: 2px;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:not(:first-of-type) {\n border-top: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:first-of-type {\n border-top-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:last-of-type {\n border-top-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:not(:last-of-type) {\n border-right: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-00597cce] {\n margin-right: 2px;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:not(:first-of-type) {\n border-left: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce] .checkbox-radio-switch__text {\n text-align: center;\n display: flex;\n align-items: center;\n}\n.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-00597cce] {\n flex-direction: column;\n justify-content: center;\n width: 100%;\n margin: 0;\n gap: 0;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcCheckboxRadioSwitch-D5gP42gi.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,iCAAiC;EACjC,iBAAiB;EACjB,yCAAyC;EACzC,0DAA0D;EAC1D,oGAAoG;EACpG,WAAW;EACX,sBAAsB;AACxB;AACA;EACE,SAAS;AACX;AACA;EACE,aAAa;AACf;AACA;EACE,uBAAuB;EACvB,wBAAwB;AAC1B;AACA;EACE,mCAAmC;AACrC;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,+DAA+D;AACjE;AACA;EACE,mCAAmC;AACrC;AACA;EACE,eAAe;EACf,cAAc;AAChB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,6BAA6B;EAC7B,6BAA6B;EAC7B,mCAAmC;EACnC,uCAAuC;EACvC,UAAU;EACV,kBAAkB;EAClB,6GAA6G;EAC7G,qGAAqG;EACrG,6CAA6C;EAC7C,+CAA+C;AACjD;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,qBAAqB;EACrB,uBAAuB;EACvB,wBAAwB;EACxB,4DAA4D;AAC9D;AACA;EACE,yCAAyC;EACzC,0CAA0C;EAC1C,oBAAoB;AACtB;AACA;EACE,YAAY;AACd;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,+CAA+C;AACjD;AACA;EACE,oDAAoD;AACtD;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,oCAAoC;AACtC;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,8CAA8C;EAC9C,iDAAiD;EACjD,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;AACb;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,aAAa;AACf;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,yEAAyE;EACzE,0EAA0E;AAC5E;AACA;EACE,4EAA4E;EAC5E,6EAA6E;AAC/E;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;AACpB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,yEAAyE;EACzE,4EAA4E;AAC9E;AACA;EACE,0EAA0E;EAC1E,6EAA6E;AAC/E;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,iBAAiB;AACnB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,WAAW;EACX,SAAS;EACT,MAAM;AACR",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e75842d8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-content[data-v-e75842d8] {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: var(--default-grid-baseline);\n user-select: none;\n min-height: var(--default-clickable-area);\n border-radius: var(--checkbox-radio-switch--border-radius);\n padding: var(--default-grid-baseline) calc((var(--default-clickable-area) - var(--icon-height)) / 2);\n width: 100%;\n max-width: fit-content;\n}\n.checkbox-content__text[data-v-e75842d8] {\n flex: 1 0;\n}\n.checkbox-content__text[data-v-e75842d8]:empty {\n display: none;\n}\n.checkbox-content__icon > *[data-v-e75842d8] {\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.checkbox-content--button-variant .checkbox-content__icon:not(.checkbox-content__icon--checked) > *[data-v-e75842d8] {\n color: var(--color-primary-element);\n}\n.checkbox-content--button-variant .checkbox-content__icon--checked > *[data-v-e75842d8] {\n color: var(--color-primary-element-text);\n}\n.checkbox-content--has-text[data-v-e75842d8] {\n padding-right: calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-content:not(.checkbox-content--button-variant) .checkbox-content__icon > *[data-v-e75842d8] {\n color: var(--color-primary-element);\n}\n.checkbox-content[data-v-e75842d8], .checkbox-content *[data-v-e75842d8] {\n cursor: pointer;\n flex-shrink: 0;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-00597cce] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.checkbox-radio-switch[data-v-00597cce] {\n display: flex;\n align-items: center;\n color: var(--color-main-text);\n background-color: transparent;\n font-size: var(--default-font-size);\n line-height: var(--default-line-height);\n padding: 0;\n position: relative;\n --checkbox-radio-switch--border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));\n --checkbox-radio-switch--border-radius-outer: calc(var(--checkbox-radio-switch--border-radius) + 2px);\n /* Special rules for vertical button groups */\n /* Special rules for horizontal button groups */\n}\n.checkbox-radio-switch__input[data-v-00597cce] {\n position: absolute;\n z-index: -1;\n opacity: 0 !important;\n width: var(--icon-size);\n height: var(--icon-size);\n margin: 4px calc((var(--default-clickable-area) - 16px) / 2);\n}\n.checkbox-radio-switch__input:focus-visible + .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch__input[data-v-00597cce]:focus-visible {\n outline: 2px solid var(--color-main-text);\n border-color: var(--color-main-background);\n outline-offset: -2px;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-00597cce] {\n opacity: 0.5;\n}\n.checkbox-radio-switch--disabled .checkbox-radio-switch__content[data-v-00597cce] .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch:not(.checkbox-radio-switch--disabled, .checkbox-radio-switch--checked) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-background-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-primary-element-hover);\n}\n.checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled):focus-within .checkbox-radio-switch__content[data-v-00597cce], .checkbox-radio-switch--checked:not(.checkbox-radio-switch--button-variant):not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__content[data-v-00597cce]:hover {\n background-color: var(--color-primary-element-light-hover);\n}\n.checkbox-radio-switch-switch[data-v-00597cce]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-text-maxcontrast);\n}\n.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked[data-v-00597cce] .checkbox-radio-switch__icon > * {\n color: var(--color-primary-element-light);\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch[data-v-00597cce] {\n background-color: var(--color-main-background);\n border: 2px solid var(--color-border-maxcontrast);\n overflow: hidden;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked[data-v-00597cce] {\n font-weight: bold;\n}\n.checkbox-radio-switch--button-variant.checkbox-radio-switch--checked .checkbox-radio-switch__content[data-v-00597cce] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce] .checkbox-radio-switch__text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce]:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon > * {\n color: var(--color-main-text);\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce] .checkbox-radio-switch__icon:empty {\n display: none;\n}\n.checkbox-radio-switch--button-variant[data-v-00597cce]:not(.checkbox-radio-switch--button-variant-v-grouped):not(.checkbox-radio-switch--button-variant-h-grouped), .checkbox-radio-switch--button-variant .checkbox-radio-switch__content[data-v-00597cce] {\n border-radius: var(--checkbox-radio-switch--border-radius);\n}\n.checkbox-radio-switch--button-variant-v-grouped .checkbox-radio-switch__content[data-v-00597cce] {\n flex-basis: 100%;\n max-width: unset;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:first-of-type {\n border-top-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-top-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:last-of-type {\n border-bottom-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:not(:last-of-type) {\n border-bottom: 0 !important;\n}\n.checkbox-radio-switch--button-variant-v-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-00597cce] {\n margin-bottom: 2px;\n}\n.checkbox-radio-switch--button-variant-v-grouped[data-v-00597cce]:not(:first-of-type) {\n border-top: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:first-of-type {\n border-top-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-left-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:last-of-type {\n border-top-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n border-bottom-right-radius: var(--checkbox-radio-switch--border-radius-outer);\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:not(:last-of-type) {\n border-right: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped:not(:last-of-type) .checkbox-radio-switch__content[data-v-00597cce] {\n margin-right: 2px;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce]:not(:first-of-type) {\n border-left: 0 !important;\n}\n.checkbox-radio-switch--button-variant-h-grouped[data-v-00597cce] .checkbox-radio-switch__text {\n text-align: center;\n display: flex;\n align-items: center;\n}\n.checkbox-radio-switch--button-variant-h-grouped .checkbox-radio-switch__content[data-v-00597cce] {\n flex-direction: column;\n justify-content: center;\n width: 100%;\n margin: 0;\n gap: 0;\n}"],sourceRoot:""}]);const s=/^(2(076|299|573|766)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|3260|3604|4897|5438|590)$/.test(n.j)?null:o},95691:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-878b819f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\n opacity: 0;\n}\n.linked-icons[data-v-878b819f] {\n display: flex;\n}\n.linked-icons img[data-v-878b819f] {\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-878b819f]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-878b819f] {\n display: none;\n}\n.popovermenu.open[data-v-878b819f] {\n display: block;\n}\nli.collection-list-item[data-v-878b819f] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-878b819f] {\n margin-top: 0;\n}\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-878b819f] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-878b819f] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-878b819f] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\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-878b819f]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\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-878b819f] {\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-878b819f] {\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-878b819f] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\n opacity: 1;\n}\n.should-shake[data-v-878b819f] {\n animation: shake-878b819f 0.6s 1 linear;\n}\n@keyframes shake-878b819f {\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}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-efe8beb8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.collection-list *[data-v-efe8beb8] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-efe8beb8] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-efe8beb8] {\n margin-top: 0;\n}\n#collection-select-container[data-v-efe8beb8] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-efe8beb8] {\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-efe8beb8]:hover {\n opacity: 1;\n}\np.hint[data-v-efe8beb8] {\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-efe8beb8] {\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-efe8beb8] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-efe8beb8] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-efe8beb8] {\n display: block;\n width: 32px;\n height: 32px;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-efe8beb8] {\n padding: 4px;\n}\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\n opacity: 0;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcCollectionList-ETQTqkqt.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;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,aAAa;AACf;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;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,aAAa;AACf;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,WAAW;EACX,YAAY;EACZ,2DAA2D;AAC7D;AACA;EACE,YAAY;AACd;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,UAAU;AACZ",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-878b819f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.fade-enter-active[data-v-878b819f], .fade-leave-active[data-v-878b819f] {\n transition: opacity 0.3s ease;\n}\n.fade-enter[data-v-878b819f], .fade-leave-to[data-v-878b819f] {\n opacity: 0;\n}\n.linked-icons[data-v-878b819f] {\n display: flex;\n}\n.linked-icons img[data-v-878b819f] {\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-878b819f]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-878b819f] {\n display: none;\n}\n.popovermenu.open[data-v-878b819f] {\n display: block;\n}\nli.collection-list-item[data-v-878b819f] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-878b819f] {\n margin-top: 0;\n}\nli.collection-list-item form[data-v-878b819f], li.collection-list-item .collection-item-name[data-v-878b819f] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-878b819f] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-878b819f] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-878b819f] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details[data-v-878b819f] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-878b819f] {\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-878b819f]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-878b819f] {\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-878b819f] {\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-878b819f] {\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-878b819f] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f] {\n opacity: 0.7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:hover, li.collection-list-item .resource-list-details .icon-close[data-v-878b819f]:focus {\n opacity: 1;\n}\n.should-shake[data-v-878b819f] {\n animation: shake-878b819f 0.6s 1 linear;\n}\n@keyframes shake-878b819f {\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}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-efe8beb8] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.collection-list *[data-v-efe8beb8] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-efe8beb8] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-efe8beb8] {\n margin-top: 0;\n}\n#collection-select-container[data-v-efe8beb8] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-efe8beb8] {\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-efe8beb8]:hover {\n opacity: 1;\n}\np.hint[data-v-efe8beb8] {\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-efe8beb8] {\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-efe8beb8] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-efe8beb8] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-efe8beb8] {\n display: block;\n width: 32px;\n height: 32px;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-efe8beb8] {\n padding: 4px;\n}\n.fade-enter-active[data-v-efe8beb8], .fade-leave-active[data-v-efe8beb8] {\n transition: opacity 0.5s;\n}\n.fade-enter[data-v-efe8beb8], .fade-leave-to[data-v-efe8beb8] {\n opacity: 0;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},69558:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cc496c1d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.color-picker[data-v-cc496c1d] {\n display: flex;\n overflow: hidden;\n align-content: flex-end;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: content-box !important;\n width: 176px;\n padding: 8px;\n border-radius: 3px;\n}\n.color-picker--advanced-fields[data-v-cc496c1d] {\n width: 264px;\n}\n.color-picker__simple[data-v-cc496c1d] {\n display: grid;\n grid-template-columns: repeat(auto-fit, var(--default-clickable-area));\n grid-auto-rows: var(--default-clickable-area);\n}\n.color-picker__simple-color-circle[data-v-cc496c1d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--default-clickable-area) - 10px);\n height: calc(var(--default-clickable-area) - 10px);\n min-height: calc(var(--default-clickable-area) - 10px);\n margin: auto;\n padding: 0;\n color: white;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-radius: 50%;\n font-size: 16px;\n}\n.color-picker__simple-color-circle[data-v-cc496c1d]:focus-within {\n outline: 2px solid var(--color-main-text);\n}\n.color-picker__simple-color-circle[data-v-cc496c1d]:hover {\n opacity: 0.6;\n}\n.color-picker__simple-color-circle--active[data-v-cc496c1d] {\n width: calc(var(--default-clickable-area) - 6px);\n height: calc(var(--default-clickable-area) - 6px);\n min-height: calc(var(--default-clickable-area) - 6px);\n transition: all 100ms ease-in-out;\n opacity: 1 !important;\n}\n.color-picker__advanced[data-v-cc496c1d] {\n box-shadow: none !important;\n}\n.color-picker__navigation[data-v-cc496c1d] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: 10px;\n}\n[data-v-cc496c1d] .vc-chrome {\n width: unset;\n background-color: var(--color-main-background);\n}\n[data-v-cc496c1d] .vc-chrome-color-wrap {\n width: 30px;\n height: 30px;\n}\n[data-v-cc496c1d] .vc-chrome-active-color {\n width: calc(var(--default-clickable-area) - 10 px);\n height: calc(var(--default-clickable-area) - 10 px);\n border-radius: 17px;\n}\n[data-v-cc496c1d] .vc-chrome-body {\n padding: 14px 0 0 0;\n background-color: var(--color-main-background);\n}\n[data-v-cc496c1d] .vc-chrome-body .vc-input__input {\n box-shadow: none;\n}\n[data-v-cc496c1d] .vc-chrome-toggle-btn {\n filter: var(--background-invert-if-dark);\n}\n[data-v-cc496c1d] .vc-chrome-saturation-wrap {\n border-radius: 3px;\n}\n[data-v-cc496c1d] .vc-chrome-saturation-circle {\n width: 20px;\n height: 20px;\n}\n.slide-enter[data-v-cc496c1d] {\n transform: translateX(-50%);\n opacity: 0;\n}\n.slide-enter-to[data-v-cc496c1d] {\n transform: translateX(0);\n opacity: 1;\n}\n.slide-leave[data-v-cc496c1d] {\n transform: translateX(0);\n opacity: 1;\n}\n.slide-leave-to[data-v-cc496c1d] {\n transform: translateX(-50%);\n opacity: 0;\n}\n.slide-enter-active[data-v-cc496c1d], .slide-leave-active[data-v-cc496c1d] {\n transition: all 50ms ease-in-out;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcColorPicker-CpkfRGO1.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,uBAAuB;EACvB,sBAAsB;EACtB,8BAA8B;EAC9B,kCAAkC;EAClC,YAAY;EACZ,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,YAAY;AACd;AACA;EACE,aAAa;EACb,sEAAsE;EACtE,6CAA6C;AAC/C;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,iDAAiD;EACjD,kDAAkD;EAClD,sDAAsD;EACtD,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,qCAAqC;EACrC,kBAAkB;EAClB,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,YAAY;AACd;AACA;EACE,gDAAgD;EAChD,iDAAiD;EACjD,qDAAqD;EACrD,iCAAiC;EACjC,qBAAqB;AACvB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,8CAA8C;AAChD;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,kDAAkD;EAClD,mDAAmD;EACnD,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,gBAAgB;AAClB;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,2BAA2B;EAC3B,UAAU;AACZ;AACA;EACE,wBAAwB;EACxB,UAAU;AACZ;AACA;EACE,wBAAwB;EACxB,UAAU;AACZ;AACA;EACE,2BAA2B;EAC3B,UAAU;AACZ;AACA;EACE,gCAAgC;AAClC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cc496c1d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.color-picker[data-v-cc496c1d] {\n display: flex;\n overflow: hidden;\n align-content: flex-end;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: content-box !important;\n width: 176px;\n padding: 8px;\n border-radius: 3px;\n}\n.color-picker--advanced-fields[data-v-cc496c1d] {\n width: 264px;\n}\n.color-picker__simple[data-v-cc496c1d] {\n display: grid;\n grid-template-columns: repeat(auto-fit, var(--default-clickable-area));\n grid-auto-rows: var(--default-clickable-area);\n}\n.color-picker__simple-color-circle[data-v-cc496c1d] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: calc(var(--default-clickable-area) - 10px);\n height: calc(var(--default-clickable-area) - 10px);\n min-height: calc(var(--default-clickable-area) - 10px);\n margin: auto;\n padding: 0;\n color: white;\n border: 1px solid rgba(0, 0, 0, 0.25);\n border-radius: 50%;\n font-size: 16px;\n}\n.color-picker__simple-color-circle[data-v-cc496c1d]:focus-within {\n outline: 2px solid var(--color-main-text);\n}\n.color-picker__simple-color-circle[data-v-cc496c1d]:hover {\n opacity: 0.6;\n}\n.color-picker__simple-color-circle--active[data-v-cc496c1d] {\n width: calc(var(--default-clickable-area) - 6px);\n height: calc(var(--default-clickable-area) - 6px);\n min-height: calc(var(--default-clickable-area) - 6px);\n transition: all 100ms ease-in-out;\n opacity: 1 !important;\n}\n.color-picker__advanced[data-v-cc496c1d] {\n box-shadow: none !important;\n}\n.color-picker__navigation[data-v-cc496c1d] {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-top: 10px;\n}\n[data-v-cc496c1d] .vc-chrome {\n width: unset;\n background-color: var(--color-main-background);\n}\n[data-v-cc496c1d] .vc-chrome-color-wrap {\n width: 30px;\n height: 30px;\n}\n[data-v-cc496c1d] .vc-chrome-active-color {\n width: calc(var(--default-clickable-area) - 10 px);\n height: calc(var(--default-clickable-area) - 10 px);\n border-radius: 17px;\n}\n[data-v-cc496c1d] .vc-chrome-body {\n padding: 14px 0 0 0;\n background-color: var(--color-main-background);\n}\n[data-v-cc496c1d] .vc-chrome-body .vc-input__input {\n box-shadow: none;\n}\n[data-v-cc496c1d] .vc-chrome-toggle-btn {\n filter: var(--background-invert-if-dark);\n}\n[data-v-cc496c1d] .vc-chrome-saturation-wrap {\n border-radius: 3px;\n}\n[data-v-cc496c1d] .vc-chrome-saturation-circle {\n width: 20px;\n height: 20px;\n}\n.slide-enter[data-v-cc496c1d] {\n transform: translateX(-50%);\n opacity: 0;\n}\n.slide-enter-to[data-v-cc496c1d] {\n transform: translateX(0);\n opacity: 1;\n}\n.slide-leave[data-v-cc496c1d] {\n transform: translateX(0);\n opacity: 1;\n}\n.slide-leave-to[data-v-cc496c1d] {\n transform: translateX(-50%);\n opacity: 0;\n}\n.slide-enter-active[data-v-cc496c1d], .slide-leave-active[data-v-cc496c1d] {\n transition: all 50ms ease-in-out;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},19682:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#skip-actions.vue-skip-actions:focus-within {\n top: 0 !important;\n left: 0 !important;\n width: 100vw;\n height: 100vh;\n padding: var(--body-container-margin) !important;\n backdrop-filter: brightness(50%);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d8f0539f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.vue-skip-actions__container[data-v-d8f0539f] {\n background-color: var(--color-main-background);\n border-radius: var(--border-radius-large);\n padding: 22px;\n}\n.vue-skip-actions__headline[data-v-d8f0539f] {\n font-weight: bold;\n font-size: 20px;\n line-height: 30px;\n margin-bottom: 12px;\n}\n.vue-skip-actions__buttons[data-v-d8f0539f] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n.vue-skip-actions__buttons > *[data-v-d8f0539f] {\n flex: 1 0 fit-content;\n}\n.vue-skip-actions__image[data-v-d8f0539f] {\n margin-top: 12px;\n}\n.content[data-v-d8f0539f] {\n box-sizing: border-box;\n margin: var(--body-container-margin);\n margin-top: var(--header-height);\n display: flex;\n width: calc(100% - var(--body-container-margin) * 2);\n border-radius: var(--body-container-radius);\n height: var(--body-height);\n overflow: hidden;\n padding: 0;\n}\n.content[data-v-d8f0539f]:not(.with-sidebar--full) {\n position: fixed;\n}\n.content[data-v-d8f0539f] * {\n box-sizing: border-box;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcContent-ZFNIjylG.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,YAAY;EACZ,aAAa;EACb,gDAAgD;EAChD,gCAAgC;AAClC,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,8CAA8C;EAC9C,yCAAyC;EACzC,aAAa;AACf;AACA;EACE,iBAAiB;EACjB,eAAe;EACf,iBAAiB;EACjB,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,eAAe;EACf,SAAS;AACX;AACA;EACE,qBAAqB;AACvB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,gCAAgC;EAChC,aAAa;EACb,oDAAoD;EACpD,2CAA2C;EAC3C,0BAA0B;EAC1B,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#skip-actions.vue-skip-actions:focus-within {\n top: 0 !important;\n left: 0 !important;\n width: 100vw;\n height: 100vh;\n padding: var(--body-container-margin) !important;\n backdrop-filter: brightness(50%);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d8f0539f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.vue-skip-actions__container[data-v-d8f0539f] {\n background-color: var(--color-main-background);\n border-radius: var(--border-radius-large);\n padding: 22px;\n}\n.vue-skip-actions__headline[data-v-d8f0539f] {\n font-weight: bold;\n font-size: 20px;\n line-height: 30px;\n margin-bottom: 12px;\n}\n.vue-skip-actions__buttons[data-v-d8f0539f] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n}\n.vue-skip-actions__buttons > *[data-v-d8f0539f] {\n flex: 1 0 fit-content;\n}\n.vue-skip-actions__image[data-v-d8f0539f] {\n margin-top: 12px;\n}\n.content[data-v-d8f0539f] {\n box-sizing: border-box;\n margin: var(--body-container-margin);\n margin-top: var(--header-height);\n display: flex;\n width: calc(100% - var(--body-container-margin) * 2);\n border-radius: var(--body-container-radius);\n height: var(--body-height);\n overflow: hidden;\n padding: 0;\n}\n.content[data-v-d8f0539f]:not(.with-sidebar--full) {\n position: fixed;\n}\n.content[data-v-d8f0539f] * {\n box-sizing: border-box;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590|6174|6371)$/.test(n.j)?null:o},25636:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-11322bad] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.counter-bubble__counter[data-v-11322bad] {\n --counter-bubble-height: 22px;\n font-size: var(--font-size-small, 13px);\n overflow: hidden;\n width: fit-content;\n min-width: var(--counter-bubble-height);\n text-align: center;\n line-height: var(--counter-bubble-height);\n padding: 0 calc(1.5 * var(--default-grid-baseline));\n border-radius: var(--border-radius-pill);\n background-color: var(--color-primary-element-light);\n font-weight: bold;\n color: var(--color-primary-element-light-text);\n}\n.counter-bubble__counter .active[data-v-11322bad] {\n color: var(--color-main-background);\n background-color: var(--color-primary-element-light);\n}\n.counter-bubble__counter--highlighted[data-v-11322bad] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.counter-bubble__counter--highlighted.active[data-v-11322bad] {\n color: var(--color-primary-element);\n background-color: var(--color-main-background);\n}\n.counter-bubble__counter--outlined[data-v-11322bad] {\n color: var(--color-primary-element);\n background: transparent;\n box-shadow: inset 0 0 0 2px;\n}\n.counter-bubble__counter--outlined.active[data-v-11322bad] {\n color: var(--color-main-background);\n box-shadow: inset 0 0 0 2px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcCounterBubble-Dizdz4Hk.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,uCAAuC;EACvC,gBAAgB;EAChB,kBAAkB;EAClB,uCAAuC;EACvC,kBAAkB;EAClB,yCAAyC;EACzC,mDAAmD;EACnD,wCAAwC;EACxC,oDAAoD;EACpD,iBAAiB;EACjB,8CAA8C;AAChD;AACA;EACE,mCAAmC;EACnC,oDAAoD;AACtD;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,mCAAmC;EACnC,uBAAuB;EACvB,2BAA2B;AAC7B;AACA;EACE,mCAAmC;EACnC,2BAA2B;AAC7B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-11322bad] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.counter-bubble__counter[data-v-11322bad] {\n --counter-bubble-height: 22px;\n font-size: var(--font-size-small, 13px);\n overflow: hidden;\n width: fit-content;\n min-width: var(--counter-bubble-height);\n text-align: center;\n line-height: var(--counter-bubble-height);\n padding: 0 calc(1.5 * var(--default-grid-baseline));\n border-radius: var(--border-radius-pill);\n background-color: var(--color-primary-element-light);\n font-weight: bold;\n color: var(--color-primary-element-light-text);\n}\n.counter-bubble__counter .active[data-v-11322bad] {\n color: var(--color-main-background);\n background-color: var(--color-primary-element-light);\n}\n.counter-bubble__counter--highlighted[data-v-11322bad] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.counter-bubble__counter--highlighted.active[data-v-11322bad] {\n color: var(--color-primary-element);\n background-color: var(--color-main-background);\n}\n.counter-bubble__counter--outlined[data-v-11322bad] {\n color: var(--color-primary-element);\n background: transparent;\n box-shadow: inset 0 0 0 2px;\n}\n.counter-bubble__counter--outlined.active[data-v-11322bad] {\n color: var(--color-main-background);\n box-shadow: inset 0 0 0 2px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},41261:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-53796b97] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-53796b97] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-53796b97] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-53796b97] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-53796b97]:hover, .more[data-v-53796b97]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n\n/* skeleton */\n.item-list__entry[data-v-53796b97] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-53796b97] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-53796b97] {\n padding-left: 8px;\n max-height: var(--default-clickable-area);\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-53796b97],\n.item-list__entry .item__details .message[data-v-53796b97] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-53796b97] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-53796b97] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDashboardWidget-CpstyXok.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,oCAAoC;EACpC,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,+CAA+C;EAC/C,yCAAyC;EACzC,6BAA6B;AAC/B;;AAEA,aAAa;AACb;EACE,aAAa;EACb,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,yDAAyD;AAC3D;AACA;EACE,iBAAiB;EACjB,yCAAyC;EACzC,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;AACxB;AACA;;EAEE,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,UAAU;EACV,YAAY;EACZ,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-53796b97] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dashboard-widget[data-v-53796b97] .empty-content {\n text-align: center;\n padding-top: 5vh;\n}\n.dashboard-widget[data-v-53796b97] .empty-content.half-screen {\n padding-top: 0;\n margin-bottom: 1vh;\n}\n.more[data-v-53796b97] {\n display: block;\n text-align: center;\n color: var(--color-text-maxcontrast);\n line-height: 60px;\n cursor: pointer;\n}\n.more[data-v-53796b97]:hover, .more[data-v-53796b97]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n color: var(--color-main-text);\n}\n\n/* skeleton */\n.item-list__entry[data-v-53796b97] {\n display: flex;\n align-items: flex-start;\n padding: 8px;\n}\n.item-list__entry .item-avatar[data-v-53796b97] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n background-color: var(--color-background-dark) !important;\n}\n.item-list__entry .item__details[data-v-53796b97] {\n padding-left: 8px;\n max-height: var(--default-clickable-area);\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.item-list__entry .item__details h3[data-v-53796b97],\n.item-list__entry .item__details .message[data-v-53796b97] {\n white-space: nowrap;\n background-color: var(--color-background-dark);\n}\n.item-list__entry .item__details h3[data-v-53796b97] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-53796b97] {\n width: 80%;\n height: 15px;\n margin-top: 5px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},70109:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-51bbc625] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-51bbc625] {\n display: flex;\n align-items: center;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-51bbc625]:hover, .item-list__entry[data-v-51bbc625]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-51bbc625] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-51bbc625] {\n padding-left: 8px;\n max-height: fit-content;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: var(--default-clickable-area);\n}\n.item-list__entry .item__details h3[data-v-51bbc625],\n.item-list__entry .item__details .message[data-v-51bbc625] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-51bbc625] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-51bbc625] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-51bbc625] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-51bbc625] {\n position: relative;\n width: 14px;\n height: 14px;\n margin: 27px -3px 0px -7px;\n}\n.item-list__entry button.primary[data-v-51bbc625] {\n padding: 21px;\n margin: 0;\n}\n\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDashboardWidgetItem-BBZT17WU.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,+CAA+C;EAC/C,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,iBAAiB;EACjB,uBAAuB;EACvB,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,yCAAyC;AAC3C;AACA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,SAAS;AACX;AACA;EACE,WAAW;EACX,oCAAoC;AACtC;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,0BAA0B;AAC5B;AACA;EACE,aAAa;EACb,SAAS;AACX;;AAEA;;;;;;;;;;;CAWC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-51bbc625] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.item-list__entry[data-v-51bbc625] {\n display: flex;\n align-items: center;\n position: relative;\n padding: 8px;\n}\n.item-list__entry[data-v-51bbc625]:hover, .item-list__entry[data-v-51bbc625]:focus {\n background-color: var(--color-background-hover);\n border-radius: var(--border-radius-large);\n}\n.item-list__entry .item-avatar[data-v-51bbc625] {\n position: relative;\n margin-top: auto;\n margin-bottom: auto;\n}\n.item-list__entry .item__details[data-v-51bbc625] {\n padding-left: 8px;\n max-height: fit-content;\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: var(--default-clickable-area);\n}\n.item-list__entry .item__details h3[data-v-51bbc625],\n.item-list__entry .item__details .message[data-v-51bbc625] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.item-list__entry .item__details .message span[data-v-51bbc625] {\n width: 10px;\n display: inline-block;\n margin-bottom: -3px;\n}\n.item-list__entry .item__details h3[data-v-51bbc625] {\n font-size: 100%;\n margin: 0;\n}\n.item-list__entry .item__details .message[data-v-51bbc625] {\n width: 100%;\n color: var(--color-text-maxcontrast);\n}\n.item-list__entry .item-icon[data-v-51bbc625] {\n position: relative;\n width: 14px;\n height: 14px;\n margin: 27px -3px 0px -7px;\n}\n.item-list__entry button.primary[data-v-51bbc625] {\n padding: 21px;\n margin: 0;\n}\n\n/*\n.content-popover {\n\theight: 0px;\n\twidth: 0px;\n\tmargin-left: auto;\n\tmargin-right: auto;\n}\n.popover-container {\n\twidth: 100%;\n\theight: 0px;\n}\n*/"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},31121:(e,t,n)=>{"use strict";n.d(t,{A:()=>v});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i),s=n(4417),l=n.n(s),u=new URL(n(27514),n.b),d=new URL(n(27518),n.b),c=new URL(n(86886),n.b),m=new URL(n(79722),n.b),h=o()(r()),f=l()(u),p=l()(d),g=l()(c),_=l()(m);h.push([e.id,`/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n* SPDX-License-Identifier: AGPL-3.0-or-later\n*/\n.mx-icon-left:before,\n.mx-icon-right:before,\n.mx-icon-double-left:before,\n.mx-icon-double-right:before,\n.mx-icon-double-left:after,\n.mx-icon-double-right:after {\n content: "";\n position: relative;\n top: -1px;\n display: inline-block;\n width: 10px;\n height: 10px;\n vertical-align: middle;\n border-style: solid;\n border-color: currentColor;\n border-width: 2px 0 0 2px;\n border-radius: 1px;\n box-sizing: border-box;\n transform-origin: center;\n transform: rotate(-45deg) scale(0.7);\n}\n.mx-icon-double-left:after {\n left: -4px;\n}\n.mx-icon-double-right:before {\n left: 4px;\n}\n.mx-icon-right:before,\n.mx-icon-double-right:before,\n.mx-icon-double-right:after {\n transform: rotate(135deg) scale(0.7);\n}\n.mx-btn {\n box-sizing: border-box;\n line-height: 1;\n font-size: 14px;\n font-weight: 500;\n padding: 7px 15px;\n margin: 0;\n cursor: pointer;\n background-color: transparent;\n outline: none;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n color: #73879c;\n white-space: nowrap;\n}\n.mx-btn:hover {\n border-color: #1284e7;\n color: #1284e7;\n}\n.mx-btn:disabled, .mx-btn.disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n.mx-btn-text {\n border: 0;\n padding: 0 4px;\n text-align: left;\n line-height: inherit;\n}\n.mx-scrollbar {\n height: 100%;\n}\n.mx-scrollbar:hover .mx-scrollbar-track {\n opacity: 1;\n}\n.mx-scrollbar-wrap {\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n}\n.mx-scrollbar-track {\n position: absolute;\n top: 2px;\n right: 2px;\n bottom: 2px;\n width: 6px;\n z-index: 1;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.24s ease-out;\n}\n.mx-scrollbar-track .mx-scrollbar-thumb {\n position: absolute;\n width: 100%;\n height: 0;\n cursor: pointer;\n border-radius: inherit;\n background-color: rgba(144, 147, 153, 0.3);\n transition: background-color 0.3s;\n}\n.mx-zoom-in-down-enter-active,\n.mx-zoom-in-down-leave-active {\n opacity: 1;\n transform: scaleY(1);\n transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1);\n transform-origin: center top;\n}\n.mx-zoom-in-down-enter,\n.mx-zoom-in-down-enter-from,\n.mx-zoom-in-down-leave-to {\n opacity: 0;\n transform: scaleY(0);\n}\n.mx-datepicker {\n position: relative;\n display: inline-block;\n width: 210px;\n}\n.mx-datepicker svg {\n width: 1em;\n height: 1em;\n vertical-align: -0.15em;\n fill: currentColor;\n overflow: hidden;\n}\n.mx-datepicker-range {\n width: 320px;\n}\n.mx-datepicker-inline {\n width: auto;\n}\n.mx-input-wrapper {\n position: relative;\n}\n.mx-input {\n display: inline-block;\n box-sizing: border-box;\n width: 100%;\n height: 34px;\n padding: 6px 30px;\n padding-left: 10px;\n font-size: 14px;\n line-height: 1.4;\n color: #555;\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.mx-input:hover, .mx-input:focus {\n border-color: #409aff;\n}\n.mx-input:disabled, .mx-input.disabled {\n color: #ccc;\n background-color: #f3f3f3;\n border-color: #ccc;\n cursor: not-allowed;\n}\n.mx-input:focus {\n outline: none;\n}\n.mx-input::-ms-clear {\n display: none;\n}\n.mx-icon-calendar,\n.mx-icon-clear {\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n font-size: 16px;\n line-height: 1;\n color: rgba(0, 0, 0, 0.5);\n vertical-align: middle;\n}\n.mx-icon-clear {\n cursor: pointer;\n}\n.mx-icon-clear:hover {\n color: rgba(0, 0, 0, 0.8);\n}\n.mx-datepicker-main {\n font: 14px/1.5 "Helvetica Neue", Helvetica, Arial, "Microsoft Yahei", sans-serif;\n color: #73879c;\n background-color: #fff;\n border: 1px solid #e8e8e8;\n}\n.mx-datepicker-popup {\n position: absolute;\n margin-top: 1px;\n margin-bottom: 1px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n z-index: 2001;\n}\n.mx-datepicker-sidebar {\n float: left;\n box-sizing: border-box;\n width: 100px;\n padding: 6px;\n overflow: auto;\n}\n.mx-datepicker-sidebar + .mx-datepicker-content {\n margin-left: 100px;\n border-left: 1px solid #e8e8e8;\n}\n.mx-datepicker-body {\n position: relative;\n user-select: none;\n}\n.mx-btn-shortcut {\n display: block;\n padding: 0 6px;\n line-height: 24px;\n}\n.mx-range-wrapper {\n display: flex;\n}\n@media (max-width: 750px) {\n .mx-range-wrapper {\n flex-direction: column;\n }\n}\n.mx-datepicker-header {\n padding: 6px 8px;\n border-bottom: 1px solid #e8e8e8;\n}\n.mx-datepicker-footer {\n padding: 6px 8px;\n text-align: right;\n border-top: 1px solid #e8e8e8;\n}\n.mx-calendar {\n box-sizing: border-box;\n width: 248px;\n padding: 6px 12px;\n}\n.mx-calendar + .mx-calendar {\n border-left: 1px solid #e8e8e8;\n}\n.mx-calendar-header, .mx-time-header {\n box-sizing: border-box;\n height: 34px;\n line-height: 34px;\n text-align: center;\n overflow: hidden;\n}\n.mx-btn-icon-left,\n.mx-btn-icon-double-left {\n float: left;\n}\n.mx-btn-icon-right,\n.mx-btn-icon-double-right {\n float: right;\n}\n.mx-calendar-header-label {\n font-size: 14px;\n}\n.mx-calendar-decade-separator {\n margin: 0 2px;\n}\n.mx-calendar-decade-separator:after {\n content: "~";\n}\n.mx-calendar-content {\n position: relative;\n height: 224px;\n box-sizing: border-box;\n}\n.mx-calendar-content .cell {\n cursor: pointer;\n}\n.mx-calendar-content .cell:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-calendar-content .cell.active {\n color: #fff;\n background-color: #1284e7;\n}\n.mx-calendar-content .cell.in-range, .mx-calendar-content .cell.hover-in-range {\n color: #73879c;\n background-color: #dbedfb;\n}\n.mx-calendar-content .cell.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-calendar-week-mode .mx-date-row {\n cursor: pointer;\n}\n.mx-calendar-week-mode .mx-date-row:hover {\n background-color: #f3f9fe;\n}\n.mx-calendar-week-mode .mx-date-row.mx-active-week {\n background-color: #dbedfb;\n}\n.mx-calendar-week-mode .mx-date-row .cell:hover {\n color: inherit;\n background-color: transparent;\n}\n.mx-calendar-week-mode .mx-date-row .cell.active {\n color: inherit;\n background-color: transparent;\n}\n.mx-week-number {\n opacity: 0.5;\n}\n.mx-table {\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n text-align: center;\n}\n.mx-table th {\n padding: 0;\n font-weight: 500;\n vertical-align: middle;\n}\n.mx-table td {\n padding: 0;\n vertical-align: middle;\n}\n.mx-table-date td,\n.mx-table-date th {\n height: 32px;\n font-size: 12px;\n}\n.mx-table-date .today {\n color: #2a90e9;\n}\n.mx-table-date .cell.not-current-month {\n color: #ccc;\n background: none;\n}\n.mx-time {\n flex: 1;\n width: 224px;\n background: #fff;\n}\n.mx-time + .mx-time {\n border-left: 1px solid #e8e8e8;\n}\n.mx-calendar-time {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.mx-time-header {\n border-bottom: 1px solid #e8e8e8;\n}\n.mx-time-content {\n height: 224px;\n box-sizing: border-box;\n overflow: hidden;\n}\n.mx-time-columns {\n display: flex;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.mx-time-column {\n flex: 1;\n position: relative;\n border-left: 1px solid #e8e8e8;\n text-align: center;\n}\n.mx-time-column:first-child {\n border-left: 0;\n}\n.mx-time-column .mx-time-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.mx-time-column .mx-time-list::after {\n content: "";\n display: block;\n height: 192px;\n}\n.mx-time-column .mx-time-item {\n cursor: pointer;\n font-size: 12px;\n height: 32px;\n line-height: 32px;\n}\n.mx-time-column .mx-time-item:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-time-column .mx-time-item.active {\n color: #1284e7;\n background-color: transparent;\n font-weight: 700;\n}\n.mx-time-column .mx-time-item.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-time-option {\n cursor: pointer;\n padding: 8px 10px;\n font-size: 14px;\n line-height: 20px;\n}\n.mx-time-option:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-time-option.active {\n color: #1284e7;\n background-color: transparent;\n font-weight: 700;\n}\n.mx-time-option.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-datepicker[data-v-ac203b9] {\n user-select: none;\n color: var(--color-main-text);\n /* INPUT CONTAINER */\n}\n.mx-datepicker[data-v-ac203b9] svg {\n fill: var(--color-main-text);\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input {\n width: 100%;\n border: 2px solid var(--color-border-maxcontrast);\n background-color: var(--color-main-background);\n background-clip: content-box;\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:active:not(.disabled), .mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:hover:not(.disabled), .mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:focus:not(.disabled) {\n border-color: var(--color-primary-element);\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper:disabled, .mx-datepicker[data-v-ac203b9] .mx-input-wrapper.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-icon-calendar,\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-icon-clear {\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main {\n color: var(--color-main-text);\n border: 1px solid var(--color-border);\n background-color: var(--color-main-background);\n font-family: var(--font-face) !important;\n line-height: 1.5;\n}\n.mx-datepicker-main svg {\n fill: var(--color-main-text);\n}\n.mx-datepicker-main.mx-datepicker-popup {\n z-index: 2000;\n box-shadow: none;\n}\n.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar + .mx-datepicker-content {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main.show-week-number .mx-calendar {\n width: 296px;\n}\n.mx-datepicker-main .mx-datepicker-header {\n border-bottom: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-datepicker-footer {\n border-top: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-datepicker-btn-confirm {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element);\n color: var(--color-primary-element-text) !important;\n opacity: 1 !important;\n}\n.mx-datepicker-main .mx-datepicker-btn-confirm:hover {\n background-color: var(--color-primary-element-light) !important;\n border-color: var(--color-primary-element-light) !important;\n}\n.mx-datepicker-main .mx-calendar {\n width: 264px;\n padding: 5px;\n}\n.mx-datepicker-main .mx-calendar.mx-calendar-week-mode {\n width: 296px;\n}\n.mx-datepicker-main .mx-time + .mx-time,\n.mx-datepicker-main .mx-calendar + .mx-calendar {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-range-wrapper {\n display: flex;\n overflow: hidden;\n}\n.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active {\n border-radius: var(--border-radius) 0 0 var(--border-radius);\n}\n.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range + .cell.active {\n border-radius: 0 var(--border-radius) var(--border-radius) 0;\n}\n.mx-datepicker-main .mx-table {\n text-align: center;\n}\n.mx-datepicker-main .mx-table thead > tr > th {\n text-align: center;\n opacity: 0.5;\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main .mx-table tr:focus,\n.mx-datepicker-main .mx-table tr:hover,\n.mx-datepicker-main .mx-table tr:active {\n background-color: transparent;\n}\n.mx-datepicker-main .mx-table .cell {\n transition: all 100ms ease-in-out;\n text-align: center;\n opacity: 0.7;\n border-radius: 50px;\n}\n.mx-datepicker-main .mx-table .cell > * {\n cursor: pointer;\n}\n.mx-datepicker-main .mx-table .cell.today {\n opacity: 1;\n color: var(--color-primary-element);\n font-weight: bold;\n}\n.mx-datepicker-main .mx-table .cell.today:hover, .mx-datepicker-main .mx-table .cell.today:focus {\n color: var(--color-primary-element-text);\n}\n.mx-datepicker-main .mx-table .cell.in-range, .mx-datepicker-main .mx-table .cell.disabled {\n border-radius: 0;\n font-weight: normal;\n}\n.mx-datepicker-main .mx-table .cell.in-range {\n opacity: 0.7;\n}\n.mx-datepicker-main .mx-table .cell.not-current-month {\n opacity: 0.5;\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main .mx-table .cell.not-current-month:hover, .mx-datepicker-main .mx-table .cell.not-current-month:focus {\n opacity: 1;\n}\n.mx-datepicker-main .mx-table .cell:hover, .mx-datepicker-main .mx-table .cell:focus, .mx-datepicker-main .mx-table .cell.actived, .mx-datepicker-main .mx-table .cell.active, .mx-datepicker-main .mx-table .cell.in-range {\n opacity: 1;\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n font-weight: bold;\n}\n.mx-datepicker-main .mx-table .cell.disabled {\n opacity: 0.5;\n color: var(--color-text-lighter);\n border-radius: 0;\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-table .mx-week-number {\n text-align: center;\n opacity: 0.7;\n border-radius: 50px;\n}\n.mx-datepicker-main .mx-table span.mx-week-number,\n.mx-datepicker-main .mx-table li.mx-week-number,\n.mx-datepicker-main .mx-table span.cell,\n.mx-datepicker-main .mx-table li.cell {\n min-height: 32px;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead, .mx-datepicker-main .mx-table.mx-table-date tbody, .mx-datepicker-main .mx-table.mx-table-year, .mx-datepicker-main .mx-table.mx-table-month {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead tr, .mx-datepicker-main .mx-table.mx-table-date tbody tr, .mx-datepicker-main .mx-table.mx-table-year tr, .mx-datepicker-main .mx-table.mx-table-month tr {\n display: inline-flex;\n align-items: center;\n flex: 1 1 32px;\n justify-content: space-around;\n min-height: 32px;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead th,\n.mx-datepicker-main .mx-table.mx-table-date thead td, .mx-datepicker-main .mx-table.mx-table-date tbody th,\n.mx-datepicker-main .mx-table.mx-table-date tbody td, .mx-datepicker-main .mx-table.mx-table-year th,\n.mx-datepicker-main .mx-table.mx-table-year td, .mx-datepicker-main .mx-table.mx-table-month th,\n.mx-datepicker-main .mx-table.mx-table-month td {\n display: flex;\n align-items: center;\n flex: 0 1 32%;\n justify-content: center;\n min-width: 32px;\n height: 95%;\n min-height: 32px;\n transition: background 100ms ease-in-out;\n}\n.mx-datepicker-main .mx-table.mx-table-year tr th,\n.mx-datepicker-main .mx-table.mx-table-year tr td {\n flex-basis: 48%;\n}\n.mx-datepicker-main .mx-table.mx-table-date tr th,\n.mx-datepicker-main .mx-table.mx-table-date tr td {\n flex-basis: 32px;\n}\n.mx-datepicker-main .mx-btn {\n min-width: 32px;\n height: 32px;\n margin: 0 2px !important;\n padding: 7px 10px;\n cursor: pointer;\n text-decoration: none;\n opacity: 0.5;\n color: var(--color-text-lighter);\n border-radius: 32px;\n line-height: 20px;\n}\n.mx-datepicker-main .mx-btn:hover, .mx-datepicker-main .mx-btn:focus {\n opacity: 1;\n color: var(--color-main-text);\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-calendar-header, .mx-datepicker-main .mx-time-header {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--default-clickable-area);\n margin-bottom: 4px;\n}\n.mx-datepicker-main .mx-calendar-header button, .mx-datepicker-main .mx-time-header button {\n min-width: 32px;\n min-height: 32px;\n margin: 0;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n opacity: 0.7;\n color: var(--color-main-text);\n border-radius: 32px;\n line-height: 20px;\n}\n.mx-datepicker-main .mx-calendar-header button:hover, .mx-datepicker-main .mx-time-header button:hover, .mx-datepicker-main .mx-calendar-header button:focus, .mx-datepicker-main .mx-time-header button:focus {\n opacity: 1;\n color: var(--color-main-text);\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right {\n align-items: center;\n justify-content: center;\n width: 32px;\n padding: 0;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i {\n background-repeat: no-repeat;\n background-size: 16px;\n background-position: center;\n filter: var(--background-invert-if-dark);\n display: inline-block;\n width: 32px;\n height: 32px;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i::before {\n content: none;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-text, .mx-datepicker-main .mx-time-header button.mx-btn-text {\n line-height: initial;\n}\n.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label, .mx-datepicker-main .mx-time-header .mx-calendar-header-label {\n display: flex;\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-double-left > i {\n background-image: url(${f});\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-left > i {\n background-image: url(${p});\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-right > i {\n background-image: url(${g});\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-double-right > i {\n background-image: url(${_});\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right {\n order: 2;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right {\n order: 3;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number {\n font-weight: bold;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week {\n opacity: 1;\n border-radius: 50px;\n background-color: var(--color-background-dark);\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td {\n background-color: transparent;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus {\n color: inherit;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td {\n opacity: 0.7;\n font-weight: normal;\n}\n.mx-datepicker-main .mx-time {\n background-color: var(--color-main-background);\n}\n.mx-datepicker-main .mx-time .mx-time-header {\n justify-content: center;\n border-bottom: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-time .mx-time-column {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-time .mx-time-option.active, .mx-datepicker-main .mx-time .mx-time-option:hover,\n.mx-datepicker-main .mx-time .mx-time-item.active,\n.mx-datepicker-main .mx-time .mx-time-item:hover {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mx-datepicker-main .mx-time .mx-time-option.disabled,\n.mx-datepicker-main .mx-time .mx-time-item.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4727c294] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mx-datepicker[data-v-4727c294] .mx-input-wrapper .mx-input {\n background-clip: border-box;\n}\n.datetime-picker-inline-icon[data-v-4727c294] {\n opacity: 0.3;\n border: none;\n background-color: transparent;\n border-radius: 0;\n padding: 0 !important;\n margin: 0;\n}\n.datetime-picker-inline-icon--highlighted[data-v-4727c294] {\n opacity: 0.7;\n}\n.datetime-picker-inline-icon[data-v-4727c294]:focus, .datetime-picker-inline-icon[data-v-4727c294]:hover {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper {\n border-radius: var(--border-radius-large);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner {\n padding: 4px;\n border-radius: var(--border-radius-large);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__label {\n padding: 4px 0;\n padding-left: 14px;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select .vs__dropdown-toggle {\n border-radius: calc(var(--border-radius-large) - 4px);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open .vs__dropdown-toggle {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open.select--drop-up .vs__dropdown-toggle {\n border-radius: 0 0 calc(var(--border-radius-large) - 4px) calc(var(--border-radius-large) - 4px);\n}\n.vs__dropdown-menu--floating {\n z-index: 100001 !important;\n}`,"",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDateTimePicker-BshzbbKT.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;;;CAGC;AACD;;;;;;EAME,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,mBAAmB;EACnB,0BAA0B;EAC1B,yBAAyB;EACzB,kBAAkB;EAClB,sBAAsB;EACtB,wBAAwB;EACxB,oCAAoC;AACtC;AACA;EACE,UAAU;AACZ;AACA;EACE,SAAS;AACX;AACA;;;EAGE,oCAAoC;AACtC;AACA;EACE,sBAAsB;EACtB,cAAc;EACd,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,SAAS;EACT,eAAe;EACf,6BAA6B;EAC7B,aAAa;EACb,oCAAoC;EACpC,kBAAkB;EAClB,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,SAAS;EACT,cAAc;EACd,gBAAgB;EAChB,oBAAoB;AACtB;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,WAAW;EACX,UAAU;EACV,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,kCAAkC;AACpC;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,SAAS;EACT,eAAe;EACf,sBAAsB;EACtB,0CAA0C;EAC1C,iCAAiC;AACnC;AACA;;EAEE,UAAU;EACV,oBAAoB;EACpB,sGAAsG;EACtG,4BAA4B;AAC9B;AACA;;;EAGE,UAAU;EACV,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;AACd;AACA;EACE,UAAU;EACV,WAAW;EACX,uBAAuB;EACvB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;EAClB,gDAAgD;AAClD;AACA;EACE,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,kBAAkB;EAClB,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;;EAEE,kBAAkB;EAClB,QAAQ;EACR,UAAU;EACV,2BAA2B;EAC3B,eAAe;EACf,cAAc;EACd,yBAAyB;EACzB,sBAAsB;AACxB;AACA;EACE,eAAe;AACjB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,gFAAgF;EAChF,cAAc;EACd,sBAAsB;EACtB,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,eAAe;EACf,kBAAkB;EAClB,2CAA2C;EAC3C,aAAa;AACf;AACA;EACE,WAAW;EACX,sBAAsB;EACtB,YAAY;EACZ,YAAY;EACZ,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,8BAA8B;AAChC;AACA;EACE,kBAAkB;EAClB,iBAAiB;AACnB;AACA;EACE,cAAc;EACd,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;AACA;EACE;IACE,sBAAsB;EACxB;AACF;AACA;EACE,gBAAgB;EAChB,gCAAgC;AAClC;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,6BAA6B;AAC/B;AACA;EACE,sBAAsB;EACtB,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,sBAAsB;EACtB,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;;EAEE,WAAW;AACb;AACA;;EAEE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,mBAAmB;EACnB,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,eAAe;AACjB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,cAAc;EACd,6BAA6B;AAC/B;AACA;EACE,cAAc;EACd,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;EACE,mBAAmB;EACnB,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,gBAAgB;EAChB,sBAAsB;AACxB;AACA;EACE,UAAU;EACV,sBAAsB;AACxB;AACA;;EAEE,YAAY;EACZ,eAAe;AACjB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,OAAO;EACP,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;AACd;AACA;EACE,gCAAgC;AAClC;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,OAAO;EACP,kBAAkB;EAClB,8BAA8B;EAC9B,kBAAkB;AACpB;AACA;EACE,cAAc;AAChB;AACA;EACE,SAAS;EACT,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,cAAc;EACd,aAAa;AACf;AACA;EACE,eAAe;EACf,eAAe;EACf,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,cAAc;EACd,6BAA6B;EAC7B,gBAAgB;AAClB;AACA;EACE,mBAAmB;EACnB,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,eAAe;EACf,iBAAiB;EACjB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,cAAc;EACd,yBAAyB;AAC3B;AACA;EACE,cAAc;EACd,6BAA6B;EAC7B,gBAAgB;AAClB;AACA;EACE,mBAAmB;EACnB,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,iBAAiB;EACjB,6BAA6B;EAC7B,oBAAoB;AACtB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,WAAW;EACX,iDAAiD;EACjD,8CAA8C;EAC9C,4BAA4B;AAC9B;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,mBAAmB;EACnB,YAAY;AACd;AACA;;EAEE,gCAAgC;AAClC;AACA;EACE,6BAA6B;EAC7B,qCAAqC;EACrC,8CAA8C;EAC9C,wCAAwC;EACxC,gBAAgB;AAClB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,YAAY;AACd;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,8CAA8C;EAC9C,0CAA0C;EAC1C,mDAAmD;EACnD,qBAAqB;AACvB;AACA;EACE,+DAA+D;EAC/D,2DAA2D;AAC7D;AACA;EACE,YAAY;EACZ,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;;EAEE,0CAA0C;AAC5C;AACA;EACE,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,4DAA4D;AAC9D;AACA;EACE,4DAA4D;AAC9D;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gCAAgC;AAClC;AACA;;;EAGE,6BAA6B;AAC/B;AACA;EACE,iCAAiC;EACjC,kBAAkB;EAClB,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,UAAU;EACV,mCAAmC;EACnC,iBAAiB;AACnB;AACA;EACE,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;EACZ,gCAAgC;AAClC;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,wCAAwC;EACxC,8CAA8C;EAC9C,iBAAiB;AACnB;AACA;EACE,YAAY;EACZ,gCAAgC;EAChC,gBAAgB;EAChB,gDAAgD;AAClD;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,mBAAmB;AACrB;AACA;;;;EAIE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,6BAA6B;AAC/B;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,cAAc;EACd,6BAA6B;EAC7B,gBAAgB;AAClB;AACA;;;;;EAKE,aAAa;EACb,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,eAAe;EACf,WAAW;EACX,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,gBAAgB;AAClB;AACA;EACE,eAAe;EACf,YAAY;EACZ,wBAAwB;EACxB,iBAAiB;EACjB,eAAe;EACf,qBAAqB;EACrB,YAAY;EACZ,gCAAgC;EAChC,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,gDAAgD;AAClD;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,8BAA8B;EAC9B,WAAW;EACX,qCAAqC;EACrC,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,SAAS;EACT,eAAe;EACf,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ,6BAA6B;EAC7B,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,gDAAgD;AAClD;AACA;EACE,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,UAAU;AACZ;AACA;EACE,4BAA4B;EAC5B,qBAAqB;EACrB,2BAA2B;EAC3B,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,oBAAoB;AACtB;AACA;EACE,aAAa;AACf;AACA;EACE,yDAAsY;AACxY;AACA;EACE,yDAA+U;AACjV;AACA;EACE,yDAAuU;AACzU;AACA;EACE,yDAA0X;AAC5X;AACA;EACE,QAAQ;AACV;AACA;EACE,QAAQ;AACV;AACA;EACE,iBAAiB;AACnB;AACA;EACE,UAAU;EACV,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,cAAc;AAChB;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,uBAAuB;EACvB,4CAA4C;AAC9C;AACA;EACE,0CAA0C;AAC5C;AACA;;;EAGE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;;EAEE,mBAAmB;EACnB,YAAY;EACZ,6BAA6B;EAC7B,8CAA8C;AAChD,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,gBAAgB;EAChB,qBAAqB;EACrB,SAAS;AACX;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,YAAY;EACZ,yCAAyC;AAC3C;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,qDAAqD;AACvD;AACA;EACE,4BAA4B;EAC5B,6BAA6B;AAC/B;AACA;EACE,gGAAgG;AAClG;AACA;EACE,0BAA0B;AAC5B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/**\n* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n* SPDX-License-Identifier: AGPL-3.0-or-later\n*/\n.mx-icon-left:before,\n.mx-icon-right:before,\n.mx-icon-double-left:before,\n.mx-icon-double-right:before,\n.mx-icon-double-left:after,\n.mx-icon-double-right:after {\n content: \"\";\n position: relative;\n top: -1px;\n display: inline-block;\n width: 10px;\n height: 10px;\n vertical-align: middle;\n border-style: solid;\n border-color: currentColor;\n border-width: 2px 0 0 2px;\n border-radius: 1px;\n box-sizing: border-box;\n transform-origin: center;\n transform: rotate(-45deg) scale(0.7);\n}\n.mx-icon-double-left:after {\n left: -4px;\n}\n.mx-icon-double-right:before {\n left: 4px;\n}\n.mx-icon-right:before,\n.mx-icon-double-right:before,\n.mx-icon-double-right:after {\n transform: rotate(135deg) scale(0.7);\n}\n.mx-btn {\n box-sizing: border-box;\n line-height: 1;\n font-size: 14px;\n font-weight: 500;\n padding: 7px 15px;\n margin: 0;\n cursor: pointer;\n background-color: transparent;\n outline: none;\n border: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n color: #73879c;\n white-space: nowrap;\n}\n.mx-btn:hover {\n border-color: #1284e7;\n color: #1284e7;\n}\n.mx-btn:disabled, .mx-btn.disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n.mx-btn-text {\n border: 0;\n padding: 0 4px;\n text-align: left;\n line-height: inherit;\n}\n.mx-scrollbar {\n height: 100%;\n}\n.mx-scrollbar:hover .mx-scrollbar-track {\n opacity: 1;\n}\n.mx-scrollbar-wrap {\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n}\n.mx-scrollbar-track {\n position: absolute;\n top: 2px;\n right: 2px;\n bottom: 2px;\n width: 6px;\n z-index: 1;\n border-radius: 4px;\n opacity: 0;\n transition: opacity 0.24s ease-out;\n}\n.mx-scrollbar-track .mx-scrollbar-thumb {\n position: absolute;\n width: 100%;\n height: 0;\n cursor: pointer;\n border-radius: inherit;\n background-color: rgba(144, 147, 153, 0.3);\n transition: background-color 0.3s;\n}\n.mx-zoom-in-down-enter-active,\n.mx-zoom-in-down-leave-active {\n opacity: 1;\n transform: scaleY(1);\n transition: transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.3s cubic-bezier(0.23, 1, 0.32, 1);\n transform-origin: center top;\n}\n.mx-zoom-in-down-enter,\n.mx-zoom-in-down-enter-from,\n.mx-zoom-in-down-leave-to {\n opacity: 0;\n transform: scaleY(0);\n}\n.mx-datepicker {\n position: relative;\n display: inline-block;\n width: 210px;\n}\n.mx-datepicker svg {\n width: 1em;\n height: 1em;\n vertical-align: -0.15em;\n fill: currentColor;\n overflow: hidden;\n}\n.mx-datepicker-range {\n width: 320px;\n}\n.mx-datepicker-inline {\n width: auto;\n}\n.mx-input-wrapper {\n position: relative;\n}\n.mx-input {\n display: inline-block;\n box-sizing: border-box;\n width: 100%;\n height: 34px;\n padding: 6px 30px;\n padding-left: 10px;\n font-size: 14px;\n line-height: 1.4;\n color: #555;\n background-color: #fff;\n border: 1px solid #ccc;\n border-radius: 4px;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.mx-input:hover, .mx-input:focus {\n border-color: #409aff;\n}\n.mx-input:disabled, .mx-input.disabled {\n color: #ccc;\n background-color: #f3f3f3;\n border-color: #ccc;\n cursor: not-allowed;\n}\n.mx-input:focus {\n outline: none;\n}\n.mx-input::-ms-clear {\n display: none;\n}\n.mx-icon-calendar,\n.mx-icon-clear {\n position: absolute;\n top: 50%;\n right: 8px;\n transform: translateY(-50%);\n font-size: 16px;\n line-height: 1;\n color: rgba(0, 0, 0, 0.5);\n vertical-align: middle;\n}\n.mx-icon-clear {\n cursor: pointer;\n}\n.mx-icon-clear:hover {\n color: rgba(0, 0, 0, 0.8);\n}\n.mx-datepicker-main {\n font: 14px/1.5 \"Helvetica Neue\", Helvetica, Arial, \"Microsoft Yahei\", sans-serif;\n color: #73879c;\n background-color: #fff;\n border: 1px solid #e8e8e8;\n}\n.mx-datepicker-popup {\n position: absolute;\n margin-top: 1px;\n margin-bottom: 1px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n z-index: 2001;\n}\n.mx-datepicker-sidebar {\n float: left;\n box-sizing: border-box;\n width: 100px;\n padding: 6px;\n overflow: auto;\n}\n.mx-datepicker-sidebar + .mx-datepicker-content {\n margin-left: 100px;\n border-left: 1px solid #e8e8e8;\n}\n.mx-datepicker-body {\n position: relative;\n user-select: none;\n}\n.mx-btn-shortcut {\n display: block;\n padding: 0 6px;\n line-height: 24px;\n}\n.mx-range-wrapper {\n display: flex;\n}\n@media (max-width: 750px) {\n .mx-range-wrapper {\n flex-direction: column;\n }\n}\n.mx-datepicker-header {\n padding: 6px 8px;\n border-bottom: 1px solid #e8e8e8;\n}\n.mx-datepicker-footer {\n padding: 6px 8px;\n text-align: right;\n border-top: 1px solid #e8e8e8;\n}\n.mx-calendar {\n box-sizing: border-box;\n width: 248px;\n padding: 6px 12px;\n}\n.mx-calendar + .mx-calendar {\n border-left: 1px solid #e8e8e8;\n}\n.mx-calendar-header, .mx-time-header {\n box-sizing: border-box;\n height: 34px;\n line-height: 34px;\n text-align: center;\n overflow: hidden;\n}\n.mx-btn-icon-left,\n.mx-btn-icon-double-left {\n float: left;\n}\n.mx-btn-icon-right,\n.mx-btn-icon-double-right {\n float: right;\n}\n.mx-calendar-header-label {\n font-size: 14px;\n}\n.mx-calendar-decade-separator {\n margin: 0 2px;\n}\n.mx-calendar-decade-separator:after {\n content: \"~\";\n}\n.mx-calendar-content {\n position: relative;\n height: 224px;\n box-sizing: border-box;\n}\n.mx-calendar-content .cell {\n cursor: pointer;\n}\n.mx-calendar-content .cell:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-calendar-content .cell.active {\n color: #fff;\n background-color: #1284e7;\n}\n.mx-calendar-content .cell.in-range, .mx-calendar-content .cell.hover-in-range {\n color: #73879c;\n background-color: #dbedfb;\n}\n.mx-calendar-content .cell.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-calendar-week-mode .mx-date-row {\n cursor: pointer;\n}\n.mx-calendar-week-mode .mx-date-row:hover {\n background-color: #f3f9fe;\n}\n.mx-calendar-week-mode .mx-date-row.mx-active-week {\n background-color: #dbedfb;\n}\n.mx-calendar-week-mode .mx-date-row .cell:hover {\n color: inherit;\n background-color: transparent;\n}\n.mx-calendar-week-mode .mx-date-row .cell.active {\n color: inherit;\n background-color: transparent;\n}\n.mx-week-number {\n opacity: 0.5;\n}\n.mx-table {\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n text-align: center;\n}\n.mx-table th {\n padding: 0;\n font-weight: 500;\n vertical-align: middle;\n}\n.mx-table td {\n padding: 0;\n vertical-align: middle;\n}\n.mx-table-date td,\n.mx-table-date th {\n height: 32px;\n font-size: 12px;\n}\n.mx-table-date .today {\n color: #2a90e9;\n}\n.mx-table-date .cell.not-current-month {\n color: #ccc;\n background: none;\n}\n.mx-time {\n flex: 1;\n width: 224px;\n background: #fff;\n}\n.mx-time + .mx-time {\n border-left: 1px solid #e8e8e8;\n}\n.mx-calendar-time {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n.mx-time-header {\n border-bottom: 1px solid #e8e8e8;\n}\n.mx-time-content {\n height: 224px;\n box-sizing: border-box;\n overflow: hidden;\n}\n.mx-time-columns {\n display: flex;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n.mx-time-column {\n flex: 1;\n position: relative;\n border-left: 1px solid #e8e8e8;\n text-align: center;\n}\n.mx-time-column:first-child {\n border-left: 0;\n}\n.mx-time-column .mx-time-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.mx-time-column .mx-time-list::after {\n content: \"\";\n display: block;\n height: 192px;\n}\n.mx-time-column .mx-time-item {\n cursor: pointer;\n font-size: 12px;\n height: 32px;\n line-height: 32px;\n}\n.mx-time-column .mx-time-item:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-time-column .mx-time-item.active {\n color: #1284e7;\n background-color: transparent;\n font-weight: 700;\n}\n.mx-time-column .mx-time-item.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-time-option {\n cursor: pointer;\n padding: 8px 10px;\n font-size: 14px;\n line-height: 20px;\n}\n.mx-time-option:hover {\n color: #73879c;\n background-color: #f3f9fe;\n}\n.mx-time-option.active {\n color: #1284e7;\n background-color: transparent;\n font-weight: 700;\n}\n.mx-time-option.disabled {\n cursor: not-allowed;\n color: #ccc;\n background-color: #f3f3f3;\n}\n.mx-datepicker[data-v-ac203b9] {\n user-select: none;\n color: var(--color-main-text);\n /* INPUT CONTAINER */\n}\n.mx-datepicker[data-v-ac203b9] svg {\n fill: var(--color-main-text);\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input {\n width: 100%;\n border: 2px solid var(--color-border-maxcontrast);\n background-color: var(--color-main-background);\n background-clip: content-box;\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:active:not(.disabled), .mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:hover:not(.disabled), .mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-input:focus:not(.disabled) {\n border-color: var(--color-primary-element);\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper:disabled, .mx-datepicker[data-v-ac203b9] .mx-input-wrapper.disabled {\n cursor: not-allowed;\n opacity: 0.7;\n}\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-icon-calendar,\n.mx-datepicker[data-v-ac203b9] .mx-input-wrapper .mx-icon-clear {\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main {\n color: var(--color-main-text);\n border: 1px solid var(--color-border);\n background-color: var(--color-main-background);\n font-family: var(--font-face) !important;\n line-height: 1.5;\n}\n.mx-datepicker-main svg {\n fill: var(--color-main-text);\n}\n.mx-datepicker-main.mx-datepicker-popup {\n z-index: 2000;\n box-shadow: none;\n}\n.mx-datepicker-main.mx-datepicker-popup .mx-datepicker-sidebar + .mx-datepicker-content {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main.show-week-number .mx-calendar {\n width: 296px;\n}\n.mx-datepicker-main .mx-datepicker-header {\n border-bottom: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-datepicker-footer {\n border-top: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-datepicker-btn-confirm {\n background-color: var(--color-primary-element);\n border-color: var(--color-primary-element);\n color: var(--color-primary-element-text) !important;\n opacity: 1 !important;\n}\n.mx-datepicker-main .mx-datepicker-btn-confirm:hover {\n background-color: var(--color-primary-element-light) !important;\n border-color: var(--color-primary-element-light) !important;\n}\n.mx-datepicker-main .mx-calendar {\n width: 264px;\n padding: 5px;\n}\n.mx-datepicker-main .mx-calendar.mx-calendar-week-mode {\n width: 296px;\n}\n.mx-datepicker-main .mx-time + .mx-time,\n.mx-datepicker-main .mx-calendar + .mx-calendar {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-range-wrapper {\n display: flex;\n overflow: hidden;\n}\n.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.active {\n border-radius: var(--border-radius) 0 0 var(--border-radius);\n}\n.mx-datepicker-main .mx-range-wrapper .mx-calendar-content .mx-table-date .cell.in-range + .cell.active {\n border-radius: 0 var(--border-radius) var(--border-radius) 0;\n}\n.mx-datepicker-main .mx-table {\n text-align: center;\n}\n.mx-datepicker-main .mx-table thead > tr > th {\n text-align: center;\n opacity: 0.5;\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main .mx-table tr:focus,\n.mx-datepicker-main .mx-table tr:hover,\n.mx-datepicker-main .mx-table tr:active {\n background-color: transparent;\n}\n.mx-datepicker-main .mx-table .cell {\n transition: all 100ms ease-in-out;\n text-align: center;\n opacity: 0.7;\n border-radius: 50px;\n}\n.mx-datepicker-main .mx-table .cell > * {\n cursor: pointer;\n}\n.mx-datepicker-main .mx-table .cell.today {\n opacity: 1;\n color: var(--color-primary-element);\n font-weight: bold;\n}\n.mx-datepicker-main .mx-table .cell.today:hover, .mx-datepicker-main .mx-table .cell.today:focus {\n color: var(--color-primary-element-text);\n}\n.mx-datepicker-main .mx-table .cell.in-range, .mx-datepicker-main .mx-table .cell.disabled {\n border-radius: 0;\n font-weight: normal;\n}\n.mx-datepicker-main .mx-table .cell.in-range {\n opacity: 0.7;\n}\n.mx-datepicker-main .mx-table .cell.not-current-month {\n opacity: 0.5;\n color: var(--color-text-lighter);\n}\n.mx-datepicker-main .mx-table .cell.not-current-month:hover, .mx-datepicker-main .mx-table .cell.not-current-month:focus {\n opacity: 1;\n}\n.mx-datepicker-main .mx-table .cell:hover, .mx-datepicker-main .mx-table .cell:focus, .mx-datepicker-main .mx-table .cell.actived, .mx-datepicker-main .mx-table .cell.active, .mx-datepicker-main .mx-table .cell.in-range {\n opacity: 1;\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n font-weight: bold;\n}\n.mx-datepicker-main .mx-table .cell.disabled {\n opacity: 0.5;\n color: var(--color-text-lighter);\n border-radius: 0;\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-table .mx-week-number {\n text-align: center;\n opacity: 0.7;\n border-radius: 50px;\n}\n.mx-datepicker-main .mx-table span.mx-week-number,\n.mx-datepicker-main .mx-table li.mx-week-number,\n.mx-datepicker-main .mx-table span.cell,\n.mx-datepicker-main .mx-table li.cell {\n min-height: 32px;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead, .mx-datepicker-main .mx-table.mx-table-date tbody, .mx-datepicker-main .mx-table.mx-table-year, .mx-datepicker-main .mx-table.mx-table-month {\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead tr, .mx-datepicker-main .mx-table.mx-table-date tbody tr, .mx-datepicker-main .mx-table.mx-table-year tr, .mx-datepicker-main .mx-table.mx-table-month tr {\n display: inline-flex;\n align-items: center;\n flex: 1 1 32px;\n justify-content: space-around;\n min-height: 32px;\n}\n.mx-datepicker-main .mx-table.mx-table-date thead th,\n.mx-datepicker-main .mx-table.mx-table-date thead td, .mx-datepicker-main .mx-table.mx-table-date tbody th,\n.mx-datepicker-main .mx-table.mx-table-date tbody td, .mx-datepicker-main .mx-table.mx-table-year th,\n.mx-datepicker-main .mx-table.mx-table-year td, .mx-datepicker-main .mx-table.mx-table-month th,\n.mx-datepicker-main .mx-table.mx-table-month td {\n display: flex;\n align-items: center;\n flex: 0 1 32%;\n justify-content: center;\n min-width: 32px;\n height: 95%;\n min-height: 32px;\n transition: background 100ms ease-in-out;\n}\n.mx-datepicker-main .mx-table.mx-table-year tr th,\n.mx-datepicker-main .mx-table.mx-table-year tr td {\n flex-basis: 48%;\n}\n.mx-datepicker-main .mx-table.mx-table-date tr th,\n.mx-datepicker-main .mx-table.mx-table-date tr td {\n flex-basis: 32px;\n}\n.mx-datepicker-main .mx-btn {\n min-width: 32px;\n height: 32px;\n margin: 0 2px !important;\n padding: 7px 10px;\n cursor: pointer;\n text-decoration: none;\n opacity: 0.5;\n color: var(--color-text-lighter);\n border-radius: 32px;\n line-height: 20px;\n}\n.mx-datepicker-main .mx-btn:hover, .mx-datepicker-main .mx-btn:focus {\n opacity: 1;\n color: var(--color-main-text);\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-calendar-header, .mx-datepicker-main .mx-time-header {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: var(--default-clickable-area);\n margin-bottom: 4px;\n}\n.mx-datepicker-main .mx-calendar-header button, .mx-datepicker-main .mx-time-header button {\n min-width: 32px;\n min-height: 32px;\n margin: 0;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n opacity: 0.7;\n color: var(--color-main-text);\n border-radius: 32px;\n line-height: 20px;\n}\n.mx-datepicker-main .mx-calendar-header button:hover, .mx-datepicker-main .mx-time-header button:hover, .mx-datepicker-main .mx-calendar-header button:focus, .mx-datepicker-main .mx-time-header button:focus {\n opacity: 1;\n color: var(--color-main-text);\n background-color: var(--color-background-darker);\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right {\n align-items: center;\n justify-content: center;\n width: 32px;\n padding: 0;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i {\n background-repeat: no-repeat;\n background-size: 16px;\n background-position: center;\n filter: var(--background-invert-if-dark);\n display: inline-block;\n width: 32px;\n height: 32px;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-left > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-left > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-left > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-left > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right > i::before, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i::after, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i::after, .mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right > i::before, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right > i::before {\n content: none;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-text, .mx-datepicker-main .mx-time-header button.mx-btn-text {\n line-height: initial;\n}\n.mx-datepicker-main .mx-calendar-header .mx-calendar-header-label, .mx-datepicker-main .mx-time-header .mx-calendar-header-label {\n display: flex;\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-left > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-double-left > i {\n background-image: url(\"data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M18.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'/%3e%3c/svg%3e\");\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-left > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-left > i {\n background-image: url(\"data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z'/%3e%3c/svg%3e\");\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-right > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-right > i {\n background-image: url(\"data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z'/%3e%3c/svg%3e\");\n}\n.mx-datepicker-main .mx-calendar-header .mx-btn-icon-double-right > i, .mx-datepicker-main .mx-time-header .mx-btn-icon-double-right > i {\n background-image: url(\"data:image/svg+xml,%3c!--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20fill='%23222'%3e%3cpath%20d='M5.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'/%3e%3c/svg%3e\");\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-right {\n order: 2;\n}\n.mx-datepicker-main .mx-calendar-header button.mx-btn-icon-double-right, .mx-datepicker-main .mx-time-header button.mx-btn-icon-double-right {\n order: 3;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row .mx-week-number {\n font-weight: bold;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week {\n opacity: 1;\n border-radius: 50px;\n background-color: var(--color-background-dark);\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td {\n background-color: transparent;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row:hover td:focus, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:hover, .mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td:focus {\n color: inherit;\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mx-datepicker-main .mx-calendar-week-mode .mx-date-row.mx-active-week td {\n opacity: 0.7;\n font-weight: normal;\n}\n.mx-datepicker-main .mx-time {\n background-color: var(--color-main-background);\n}\n.mx-datepicker-main .mx-time .mx-time-header {\n justify-content: center;\n border-bottom: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-time .mx-time-column {\n border-left: 1px solid var(--color-border);\n}\n.mx-datepicker-main .mx-time .mx-time-option.active, .mx-datepicker-main .mx-time .mx-time-option:hover,\n.mx-datepicker-main .mx-time .mx-time-item.active,\n.mx-datepicker-main .mx-time .mx-time-item:hover {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mx-datepicker-main .mx-time .mx-time-option.disabled,\n.mx-datepicker-main .mx-time .mx-time-item.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4727c294] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mx-datepicker[data-v-4727c294] .mx-input-wrapper .mx-input {\n background-clip: border-box;\n}\n.datetime-picker-inline-icon[data-v-4727c294] {\n opacity: 0.3;\n border: none;\n background-color: transparent;\n border-radius: 0;\n padding: 0 !important;\n margin: 0;\n}\n.datetime-picker-inline-icon--highlighted[data-v-4727c294] {\n opacity: 0.7;\n}\n.datetime-picker-inline-icon[data-v-4727c294]:focus, .datetime-picker-inline-icon[data-v-4727c294]:hover {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper {\n border-radius: var(--border-radius-large);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner {\n padding: 4px;\n border-radius: var(--border-radius-large);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__label {\n padding: 4px 0;\n padding-left: 14px;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select .vs__dropdown-toggle {\n border-radius: calc(var(--border-radius-large) - 4px);\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open .vs__dropdown-toggle {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.v-popper--theme-dropdown.v-popper__popper.timezone-select__popper .v-popper__wrapper .v-popper__inner .timezone-popover-wrapper__timezone-select.v-select.vs--open.select--drop-up .vs__dropdown-toggle {\n border-radius: 0 0 calc(var(--border-radius-large) - 4px) calc(var(--border-radius-large) - 4px);\n}\n.vs__dropdown-menu--floating {\n z-index: 100001 !important;\n}"],sourceRoot:""}]);const v=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:h},11130:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fbe2ff4a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.native-datetime-picker[data-v-fbe2ff4a] {\n display: flex;\n flex-direction: column;\n}\n.native-datetime-picker .native-datetime-picker--input[data-v-fbe2ff4a] {\n width: 100%;\n flex: 0 0 auto;\n padding-right: 4px;\n}\n[data-theme-light] .native-datetime-picker--input[data-v-fbe2ff4a],\n[data-themes*=light] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: light;\n}\n[data-theme-dark] .native-datetime-picker--input[data-v-fbe2ff4a],\n[data-themes*=dark] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: dark;\n}\n@media (prefers-color-scheme: light) {\n[data-theme-default] .native-datetime-picker--input[data-v-fbe2ff4a],\n [data-themes*=default] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: light;\n}\n}\n@media (prefers-color-scheme: dark) {\n[data-theme-default] .native-datetime-picker--input[data-v-fbe2ff4a],\n [data-themes*=default] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: dark;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDateTimePickerNative-BAcKr0B3.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,cAAc;EACd,kBAAkB;AACpB;AACA;;EAEE,mBAAmB;AACrB;AACA;;EAEE,kBAAkB;AACpB;AACA;AACA;;IAEI,mBAAmB;AACvB;AACA;AACA;AACA;;IAEI,kBAAkB;AACtB;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fbe2ff4a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.native-datetime-picker[data-v-fbe2ff4a] {\n display: flex;\n flex-direction: column;\n}\n.native-datetime-picker .native-datetime-picker--input[data-v-fbe2ff4a] {\n width: 100%;\n flex: 0 0 auto;\n padding-right: 4px;\n}\n[data-theme-light] .native-datetime-picker--input[data-v-fbe2ff4a],\n[data-themes*=light] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: light;\n}\n[data-theme-dark] .native-datetime-picker--input[data-v-fbe2ff4a],\n[data-themes*=dark] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: dark;\n}\n@media (prefers-color-scheme: light) {\n[data-theme-default] .native-datetime-picker--input[data-v-fbe2ff4a],\n [data-themes*=default] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: light;\n}\n}\n@media (prefers-color-scheme: dark) {\n[data-theme-default] .native-datetime-picker--input[data-v-fbe2ff4a],\n [data-themes*=default] .native-datetime-picker--input[data-v-fbe2ff4a] {\n color-scheme: dark;\n}\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},59213:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-large);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de9f48dc] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-de9f48dc] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-de9f48dc] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-de9f48dc] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-de9f48dc] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-de9f48dc] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-de9f48dc] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-de9f48dc] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-de9f48dc] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-de9f48dc] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-de9f48dc] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-de9f48dc] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-de9f48dc] {\n box-sizing: border-box;\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-de9f48dc]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-de9f48dc] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcDialog-DKdW_D2J.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA,uGAAuG;AACvG;AACA;IACI,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,yCAAyC;AAC7C;AACA,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,8BAA8B;EAC9B,gBAAgB;AAClB;AACA;EACE,wBAAwB;EACxB,oBAAoB;EACpB,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,OAAO;EACP,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,mBAAmB;EACnB,yCAAyC;EACzC,0CAA0C;EAC1C,yBAAyB;EACzB,oBAAoB;AACtB;AACA;EACE,OAAO;EACP,aAAa;EACb,cAAc;EACd,wBAAwB;AAC1B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,sBAAsB;EACtB,aAAa;EACb,QAAQ;EACR,qBAAqB;EACrB,oBAAoB;EACpB,WAAW;EACX,eAAe;EACf,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,sBAAsB;AACxB;AACA;AACA;IACI,iBAAiB;IACjB,gDAAgD;AACpD;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/** When having the small dialog style we override the modal styling so dialogs look more dialog like */\n@media only screen and (max-width: 512px) {\n.dialog__modal .modal-wrapper--small .modal-container {\n width: fit-content;\n height: unset;\n max-height: 90%;\n position: relative;\n top: unset;\n border-radius: var(--border-radius-large);\n}\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de9f48dc] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.dialog[data-v-de9f48dc] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n overflow: hidden;\n}\n.dialog__modal[data-v-de9f48dc] .modal-wrapper .modal-container {\n display: flex !important;\n padding-block: 4px 0;\n padding-inline: 12px 0;\n}\n.dialog__modal[data-v-de9f48dc] .modal-wrapper .modal-container__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.dialog__wrapper[data-v-de9f48dc] {\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n.dialog__wrapper--collapsed[data-v-de9f48dc] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-de9f48dc] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-de9f48dc] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-de9f48dc] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-de9f48dc] {\n font-size: 21px;\n text-align: center;\n height: fit-content;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n overflow-wrap: break-word;\n margin-block: 0 12px;\n}\n.dialog__content[data-v-de9f48dc] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding-inline-end: 12px;\n}\n.dialog__text[data-v-de9f48dc] {\n padding-block-end: 6px;\n}\n.dialog__actions[data-v-de9f48dc] {\n box-sizing: border-box;\n display: flex;\n gap: 6px;\n align-content: center;\n justify-content: end;\n width: 100%;\n max-width: 100%;\n padding-inline: 0 12px;\n margin-inline: 0;\n margin-block: 0;\n}\n.dialog__actions[data-v-de9f48dc]:not(:empty) {\n margin-block: 6px 12px;\n}\n@media only screen and (max-width: 512px) {\n.dialog__name[data-v-de9f48dc] {\n text-align: start;\n margin-inline-end: var(--default-clickable-area);\n}\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(78|96)43|1952|4897|5438|590)$/.test(n.j)?null:o},44978:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0c4478a6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.name-parts[data-v-0c4478a6] {\n display: flex;\n max-width: 100%;\n cursor: inherit;\n}\n.name-parts__first[data-v-0c4478a6] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.name-parts__first[data-v-0c4478a6], .name-parts__last[data-v-0c4478a6] {\n white-space: pre;\n cursor: inherit;\n}\n.name-parts__first strong[data-v-0c4478a6], .name-parts__last strong[data-v-0c4478a6] {\n font-weight: bold;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcEllipsisedOption-DZK2vWD1.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,eAAe;EACf,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,eAAe;AACjB;AACA;EACE,iBAAiB;AACnB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0c4478a6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.name-parts[data-v-0c4478a6] {\n display: flex;\n max-width: 100%;\n cursor: inherit;\n}\n.name-parts__first[data-v-0c4478a6] {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.name-parts__first[data-v-0c4478a6], .name-parts__last[data-v-0c4478a6] {\n white-space: pre;\n cursor: inherit;\n}\n.name-parts__first strong[data-v-0c4478a6], .name-parts__last strong[data-v-0c4478a6] {\n font-weight: bold;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},21199:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.emoji-mart,\n.emoji-mart * {\n box-sizing: border-box;\n line-height: 1.15;\n}\n.emoji-mart {\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\n font-size: 16px;\n /* display: inline-block; */\n display: flex;\n flex-direction: column;\n height: 420px;\n color: #222427;\n border: 1px solid #d9d9d9;\n border-radius: 5px;\n background: #fff;\n}\n.emoji-mart-emoji {\n padding: 6px;\n position: relative;\n display: inline-block;\n font-size: 0;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-emoji span {\n display: inline-block;\n}\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\n width: 38px;\n height: 38px;\n font-size: 32px;\n}\n.emoji-type-native {\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\n 'Android Emoji';\n word-break: keep-all;\n}\n.emoji-type-image {\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\n * screen sizes */\n background-size: 6100%;\n}\n.emoji-type-image.emoji-set-apple {\n background-image: url('https://unpkg.com/emoji-datasource-apple@15.0.1/img/apple/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-facebook {\n background-image: url('https://unpkg.com/emoji-datasource-facebook@15.0.1/img/facebook/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-google {\n background-image: url('https://unpkg.com/emoji-datasource-google@15.0.1/img/google/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-twitter {\n background-image: url('https://unpkg.com/emoji-datasource-twitter@15.0.1/img/twitter/sheets-256/64.png');\n}\n.emoji-mart-bar {\n border: 0 solid #d9d9d9;\n}\n.emoji-mart-bar:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.emoji-mart-bar:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.emoji-mart-scroll {\n position: relative;\n overflow-y: scroll;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n.emoji-mart-anchors {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 6px;\n color: #858585;\n line-height: 0;\n}\n.emoji-mart-anchor {\n position: relative;\n display: block;\n flex: 1 1 auto;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-anchor:hover,\n.emoji-mart-anchor-selected {\n color: #464646;\n}\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\n bottom: 0;\n}\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: #464646;\n}\n.emoji-mart-anchors i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n}\n.emoji-mart-anchors svg {\n fill: currentColor;\n max-height: 18px;\n}\n.emoji-mart .scroller {\n height: 250px;\n position: relative;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n.emoji-mart-search {\n margin-top: 6px;\n padding: 0 6px;\n}\n.emoji-mart-search input {\n font-size: 16px;\n display: block;\n width: 100%;\n padding: 0.2em 0.6em;\n border-radius: 25px;\n border: 1px solid #d9d9d9;\n outline: 0;\n}\n.emoji-mart-search-results {\n height: 250px;\n overflow-y: scroll;\n}\n.emoji-mart-category {\n position: relative;\n}\n.emoji-mart-category .emoji-mart-emoji span {\n z-index: 1;\n position: relative;\n text-align: center;\n cursor: default;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n z-index: 0;\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #f4f4f4;\n border-radius: 100%;\n opacity: 0;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n opacity: 1;\n}\n.emoji-mart-category-label {\n position: sticky;\n top: 0;\n}\n.emoji-mart-static .emoji-mart-category-label {\n z-index: 2;\n position: relative;\n /* position: sticky; */\n /* position: -webkit-sticky; */\n}\n.emoji-mart-category-label h3 {\n display: block;\n font-size: 16px;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background-color: #fff;\n background-color: rgba(255, 255, 255, 0.95);\n}\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n}\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: #858585;\n}\n.emoji-mart-no-results .emoji-mart-category-label {\n display: none;\n}\n.emoji-mart-no-results .emoji-mart-no-results-label {\n margin-top: 0.2em;\n}\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\n content: none;\n}\n.emoji-mart-preview {\n position: relative;\n height: 70px;\n}\n.emoji-mart-preview-emoji,\n.emoji-mart-preview-data,\n.emoji-mart-preview-skins {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.emoji-mart-preview-emoji {\n left: 12px;\n}\n.emoji-mart-preview-data {\n left: 68px;\n right: 12px;\n word-break: break-all;\n}\n.emoji-mart-preview-skins {\n right: 30px;\n text-align: right;\n}\n.emoji-mart-preview-name {\n font-size: 14px;\n}\n.emoji-mart-preview-shortname {\n font-size: 12px;\n color: #888;\n}\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\n margin-left: 0.5em;\n}\n.emoji-mart-preview-emoticon {\n font-size: 11px;\n color: #bbb;\n}\n.emoji-mart-title span {\n display: inline-block;\n vertical-align: middle;\n}\n.emoji-mart-title .emoji-mart-emoji {\n padding: 0;\n}\n.emoji-mart-title-label {\n color: #999a9c;\n font-size: 21px;\n font-weight: 300;\n}\n.emoji-mart-skin-swatches {\n font-size: 0;\n padding: 2px 0;\n border: 1px solid #d9d9d9;\n border-radius: 12px;\n background-color: #fff;\n}\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\n opacity: 0.75;\n}\n.emoji-mart-skin-swatch {\n display: inline-block;\n width: 0;\n vertical-align: middle;\n transition-property: width, padding;\n transition-duration: 0.125s;\n transition-timing-function: ease-out;\n}\n.emoji-mart-skin-swatch:nth-child(1) {\n transition-delay: 0s;\n}\n.emoji-mart-skin-swatch:nth-child(2) {\n transition-delay: 0.03s;\n}\n.emoji-mart-skin-swatch:nth-child(3) {\n transition-delay: 0.06s;\n}\n.emoji-mart-skin-swatch:nth-child(4) {\n transition-delay: 0.09s;\n}\n.emoji-mart-skin-swatch:nth-child(5) {\n transition-delay: 0.12s;\n}\n.emoji-mart-skin-swatch:nth-child(6) {\n transition-delay: 0.15s;\n}\n.emoji-mart-skin-swatch-selected {\n position: relative;\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatch-selected:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 4px;\n height: 4px;\n margin: -2px 0 0 -2px;\n background-color: #fff;\n border-radius: 100%;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n}\n.emoji-mart-skin {\n display: inline-block;\n width: 100%;\n padding-top: 100%;\n max-width: 12px;\n border-radius: 100%;\n}\n.emoji-mart-skin-tone-1 {\n background-color: #ffc93a;\n}\n.emoji-mart-skin-tone-2 {\n background-color: #fadcbc;\n}\n.emoji-mart-skin-tone-3 {\n background-color: #e0bb95;\n}\n.emoji-mart-skin-tone-4 {\n background-color: #bf8f68;\n}\n.emoji-mart-skin-tone-5 {\n background-color: #9b643d;\n}\n.emoji-mart-skin-tone-6 {\n background-color: #594539;\n}\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\n.emoji-mart .vue-recycle-scroller {\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\n overflow-y: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\n overflow-x: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\n display: flex;\n}\n.emoji-mart .vue-recycle-scroller__slot {\n flex: auto 0 0;\n}\n.emoji-mart .vue-recycle-scroller__item-wrapper {\n flex: 1;\n box-sizing: border-box;\n overflow: hidden;\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-vertical\n .vue-recycle-scroller__item-wrapper {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-horizontal\n .vue-recycle-scroller__item-wrapper {\n height: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-vertical\n .vue-recycle-scroller__item-view {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-horizontal\n .vue-recycle-scroller__item-view {\n height: 100%;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.emoji-mart-search .hidden {\n display: none;\n visibility: hidden;\n}\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.emoji-mart {\n background-color: var(--color-main-background) !important;\n border: 0;\n color: var(--color-main-text) !important;\n}\n.emoji-mart button {\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n font-size: inherit;\n height: 36px;\n width: auto;\n}\n.emoji-mart button * {\n cursor: pointer !important;\n}\n.emoji-mart .emoji-mart-bar,\n.emoji-mart .emoji-mart-anchors,\n.emoji-mart .emoji-mart-search,\n.emoji-mart .emoji-mart-search input,\n.emoji-mart .emoji-mart-category,\n.emoji-mart .emoji-mart-category-label,\n.emoji-mart .emoji-mart-category-label span,\n.emoji-mart .emoji-mart-skin-swatches {\n background-color: transparent !important;\n border-color: var(--color-border) !important;\n color: inherit !important;\n}\n.emoji-mart .emoji-mart-search input:focus-visible {\n box-shadow: inset 0 0 0 2px var(--color-primary-element);\n outline: none;\n}\n.emoji-mart .emoji-mart-bar:first-child {\n border-top-left-radius: var(--border-radius) !important;\n border-top-right-radius: var(--border-radius) !important;\n}\n.emoji-mart .emoji-mart-anchors button {\n border-radius: 0;\n padding: 12px 4px;\n height: auto;\n}\n.emoji-mart .emoji-mart-anchors button:focus-visible {\n /* box-shadow: inset 0 0 0 2px var(--color-primary-element); */\n outline: 2px solid var(--color-primary-element);\n}\n.emoji-mart .emoji-mart-category {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: start;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-category-label,\n.emoji-mart .emoji-mart-category .emoji-mart-emoji {\n user-select: none;\n flex-grow: 0;\n flex-shrink: 0;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-category-label {\n flex-basis: 100%;\n margin: 0;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-emoji {\n flex-basis: 12.5%;\n text-align: center;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-emoji:hover::before, .emoji-mart .emoji-mart-category .emoji-mart-emoji.emoji-mart-emoji-selected::before {\n background-color: var(--color-background-hover) !important;\n outline: 2px solid var(--color-primary-element);\n}\n.emoji-mart .emoji-mart-category button:focus-visible {\n background-color: var(--color-background-hover);\n border: 2px solid var(--color-primary-element) !important;\n border-radius: 50%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6c2d9a6e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.search__wrapper[data-v-6c2d9a6e] {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: end;\n padding: 4px 8px;\n}\n.row-selected button[data-v-6c2d9a6e], .row-selected span[data-v-6c2d9a6e] {\n vertical-align: middle;\n}\n.emoji-delete[data-v-6c2d9a6e] {\n vertical-align: top;\n margin-left: -21px;\n margin-top: -3px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcEmojiPicker-ielwHIhs.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;;EAEE,sBAAsB;EACtB,iBAAiB;AACnB;AACA;EACE,4EAA4E;EAC5E,eAAe;EACf,2BAA2B;EAC3B,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,cAAc;EACd,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;AACjB;AACA;EACE;;mBAEiB;EACjB,oBAAoB;AACtB;AACA;EACE,qFAAqF;EACrF;mBACiB;EACjB,sBAAsB;AACxB;AACA;EACE,oGAAoG;AACtG;AACA;EACE,0GAA0G;AAC5G;AACA;EACE,sGAAsG;AACxG;AACA;EACE,wGAAwG;AAC1G;AACA;EACE,uBAAuB;AACzB;AACA;EACE,wBAAwB;EACxB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,qBAAqB;EACrB,8BAA8B;EAC9B,+BAA+B;AACjC;AACA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,cAAc;EACd,cAAc;EACd,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,cAAc;EACd,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,+BAA+B;EAC/B,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;AAClB;AACA;;EAEE,cAAc;AAChB;AACA;EACE,SAAS;AACX;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,OAAO;EACP,WAAW;EACX,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,OAAO;EACP,sBAAsB;EACtB,UAAU,EAAE,kEAAkE;EAC9E,sBAAsB,EAAE,iDAAiD;EACzE,iCAAiC;AACnC;AACA;EACE,eAAe;EACf,cAAc;AAChB;AACA;EACE,eAAe;EACf,cAAc;EACd,WAAW;EACX,oBAAoB;EACpB,mBAAmB;EACnB,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE,aAAa;EACb,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;AACjB;AACA;;EAEE,UAAU;EACV,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;AACZ;AACA;;EAEE,UAAU;AACZ;AACA;EACE,gBAAgB;EAChB,MAAM;AACR;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,sBAAsB;EACtB,8BAA8B;AAChC;AACA;EACE,cAAc;EACd,eAAe;EACf,WAAW;EACX,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,YAAY;AACd;AACA;EACE,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,YAAY;AACd;AACA;;;EAGE,kBAAkB;EAClB,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,WAAW;EACX,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,WAAW;AACb;AACA;;;EAGE,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,WAAW;AACb;AACA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;AACA;EACE,UAAU;AACZ;AACA;EACE,cAAc;EACd,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,cAAc;EACd,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,qBAAqB;EACrB,QAAQ;EACR,sBAAsB;EACtB,mCAAmC;EACnC,2BAA2B;EAC3B,oCAAoC;AACtC;AACA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,cAAc;AAChB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX,qBAAqB;EACrB,sBAAsB;EACtB,mBAAmB;EACnB,oBAAoB;EACpB,UAAU;EACV,iCAAiC;AACnC;AACA;EACE,qBAAqB;EACrB,WAAW;EACX,iBAAiB;EACjB,eAAe;EACf,mBAAmB;AACrB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,yBAAyB;AAC3B;AACA,uDAAuD;AACvD;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,sBAAsB;AACxB;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;;;EAGE,WAAW;AACb;AACA;;;EAGE,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,aAAa;EACb,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yDAAyD;EACzD,SAAS;EACT,wCAAwC;AAC1C;AACA;EACE,SAAS;EACT,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,kBAAkB;EAClB,YAAY;EACZ,WAAW;AACb;AACA;EACE,0BAA0B;AAC5B;AACA;;;;;;;;EAQE,wCAAwC;EACxC,4CAA4C;EAC5C,yBAAyB;AAC3B;AACA;EACE,wDAAwD;EACxD,aAAa;AACf;AACA;EACE,uDAAuD;EACvD,wDAAwD;AAC1D;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;EACE,8DAA8D;EAC9D,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,sBAAsB;AACxB;AACA;;EAEE,iBAAiB;EACjB,YAAY;EACZ,cAAc;AAChB;AACA;EACE,gBAAgB;EAChB,SAAS;AACX;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,0DAA0D;EAC1D,+CAA+C;AACjD;AACA;EACE,+CAA+C;EAC/C,yDAAyD;EACzD,kBAAkB;AACpB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;AAClB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.emoji-mart,\n.emoji-mart * {\n box-sizing: border-box;\n line-height: 1.15;\n}\n.emoji-mart {\n font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;\n font-size: 16px;\n /* display: inline-block; */\n display: flex;\n flex-direction: column;\n height: 420px;\n color: #222427;\n border: 1px solid #d9d9d9;\n border-radius: 5px;\n background: #fff;\n}\n.emoji-mart-emoji {\n padding: 6px;\n position: relative;\n display: inline-block;\n font-size: 0;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-emoji span {\n display: inline-block;\n}\n.emoji-mart-preview-emoji .emoji-mart-emoji span {\n width: 38px;\n height: 38px;\n font-size: 32px;\n}\n.emoji-type-native {\n font-family: 'Segoe UI Emoji', 'Segoe UI Symbol', 'Segoe UI',\n 'Apple Color Emoji', 'Twemoji Mozilla', 'Noto Color Emoji', 'EmojiOne Color',\n 'Android Emoji';\n word-break: keep-all;\n}\n.emoji-type-image {\n /* Emoji sheet has 56 columns, see also utils/emoji-data.js, SHEET_COLUMNS variable */\n /* Here we use (56+1) * 100% to avoid visible edges of nearby icons when scaling for different\n * screen sizes */\n background-size: 6100%;\n}\n.emoji-type-image.emoji-set-apple {\n background-image: url('https://unpkg.com/emoji-datasource-apple@15.0.1/img/apple/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-facebook {\n background-image: url('https://unpkg.com/emoji-datasource-facebook@15.0.1/img/facebook/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-google {\n background-image: url('https://unpkg.com/emoji-datasource-google@15.0.1/img/google/sheets-256/64.png');\n}\n.emoji-type-image.emoji-set-twitter {\n background-image: url('https://unpkg.com/emoji-datasource-twitter@15.0.1/img/twitter/sheets-256/64.png');\n}\n.emoji-mart-bar {\n border: 0 solid #d9d9d9;\n}\n.emoji-mart-bar:first-child {\n border-bottom-width: 1px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n}\n.emoji-mart-bar:last-child {\n border-top-width: 1px;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n}\n.emoji-mart-scroll {\n position: relative;\n overflow-y: scroll;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n.emoji-mart-anchors {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 6px;\n color: #858585;\n line-height: 0;\n}\n.emoji-mart-anchor {\n position: relative;\n display: block;\n flex: 1 1 auto;\n text-align: center;\n padding: 12px 4px;\n overflow: hidden;\n transition: color 0.1s ease-out;\n border: none;\n background: none;\n box-shadow: none;\n}\n.emoji-mart-anchor:hover,\n.emoji-mart-anchor-selected {\n color: #464646;\n}\n.emoji-mart-anchor-selected .emoji-mart-anchor-bar {\n bottom: 0;\n}\n.emoji-mart-anchor-bar {\n position: absolute;\n bottom: -3px;\n left: 0;\n width: 100%;\n height: 3px;\n background-color: #464646;\n}\n.emoji-mart-anchors i {\n display: inline-block;\n width: 100%;\n max-width: 22px;\n}\n.emoji-mart-anchors svg {\n fill: currentColor;\n max-height: 18px;\n}\n.emoji-mart .scroller {\n height: 250px;\n position: relative;\n flex: 1;\n padding: 0 6px 6px 6px;\n z-index: 0; /* Fix for rendering sticky positioned category labels on Chrome */\n will-change: transform; /* avoids \"repaints on scroll\" in mobile Chrome */\n -webkit-overflow-scrolling: touch;\n}\n.emoji-mart-search {\n margin-top: 6px;\n padding: 0 6px;\n}\n.emoji-mart-search input {\n font-size: 16px;\n display: block;\n width: 100%;\n padding: 0.2em 0.6em;\n border-radius: 25px;\n border: 1px solid #d9d9d9;\n outline: 0;\n}\n.emoji-mart-search-results {\n height: 250px;\n overflow-y: scroll;\n}\n.emoji-mart-category {\n position: relative;\n}\n.emoji-mart-category .emoji-mart-emoji span {\n z-index: 1;\n position: relative;\n text-align: center;\n cursor: default;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n z-index: 0;\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #f4f4f4;\n border-radius: 100%;\n opacity: 0;\n}\n.emoji-mart-category .emoji-mart-emoji:hover:before,\n.emoji-mart-emoji-selected:before {\n opacity: 1;\n}\n.emoji-mart-category-label {\n position: sticky;\n top: 0;\n}\n.emoji-mart-static .emoji-mart-category-label {\n z-index: 2;\n position: relative;\n /* position: sticky; */\n /* position: -webkit-sticky; */\n}\n.emoji-mart-category-label h3 {\n display: block;\n font-size: 16px;\n width: 100%;\n font-weight: 500;\n padding: 5px 6px;\n background-color: #fff;\n background-color: rgba(255, 255, 255, 0.95);\n}\n.emoji-mart-emoji {\n position: relative;\n display: inline-block;\n font-size: 0;\n}\n.emoji-mart-no-results {\n font-size: 14px;\n text-align: center;\n padding-top: 70px;\n color: #858585;\n}\n.emoji-mart-no-results .emoji-mart-category-label {\n display: none;\n}\n.emoji-mart-no-results .emoji-mart-no-results-label {\n margin-top: 0.2em;\n}\n.emoji-mart-no-results .emoji-mart-emoji:hover:before {\n content: none;\n}\n.emoji-mart-preview {\n position: relative;\n height: 70px;\n}\n.emoji-mart-preview-emoji,\n.emoji-mart-preview-data,\n.emoji-mart-preview-skins {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n}\n.emoji-mart-preview-emoji {\n left: 12px;\n}\n.emoji-mart-preview-data {\n left: 68px;\n right: 12px;\n word-break: break-all;\n}\n.emoji-mart-preview-skins {\n right: 30px;\n text-align: right;\n}\n.emoji-mart-preview-name {\n font-size: 14px;\n}\n.emoji-mart-preview-shortname {\n font-size: 12px;\n color: #888;\n}\n.emoji-mart-preview-shortname + .emoji-mart-preview-shortname,\n.emoji-mart-preview-shortname + .emoji-mart-preview-emoticon,\n.emoji-mart-preview-emoticon + .emoji-mart-preview-emoticon {\n margin-left: 0.5em;\n}\n.emoji-mart-preview-emoticon {\n font-size: 11px;\n color: #bbb;\n}\n.emoji-mart-title span {\n display: inline-block;\n vertical-align: middle;\n}\n.emoji-mart-title .emoji-mart-emoji {\n padding: 0;\n}\n.emoji-mart-title-label {\n color: #999a9c;\n font-size: 21px;\n font-weight: 300;\n}\n.emoji-mart-skin-swatches {\n font-size: 0;\n padding: 2px 0;\n border: 1px solid #d9d9d9;\n border-radius: 12px;\n background-color: #fff;\n}\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch {\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatches-opened .emoji-mart-skin-swatch-selected:after {\n opacity: 0.75;\n}\n.emoji-mart-skin-swatch {\n display: inline-block;\n width: 0;\n vertical-align: middle;\n transition-property: width, padding;\n transition-duration: 0.125s;\n transition-timing-function: ease-out;\n}\n.emoji-mart-skin-swatch:nth-child(1) {\n transition-delay: 0s;\n}\n.emoji-mart-skin-swatch:nth-child(2) {\n transition-delay: 0.03s;\n}\n.emoji-mart-skin-swatch:nth-child(3) {\n transition-delay: 0.06s;\n}\n.emoji-mart-skin-swatch:nth-child(4) {\n transition-delay: 0.09s;\n}\n.emoji-mart-skin-swatch:nth-child(5) {\n transition-delay: 0.12s;\n}\n.emoji-mart-skin-swatch:nth-child(6) {\n transition-delay: 0.15s;\n}\n.emoji-mart-skin-swatch-selected {\n position: relative;\n width: 16px;\n padding: 0 2px;\n}\n.emoji-mart-skin-swatch-selected:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 4px;\n height: 4px;\n margin: -2px 0 0 -2px;\n background-color: #fff;\n border-radius: 100%;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n}\n.emoji-mart-skin {\n display: inline-block;\n width: 100%;\n padding-top: 100%;\n max-width: 12px;\n border-radius: 100%;\n}\n.emoji-mart-skin-tone-1 {\n background-color: #ffc93a;\n}\n.emoji-mart-skin-tone-2 {\n background-color: #fadcbc;\n}\n.emoji-mart-skin-tone-3 {\n background-color: #e0bb95;\n}\n.emoji-mart-skin-tone-4 {\n background-color: #bf8f68;\n}\n.emoji-mart-skin-tone-5 {\n background-color: #9b643d;\n}\n.emoji-mart-skin-tone-6 {\n background-color: #594539;\n}\n/* vue-virtual-scroller/dist/vue-virtual-scroller.css */\n.emoji-mart .vue-recycle-scroller {\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.direction-vertical:not(.page-mode) {\n overflow-y: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal:not(.page-mode) {\n overflow-x: auto;\n}\n.emoji-mart .vue-recycle-scroller.direction-horizontal {\n display: flex;\n}\n.emoji-mart .vue-recycle-scroller__slot {\n flex: auto 0 0;\n}\n.emoji-mart .vue-recycle-scroller__item-wrapper {\n flex: 1;\n box-sizing: border-box;\n overflow: hidden;\n position: relative;\n}\n.emoji-mart .vue-recycle-scroller.ready .vue-recycle-scroller__item-view {\n position: absolute;\n top: 0;\n left: 0;\n will-change: transform;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-vertical\n .vue-recycle-scroller__item-wrapper {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.direction-horizontal\n .vue-recycle-scroller__item-wrapper {\n height: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-vertical\n .vue-recycle-scroller__item-view {\n width: 100%;\n}\n.emoji-mart\n .vue-recycle-scroller.ready.direction-horizontal\n .vue-recycle-scroller__item-view {\n height: 100%;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.emoji-mart .resize-observer[data-v-b329ee4c] object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.emoji-mart-search .hidden {\n display: none;\n visibility: hidden;\n}\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.emoji-mart {\n background-color: var(--color-main-background) !important;\n border: 0;\n color: var(--color-main-text) !important;\n}\n.emoji-mart button {\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n font-size: inherit;\n height: 36px;\n width: auto;\n}\n.emoji-mart button * {\n cursor: pointer !important;\n}\n.emoji-mart .emoji-mart-bar,\n.emoji-mart .emoji-mart-anchors,\n.emoji-mart .emoji-mart-search,\n.emoji-mart .emoji-mart-search input,\n.emoji-mart .emoji-mart-category,\n.emoji-mart .emoji-mart-category-label,\n.emoji-mart .emoji-mart-category-label span,\n.emoji-mart .emoji-mart-skin-swatches {\n background-color: transparent !important;\n border-color: var(--color-border) !important;\n color: inherit !important;\n}\n.emoji-mart .emoji-mart-search input:focus-visible {\n box-shadow: inset 0 0 0 2px var(--color-primary-element);\n outline: none;\n}\n.emoji-mart .emoji-mart-bar:first-child {\n border-top-left-radius: var(--border-radius) !important;\n border-top-right-radius: var(--border-radius) !important;\n}\n.emoji-mart .emoji-mart-anchors button {\n border-radius: 0;\n padding: 12px 4px;\n height: auto;\n}\n.emoji-mart .emoji-mart-anchors button:focus-visible {\n /* box-shadow: inset 0 0 0 2px var(--color-primary-element); */\n outline: 2px solid var(--color-primary-element);\n}\n.emoji-mart .emoji-mart-category {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: start;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-category-label,\n.emoji-mart .emoji-mart-category .emoji-mart-emoji {\n user-select: none;\n flex-grow: 0;\n flex-shrink: 0;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-category-label {\n flex-basis: 100%;\n margin: 0;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-emoji {\n flex-basis: 12.5%;\n text-align: center;\n}\n.emoji-mart .emoji-mart-category .emoji-mart-emoji:hover::before, .emoji-mart .emoji-mart-category .emoji-mart-emoji.emoji-mart-emoji-selected::before {\n background-color: var(--color-background-hover) !important;\n outline: 2px solid var(--color-primary-element);\n}\n.emoji-mart .emoji-mart-category button:focus-visible {\n background-color: var(--color-background-hover);\n border: 2px solid var(--color-primary-element) !important;\n border-radius: 50%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-6c2d9a6e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.search__wrapper[data-v-6c2d9a6e] {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: end;\n padding: 4px 8px;\n}\n.row-selected button[data-v-6c2d9a6e], .row-selected span[data-v-6c2d9a6e] {\n vertical-align: middle;\n}\n.emoji-delete[data-v-6c2d9a6e] {\n vertical-align: top;\n margin-left: -21px;\n margin-top: -3px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},5360:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fede0c71] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.empty-content[data-v-fede0c71] {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n /* In case of using in a flex container - flex in advance */\n flex-grow: 1;\n}\n.modal-wrapper .empty-content[data-v-fede0c71] {\n margin-top: 5vh;\n margin-bottom: 5vh;\n}\n.empty-content__icon[data-v-fede0c71] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin: 0 auto 15px;\n opacity: 0.4;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 64px;\n}\n.empty-content__icon[data-v-fede0c71] svg {\n width: 64px !important;\n height: 64px !important;\n max-width: 64px !important;\n max-height: 64px !important;\n}\n.empty-content__name[data-v-fede0c71] {\n margin-bottom: 10px;\n text-align: center;\n font-weight: bold;\n font-size: 20px;\n line-height: 30px;\n}\n.empty-content__description[data-v-fede0c71] {\n color: var(--color-text-maxcontrast);\n}\n.empty-content__action[data-v-fede0c71] {\n margin-top: 8px;\n}\n.modal-wrapper .empty-content__action[data-v-fede0c71] {\n margin-top: 20px;\n display: flex;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcEmptyContent-BU0QVo3d.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,2DAA2D;EAC3D,YAAY;AACd;AACA;EACE,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,YAAY;EACZ,4BAA4B;EAC5B,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,0BAA0B;EAC1B,2BAA2B;AAC7B;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,aAAa;AACf",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-fede0c71] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.empty-content[data-v-fede0c71] {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n /* In case of using in a flex container - flex in advance */\n flex-grow: 1;\n}\n.modal-wrapper .empty-content[data-v-fede0c71] {\n margin-top: 5vh;\n margin-bottom: 5vh;\n}\n.empty-content__icon[data-v-fede0c71] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n margin: 0 auto 15px;\n opacity: 0.4;\n background-repeat: no-repeat;\n background-position: center;\n background-size: 64px;\n}\n.empty-content__icon[data-v-fede0c71] svg {\n width: 64px !important;\n height: 64px !important;\n max-width: 64px !important;\n max-height: 64px !important;\n}\n.empty-content__name[data-v-fede0c71] {\n margin-bottom: 10px;\n text-align: center;\n font-weight: bold;\n font-size: 20px;\n line-height: 30px;\n}\n.empty-content__description[data-v-fede0c71] {\n color: var(--color-text-maxcontrast);\n}\n.empty-content__action[data-v-fede0c71] {\n margin-top: 8px;\n}\n.modal-wrapper .empty-content__action[data-v-fede0c71] {\n margin-top: 20px;\n display: flex;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|1864|1952|4423|4897|5438|590|9643)$/.test(n.j)?null:o},58083:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cbad78fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-cbad78fb] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcGuestContent-BLJ37yLM.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,6BAA6B;EAC7B,8CAA8C;EAC9C,YAAY;EACZ,yCAAyC;EACzC,4CAA4C;EAC5C,mBAAmB;EACnB,aAAa;EACb,iBAAiB;AACnB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,+DAA+D;AACjE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-cbad78fb] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#guest-content-vue[data-v-cbad78fb] {\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n min-width: 0;\n border-radius: var(--border-radius-large);\n box-shadow: 0 0 10px var(--color-box-shadow);\n height: fit-content;\n padding: 15px;\n margin: 20px auto;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n#content.nc-guest-content {\n overflow: auto;\n margin-bottom: 0;\n height: calc(var(--body-height) + var(--body-container-margin));\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},74795:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,'/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e2527068] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.header-menu[data-v-e2527068] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n}\n.header-menu .header-menu__trigger[data-v-e2527068] {\n width: 100% !important;\n height: var(--header-height);\n opacity: 0.85;\n filter: none !important;\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\n}\n.header-menu .header-menu__trigger[data-v-e2527068]:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n.header-menu--opened .header-menu__trigger[data-v-e2527068], .header-menu__trigger[data-v-e2527068]:hover, .header-menu__trigger[data-v-e2527068]:focus, .header-menu__trigger[data-v-e2527068]:active {\n opacity: 1;\n}\n.header-menu__wrapper[data-v-e2527068] {\n position: fixed;\n z-index: 2000;\n top: var(--header-height);\n inset-inline-end: 0;\n box-sizing: border-box;\n margin: 0 8px;\n border-radius: 0 0 var(--border-radius) var(--border-radius);\n border-radius: var(--border-radius-large);\n background-color: var(--color-main-background);\n filter: drop-shadow(0 1px 5px var(--color-box-shadow));\n}\n.header-menu__carret[data-v-e2527068] {\n position: absolute;\n z-index: 2001;\n bottom: 0;\n inset-inline-start: calc(50% - 10px);\n width: 0;\n height: 0;\n content: " ";\n pointer-events: none;\n border: 10px solid transparent;\n border-bottom-color: var(--color-main-background);\n}\n.header-menu__content[data-v-e2527068] {\n overflow: auto;\n width: 350px;\n max-width: calc(100vw - 16px);\n min-height: calc(var(--default-clickable-area) * 1.5);\n max-height: calc(100vh - var(--header-height) * 2);\n}\n.header-menu__content[data-v-e2527068] .empty-content {\n margin: 12vh 10px;\n}\n@media only screen and (max-width: 512px) {\n.header-menu[data-v-e2527068] {\n width: var(--default-clickable-area);\n}\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcHeaderMenu-DjPL7Ozo.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;AAC9B;AACA;EACE,sBAAsB;EACtB,4BAA4B;EAC5B,aAAa;EACb,uBAAuB;EACvB,+EAA+E;AACjF;AACA;EACE,wBAAwB;EACxB,2BAA2B;AAC7B;AACA;EACE,UAAU;AACZ;AACA;EACE,eAAe;EACf,aAAa;EACb,yBAAyB;EACzB,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;EACb,4DAA4D;EAC5D,yCAAyC;EACzC,8CAA8C;EAC9C,sDAAsD;AACxD;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,SAAS;EACT,oCAAoC;EACpC,QAAQ;EACR,SAAS;EACT,YAAY;EACZ,oBAAoB;EACpB,8BAA8B;EAC9B,iDAAiD;AACnD;AACA;EACE,cAAc;EACd,YAAY;EACZ,6BAA6B;EAC7B,qDAAqD;EACrD,kDAAkD;AACpD;AACA;EACE,iBAAiB;AACnB;AACA;AACA;IACI,oCAAoC;AACxC;AACA",sourcesContent:['/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e2527068] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.header-menu[data-v-e2527068] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n}\n.header-menu .header-menu__trigger[data-v-e2527068] {\n width: 100% !important;\n height: var(--header-height);\n opacity: 0.85;\n filter: none !important;\n color: var(--color-background-plain-text, var(--color-primary-text)) !important;\n}\n.header-menu .header-menu__trigger[data-v-e2527068]:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n.header-menu--opened .header-menu__trigger[data-v-e2527068], .header-menu__trigger[data-v-e2527068]:hover, .header-menu__trigger[data-v-e2527068]:focus, .header-menu__trigger[data-v-e2527068]:active {\n opacity: 1;\n}\n.header-menu__wrapper[data-v-e2527068] {\n position: fixed;\n z-index: 2000;\n top: var(--header-height);\n inset-inline-end: 0;\n box-sizing: border-box;\n margin: 0 8px;\n border-radius: 0 0 var(--border-radius) var(--border-radius);\n border-radius: var(--border-radius-large);\n background-color: var(--color-main-background);\n filter: drop-shadow(0 1px 5px var(--color-box-shadow));\n}\n.header-menu__carret[data-v-e2527068] {\n position: absolute;\n z-index: 2001;\n bottom: 0;\n inset-inline-start: calc(50% - 10px);\n width: 0;\n height: 0;\n content: " ";\n pointer-events: none;\n border: 10px solid transparent;\n border-bottom-color: var(--color-main-background);\n}\n.header-menu__content[data-v-e2527068] {\n overflow: auto;\n width: 350px;\n max-width: calc(100vw - 16px);\n min-height: calc(var(--default-clickable-area) * 1.5);\n max-height: calc(100vh - var(--header-height) * 2);\n}\n.header-menu__content[data-v-e2527068] .empty-content {\n margin: 12vh 10px;\n}\n@media only screen and (max-width: 512px) {\n.header-menu[data-v-e2527068] {\n width: var(--default-clickable-area);\n}\n}'],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},87542:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2d0a4d76] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-2d0a4d76] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue--inline[data-v-2d0a4d76] {\n display: inline-flex;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue[data-v-2d0a4d76] svg {\n fill: currentColor;\n width: var(--icon-size, 20px);\n height: var(--icon-size, 20px);\n max-width: var(--icon-size, 20px);\n max-height: var(--icon-size, 20px);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcIconSvgWrapper-BwsJ8wBM.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,wCAAwC;EACxC,yCAAyC;EACzC,UAAU;AACZ;AACA;EACE,oBAAoB;EACpB,sBAAsB;EACtB,uBAAuB;EACvB,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,6BAA6B;EAC7B,8BAA8B;EAC9B,iCAAiC;EACjC,kCAAkC;AACpC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-2d0a4d76] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.icon-vue[data-v-2d0a4d76] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: var(--default-clickable-area);\n min-height: var(--default-clickable-area);\n opacity: 1;\n}\n.icon-vue--inline[data-v-2d0a4d76] {\n display: inline-flex;\n min-width: fit-content;\n min-height: fit-content;\n vertical-align: text-bottom;\n}\n.icon-vue[data-v-2d0a4d76] svg {\n fill: currentColor;\n width: var(--icon-size, 20px);\n height: var(--icon-size, 20px);\n max-width: var(--icon-size, 20px);\n max-height: var(--icon-size, 20px);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|82(0|79)|(78|96)43|1952|3260|3604|4897|5438|590|6174|6371)$/.test(n.j)?null:o},10322:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0e795eb7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-input-confirm[data-v-0e795eb7] {\n flex: 1 0 100%;\n width: 100%;\n}\n.app-navigation-input-confirm form[data-v-0e795eb7] {\n display: flex;\n}\n.app-navigation-input-confirm__input[data-v-0e795eb7] {\n height: 34px;\n flex: 1 1 100%;\n font-size: 100% !important;\n margin: 5px !important;\n margin-left: -8px !important;\n padding: 7px !important;\n}\n.app-navigation-input-confirm__input[data-v-0e795eb7]:active, .app-navigation-input-confirm__input[data-v-0e795eb7]:focus, .app-navigation-input-confirm__input[data-v-0e795eb7]:hover {\n outline: none;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-color: var(--color-primary-element);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcInputConfirmCancel-SGr0-6w8.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;EACZ,cAAc;EACd,0BAA0B;EAC1B,sBAAsB;EACtB,4BAA4B;EAC5B,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,8CAA8C;EAC9C,6BAA6B;EAC7B,0CAA0C;AAC5C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0e795eb7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.app-navigation-input-confirm[data-v-0e795eb7] {\n flex: 1 0 100%;\n width: 100%;\n}\n.app-navigation-input-confirm form[data-v-0e795eb7] {\n display: flex;\n}\n.app-navigation-input-confirm__input[data-v-0e795eb7] {\n height: 34px;\n flex: 1 1 100%;\n font-size: 100% !important;\n margin: 5px !important;\n margin-left: -8px !important;\n padding: 7px !important;\n}\n.app-navigation-input-confirm__input[data-v-0e795eb7]:active, .app-navigation-input-confirm__input[data-v-0e795eb7]:focus, .app-navigation-input-confirm__input[data-v-0e795eb7]:hover {\n outline: none;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border-color: var(--color-primary-element);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},48961:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-374fffac] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-field[data-v-374fffac] {\n --input-border-radius: var(--border-radius-element, var(--border-radius-large));\n --input-padding-start: var(--border-radius-large);\n --input-padding-end: var(--border-radius-large);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-374fffac] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-374fffac] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-374fffac] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-374fffac] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-374fffac] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-374fffac] {\n height: var(--default-clickable-area);\n position: relative;\n}\n.input-field__input[data-v-374fffac] {\n --input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n height: calc(var(--default-clickable-area) - 2 * var(--input-border-width-offset)) !important;\n width: 100%;\n padding-inline: calc(var(--input-padding-start) + var(--input-border-width-offset)) calc(var(--input-padding-end) + var(--input-border-width-offset));\n padding-block: var(--input-border-width-offset);\n}\n.input-field__input[data-v-374fffac]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-374fffac]:active:not([disabled]), .input-field__input[data-v-374fffac]:hover:not([disabled]), .input-field__input[data-v-374fffac]:focus:not([disabled]) {\n border-color: var(--color-main-text);\n border-width: var(--border-width-input-focused, 2px);\n box-shadow: 0 0 0 2px var(--color-main-background) !important;\n --input-border-width-offset: 0px;\n}\n.input-field__input:focus + .input-field__label[data-v-374fffac], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-374fffac] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-374fffac]:focus {\n cursor: text;\n}\n.input-field__input[data-v-374fffac]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-374fffac]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field__input--success[data-v-374fffac] {\n border-color: var(--color-success) !important;\n}\n.input-field__input--success[data-v-374fffac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field__input--error[data-v-374fffac], .input-field__input[data-v-374fffac]:invalid {\n border-color: var(--color-error) !important;\n}\n.input-field__input--error[data-v-374fffac]:focus-visible, .input-field__input[data-v-374fffac]:invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-374fffac]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-374fffac] {\n --input-label-font-size: var(--default-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n font-size: var(--input-label-font-size);\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-374fffac], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-374fffac] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-374fffac] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-374fffac] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-374fffac] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-374fffac] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-374fffac] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n right: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-374fffac]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-374fffac] {\n padding-block: 4px;\n padding-inline: var(--border-radius-large);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n}\n.input-field__helper-text-message__icon[data-v-374fffac] {\n margin-inline-end: 8px;\n}\n.input-field__helper-text-message--error[data-v-374fffac] {\n color: var(--color-error-text);\n}\n.input-field__helper-text-message--success[data-v-374fffac] {\n color: var(--color-success-text);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcInputField-CQc5dRbY.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,+EAA+E;EAC/E,iDAAiD;EACjD,+CAA+C;EAC/C,kBAAkB;EAClB,WAAW;EACX,uBAAuB;AACzB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,yFAAyF;AAC3F;AACA;EACE,uFAAuF;AACzF;AACA;EACE,gDAAgD;AAClD;AACA;EACE,qCAAqC;EACrC,kBAAkB;AACpB;AACA;EACE,0GAA0G;EAC1G,8CAA8C;EAC9C,6BAA6B;EAC7B,4EAA4E;EAC5E,yCAAyC;EACzC,eAAe;EACf,wCAAwC;EACxC,qCAAqC;EACrC,gCAAgC;EAChC,mCAAmC;EACnC,uBAAuB;EACvB,6FAA6F;EAC7F,WAAW;EACX,qJAAqJ;EACrJ,+CAA+C;AACjD;AACA;EACE,oCAAoC;AACtC;AACA;EACE,oCAAoC;EACpC,oDAAoD;EACpD,6DAA6D;EAC7D,gCAAgC;AAClC;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,iIAAiI;AACnI;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,iIAAiI;AACnI;AACA;EACE,UAAU;AACZ;AACA;EACE,iDAAiD;EACjD,kBAAkB;EAClB,kEAAkE;EAClE,sBAAsB;EACtB,uCAAuC;EACvC,kEAAkE;EAClE,oDAAoD;EACpD,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,6BAA6B;EAC7B,gBAAgB;EAChB,gEAAgE;EAChE,gBAAgB;EAChB,4EAA4E;EAC5E,8CAA8C;EAC9C,4CAA4C;EAC5C,4IAA4I;EAC5I,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,qCAAqC;EACrC,oCAAoC;EACpC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,0GAA0G;EAC1G,0FAA0F;AAC5F;AACA;EACE,kBAAkB;EAClB,2CAA2C;EAC3C,6CAA6C;AAC/C;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,kBAAkB;EAClB,0CAA0C;EAC1C,aAAa;EACb,mBAAmB;EACnB,oCAAoC;AACtC;AACA;EACE,sBAAsB;AACxB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,gCAAgC;AAClC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-374fffac] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-field[data-v-374fffac] {\n --input-border-radius: var(--border-radius-element, var(--border-radius-large));\n --input-padding-start: var(--border-radius-large);\n --input-padding-end: var(--border-radius-large);\n position: relative;\n width: 100%;\n margin-block-start: 6px;\n}\n.input-field--disabled[data-v-374fffac] {\n opacity: 0.4;\n filter: saturate(0.4);\n}\n.input-field--label-outside[data-v-374fffac] {\n margin-block-start: 0;\n}\n.input-field--leading-icon[data-v-374fffac] {\n --input-padding-start: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--trailing-icon[data-v-374fffac] {\n --input-padding-end: calc(var(--default-clickable-area) - var(--default-grid-baseline));\n}\n.input-field--pill[data-v-374fffac] {\n --input-border-radius: var(--border-radius-pill);\n}\n.input-field__main-wrapper[data-v-374fffac] {\n height: var(--default-clickable-area);\n position: relative;\n}\n.input-field__input[data-v-374fffac] {\n --input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n border-radius: var(--input-border-radius);\n cursor: pointer;\n -webkit-appearance: textfield !important;\n -moz-appearance: textfield !important;\n appearance: textfield !important;\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n height: calc(var(--default-clickable-area) - 2 * var(--input-border-width-offset)) !important;\n width: 100%;\n padding-inline: calc(var(--input-padding-start) + var(--input-border-width-offset)) calc(var(--input-padding-end) + var(--input-border-width-offset));\n padding-block: var(--input-border-width-offset);\n}\n.input-field__input[data-v-374fffac]::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.input-field__input[data-v-374fffac]:active:not([disabled]), .input-field__input[data-v-374fffac]:hover:not([disabled]), .input-field__input[data-v-374fffac]:focus:not([disabled]) {\n border-color: var(--color-main-text);\n border-width: var(--border-width-input-focused, 2px);\n box-shadow: 0 0 0 2px var(--color-main-background) !important;\n --input-border-width-offset: 0px;\n}\n.input-field__input:focus + .input-field__label[data-v-374fffac], .input-field__input:hover:not(:placeholder-shown) + .input-field__label[data-v-374fffac] {\n color: var(--color-main-text);\n}\n.input-field__input[data-v-374fffac]:focus {\n cursor: text;\n}\n.input-field__input[data-v-374fffac]:disabled {\n cursor: default;\n}\n.input-field__input[data-v-374fffac]:focus-visible {\n box-shadow: unset !important;\n}\n.input-field__input--success[data-v-374fffac] {\n border-color: var(--color-success) !important;\n}\n.input-field__input--success[data-v-374fffac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field__input--error[data-v-374fffac], .input-field__input[data-v-374fffac]:invalid {\n border-color: var(--color-error) !important;\n}\n.input-field__input--error[data-v-374fffac]:focus-visible, .input-field__input[data-v-374fffac]:invalid:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.input-field:not(.input-field--label-outside) .input-field__input[data-v-374fffac]:not(:focus)::placeholder {\n opacity: 0;\n}\n.input-field__label[data-v-374fffac] {\n --input-label-font-size: var(--default-font-size);\n position: absolute;\n margin-inline: var(--input-padding-start) var(--input-padding-end);\n max-width: fit-content;\n font-size: var(--input-label-font-size);\n inset-block-start: calc((var(--default-clickable-area) - 1lh) / 2);\n inset-inline: var(--border-width-input-focused, 2px);\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.input-field__input:focus + .input-field__label[data-v-374fffac], .input-field__input:not(:placeholder-shown) + .input-field__label[data-v-374fffac] {\n --input-label-font-size: 13px;\n line-height: 1.5;\n inset-block-start: calc(-1.5 * var(--input-label-font-size) / 2);\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: var(--default-grid-baseline);\n margin-inline: calc(var(--input-padding-start) - var(--default-grid-baseline)) calc(var(--input-padding-end) - var(--default-grid-baseline));\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.input-field__icon[data-v-374fffac] {\n position: absolute;\n height: var(--default-clickable-area);\n width: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.7;\n inset-block-end: 0;\n}\n.input-field__icon--leading[data-v-374fffac] {\n inset-inline-start: 0px;\n}\n.input-field__icon--trailing[data-v-374fffac] {\n inset-inline-end: 0px;\n}\n.input-field__trailing-button[data-v-374fffac] {\n --button-size: calc(var(--default-clickable-area) - 2 * var(--border-width-input-focused, 2px)) !important;\n --button-radius: calc(var(--input-border-radius) - var(--border-width-input-focused, 2px));\n}\n.input-field__trailing-button.button-vue[data-v-374fffac] {\n position: absolute;\n top: var(--border-width-input-focused, 2px);\n right: var(--border-width-input-focused, 2px);\n}\n.input-field__trailing-button.button-vue[data-v-374fffac]:focus-visible {\n box-shadow: none !important;\n}\n.input-field__helper-text-message[data-v-374fffac] {\n padding-block: 4px;\n padding-inline: var(--border-radius-large);\n display: flex;\n align-items: center;\n color: var(--color-text-maxcontrast);\n}\n.input-field__helper-text-message__icon[data-v-374fffac] {\n margin-inline-end: 8px;\n}\n.input-field__helper-text-message--error[data-v-374fffac] {\n color: var(--color-error-text);\n}\n.input-field__helper-text-message--success[data-v-374fffac] {\n color: var(--color-success-text);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|82(0|79)|(78|96)43|1864|1952|4897|5438|590|6371|6600)$/.test(n.j)?null:o},84272:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a3ec46a7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.list-item__wrapper[data-v-a3ec46a7] {\n display: flex;\n position: relative;\n width: 100%;\n padding: 2px 4px;\n}\n.list-item__wrapper[data-v-a3ec46a7]:first-of-type {\n padding-block-start: 4px;\n}\n.list-item__wrapper[data-v-a3ec46a7]:last-of-type {\n padding-block-end: 4px;\n}\n.list-item__wrapper--active .list-item[data-v-a3ec46a7], .list-item__wrapper.active .list-item[data-v-a3ec46a7] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text) !important;\n}\n.list-item__wrapper--active .list-item[data-v-a3ec46a7]:hover, .list-item__wrapper--active .list-item[data-v-a3ec46a7]:focus-within, .list-item__wrapper--active .list-item[data-v-a3ec46a7]:has(:focus-visible), .list-item__wrapper--active .list-item[data-v-a3ec46a7]:has(:active), .list-item__wrapper.active .list-item[data-v-a3ec46a7]:hover, .list-item__wrapper.active .list-item[data-v-a3ec46a7]:focus-within, .list-item__wrapper.active .list-item[data-v-a3ec46a7]:has(:focus-visible), .list-item__wrapper.active .list-item[data-v-a3ec46a7]:has(:active) {\n background-color: var(--color-primary-element-hover);\n}\n.list-item__wrapper--active .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-details__details[data-v-a3ec46a7], .list-item__wrapper.active .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-details__details[data-v-a3ec46a7] {\n color: var(--color-primary-element-text) !important;\n}\n.list-item__wrapper .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper .list-item-details__details[data-v-a3ec46a7] {\n white-space: nowrap;\n margin: 0 auto 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.list-item-content__name[data-v-a3ec46a7] {\n min-width: 100px;\n flex: 1 1 10%;\n font-weight: 500;\n}\n.list-item-content__subname[data-v-a3ec46a7] {\n flex: 1 0;\n min-width: 0;\n color: var(--color-text-maxcontrast);\n}\n.list-item-content__subname--bold[data-v-a3ec46a7] {\n font-weight: 500;\n}\n.list-item[data-v-a3ec46a7] {\n --list-item-padding: var(--default-grid-baseline);\n --list-item-height: 2lh;\n --list-item-border-radius: var(--border-radius-element, 32px);\n box-sizing: border-box;\n display: flex;\n position: relative;\n flex: 0 0 auto;\n justify-content: flex-start;\n padding: var(--list-item-padding);\n width: 100%;\n border-radius: var(--border-radius-element, 32px);\n cursor: pointer;\n transition: background-color var(--animation-quick) ease-in-out;\n list-style: none;\n}\n.list-item[data-v-a3ec46a7]:hover, .list-item[data-v-a3ec46a7]:focus-within, .list-item[data-v-a3ec46a7]:has(:active), .list-item[data-v-a3ec46a7]:has(:focus-visible) {\n background-color: var(--color-background-hover);\n}\n.list-item[data-v-a3ec46a7]:has(.list-item__anchor:focus-visible) {\n outline: 2px solid var(--color-main-text);\n box-shadow: 0 0 0 4px var(--color-main-background);\n}\n.list-item--compact[data-v-a3ec46a7] {\n --list-item-padding: calc(0.5 * var(--default-grid-baseline)) var(--default-grid-baseline);\n}\n.list-item--compact[data-v-a3ec46a7]:not(:has(.list-item-content__subname)) {\n --list-item-height: var(--default-clickable-area);\n}\n.list-item--legacy[data-v-a3ec46a7] {\n --list-item-padding: calc(2 * var(--default-grid-baseline));\n}\n.list-item--legacy.list-item--compact[data-v-a3ec46a7] {\n --list-item-padding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n}\n.list-item--one-line[data-v-a3ec46a7] {\n --list-item-height: var(--default-clickable-area);\n --list-item-border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));\n --list-item-padding: var(--default-grid-baseline);\n}\n.list-item--one-line.list-item--one-line--legacy[data-v-a3ec46a7] {\n --list-item-padding: 2px calc((var(--list-item-height) - var(--list-item-border-radius)) / 2);\n}\n.list-item--one-line .list-item-content__main[data-v-a3ec46a7] {\n display: flex;\n justify-content: start;\n gap: 12px;\n min-width: 0;\n max-width: 300px;\n}\n.list-item--one-line .list-item-content__details[data-v-a3ec46a7] {\n flex-direction: row;\n align-items: unset;\n justify-content: end;\n}\n.list-item--one-line .list-item-content__name[data-v-a3ec46a7] {\n align-self: center;\n}\n.list-item__anchor[data-v-a3ec46a7] {\n color: inherit;\n display: flex;\n flex: 1 0 auto;\n align-items: center;\n height: var(--list-item-height);\n min-width: 0;\n}\n.list-item__anchor[data-v-a3ec46a7]:focus-visible {\n outline: none;\n}\n.list-item-content[data-v-a3ec46a7] {\n display: flex;\n flex: 1 0;\n justify-content: space-between;\n padding-left: calc(2 * var(--default-grid-baseline));\n min-width: 0;\n}\n.list-item-content__main[data-v-a3ec46a7] {\n flex: 1 0;\n width: 0;\n margin: auto 0;\n}\n.list-item-content__main--oneline[data-v-a3ec46a7] {\n display: flex;\n}\n.list-item-content__details[data-v-a3ec46a7] {\n display: flex;\n flex-direction: column;\n justify-content: end;\n align-items: end;\n}\n.list-item-content__actions[data-v-a3ec46a7], .list-item-content__extra-actions[data-v-a3ec46a7] {\n flex: 0 0 auto;\n align-self: center;\n justify-content: center;\n margin-left: var(--default-grid-baseline);\n}\n.list-item-content__extra-actions[data-v-a3ec46a7] {\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n}\n.list-item-details__details[data-v-a3ec46a7] {\n color: var(--color-text-maxcontrast);\n margin: 0 9px !important;\n font-weight: normal;\n}\n.list-item-details__extra[data-v-a3ec46a7] {\n margin: 2px 4px 0 4px;\n display: flex;\n align-items: center;\n}\n.list-item-details__indicator[data-v-a3ec46a7] {\n margin: 0 5px;\n}\n.list-item__extra[data-v-a3ec46a7] {\n margin-top: var(--default-grid-baseline);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcListItem-Db199R20.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,kBAAkB;EAClB,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,8CAA8C;EAC9C,mDAAmD;AACrD;AACA;EACE,oDAAoD;AACtD;AACA;;;;;;;EAOE,mDAAmD;AACrD;AACA;;;;EAIE,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,aAAa;EACb,gBAAgB;AAClB;AACA;EACE,SAAS;EACT,YAAY;EACZ,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,iDAAiD;EACjD,uBAAuB;EACvB,6DAA6D;EAC7D,sBAAsB;EACtB,aAAa;EACb,kBAAkB;EAClB,cAAc;EACd,2BAA2B;EAC3B,iCAAiC;EACjC,WAAW;EACX,iDAAiD;EACjD,eAAe;EACf,+DAA+D;EAC/D,gBAAgB;AAClB;AACA;EACE,+CAA+C;AACjD;AACA;EACE,yCAAyC;EACzC,kDAAkD;AACpD;AACA;EACE,0FAA0F;AAC5F;AACA;EACE,iDAAiD;AACnD;AACA;EACE,2DAA2D;AAC7D;AACA;EACE,wFAAwF;AAC1F;AACA;EACE,iDAAiD;EACjD,gGAAgG;EAChG,iDAAiD;AACnD;AACA;EACE,6FAA6F;AAC/F;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,SAAS;EACT,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AACtB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,cAAc;EACd,aAAa;EACb,cAAc;EACd,mBAAmB;EACnB,+BAA+B;EAC/B,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,SAAS;EACT,8BAA8B;EAC9B,oDAAoD;EACpD,YAAY;AACd;AACA;EACE,SAAS;EACT,QAAQ;EACR,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;EACvB,yCAAyC;AAC3C;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,iCAAiC;AACnC;AACA;EACE,oCAAoC;EACpC,wBAAwB;EACxB,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,wCAAwC;AAC1C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a3ec46a7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.list-item__wrapper[data-v-a3ec46a7] {\n display: flex;\n position: relative;\n width: 100%;\n padding: 2px 4px;\n}\n.list-item__wrapper[data-v-a3ec46a7]:first-of-type {\n padding-block-start: 4px;\n}\n.list-item__wrapper[data-v-a3ec46a7]:last-of-type {\n padding-block-end: 4px;\n}\n.list-item__wrapper--active .list-item[data-v-a3ec46a7], .list-item__wrapper.active .list-item[data-v-a3ec46a7] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text) !important;\n}\n.list-item__wrapper--active .list-item[data-v-a3ec46a7]:hover, .list-item__wrapper--active .list-item[data-v-a3ec46a7]:focus-within, .list-item__wrapper--active .list-item[data-v-a3ec46a7]:has(:focus-visible), .list-item__wrapper--active .list-item[data-v-a3ec46a7]:has(:active), .list-item__wrapper.active .list-item[data-v-a3ec46a7]:hover, .list-item__wrapper.active .list-item[data-v-a3ec46a7]:focus-within, .list-item__wrapper.active .list-item[data-v-a3ec46a7]:has(:focus-visible), .list-item__wrapper.active .list-item[data-v-a3ec46a7]:has(:active) {\n background-color: var(--color-primary-element-hover);\n}\n.list-item__wrapper--active .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper--active .list-item-details__details[data-v-a3ec46a7], .list-item__wrapper.active .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper.active .list-item-details__details[data-v-a3ec46a7] {\n color: var(--color-primary-element-text) !important;\n}\n.list-item__wrapper .list-item-content__name[data-v-a3ec46a7],\n.list-item__wrapper .list-item-content__subname[data-v-a3ec46a7],\n.list-item__wrapper .list-item-content__details[data-v-a3ec46a7],\n.list-item__wrapper .list-item-details__details[data-v-a3ec46a7] {\n white-space: nowrap;\n margin: 0 auto 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.list-item-content__name[data-v-a3ec46a7] {\n min-width: 100px;\n flex: 1 1 10%;\n font-weight: 500;\n}\n.list-item-content__subname[data-v-a3ec46a7] {\n flex: 1 0;\n min-width: 0;\n color: var(--color-text-maxcontrast);\n}\n.list-item-content__subname--bold[data-v-a3ec46a7] {\n font-weight: 500;\n}\n.list-item[data-v-a3ec46a7] {\n --list-item-padding: var(--default-grid-baseline);\n --list-item-height: 2lh;\n --list-item-border-radius: var(--border-radius-element, 32px);\n box-sizing: border-box;\n display: flex;\n position: relative;\n flex: 0 0 auto;\n justify-content: flex-start;\n padding: var(--list-item-padding);\n width: 100%;\n border-radius: var(--border-radius-element, 32px);\n cursor: pointer;\n transition: background-color var(--animation-quick) ease-in-out;\n list-style: none;\n}\n.list-item[data-v-a3ec46a7]:hover, .list-item[data-v-a3ec46a7]:focus-within, .list-item[data-v-a3ec46a7]:has(:active), .list-item[data-v-a3ec46a7]:has(:focus-visible) {\n background-color: var(--color-background-hover);\n}\n.list-item[data-v-a3ec46a7]:has(.list-item__anchor:focus-visible) {\n outline: 2px solid var(--color-main-text);\n box-shadow: 0 0 0 4px var(--color-main-background);\n}\n.list-item--compact[data-v-a3ec46a7] {\n --list-item-padding: calc(0.5 * var(--default-grid-baseline)) var(--default-grid-baseline);\n}\n.list-item--compact[data-v-a3ec46a7]:not(:has(.list-item-content__subname)) {\n --list-item-height: var(--default-clickable-area);\n}\n.list-item--legacy[data-v-a3ec46a7] {\n --list-item-padding: calc(2 * var(--default-grid-baseline));\n}\n.list-item--legacy.list-item--compact[data-v-a3ec46a7] {\n --list-item-padding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\n}\n.list-item--one-line[data-v-a3ec46a7] {\n --list-item-height: var(--default-clickable-area);\n --list-item-border-radius: var(--border-radius-element, calc(var(--default-clickable-area) / 2));\n --list-item-padding: var(--default-grid-baseline);\n}\n.list-item--one-line.list-item--one-line--legacy[data-v-a3ec46a7] {\n --list-item-padding: 2px calc((var(--list-item-height) - var(--list-item-border-radius)) / 2);\n}\n.list-item--one-line .list-item-content__main[data-v-a3ec46a7] {\n display: flex;\n justify-content: start;\n gap: 12px;\n min-width: 0;\n max-width: 300px;\n}\n.list-item--one-line .list-item-content__details[data-v-a3ec46a7] {\n flex-direction: row;\n align-items: unset;\n justify-content: end;\n}\n.list-item--one-line .list-item-content__name[data-v-a3ec46a7] {\n align-self: center;\n}\n.list-item__anchor[data-v-a3ec46a7] {\n color: inherit;\n display: flex;\n flex: 1 0 auto;\n align-items: center;\n height: var(--list-item-height);\n min-width: 0;\n}\n.list-item__anchor[data-v-a3ec46a7]:focus-visible {\n outline: none;\n}\n.list-item-content[data-v-a3ec46a7] {\n display: flex;\n flex: 1 0;\n justify-content: space-between;\n padding-left: calc(2 * var(--default-grid-baseline));\n min-width: 0;\n}\n.list-item-content__main[data-v-a3ec46a7] {\n flex: 1 0;\n width: 0;\n margin: auto 0;\n}\n.list-item-content__main--oneline[data-v-a3ec46a7] {\n display: flex;\n}\n.list-item-content__details[data-v-a3ec46a7] {\n display: flex;\n flex-direction: column;\n justify-content: end;\n align-items: end;\n}\n.list-item-content__actions[data-v-a3ec46a7], .list-item-content__extra-actions[data-v-a3ec46a7] {\n flex: 0 0 auto;\n align-self: center;\n justify-content: center;\n margin-left: var(--default-grid-baseline);\n}\n.list-item-content__extra-actions[data-v-a3ec46a7] {\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n}\n.list-item-details__details[data-v-a3ec46a7] {\n color: var(--color-text-maxcontrast);\n margin: 0 9px !important;\n font-weight: normal;\n}\n.list-item-details__extra[data-v-a3ec46a7] {\n margin: 2px 4px 0 4px;\n display: flex;\n align-items: center;\n}\n.list-item-details__indicator[data-v-a3ec46a7] {\n margin: 0 5px;\n}\n.list-item__extra[data-v-a3ec46a7] {\n margin-top: var(--default-grid-baseline);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},79362:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a0f4d73a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.option[data-v-a0f4d73a] {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--height);\n cursor: inherit;\n}\n.option__avatar[data-v-a0f4d73a] {\n margin-right: var(--margin);\n}\n.option__details[data-v-a0f4d73a] {\n display: flex;\n flex: 1 1;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.option__lineone[data-v-a0f4d73a] {\n color: var(--color-main-text);\n}\n.option__linetwo[data-v-a0f4d73a] {\n color: var(--color-text-maxcontrast);\n}\n.option__lineone[data-v-a0f4d73a], .option__linetwo[data-v-a0f4d73a] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2;\n}\n.option__lineone strong[data-v-a0f4d73a], .option__linetwo strong[data-v-a0f4d73a] {\n font-weight: bold;\n}\n.option--compact .option__lineone[data-v-a0f4d73a] {\n font-size: 14px;\n}\n.option--compact .option__linetwo[data-v-a0f4d73a] {\n font-size: 11px;\n line-height: 1.5;\n margin-top: -4px;\n}\n.option__icon[data-v-a0f4d73a] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n color: var(--color-text-maxcontrast);\n}\n.option__icon.icon[data-v-a0f4d73a] {\n flex: 0 0 var(--default-clickable-area);\n opacity: 0.7;\n background-position: center;\n background-size: 16px;\n}\n.option__details[data-v-a0f4d73a], .option__lineone[data-v-a0f4d73a], .option__linetwo[data-v-a0f4d73a], .option__icon[data-v-a0f4d73a] {\n cursor: inherit;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcListItemIcon--7OhLYWA.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,eAAe;AACjB;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,SAAS;EACT,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,oCAAoC;AACtC;AACA;EACE,uCAAuC;EACvC,YAAY;EACZ,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a0f4d73a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.option[data-v-a0f4d73a] {\n display: flex;\n align-items: center;\n width: 100%;\n height: var(--height);\n cursor: inherit;\n}\n.option__avatar[data-v-a0f4d73a] {\n margin-right: var(--margin);\n}\n.option__details[data-v-a0f4d73a] {\n display: flex;\n flex: 1 1;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.option__lineone[data-v-a0f4d73a] {\n color: var(--color-main-text);\n}\n.option__linetwo[data-v-a0f4d73a] {\n color: var(--color-text-maxcontrast);\n}\n.option__lineone[data-v-a0f4d73a], .option__linetwo[data-v-a0f4d73a] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.2;\n}\n.option__lineone strong[data-v-a0f4d73a], .option__linetwo strong[data-v-a0f4d73a] {\n font-weight: bold;\n}\n.option--compact .option__lineone[data-v-a0f4d73a] {\n font-size: 14px;\n}\n.option--compact .option__linetwo[data-v-a0f4d73a] {\n font-size: 11px;\n line-height: 1.5;\n margin-top: -4px;\n}\n.option__icon[data-v-a0f4d73a] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n color: var(--color-text-maxcontrast);\n}\n.option__icon.icon[data-v-a0f4d73a] {\n flex: 0 0 var(--default-clickable-area);\n opacity: 0.7;\n background-position: center;\n background-size: 16px;\n}\n.option__details[data-v-a0f4d73a], .option__lineone[data-v-a0f4d73a], .option__linetwo[data-v-a0f4d73a], .option__icon[data-v-a0f4d73a] {\n cursor: inherit;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},63679:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-551209a3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon svg[data-v-551209a3] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcLoadingIcon-BSONDy7x.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iEAAiE;AACnE",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-551209a3] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.loading-icon svg[data-v-551209a3] {\n animation: rotate var(--animation-duration, 0.8s) linear infinite;\n}"],sourceRoot:""}]);const s=/^(2(076|299|766)|6(174|371|600)|82(0|79)|(78|96)43|1864|3260|3604|4897|5438|590)$/.test(n.j)?null:o},28154:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a519576f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mention-bubble--primary .mention-bubble__content[data-v-a519576f] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mention-bubble__wrapper[data-v-a519576f] {\n max-width: 150px;\n height: 18px;\n vertical-align: text-bottom;\n display: inline-flex;\n align-items: center;\n}\n.mention-bubble__content[data-v-a519576f] {\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n max-width: 100%;\n height: 20px;\n -webkit-user-select: none;\n user-select: none;\n padding-right: 6px;\n padding-left: 2px;\n border-radius: 10px;\n background-color: var(--color-background-dark);\n}\n.mention-bubble__icon[data-v-a519576f] {\n position: relative;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 12px;\n}\n.mention-bubble__icon--with-avatar[data-v-a519576f] {\n color: inherit;\n background-size: cover;\n}\n.mention-bubble__title[data-v-a519576f] {\n overflow: hidden;\n margin-left: 2px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mention-bubble__title[data-v-a519576f]::before {\n content: attr(title);\n}\n.mention-bubble__select[data-v-a519576f] {\n position: absolute;\n z-index: -1;\n left: -100vw;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcMentionBubble-C6t8od-_.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,gBAAgB;EAChB,YAAY;EACZ,2BAA2B;EAC3B,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,oBAAoB;EACpB,gBAAgB;EAChB,mBAAmB;EACnB,eAAe;EACf,YAAY;EACZ,yBAAyB;EACzB,iBAAiB;EACjB,kBAAkB;EAClB,iBAAiB;EACjB,mBAAmB;EACnB,8CAA8C;AAChD;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,gDAAgD;EAChD,4BAA4B;EAC5B,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,cAAc;EACd,sBAAsB;AACxB;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-a519576f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.mention-bubble--primary .mention-bubble__content[data-v-a519576f] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.mention-bubble__wrapper[data-v-a519576f] {\n max-width: 150px;\n height: 18px;\n vertical-align: text-bottom;\n display: inline-flex;\n align-items: center;\n}\n.mention-bubble__content[data-v-a519576f] {\n display: inline-flex;\n overflow: hidden;\n align-items: center;\n max-width: 100%;\n height: 20px;\n -webkit-user-select: none;\n user-select: none;\n padding-right: 6px;\n padding-left: 2px;\n border-radius: 10px;\n background-color: var(--color-background-dark);\n}\n.mention-bubble__icon[data-v-a519576f] {\n position: relative;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 12px;\n}\n.mention-bubble__icon--with-avatar[data-v-a519576f] {\n color: inherit;\n background-size: cover;\n}\n.mention-bubble__title[data-v-a519576f] {\n overflow: hidden;\n margin-left: 2px;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mention-bubble__title[data-v-a519576f]::before {\n content: attr(title);\n}\n.mention-bubble__select[data-v-a519576f] {\n position: absolute;\n z-index: -1;\n left: -100vw;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},9564:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1d602fb0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-1d602fb0] {\n position: fixed;\n z-index: 9998;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.modal-mask--dark[data-v-1d602fb0] {\n background-color: rgba(0, 0, 0, 0.92);\n}\n.modal-header[data-v-1d602fb0] {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n left: 0;\n display: flex !important;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-1d602fb0] {\n overflow-x: hidden;\n box-sizing: border-box;\n width: 100%;\n padding: 0 calc(var(--default-clickable-area) * 3) 0 12px;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-1d602fb0] {\n padding-left: calc(var(--default-clickable-area) * 3);\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-1d602fb0] {\n position: absolute;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-1d602fb0] {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-1d602fb0] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-1d602fb0],\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-1d602fb0], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-1d602fb0],\n.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-1d602fb0] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__play[data-v-1d602fb0], .modal-header .icons-menu .play-pause-icons__pause[data-v-1d602fb0] {\n box-sizing: border-box;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item--single {\n box-sizing: border-box;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-1d602fb0] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle {\n padding: 0;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle span, .modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle svg {\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.modal-wrapper[data-v-1d602fb0] {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n /* Content */\n}\n.modal-wrapper .prev[data-v-1d602fb0],\n.modal-wrapper .next[data-v-1d602fb0] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-1d602fb0]:focus-visible,\n.modal-wrapper .next[data-v-1d602fb0]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-1d602fb0] {\n left: 2px;\n}\n.modal-wrapper .next[data-v-1d602fb0] {\n right: 2px;\n}\n.modal-wrapper .modal-container[data-v-1d602fb0] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-large);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n}\n.modal-wrapper .modal-container__close[data-v-1d602fb0] {\n z-index: 1;\n position: absolute;\n top: 4px;\n right: 4px;\n}\n.modal-wrapper .modal-container__content[data-v-1d602fb0] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-1d602fb0] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--normal > .modal-container[data-v-1d602fb0] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--large > .modal-container[data-v-1d602fb0] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--full > .modal-container[data-v-1d602fb0] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-1d602fb0] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-1d602fb0],\n.fade-leave-active[data-v-1d602fb0] {\n transition: opacity 250ms;\n}\n.fade-enter[data-v-1d602fb0],\n.fade-leave-to[data-v-1d602fb0] {\n opacity: 0;\n}\n.fade-visibility-enter[data-v-1d602fb0],\n.fade-visibility-leave-to[data-v-1d602fb0] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-1d602fb0],\n.modal-in-leave-active[data-v-1d602fb0],\n.modal-out-enter-active[data-v-1d602fb0],\n.modal-out-leave-active[data-v-1d602fb0] {\n transition: opacity 250ms;\n}\n.modal-in-enter[data-v-1d602fb0],\n.modal-in-leave-to[data-v-1d602fb0],\n.modal-out-enter[data-v-1d602fb0],\n.modal-out-leave-to[data-v-1d602fb0] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-1d602fb0],\n.modal-in-leave-to .modal-container[data-v-1d602fb0] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-1d602fb0],\n.modal-out-leave-to .modal-container[data-v-1d602fb0] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-1d602fb0] {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-1d602fb0] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-1d602fb0 linear var(--slideshow-duration) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .icon-pause[data-v-1d602fb0] {\n animation: breath-1d602fb0 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-1d602fb0] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-1d602fb0 {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-1d602fb0 {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcModal-Djc2K_kW.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,eAAe;EACf,aAAa;EACb,MAAM;EACN,OAAO;EACP,cAAc;EACd,WAAW;EACX,YAAY;EACZ,oCAAoC;AACtC;AACA;EACE,qCAAqC;AACvC;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,MAAM;EACN,QAAQ;EACR,OAAO;EACP,wBAAwB;EACxB,mBAAmB;EACnB,uBAAuB;EACvB,WAAW;EACX,4BAA4B;EAC5B,gBAAgB;EAChB,2CAA2C;AAC7C;AACA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,WAAW;EACX,yDAAyD;EACzD,8BAA8B;EAC9B,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,eAAe;AACjB;AACA;AACA;IACI,qDAAqD;IACrD,kBAAkB;AACtB;AACA;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,aAAa;EACb,mBAAmB;EACnB,yBAAyB;AAC3B;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,sBAAsB;EACtB,wEAAwE;EACxE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,2BAA2B;EAC3B,4BAA4B;EAC5B,SAAS;EACT,UAAU;EACV,eAAe;EACf,YAAY;EACZ,6BAA6B;AAC/B;AACA;;;EAGE,UAAU;EACV,sDAAsD;EACtD,2CAA2C;AAC7C;AACA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,qCAAqC;EACrC,wEAAwE;EACxE,eAAe;EACf,YAAY;AACd;AACA;EACE,wEAAwE;AAC1E;AACA;EACE,sBAAsB;EACtB,oCAAoC;EACpC,qCAAqC;EACrC,eAAe;EACf,2BAA2B;EAC3B,qBAAqB;AACvB;AACA;EACE,2BAA2B;EAC3B,kCAAkC;AACpC;AACA;EACE,UAAU;AACZ;AACA;EACE,uBAAuB;EACvB,wBAAwB;AAC1B;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,sBAAsB;EACtB,WAAW;EACX,YAAY;EACZ,uBAAuB;EACvB,YAAY;AACd;AACA;;EAEE,cAAc;EACd,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,yBAAyB;EACzB,YAAY;AACd;AACA;;EAEE,uDAAuD;EACvD,yCAAyC;AAC3C;AACA;EACE,SAAS;AACX;AACA;EACE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,UAAU;EACV,gCAAgC;EAChC,yCAAyC;EACzC,8CAA8C;EAC9C,6BAA6B;EAC7B,uCAAuC;AACzC;AACA;EACE,UAAU;EACV,kBAAkB;EAClB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,YAAY;EACZ,cAAc;EACd,qDAAqD;AACvD;AACA;EACE,cAAc;EACd,YAAY;EACZ,qDAAqD;AACvD;AACA;EACE,cAAc;EACd,YAAY;EACZ,qDAAqD;AACvD;AACA;EACE,WAAW;EACX,yCAAyC;EACzC,kBAAkB;EAClB,yBAAyB;EACzB,gBAAgB;AAClB;AACA;AACA;IACI,kBAAkB;IAClB,WAAW;IACX,mBAAmB;IACnB,yCAAyC;IACzC,kBAAkB;IAClB,yBAAyB;IACzB,gBAAgB;AACpB;AACA;;AAEA,gBAAgB;AAChB;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,UAAU;AACZ;AACA;;EAEE,kBAAkB;EAClB,UAAU;AACZ;AACA;;;;EAIE,yBAAyB;AAC3B;AACA;;;;EAIE,UAAU;AACZ;AACA;;EAEE,qBAAqB;AACvB;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,yBAAyB;AAC3B;AACA;EACE,mCAAmC;EACnC,yBAAyB;EACzB,0EAA0E;EAC1E,qBAAqB;EACrB,gCAAgC;EAChC,+BAA+B;AACjC;AACA;EACE,mEAAmE;AACrE;AACA;EACE,uCAAuC;AACzC;AACA;AACA;IACI,gCAAgC;AACpC;AACA;IACI,oBAAoB;AACxB;AACA;AACA;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA;IACI,UAAU;AACd;AACA",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-1d602fb0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.modal-mask[data-v-1d602fb0] {\n position: fixed;\n z-index: 9998;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n}\n.modal-mask--dark[data-v-1d602fb0] {\n background-color: rgba(0, 0, 0, 0.92);\n}\n.modal-header[data-v-1d602fb0] {\n position: absolute;\n z-index: 10001;\n top: 0;\n right: 0;\n left: 0;\n display: flex !important;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: var(--header-height);\n overflow: hidden;\n transition: opacity 250ms, visibility 250ms;\n}\n.modal-header__name[data-v-1d602fb0] {\n overflow-x: hidden;\n box-sizing: border-box;\n width: 100%;\n padding: 0 calc(var(--default-clickable-area) * 3) 0 12px;\n transition: padding ease 100ms;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 16px;\n margin-block: 0;\n}\n@media only screen and (min-width: 1024px) {\n.modal-header__name[data-v-1d602fb0] {\n padding-left: calc(var(--default-clickable-area) * 3);\n text-align: center;\n}\n}\n.modal-header .icons-menu[data-v-1d602fb0] {\n position: absolute;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n.modal-header .icons-menu .header-close[data-v-1d602fb0] {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n padding: 0;\n}\n.modal-header .icons-menu .play-pause-icons[data-v-1d602fb0] {\n position: relative;\n width: var(--header-height);\n height: var(--header-height);\n margin: 0;\n padding: 0;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-1d602fb0],\n.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-1d602fb0], .modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-1d602fb0],\n.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-1d602fb0] {\n opacity: 1;\n border-radius: calc(var(--default-clickable-area) / 2);\n background-color: rgba(127, 127, 127, 0.25);\n}\n.modal-header .icons-menu .play-pause-icons__play[data-v-1d602fb0], .modal-header .icons-menu .play-pause-icons__pause[data-v-1d602fb0] {\n box-sizing: border-box;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n cursor: pointer;\n opacity: 0.7;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item {\n margin: calc((var(--header-height) - var(--default-clickable-area)) / 2);\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item--single {\n box-sizing: border-box;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n cursor: pointer;\n background-position: center;\n background-size: 22px;\n}\n.modal-header .icons-menu .header-actions[data-v-1d602fb0] button:focus-visible {\n box-shadow: none !important;\n outline: 2px solid #fff !important;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle {\n padding: 0;\n}\n.modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle span, .modal-header .icons-menu[data-v-1d602fb0] .action-item__menutoggle svg {\n width: var(--icon-size);\n height: var(--icon-size);\n}\n.modal-wrapper[data-v-1d602fb0] {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n /* Navigation buttons */\n /* Content */\n}\n.modal-wrapper .prev[data-v-1d602fb0],\n.modal-wrapper .next[data-v-1d602fb0] {\n z-index: 10000;\n height: 35vh;\n min-height: 300px;\n position: absolute;\n transition: opacity 250ms;\n color: white;\n}\n.modal-wrapper .prev[data-v-1d602fb0]:focus-visible,\n.modal-wrapper .next[data-v-1d602fb0]:focus-visible {\n box-shadow: 0 0 0 2px var(--color-primary-element-text);\n background-color: var(--color-box-shadow);\n}\n.modal-wrapper .prev[data-v-1d602fb0] {\n left: 2px;\n}\n.modal-wrapper .next[data-v-1d602fb0] {\n right: 2px;\n}\n.modal-wrapper .modal-container[data-v-1d602fb0] {\n position: relative;\n display: flex;\n padding: 0;\n transition: transform 300ms ease;\n border-radius: var(--border-radius-large);\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);\n}\n.modal-wrapper .modal-container__close[data-v-1d602fb0] {\n z-index: 1;\n position: absolute;\n top: 4px;\n right: 4px;\n}\n.modal-wrapper .modal-container__content[data-v-1d602fb0] {\n width: 100%;\n min-height: 52px;\n overflow: auto;\n}\n.modal-wrapper--small > .modal-container[data-v-1d602fb0] {\n width: 400px;\n max-width: 90%;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--normal > .modal-container[data-v-1d602fb0] {\n max-width: 90%;\n width: 600px;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--large > .modal-container[data-v-1d602fb0] {\n max-width: 90%;\n width: 900px;\n max-height: min(90%, 100% - 2 * var(--header-height));\n}\n.modal-wrapper--full > .modal-container[data-v-1d602fb0] {\n width: 100%;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n@media only screen and ((max-width: 512px) or (max-height: 400px)) {\n.modal-wrapper .modal-container[data-v-1d602fb0] {\n max-width: initial;\n width: 100%;\n max-height: initial;\n height: calc(100% - var(--header-height));\n position: absolute;\n top: var(--header-height);\n border-radius: 0;\n}\n}\n\n/* TRANSITIONS */\n.fade-enter-active[data-v-1d602fb0],\n.fade-leave-active[data-v-1d602fb0] {\n transition: opacity 250ms;\n}\n.fade-enter[data-v-1d602fb0],\n.fade-leave-to[data-v-1d602fb0] {\n opacity: 0;\n}\n.fade-visibility-enter[data-v-1d602fb0],\n.fade-visibility-leave-to[data-v-1d602fb0] {\n visibility: hidden;\n opacity: 0;\n}\n.modal-in-enter-active[data-v-1d602fb0],\n.modal-in-leave-active[data-v-1d602fb0],\n.modal-out-enter-active[data-v-1d602fb0],\n.modal-out-leave-active[data-v-1d602fb0] {\n transition: opacity 250ms;\n}\n.modal-in-enter[data-v-1d602fb0],\n.modal-in-leave-to[data-v-1d602fb0],\n.modal-out-enter[data-v-1d602fb0],\n.modal-out-leave-to[data-v-1d602fb0] {\n opacity: 0;\n}\n.modal-in-enter .modal-container[data-v-1d602fb0],\n.modal-in-leave-to .modal-container[data-v-1d602fb0] {\n transform: scale(0.9);\n}\n.modal-out-enter .modal-container[data-v-1d602fb0],\n.modal-out-leave-to .modal-container[data-v-1d602fb0] {\n transform: scale(1.1);\n}\n.modal-mask .play-pause-icons .progress-ring[data-v-1d602fb0] {\n position: absolute;\n top: 0;\n left: 0;\n transform: rotate(-90deg);\n}\n.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-1d602fb0] {\n transition: 100ms stroke-dashoffset;\n transform-origin: 50% 50%;\n animation: progressring-1d602fb0 linear var(--slideshow-duration) infinite;\n stroke-linecap: round;\n stroke-dashoffset: 94.2477796077;\n stroke-dasharray: 94.2477796077;\n}\n.modal-mask .play-pause-icons--paused .icon-pause[data-v-1d602fb0] {\n animation: breath-1d602fb0 2s cubic-bezier(0.4, 0, 0.2, 1) infinite;\n}\n.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-1d602fb0] {\n animation-play-state: paused !important;\n}\n@keyframes progressring-1d602fb0 {\nfrom {\n stroke-dashoffset: 94.2477796077;\n}\nto {\n stroke-dashoffset: 0;\n}\n}\n@keyframes breath-1d602fb0 {\n0% {\n opacity: 1;\n}\n50% {\n opacity: 0;\n}\n100% {\n opacity: 1;\n}\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(78|96)43|1952|4897|5438|590)$/.test(n.j)?null:o},47208:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7df28e9e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.notecard[data-v-7df28e9e] {\n --note-card-icon-size: 20px;\n --note-card-padding: calc(2 * var(--default-grid-baseline));\n color: var(--color-main-text) !important;\n background-color: var(--note-background) !important;\n border-inline-start: var(--default-grid-baseline) solid var(--note-theme);\n border-radius: var(--border-radius);\n margin: 1rem 0;\n padding: var(--note-card-padding);\n display: flex;\n flex-direction: row;\n gap: var(--note-card-padding);\n}\n.notecard__heading[data-v-7df28e9e] {\n font-size: var(--note-card-icon-size);\n font-weight: 600;\n}\n.notecard__icon--heading[data-v-7df28e9e] {\n font-size: var(--note-card-icon-size);\n margin-block: calc((1lh - 1em) / 2) auto;\n}\n.notecard--success[data-v-7df28e9e] {\n --note-background: rgba(var(--color-success-rgb), 0.1);\n --note-theme: var(--color-success);\n}\n.notecard--info[data-v-7df28e9e] {\n --note-background: rgba(var(--color-info-rgb), 0.1);\n --note-theme: var(--color-info);\n}\n.notecard--error[data-v-7df28e9e] {\n --note-background: rgba(var(--color-error-rgb), 0.1);\n --note-theme: var(--color-error);\n}\n.notecard--warning[data-v-7df28e9e] {\n --note-background: rgba(var(--color-warning-rgb), 0.1);\n --note-theme: var(--color-warning);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcNoteCard-CImn6F9p.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;EAC3B,2DAA2D;EAC3D,wCAAwC;EACxC,mDAAmD;EACnD,yEAAyE;EACzE,mCAAmC;EACnC,cAAc;EACd,iCAAiC;EACjC,aAAa;EACb,mBAAmB;EACnB,6BAA6B;AAC/B;AACA;EACE,qCAAqC;EACrC,gBAAgB;AAClB;AACA;EACE,qCAAqC;EACrC,wCAAwC;AAC1C;AACA;EACE,sDAAsD;EACtD,kCAAkC;AACpC;AACA;EACE,mDAAmD;EACnD,+BAA+B;AACjC;AACA;EACE,oDAAoD;EACpD,gCAAgC;AAClC;AACA;EACE,sDAAsD;EACtD,kCAAkC;AACpC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-7df28e9e] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.notecard[data-v-7df28e9e] {\n --note-card-icon-size: 20px;\n --note-card-padding: calc(2 * var(--default-grid-baseline));\n color: var(--color-main-text) !important;\n background-color: var(--note-background) !important;\n border-inline-start: var(--default-grid-baseline) solid var(--note-theme);\n border-radius: var(--border-radius);\n margin: 1rem 0;\n padding: var(--note-card-padding);\n display: flex;\n flex-direction: row;\n gap: var(--note-card-padding);\n}\n.notecard__heading[data-v-7df28e9e] {\n font-size: var(--note-card-icon-size);\n font-weight: 600;\n}\n.notecard__icon--heading[data-v-7df28e9e] {\n font-size: var(--note-card-icon-size);\n margin-block: calc((1lh - 1em) / 2) auto;\n}\n.notecard--success[data-v-7df28e9e] {\n --note-background: rgba(var(--color-success-rgb), 0.1);\n --note-theme: var(--color-success);\n}\n.notecard--info[data-v-7df28e9e] {\n --note-background: rgba(var(--color-info-rgb), 0.1);\n --note-theme: var(--color-info);\n}\n.notecard--error[data-v-7df28e9e] {\n --note-background: rgba(var(--color-error-rgb), 0.1);\n --note-theme: var(--color-error);\n}\n.notecard--warning[data-v-7df28e9e] {\n --note-background: rgba(var(--color-warning-rgb), 0.1);\n --note-theme: var(--color-warning);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|82(0|79)|(326|59|660)0|(442|784|964)3|1864|1952|3604|4897|5438|6371)$/.test(n.j)?null:o},13185:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d984b8e5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-d984b8e5] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcPasswordField-DWd5gg73.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,2BAA2B;AAC7B",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-d984b8e5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n[data-v-d984b8e5] .password-field__input--secure-text {\n -webkit-text-security: disc;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(78|96)43|1864|1952|4897|5438|590)$/.test(n.j)?null:o},49986:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resize-observer {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.v-popper--theme-dropdown.v-popper__popper {\n z-index: 100000;\n top: 0;\n left: 0;\n display: block !important;\n filter: drop-shadow(0 1px 10px var(--color-box-shadow));\n}\n.v-popper--theme-dropdown.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-large);\n overflow: hidden;\n background: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -10px;\n border-bottom-width: 0;\n border-top-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -10px;\n border-top-width: 0;\n border-bottom-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n left: -10px;\n border-left-width: 0;\n border-right-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n right: -10px;\n border-right-width: 0;\n border-left-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcPopover-BDlL00qZ.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,6BAA6B;EAC7B,oBAAoB;EACpB,cAAc;EACd,gBAAgB;EAChB,UAAU;AACZ;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,YAAY;EACZ,WAAW;EACX,gBAAgB;EAChB,oBAAoB;EACpB,WAAW;AACb;AACA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,yBAAyB;EACzB,uDAAuD;AACzD;AACA;EACE,UAAU;EACV,6BAA6B;EAC7B,yCAAyC;EACzC,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,8CAA8C;AAChD;AACA;EACE,UAAU;EACV,mBAAmB;EACnB,iDAAiD;AACnD;AACA;EACE,WAAW;EACX,oBAAoB;EACpB,gDAAgD;AAClD;AACA;EACE,YAAY;EACZ,qBAAqB;EACrB,+CAA+C;AACjD;AACA;EACE,kBAAkB;EAClB,6EAA6E;EAC7E,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,0CAA0C;EAC1C,UAAU;AACZ",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resize-observer {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n.resize-observer object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n.v-popper--theme-dropdown.v-popper__popper {\n z-index: 100000;\n top: 0;\n left: 0;\n display: block !important;\n filter: drop-shadow(0 1px 10px var(--color-box-shadow));\n}\n.v-popper--theme-dropdown.v-popper__popper .v-popper__inner {\n padding: 0;\n color: var(--color-main-text);\n border-radius: var(--border-radius-large);\n overflow: hidden;\n background: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -10px;\n border-bottom-width: 0;\n border-top-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -10px;\n border-top-width: 0;\n border-bottom-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n left: -10px;\n border-left-width: 0;\n border-right-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n right: -10px;\n border-right-width: 0;\n border-left-color: var(--color-main-background);\n}\n.v-popper--theme-dropdown.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity var(--animation-quick), visibility var(--animation-quick);\n opacity: 0;\n}\n.v-popper--theme-dropdown.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity var(--animation-quick);\n opacity: 1;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(78|96)43|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},45918:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5e97fe1f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.progress-bar[data-v-5e97fe1f] {\n display: block;\n height: var(--progress-bar-height);\n --progress-bar-color: var(--497e8a2b);\n}\n.progress-bar--linear[data-v-5e97fe1f] {\n width: 100%;\n overflow: hidden;\n border: 0;\n padding: 0;\n background: var(--color-background-dark);\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--linear[data-v-5e97fe1f]::-webkit-progress-bar {\n height: var(--progress-bar-height);\n background-color: transparent;\n}\n.progress-bar--linear[data-v-5e97fe1f]::-webkit-progress-value {\n background: var(--progress-bar-color, var(--gradient-primary-background));\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--linear[data-v-5e97fe1f]::-moz-progress-bar {\n background: var(--progress-bar-color, var(--gradient-primary-background));\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--circular[data-v-5e97fe1f] {\n width: var(--progress-bar-height);\n color: var(--progress-bar-color, var(--color-primary-element));\n}\n.progress-bar--error[data-v-5e97fe1f] {\n color: var(--color-error) !important;\n}\n.progress-bar--error[data-v-5e97fe1f]::-moz-progress-bar {\n background: var(--color-error) !important;\n}\n.progress-bar--error[data-v-5e97fe1f]::-webkit-progress-value {\n background: var(--color-error) !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcProgressBar-BsqdCn-x.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,kCAAkC;EAClC,qCAAqC;AACvC;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,wCAAwC;EACxC,mDAAmD;AACrD;AACA;EACE,kCAAkC;EAClC,6BAA6B;AAC/B;AACA;EACE,yEAAyE;EACzE,mDAAmD;AACrD;AACA;EACE,yEAAyE;EACzE,mDAAmD;AACrD;AACA;EACE,iCAAiC;EACjC,8DAA8D;AAChE;AACA;EACE,oCAAoC;AACtC;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,yCAAyC;AAC3C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-5e97fe1f] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.progress-bar[data-v-5e97fe1f] {\n display: block;\n height: var(--progress-bar-height);\n --progress-bar-color: var(--497e8a2b);\n}\n.progress-bar--linear[data-v-5e97fe1f] {\n width: 100%;\n overflow: hidden;\n border: 0;\n padding: 0;\n background: var(--color-background-dark);\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--linear[data-v-5e97fe1f]::-webkit-progress-bar {\n height: var(--progress-bar-height);\n background-color: transparent;\n}\n.progress-bar--linear[data-v-5e97fe1f]::-webkit-progress-value {\n background: var(--progress-bar-color, var(--gradient-primary-background));\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--linear[data-v-5e97fe1f]::-moz-progress-bar {\n background: var(--progress-bar-color, var(--gradient-primary-background));\n border-radius: calc(var(--progress-bar-height) / 2);\n}\n.progress-bar--circular[data-v-5e97fe1f] {\n width: var(--progress-bar-height);\n color: var(--progress-bar-color, var(--color-primary-element));\n}\n.progress-bar--error[data-v-5e97fe1f] {\n color: var(--color-error) !important;\n}\n.progress-bar--error[data-v-5e97fe1f]::-moz-progress-bar {\n background: var(--color-error) !important;\n}\n.progress-bar--error[data-v-5e97fe1f]::-webkit-progress-value {\n background: var(--color-error) !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},37131:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de46bdbe] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.team-resources__header[data-v-de46bdbe] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-team[data-v-de46bdbe] {\n border-radius: var(--border-radius-rounded);\n border: 2px solid var(--color-border-dark);\n margin-bottom: 6px;\n}\n.related-team__open[data-v-de46bdbe] {\n border-color: var(--color-primary-element);\n}\n.related-team__header[data-v-de46bdbe] {\n padding: 6px;\n padding-right: 24px;\n display: flex;\n gap: 12px;\n}\n.related-team__name[data-v-de46bdbe] {\n display: flex;\n flex-grow: 1;\n align-items: center;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n margin: 0;\n}\n.related-team .related-team-provider[data-v-de46bdbe] {\n padding: 6px 12px;\n}\n.related-team .related-team-provider__name[data-v-de46bdbe] {\n font-weight: bold;\n margin-bottom: 3px;\n}\n.related-team .related-team-provider__link[data-v-de46bdbe] {\n display: flex;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n}\n.related-team .related-team-resource__link[data-v-de46bdbe] {\n display: flex;\n gap: 12px;\n height: var(--default-clickable-area);\n align-items: center;\n border-radius: var(--border-radius-large);\n}\n.related-team .related-team-resource__link[data-v-de46bdbe]:hover {\n background-color: var(--color-background-hover);\n}\n.related-team .related-team-resource__link[data-v-de46bdbe]:focus {\n background-color: var(--color-background-hover);\n outline: 2px solid var(--color-primary-element);\n}\n.related-team .related-team-resource .resource__icon[data-v-de46bdbe] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n.related-team .related-team-resource .resource__icon > img[data-v-de46bdbe] {\n border-radius: var(--border-radius-pill);\n overflow: hidden;\n width: 32px;\n height: 32px;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-ac1115a7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resource[data-v-ac1115a7] {\n display: flex;\n align-items: center;\n height: var(--default-clickable-area);\n}\n.resource__button[data-v-ac1115a7] {\n width: 100% !important;\n justify-content: flex-start !important;\n padding: 0 !important;\n}\n.resource__button[data-v-ac1115a7] .button-vue__wrapper {\n justify-content: flex-start !important;\n}\n.resource__button[data-v-ac1115a7] .button-vue__wrapper .button-vue__text {\n font-weight: normal !important;\n margin-left: 2px !important;\n}\n.resource__icon[data-v-ac1115a7] {\n width: 32px;\n height: 32px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.resource__icon img[data-v-ac1115a7] {\n width: 16px;\n height: 16px;\n filter: var(--background-invert-if-dark);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-badd46a9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.related-resources__header h5[data-v-badd46a9] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-resources__header p[data-v-badd46a9] {\n color: var(--color-text-maxcontrast);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcRelatedResourcesPanel-BE9CQ8s8.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,2CAA2C;EAC3C,0CAA0C;EAC1C,kBAAkB;AACpB;AACA;EACE,0CAA0C;AAC5C;AACA;EACE,YAAY;EACZ,mBAAmB;EACnB,aAAa;EACb,SAAS;AACX;AACA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;EACnB,SAAS;EACT,iBAAiB;EACjB,iBAAiB;EACjB,SAAS;AACX;AACA;EACE,iBAAiB;AACnB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,SAAS;EACT,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,aAAa;EACb,SAAS;EACT,qCAAqC;EACrC,mBAAmB;EACnB,yCAAyC;AAC3C;AACA;EACE,+CAA+C;AACjD;AACA;EACE,+CAA+C;EAC/C,+CAA+C;AACjD;AACA;EACE,oCAAoC;EACpC,qCAAqC;EACrC,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;AACpB;AACA;EACE,wCAAwC;EACxC,gBAAgB;EAChB,WAAW;EACX,YAAY;AACd,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,qCAAqC;AACvC;AACA;EACE,sBAAsB;EACtB,sCAAsC;EACtC,qBAAqB;AACvB;AACA;EACE,sCAAsC;AACxC;AACA;EACE,8BAA8B;EAC9B,2BAA2B;AAC7B;AACA;EACE,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,wCAAwC;AAC1C,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,kBAAkB;AACpB;AACA;EACE,oCAAoC;AACtC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de46bdbe] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.team-resources__header[data-v-de46bdbe] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-team[data-v-de46bdbe] {\n border-radius: var(--border-radius-rounded);\n border: 2px solid var(--color-border-dark);\n margin-bottom: 6px;\n}\n.related-team__open[data-v-de46bdbe] {\n border-color: var(--color-primary-element);\n}\n.related-team__header[data-v-de46bdbe] {\n padding: 6px;\n padding-right: 24px;\n display: flex;\n gap: 12px;\n}\n.related-team__name[data-v-de46bdbe] {\n display: flex;\n flex-grow: 1;\n align-items: center;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n margin: 0;\n}\n.related-team .related-team-provider[data-v-de46bdbe] {\n padding: 6px 12px;\n}\n.related-team .related-team-provider__name[data-v-de46bdbe] {\n font-weight: bold;\n margin-bottom: 3px;\n}\n.related-team .related-team-provider__link[data-v-de46bdbe] {\n display: flex;\n gap: 12px;\n padding: 6px 12px;\n font-weight: bold;\n}\n.related-team .related-team-resource__link[data-v-de46bdbe] {\n display: flex;\n gap: 12px;\n height: var(--default-clickable-area);\n align-items: center;\n border-radius: var(--border-radius-large);\n}\n.related-team .related-team-resource__link[data-v-de46bdbe]:hover {\n background-color: var(--color-background-hover);\n}\n.related-team .related-team-resource__link[data-v-de46bdbe]:focus {\n background-color: var(--color-background-hover);\n outline: 2px solid var(--color-primary-element);\n}\n.related-team .related-team-resource .resource__icon[data-v-de46bdbe] {\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n.related-team .related-team-resource .resource__icon > img[data-v-de46bdbe] {\n border-radius: var(--border-radius-pill);\n overflow: hidden;\n width: 32px;\n height: 32px;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-ac1115a7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.resource[data-v-ac1115a7] {\n display: flex;\n align-items: center;\n height: var(--default-clickable-area);\n}\n.resource__button[data-v-ac1115a7] {\n width: 100% !important;\n justify-content: flex-start !important;\n padding: 0 !important;\n}\n.resource__button[data-v-ac1115a7] .button-vue__wrapper {\n justify-content: flex-start !important;\n}\n.resource__button[data-v-ac1115a7] .button-vue__wrapper .button-vue__text {\n font-weight: normal !important;\n margin-left: 2px !important;\n}\n.resource__icon[data-v-ac1115a7] {\n width: 32px;\n height: 32px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.resource__icon img[data-v-ac1115a7] {\n width: 16px;\n height: 16px;\n filter: var(--background-invert-if-dark);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-badd46a9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.related-resources__header h5[data-v-badd46a9] {\n font-weight: bold;\n margin-bottom: 6px;\n}\n.related-resources__header p[data-v-badd46a9] {\n color: var(--color-text-maxcontrast);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},54117:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-98c79945] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.autocomplete-result[data-v-98c79945] {\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n line-height: 1.2;\n --auto-complete-result-avatar-size: var(--default-clickable-area);\n}\n.autocomplete-result__icon[data-v-98c79945] {\n position: relative;\n flex: 0 0 var(--default-clickable-area);\n width: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n border-radius: var(--default-clickable-area);\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n.autocomplete-result__icon--with-avatar[data-v-98c79945] {\n color: inherit;\n background-size: cover;\n}\n.autocomplete-result__status[data-v-98c79945] {\n --auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * 0.4, 18px);\n --auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);\n box-sizing: border-box;\n position: absolute;\n right: var(--auto-complete-result-status-icon-position);\n bottom: var(--auto-complete-result-status-icon-position);\n height: var(--auto-complete-result-status-icon-size);\n width: var(--auto-complete-result-status-icon-size);\n border: 2px solid var(--color-main-background);\n border-radius: 50%;\n background-color: var(--color-main-background);\n font-size: calc(var(--auto-complete-result-status-icon-size) / 1.2);\n line-height: 1.2;\n background-repeat: no-repeat;\n background-size: var(--auto-complete-result-status-icon-size);\n background-position: center;\n}\n.autocomplete-result__status--icon[data-v-98c79945] {\n border: none;\n background-color: transparent;\n}\n.autocomplete-result__content[data-v-98c79945] {\n display: flex;\n flex: 1 1 100%;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.autocomplete-result__title[data-v-98c79945], .autocomplete-result__subline[data-v-98c79945] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.autocomplete-result__subline[data-v-98c79945] {\n color: var(--color-text-maxcontrast);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-108d42c7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.rich-contenteditable[data-v-108d42c7] {\n position: relative;\n width: auto;\n}\n.rich-contenteditable__label[data-v-108d42c7] {\n position: absolute;\n margin-inline: 14px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.rich-contenteditable__input:focus + .rich-contenteditable__label[data-v-108d42c7], .rich-contenteditable__input:not(.rich-contenteditable__input--empty) + .rich-contenteditable__label[data-v-108d42c7] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: 5px;\n margin-inline-start: 9px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.rich-contenteditable__input[data-v-108d42c7] {\n overflow-y: auto;\n width: auto;\n margin: 0;\n padding: 8px;\n cursor: text;\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--color-main-text);\n border: 2px solid var(--color-border-maxcontrast);\n border-radius: var(--border-radius-large);\n outline: none;\n background-color: var(--color-main-background);\n font-family: var(--font-face);\n font-size: inherit;\n min-height: var(--default-clickable-area);\n max-height: calc(var(--default-clickable-area) * 5.5);\n}\n.rich-contenteditable__input--has-label[data-v-108d42c7] {\n margin-top: 10px;\n}\n.rich-contenteditable__input--empty[data-v-108d42c7]:focus:before, .rich-contenteditable__input--empty[data-v-108d42c7]:not(.rich-contenteditable__input--has-label):before {\n content: attr(aria-placeholder);\n color: var(--color-text-maxcontrast);\n position: absolute;\n}\n.rich-contenteditable__input[contenteditable=false][data-v-108d42c7]:not(.rich-contenteditable__input--disabled) {\n cursor: default;\n background-color: transparent;\n color: var(--color-main-text);\n border-color: transparent;\n opacity: 1;\n border-radius: 0;\n}\n.rich-contenteditable__input--multiline[data-v-108d42c7] {\n min-height: calc(var(--default-clickable-area) * 3);\n max-height: none;\n}\n.rich-contenteditable__input--disabled[data-v-108d42c7] {\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n border: 2px solid var(--color-background-darker);\n border-radius: var(--border-radius);\n background-color: var(--color-background-dark);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_1o935_12 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._tribute-container_1o935_20 {\n z-index: 9000;\n overflow: auto;\n position: absolute;\n left: -10000px;\n margin: var(--default-grid-baseline) 0;\n padding: var(--default-grid-baseline);\n color: var(--color-text-maxcontrast);\n border-radius: var(--border-radius-element, var(--border-radius));\n background: var(--color-main-background);\n box-shadow: 0 1px 5px var(--color-box-shadow);\n}\n._tribute-container_1o935_20, ._tribute-container_1o935_20 * {\n box-sizing: border-box;\n}\n._tribute-container_1o935_20 ul {\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40 {\n color: var(--color-text-maxcontrast);\n border-radius: var(--border-radius-small, var(--border-radius));\n padding: var(--default-grid-baseline);\n cursor: pointer;\n min-height: var(--clickable-area-small, auto);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight {\n color: var(--color-main-text);\n background: var(--color-background-hover);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight, ._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight * {\n cursor: pointer;\n}\n._tribute-container_1o935_20._tribute-container--focus-visible_1o935_54 .highlight._tribute-container__item_1o935_40 {\n outline: 2px solid var(--color-main-text) !important;\n}\n._tribute-container-autocomplete_1o935_58 {\n min-width: 250px;\n max-width: 300px;\n max-height: calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline));\n}\n._tribute-container-emoji_1o935_64,\n._tribute-container-link_1o935_65 {\n min-width: 200px;\n max-width: 200px;\n max-height: calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline));\n}\n._tribute-container-emoji_1o935_64 ._tribute-item_1o935_70,\n._tribute-container-link_1o935_65 ._tribute-item_1o935_70 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n._tribute-container-link_1o935_65 {\n min-width: 200px;\n max-width: 300px;\n}\n._tribute-container-link_1o935_65 ._tribute-item_1o935_70 {\n display: flex;\n align-items: center;\n}\n._tribute-container-link_1o935_65 ._tribute-item__title_1o935_85 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n._tribute-container-link_1o935_65 ._tribute-item__icon_1o935_90 {\n margin: auto 0;\n width: 20px;\n height: 20px;\n object-fit: contain;\n padding-right: var(--default-grid-baseline);\n filter: var(--background-invert-if-dark);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcRichContenteditable-BYEZK1DT.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,iCAAiC;EACjC,gBAAgB;EAChB,iEAAiE;AACnE;AACA;EACE,kBAAkB;EAClB,uCAAuC;EACvC,oCAAoC;EACpC,wCAAwC;EACxC,qCAAqC;EACrC,4CAA4C;EAC5C,gDAAgD;EAChD,4BAA4B;EAC5B,2BAA2B;EAC3B,wBAAwB;AAC1B;AACA;EACE,cAAc;EACd,sBAAsB;AACxB;AACA;EACE,yGAAyG;EACzG,qKAAqK;EACrK,sBAAsB;EACtB,kBAAkB;EAClB,uDAAuD;EACvD,wDAAwD;EACxD,oDAAoD;EACpD,mDAAmD;EACnD,8CAA8C;EAC9C,kBAAkB;EAClB,8CAA8C;EAC9C,mEAAmE;EACnE,gBAAgB;EAChB,4BAA4B;EAC5B,6DAA6D;EAC7D,2BAA2B;AAC7B;AACA;EACE,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,aAAa;EACb,cAAc;EACd,sBAAsB;EACtB,uBAAuB;EACvB,YAAY;AACd;AACA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;AACtC,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,uBAAuB;EACvB,eAAe;EACf,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,4EAA4E;EAC5E,8CAA8C;EAC9C,mBAAmB;EACnB,wBAAwB;EACxB,mJAAmJ;AACrJ;AACA;EACE,gBAAgB;EAChB,WAAW;EACX,SAAS;EACT,YAAY;EACZ,YAAY;EACZ,qBAAqB;EACrB,sBAAsB;EACtB,6BAA6B;EAC7B,iDAAiD;EACjD,yCAAyC;EACzC,aAAa;EACb,8CAA8C;EAC9C,6BAA6B;EAC7B,kBAAkB;EAClB,yCAAyC;EACzC,qDAAqD;AACvD;AACA;EACE,gBAAgB;AAClB;AACA;EACE,+BAA+B;EAC/B,oCAAoC;EACpC,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,6BAA6B;EAC7B,6BAA6B;EAC7B,yBAAyB;EACzB,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,mDAAmD;EACnD,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,oCAAoC;EACpC,gDAAgD;EAChD,mCAAmC;EACnC,8CAA8C;AAChD,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,cAAc;EACd,kBAAkB;EAClB,cAAc;EACd,sCAAsC;EACtC,qCAAqC;EACrC,oCAAoC;EACpC,iEAAiE;EACjE,wCAAwC;EACxC,6CAA6C;AAC/C;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,iCAAiC;AACnC;AACA;EACE,oCAAoC;EACpC,+DAA+D;EAC/D,qCAAqC;EACrC,eAAe;EACf,6CAA6C;AAC/C;AACA;EACE,6BAA6B;EAC7B,yCAAyC;AAC3C;AACA;EACE,eAAe;AACjB;AACA;EACE,oDAAoD;AACtD;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,+HAA+H;AACjI;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sGAAsG;AACxG;AACA;;EAEE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,2CAA2C;EAC3C,wCAAwC;AAC1C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-98c79945] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.autocomplete-result[data-v-98c79945] {\n display: flex;\n align-items: center;\n gap: var(--default-grid-baseline);\n line-height: 1.2;\n --auto-complete-result-avatar-size: var(--default-clickable-area);\n}\n.autocomplete-result__icon[data-v-98c79945] {\n position: relative;\n flex: 0 0 var(--default-clickable-area);\n width: var(--default-clickable-area);\n min-width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n border-radius: var(--default-clickable-area);\n background-color: var(--color-background-darker);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n}\n.autocomplete-result__icon--with-avatar[data-v-98c79945] {\n color: inherit;\n background-size: cover;\n}\n.autocomplete-result__status[data-v-98c79945] {\n --auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * 0.4, 18px);\n --auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);\n box-sizing: border-box;\n position: absolute;\n right: var(--auto-complete-result-status-icon-position);\n bottom: var(--auto-complete-result-status-icon-position);\n height: var(--auto-complete-result-status-icon-size);\n width: var(--auto-complete-result-status-icon-size);\n border: 2px solid var(--color-main-background);\n border-radius: 50%;\n background-color: var(--color-main-background);\n font-size: calc(var(--auto-complete-result-status-icon-size) / 1.2);\n line-height: 1.2;\n background-repeat: no-repeat;\n background-size: var(--auto-complete-result-status-icon-size);\n background-position: center;\n}\n.autocomplete-result__status--icon[data-v-98c79945] {\n border: none;\n background-color: transparent;\n}\n.autocomplete-result__content[data-v-98c79945] {\n display: flex;\n flex: 1 1 100%;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n}\n.autocomplete-result__title[data-v-98c79945], .autocomplete-result__subline[data-v-98c79945] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.autocomplete-result__subline[data-v-98c79945] {\n color: var(--color-text-maxcontrast);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-108d42c7] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.rich-contenteditable[data-v-108d42c7] {\n position: relative;\n width: auto;\n}\n.rich-contenteditable__label[data-v-108d42c7] {\n position: absolute;\n margin-inline: 14px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.rich-contenteditable__input:focus + .rich-contenteditable__label[data-v-108d42c7], .rich-contenteditable__input:not(.rich-contenteditable__input--empty) + .rich-contenteditable__label[data-v-108d42c7] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: 500;\n border-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n background-color: var(--color-main-background);\n padding-inline: 5px;\n margin-inline-start: 9px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.rich-contenteditable__input[data-v-108d42c7] {\n overflow-y: auto;\n width: auto;\n margin: 0;\n padding: 8px;\n cursor: text;\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--color-main-text);\n border: 2px solid var(--color-border-maxcontrast);\n border-radius: var(--border-radius-large);\n outline: none;\n background-color: var(--color-main-background);\n font-family: var(--font-face);\n font-size: inherit;\n min-height: var(--default-clickable-area);\n max-height: calc(var(--default-clickable-area) * 5.5);\n}\n.rich-contenteditable__input--has-label[data-v-108d42c7] {\n margin-top: 10px;\n}\n.rich-contenteditable__input--empty[data-v-108d42c7]:focus:before, .rich-contenteditable__input--empty[data-v-108d42c7]:not(.rich-contenteditable__input--has-label):before {\n content: attr(aria-placeholder);\n color: var(--color-text-maxcontrast);\n position: absolute;\n}\n.rich-contenteditable__input[contenteditable=false][data-v-108d42c7]:not(.rich-contenteditable__input--disabled) {\n cursor: default;\n background-color: transparent;\n color: var(--color-main-text);\n border-color: transparent;\n opacity: 1;\n border-radius: 0;\n}\n.rich-contenteditable__input--multiline[data-v-108d42c7] {\n min-height: calc(var(--default-clickable-area) * 3);\n max-height: none;\n}\n.rich-contenteditable__input--disabled[data-v-108d42c7] {\n opacity: 0.5;\n color: var(--color-text-maxcontrast);\n border: 2px solid var(--color-background-darker);\n border-radius: var(--border-radius);\n background-color: var(--color-background-dark);\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n._material-design-icon_1o935_12 {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n._tribute-container_1o935_20 {\n z-index: 9000;\n overflow: auto;\n position: absolute;\n left: -10000px;\n margin: var(--default-grid-baseline) 0;\n padding: var(--default-grid-baseline);\n color: var(--color-text-maxcontrast);\n border-radius: var(--border-radius-element, var(--border-radius));\n background: var(--color-main-background);\n box-shadow: 0 1px 5px var(--color-box-shadow);\n}\n._tribute-container_1o935_20, ._tribute-container_1o935_20 * {\n box-sizing: border-box;\n}\n._tribute-container_1o935_20 ul {\n display: flex;\n flex-direction: column;\n gap: var(--default-grid-baseline);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40 {\n color: var(--color-text-maxcontrast);\n border-radius: var(--border-radius-small, var(--border-radius));\n padding: var(--default-grid-baseline);\n cursor: pointer;\n min-height: var(--clickable-area-small, auto);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight {\n color: var(--color-main-text);\n background: var(--color-background-hover);\n}\n._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight, ._tribute-container_1o935_20 ._tribute-container__item_1o935_40.highlight * {\n cursor: pointer;\n}\n._tribute-container_1o935_20._tribute-container--focus-visible_1o935_54 .highlight._tribute-container__item_1o935_40 {\n outline: 2px solid var(--color-main-text) !important;\n}\n._tribute-container-autocomplete_1o935_58 {\n min-width: 250px;\n max-width: 300px;\n max-height: calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline));\n}\n._tribute-container-emoji_1o935_64,\n._tribute-container-link_1o935_65 {\n min-width: 200px;\n max-width: 200px;\n max-height: calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline));\n}\n._tribute-container-emoji_1o935_64 ._tribute-item_1o935_70,\n._tribute-container-link_1o935_65 ._tribute-item_1o935_70 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n._tribute-container-link_1o935_65 {\n min-width: 200px;\n max-width: 300px;\n}\n._tribute-container-link_1o935_65 ._tribute-item_1o935_70 {\n display: flex;\n align-items: center;\n}\n._tribute-container-link_1o935_65 ._tribute-item__title_1o935_85 {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n._tribute-container-link_1o935_65 ._tribute-item__icon_1o935_90 {\n margin: auto 0;\n width: 20px;\n height: 20px;\n object-fit: contain;\n padding-right: var(--default-grid-baseline);\n filter: var(--background-invert-if-dark);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},54396:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,'@charset "UTF-8";/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4d1ff3f6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.widget--list[data-v-4d1ff3f6] {\n width: var(--widget-full-width, 100%);\n}\n.widgets--list.icon-loading[data-v-4d1ff3f6] {\n min-height: var(--default-clickable-area);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3b61be27] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/* stylelint-disable-next-line scss/at-import-partial-extension */\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n* Styles are extracted to extract scss to dist folder, too.\n*/\nli.task-list-item > ul[data-v-3b61be27],\nli.task-list-item > ol[data-v-3b61be27],\nli.task-list-item > li[data-v-3b61be27],\nli.task-list-item > blockquote[data-v-3b61be27],\nli.task-list-item > pre[data-v-3b61be27] {\n margin-inline-start: 15px;\n margin-block-end: 0;\n}\n.rich-text--wrapper[data-v-3b61be27] {\n word-break: break-word;\n line-height: 1.5;\n}\n.rich-text--wrapper .rich-text--fallback[data-v-3b61be27], .rich-text--wrapper .rich-text-component[data-v-3b61be27] {\n display: inline;\n}\n.rich-text--wrapper .rich-text--external-link[data-v-3b61be27] {\n text-decoration: underline;\n}\n.rich-text--wrapper .rich-text--external-link[data-v-3b61be27]:after {\n content: " ↗";\n}\n.rich-text--wrapper .rich-text--ordered-list .rich-text--list-item[data-v-3b61be27] {\n list-style: decimal;\n}\n.rich-text--wrapper .rich-text--un-ordered-list .rich-text--list-item[data-v-3b61be27] {\n list-style: initial;\n}\n.rich-text--wrapper .rich-text--list-item[data-v-3b61be27] {\n white-space: initial;\n color: var(--color-text-light);\n padding: initial;\n margin-left: 20px;\n}\n.rich-text--wrapper .rich-text--list-item.task-list-item[data-v-3b61be27] {\n list-style: none;\n white-space: initial;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--list-item.task-list-item input[data-v-3b61be27] {\n min-height: initial;\n}\n.rich-text--wrapper .rich-text--strong[data-v-3b61be27] {\n white-space: initial;\n font-weight: bold;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--italic[data-v-3b61be27] {\n white-space: initial;\n font-style: italic;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--heading[data-v-3b61be27] {\n white-space: initial;\n font-size: initial;\n color: var(--color-text-light);\n margin-bottom: 5px;\n margin-top: 5px;\n font-weight: bold;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-1[data-v-3b61be27] {\n font-size: 20px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-2[data-v-3b61be27] {\n font-size: 19px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-3[data-v-3b61be27] {\n font-size: 18px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-4[data-v-3b61be27] {\n font-size: 17px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-5[data-v-3b61be27] {\n font-size: 16px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-6[data-v-3b61be27] {\n font-size: 15px;\n}\n.rich-text--wrapper .rich-text--hr[data-v-3b61be27] {\n border-top: 1px solid var(--color-border-dark);\n border-bottom: 0;\n}\n.rich-text--wrapper .rich-text--pre[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n background-color: var(--color-background-dark);\n padding: 5px;\n}\n.rich-text--wrapper .rich-text--code[data-v-3b61be27] {\n background-color: var(--color-background-dark);\n}\n.rich-text--wrapper .rich-text--blockquote[data-v-3b61be27] {\n border-left: 3px solid var(--color-border-dark);\n padding-left: 5px;\n}\n.rich-text--wrapper .rich-text--table[data-v-3b61be27] {\n border-collapse: collapse;\n}\n.rich-text--wrapper .rich-text--table thead tr th[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n font-weight: bold;\n padding: 6px 13px;\n}\n.rich-text--wrapper .rich-text--table tbody tr td[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n padding: 6px 13px;\n}\n.rich-text--wrapper .rich-text--table tbody tr[data-v-3b61be27]:nth-child(even) {\n background-color: var(--color-background-dark);\n}\n.rich-text--wrapper-markdown div > *[data-v-3b61be27]:first-child,\n.rich-text--wrapper-markdown blockquote > *[data-v-3b61be27]:first-child {\n margin-top: 0 !important;\n}\n.rich-text--wrapper-markdown div > *[data-v-3b61be27]:last-child,\n.rich-text--wrapper-markdown blockquote > *[data-v-3b61be27]:last-child {\n margin-bottom: 0 !important;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27], .rich-text--wrapper-markdown h2[data-v-3b61be27], .rich-text--wrapper-markdown h3[data-v-3b61be27], .rich-text--wrapper-markdown h4[data-v-3b61be27], .rich-text--wrapper-markdown h5[data-v-3b61be27], .rich-text--wrapper-markdown h6[data-v-3b61be27], .rich-text--wrapper-markdown p[data-v-3b61be27], .rich-text--wrapper-markdown ul[data-v-3b61be27], .rich-text--wrapper-markdown ol[data-v-3b61be27], .rich-text--wrapper-markdown blockquote[data-v-3b61be27], .rich-text--wrapper-markdown pre[data-v-3b61be27] {\n margin-top: 0;\n margin-bottom: 1em;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27], .rich-text--wrapper-markdown h2[data-v-3b61be27], .rich-text--wrapper-markdown h3[data-v-3b61be27], .rich-text--wrapper-markdown h4[data-v-3b61be27], .rich-text--wrapper-markdown h5[data-v-3b61be27], .rich-text--wrapper-markdown h6[data-v-3b61be27] {\n font-weight: bold;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27] {\n font-size: 30px;\n}\n.rich-text--wrapper-markdown ul[data-v-3b61be27], .rich-text--wrapper-markdown ol[data-v-3b61be27] {\n padding-left: 15px;\n}\n.rich-text--wrapper-markdown ul[data-v-3b61be27] {\n list-style-type: disc;\n}\n.rich-text--wrapper-markdown ul.contains-task-list[data-v-3b61be27] {\n list-style-type: none;\n padding: 0;\n}\n.rich-text--wrapper-markdown table[data-v-3b61be27] {\n border-collapse: collapse;\n border: 2px solid var(--color-border-maxcontrast);\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27],\n.rich-text--wrapper-markdown table td[data-v-3b61be27] {\n padding: var(--default-grid-baseline);\n border: 1px solid var(--color-border-maxcontrast);\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27]:first-child,\n.rich-text--wrapper-markdown table td[data-v-3b61be27]:first-child {\n border-left: 0;\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27]:last-child,\n.rich-text--wrapper-markdown table td[data-v-3b61be27]:last-child {\n border-right: 0;\n}\n.rich-text--wrapper-markdown table tr:first-child th[data-v-3b61be27] {\n border-top: 0;\n}\n.rich-text--wrapper-markdown table tr:last-child td[data-v-3b61be27] {\n border-bottom: 0;\n}\n.rich-text--wrapper-markdown blockquote[data-v-3b61be27] {\n padding-left: 13px;\n border-left: 2px solid var(--color-border-dark);\n color: var(--color-text-lighter);\n}\na[data-v-3b61be27]:not(.rich-text--component) {\n text-decoration: underline;\n}',"",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcRichText-DqDAPQPD.css"],names:[],mappings:"AAAA,gBAAgB,CAAC;;;EAGf;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qCAAqC;AACvC;AACA;EACE,yCAAyC;AAC3C;AACA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA,iEAAiE;AACjE;;;EAGE;AACF;;CAEC;AACD;;;;;EAKE,yBAAyB;EACzB,mBAAmB;AACrB;AACA;EACE,sBAAsB;EACtB,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;AACA;EACE,0BAA0B;AAC5B;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,oBAAoB;EACpB,8BAA8B;EAC9B,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,oBAAoB;EACpB,8BAA8B;AAChC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,oBAAoB;EACpB,iBAAiB;EACjB,8BAA8B;AAChC;AACA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,8BAA8B;AAChC;AACA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,8BAA8B;EAC9B,kBAAkB;EAClB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,8CAA8C;EAC9C,gBAAgB;AAClB;AACA;EACE,0CAA0C;EAC1C,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;EAC/C,iBAAiB;AACnB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,0CAA0C;EAC1C,iBAAiB;EACjB,iBAAiB;AACnB;AACA;EACE,0CAA0C;EAC1C,iBAAiB;AACnB;AACA;EACE,8CAA8C;AAChD;AACA;;EAEE,wBAAwB;AAC1B;AACA;;EAEE,2BAA2B;AAC7B;AACA;EACE,aAAa;EACb,kBAAkB;AACpB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,qBAAqB;EACrB,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,iDAAiD;AACnD;AACA;;EAEE,qCAAqC;EACrC,iDAAiD;AACnD;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,+CAA+C;EAC/C,gCAAgC;AAClC;AACA;EACE,0BAA0B;AAC5B",sourcesContent:['@charset "UTF-8";/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4d1ff3f6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.widget--list[data-v-4d1ff3f6] {\n width: var(--widget-full-width, 100%);\n}\n.widgets--list.icon-loading[data-v-4d1ff3f6] {\n min-height: var(--default-clickable-area);\n}\n/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3b61be27] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n/* stylelint-disable-next-line scss/at-import-partial-extension */\n/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n* Styles are extracted to extract scss to dist folder, too.\n*/\nli.task-list-item > ul[data-v-3b61be27],\nli.task-list-item > ol[data-v-3b61be27],\nli.task-list-item > li[data-v-3b61be27],\nli.task-list-item > blockquote[data-v-3b61be27],\nli.task-list-item > pre[data-v-3b61be27] {\n margin-inline-start: 15px;\n margin-block-end: 0;\n}\n.rich-text--wrapper[data-v-3b61be27] {\n word-break: break-word;\n line-height: 1.5;\n}\n.rich-text--wrapper .rich-text--fallback[data-v-3b61be27], .rich-text--wrapper .rich-text-component[data-v-3b61be27] {\n display: inline;\n}\n.rich-text--wrapper .rich-text--external-link[data-v-3b61be27] {\n text-decoration: underline;\n}\n.rich-text--wrapper .rich-text--external-link[data-v-3b61be27]:after {\n content: " ↗";\n}\n.rich-text--wrapper .rich-text--ordered-list .rich-text--list-item[data-v-3b61be27] {\n list-style: decimal;\n}\n.rich-text--wrapper .rich-text--un-ordered-list .rich-text--list-item[data-v-3b61be27] {\n list-style: initial;\n}\n.rich-text--wrapper .rich-text--list-item[data-v-3b61be27] {\n white-space: initial;\n color: var(--color-text-light);\n padding: initial;\n margin-left: 20px;\n}\n.rich-text--wrapper .rich-text--list-item.task-list-item[data-v-3b61be27] {\n list-style: none;\n white-space: initial;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--list-item.task-list-item input[data-v-3b61be27] {\n min-height: initial;\n}\n.rich-text--wrapper .rich-text--strong[data-v-3b61be27] {\n white-space: initial;\n font-weight: bold;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--italic[data-v-3b61be27] {\n white-space: initial;\n font-style: italic;\n color: var(--color-text-light);\n}\n.rich-text--wrapper .rich-text--heading[data-v-3b61be27] {\n white-space: initial;\n font-size: initial;\n color: var(--color-text-light);\n margin-bottom: 5px;\n margin-top: 5px;\n font-weight: bold;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-1[data-v-3b61be27] {\n font-size: 20px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-2[data-v-3b61be27] {\n font-size: 19px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-3[data-v-3b61be27] {\n font-size: 18px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-4[data-v-3b61be27] {\n font-size: 17px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-5[data-v-3b61be27] {\n font-size: 16px;\n}\n.rich-text--wrapper .rich-text--heading.rich-text--heading-6[data-v-3b61be27] {\n font-size: 15px;\n}\n.rich-text--wrapper .rich-text--hr[data-v-3b61be27] {\n border-top: 1px solid var(--color-border-dark);\n border-bottom: 0;\n}\n.rich-text--wrapper .rich-text--pre[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n background-color: var(--color-background-dark);\n padding: 5px;\n}\n.rich-text--wrapper .rich-text--code[data-v-3b61be27] {\n background-color: var(--color-background-dark);\n}\n.rich-text--wrapper .rich-text--blockquote[data-v-3b61be27] {\n border-left: 3px solid var(--color-border-dark);\n padding-left: 5px;\n}\n.rich-text--wrapper .rich-text--table[data-v-3b61be27] {\n border-collapse: collapse;\n}\n.rich-text--wrapper .rich-text--table thead tr th[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n font-weight: bold;\n padding: 6px 13px;\n}\n.rich-text--wrapper .rich-text--table tbody tr td[data-v-3b61be27] {\n border: 1px solid var(--color-border-dark);\n padding: 6px 13px;\n}\n.rich-text--wrapper .rich-text--table tbody tr[data-v-3b61be27]:nth-child(even) {\n background-color: var(--color-background-dark);\n}\n.rich-text--wrapper-markdown div > *[data-v-3b61be27]:first-child,\n.rich-text--wrapper-markdown blockquote > *[data-v-3b61be27]:first-child {\n margin-top: 0 !important;\n}\n.rich-text--wrapper-markdown div > *[data-v-3b61be27]:last-child,\n.rich-text--wrapper-markdown blockquote > *[data-v-3b61be27]:last-child {\n margin-bottom: 0 !important;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27], .rich-text--wrapper-markdown h2[data-v-3b61be27], .rich-text--wrapper-markdown h3[data-v-3b61be27], .rich-text--wrapper-markdown h4[data-v-3b61be27], .rich-text--wrapper-markdown h5[data-v-3b61be27], .rich-text--wrapper-markdown h6[data-v-3b61be27], .rich-text--wrapper-markdown p[data-v-3b61be27], .rich-text--wrapper-markdown ul[data-v-3b61be27], .rich-text--wrapper-markdown ol[data-v-3b61be27], .rich-text--wrapper-markdown blockquote[data-v-3b61be27], .rich-text--wrapper-markdown pre[data-v-3b61be27] {\n margin-top: 0;\n margin-bottom: 1em;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27], .rich-text--wrapper-markdown h2[data-v-3b61be27], .rich-text--wrapper-markdown h3[data-v-3b61be27], .rich-text--wrapper-markdown h4[data-v-3b61be27], .rich-text--wrapper-markdown h5[data-v-3b61be27], .rich-text--wrapper-markdown h6[data-v-3b61be27] {\n font-weight: bold;\n}\n.rich-text--wrapper-markdown h1[data-v-3b61be27] {\n font-size: 30px;\n}\n.rich-text--wrapper-markdown ul[data-v-3b61be27], .rich-text--wrapper-markdown ol[data-v-3b61be27] {\n padding-left: 15px;\n}\n.rich-text--wrapper-markdown ul[data-v-3b61be27] {\n list-style-type: disc;\n}\n.rich-text--wrapper-markdown ul.contains-task-list[data-v-3b61be27] {\n list-style-type: none;\n padding: 0;\n}\n.rich-text--wrapper-markdown table[data-v-3b61be27] {\n border-collapse: collapse;\n border: 2px solid var(--color-border-maxcontrast);\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27],\n.rich-text--wrapper-markdown table td[data-v-3b61be27] {\n padding: var(--default-grid-baseline);\n border: 1px solid var(--color-border-maxcontrast);\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27]:first-child,\n.rich-text--wrapper-markdown table td[data-v-3b61be27]:first-child {\n border-left: 0;\n}\n.rich-text--wrapper-markdown table th[data-v-3b61be27]:last-child,\n.rich-text--wrapper-markdown table td[data-v-3b61be27]:last-child {\n border-right: 0;\n}\n.rich-text--wrapper-markdown table tr:first-child th[data-v-3b61be27] {\n border-top: 0;\n}\n.rich-text--wrapper-markdown table tr:last-child td[data-v-3b61be27] {\n border-bottom: 0;\n}\n.rich-text--wrapper-markdown blockquote[data-v-3b61be27] {\n padding-left: 13px;\n border-left: 2px solid var(--color-border-dark);\n color: var(--color-text-lighter);\n}\na[data-v-3b61be27]:not(.rich-text--component) {\n text-decoration: underline;\n}'],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},79379:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\nbody {\n /**\n * Set custom vue-select CSS variables.\n * Needs to be on the body (not :root) for theming to apply (see nextcloud/server#36462)\n */\n /* Search Input */\n --vs-search-input-color: var(--color-main-text);\n --vs-search-input-bg: var(--color-main-background);\n --vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n /* Font */\n --vs-font-size: var(--default-font-size);\n --vs-line-height: var(--default-line-height);\n /* Disabled State */\n --vs-state-disabled-bg: var(--color-background-hover);\n --vs-state-disabled-color: var(--color-text-maxcontrast);\n --vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n --vs-state-disabled-cursor: not-allowed;\n --vs-disabled-bg: var(--color-background-hover);\n --vs-disabled-color: var(--color-text-maxcontrast);\n --vs-disabled-cursor: not-allowed;\n /* Borders */\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-width: var(--border-width-input, 2px) !important;\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-large);\n /* Component Controls: Clear, Open Indicator */\n --vs-controls-color: var(--color-main-text);\n /* Selected */\n --vs-selected-bg: var(--color-background-hover);\n --vs-selected-color: var(--color-main-text);\n --vs-selected-border-color: var(--vs-border-color);\n --vs-selected-border-style: var(--vs-border-style);\n --vs-selected-border-width: var(--vs-border-width);\n /* Dropdown */\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-z-index: 9999;\n --vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n /* Options */\n --vs-dropdown-option-padding: 8px 20px;\n /* Active State */\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n /* Keyboard Focus State */\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n /* Deselect State */\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n /* Transitions */\n --vs-transition-duration: 0ms;\n /* Actions */\n --vs-actions-padding: 0 8px 0 4px;\n}\n.v-select.select {\n /* Override default vue-select styles */\n min-height: var(--default-clickable-area);\n min-width: 260px;\n margin: 0 0 var(--default-grid-baseline);\n}\n.v-select.select.vs--open {\n --vs-border-width: var(--border-width-input-focused, 2px);\n}\n.v-select.select .select__label {\n display: block;\n margin-bottom: 2px;\n}\n.v-select.select .vs__selected {\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n margin: calc(var(--default-grid-baseline) / 2);\n padding-block: 0;\n padding-inline: 12px 8px;\n border-radius: 16px !important;\n background: var(--color-primary-element-light);\n border: none;\n}\n.v-select.select.vs--open .vs__selected:first-of-type {\n margin-inline-start: calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px))) !important;\n}\n.v-select.select .vs__search {\n text-overflow: ellipsis;\n color: var(--color-main-text);\n min-height: unset !important;\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width)) !important;\n}\n.v-select.select .vs__search::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.v-select.select .vs__search, .v-select.select .vs__search:focus {\n margin: 0;\n}\n.v-select.select .vs__dropdown-toggle {\n position: relative;\n max-height: 100px;\n padding: 0;\n overflow-y: auto;\n}\n.v-select.select .vs__actions {\n position: sticky;\n top: 0;\n}\n.v-select.select .vs__clear {\n margin-right: 2px;\n}\n.v-select.select.vs--open .vs__dropdown-toggle {\n border-width: var(--border-width-input-focused);\n outline: 2px solid var(--color-main-background);\n border-color: var(--color-main-text);\n border-bottom-color: transparent;\n}\n.v-select.select:not(.vs--disabled, .vs--open) .vs__dropdown-toggle:hover {\n outline: 2px solid var(--color-main-background);\n border-color: var(--color-main-text);\n}\n.v-select.select.vs--disabled .vs__search,\n.v-select.select.vs--disabled .vs__selected {\n color: var(--color-text-maxcontrast);\n}\n.v-select.select.vs--disabled .vs__clear,\n.v-select.select.vs--disabled .vs__deselect {\n display: none;\n}\n.v-select.select--no-wrap .vs__selected-options {\n flex-wrap: nowrap;\n overflow: auto;\n min-width: unset;\n}\n.v-select.select--no-wrap .vs__selected-options .vs__selected {\n min-width: unset;\n}\n.v-select.select--drop-up.vs--open .vs__dropdown-toggle {\n border-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\n border-top-color: transparent;\n border-bottom-color: var(--color-main-text);\n}\n.v-select.select .vs__selected-options {\n min-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width));\n padding: 0 5px;\n}\n.v-select.select .vs__selected-options .vs__selected ~ .vs__search[readonly] {\n position: absolute;\n}\n.v-select.select.vs--single.vs--loading .vs__selected, .v-select.select.vs--single.vs--open .vs__selected {\n max-width: 100%;\n opacity: 1;\n color: var(--color-text-maxcontrast);\n}\n.v-select.select.vs--single .vs__selected-options {\n flex-wrap: nowrap;\n}\n.v-select.select.vs--single .vs__selected {\n background: unset !important;\n}\n.vs__dropdown-menu {\n border-width: var(--border-width-input-focused) !important;\n border-color: var(--color-main-text) !important;\n outline: none !important;\n box-shadow: -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n padding: 4px !important;\n}\n.vs__dropdown-menu--floating {\n /* Fallback styles overidden by programmatically set inline styles */\n width: max-content;\n position: absolute;\n top: 0;\n left: 0;\n}\n.vs__dropdown-menu--floating-placement-top {\n border-radius: var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;\n border-top-style: var(--vs-border-style) !important;\n border-bottom-style: none !important;\n box-shadow: 0 -2px 0 var(--color-main-background), -2px 0 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n}\n.vs__dropdown-menu .vs__dropdown-option {\n border-radius: 6px !important;\n}\n.vs__dropdown-menu .vs__no-options {\n color: var(--color-text-lighter) !important;\n}\n.user-select .vs__selected {\n padding-inline: 0 5px !important;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcSelect-EIXtZSVn.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE;;;IAGE;EACF,iBAAiB;EACjB,+CAA+C;EAC/C,kDAAkD;EAClD,kEAAkE;EAClE,SAAS;EACT,wCAAwC;EACxC,4CAA4C;EAC5C,mBAAmB;EACnB,qDAAqD;EACrD,wDAAwD;EACxD,iEAAiE;EACjE,uCAAuC;EACvC,+CAA+C;EAC/C,kDAAkD;EAClD,iCAAiC;EACjC,YAAY;EACZ,kDAAkD;EAClD,4DAA4D;EAC5D,wBAAwB;EACxB,8CAA8C;EAC9C,8CAA8C;EAC9C,2CAA2C;EAC3C,aAAa;EACb,+CAA+C;EAC/C,2CAA2C;EAC3C,kDAAkD;EAClD,kDAAkD;EAClD,kDAAkD;EAClD,aAAa;EACb,8CAA8C;EAC9C,2CAA2C;EAC3C,2BAA2B;EAC3B,iEAAiE;EACjE,YAAY;EACZ,sCAAsC;EACtC,iBAAiB;EACjB,8DAA8D;EAC9D,0DAA0D;EAC1D,yBAAyB;EACzB,uFAAuF;EACvF,mBAAmB;EACnB,qDAAqD;EACrD,0CAA0C;EAC1C,gBAAgB;EAChB,6BAA6B;EAC7B,YAAY;EACZ,iCAAiC;AACnC;AACA;EACE,uCAAuC;EACvC,yCAAyC;EACzC,gBAAgB;EAChB,wCAAwC;AAC1C;AACA;EACE,yDAAyD;AAC3D;AACA;EACE,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,uGAAuG;EACvG,8CAA8C;EAC9C,gBAAgB;EAChB,wBAAwB;EACxB,8BAA8B;EAC9B,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,kJAAkJ;AACpJ;AACA;EACE,uBAAuB;EACvB,6BAA6B;EAC7B,4BAA4B;EAC5B,mFAAmF;AACrF;AACA;EACE,oCAAoC;AACtC;AACA;EACE,SAAS;AACX;AACA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,MAAM;AACR;AACA;EACE,iBAAiB;AACnB;AACA;EACE,+CAA+C;EAC/C,+CAA+C;EAC/C,oCAAoC;EACpC,gCAAgC;AAClC;AACA;EACE,+CAA+C;EAC/C,oCAAoC;AACtC;AACA;;EAEE,oCAAoC;AACtC;AACA;;EAEE,aAAa;AACf;AACA;EACE,iBAAiB;EACjB,cAAc;EACd,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,kEAAkE;EAClE,6BAA6B;EAC7B,2CAA2C;AAC7C;AACA;EACE,4EAA4E;EAC5E,cAAc;AAChB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;EACf,UAAU;EACV,oCAAoC;AACtC;AACA;EACE,iBAAiB;AACnB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,0DAA0D;EAC1D,+CAA+C;EAC/C,wBAAwB;EACxB,yIAAyI;EACzI,uBAAuB;AACzB;AACA;EACE,oEAAoE;EACpE,kBAAkB;EAClB,kBAAkB;EAClB,MAAM;EACN,OAAO;AACT;AACA;EACE,6EAA6E;EAC7E,mDAAmD;EACnD,oCAAoC;EACpC,0IAA0I;AAC5I;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,gCAAgC;AAClC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\nbody {\n /**\n * Set custom vue-select CSS variables.\n * Needs to be on the body (not :root) for theming to apply (see nextcloud/server#36462)\n */\n /* Search Input */\n --vs-search-input-color: var(--color-main-text);\n --vs-search-input-bg: var(--color-main-background);\n --vs-search-input-placeholder-color: var(--color-text-maxcontrast);\n /* Font */\n --vs-font-size: var(--default-font-size);\n --vs-line-height: var(--default-line-height);\n /* Disabled State */\n --vs-state-disabled-bg: var(--color-background-hover);\n --vs-state-disabled-color: var(--color-text-maxcontrast);\n --vs-state-disabled-controls-color: var(--color-text-maxcontrast);\n --vs-state-disabled-cursor: not-allowed;\n --vs-disabled-bg: var(--color-background-hover);\n --vs-disabled-color: var(--color-text-maxcontrast);\n --vs-disabled-cursor: not-allowed;\n /* Borders */\n --vs-border-color: var(--color-border-maxcontrast);\n --vs-border-width: var(--border-width-input, 2px) !important;\n --vs-border-style: solid;\n --vs-border-radius: var(--border-radius-large);\n /* Component Controls: Clear, Open Indicator */\n --vs-controls-color: var(--color-main-text);\n /* Selected */\n --vs-selected-bg: var(--color-background-hover);\n --vs-selected-color: var(--color-main-text);\n --vs-selected-border-color: var(--vs-border-color);\n --vs-selected-border-style: var(--vs-border-style);\n --vs-selected-border-width: var(--vs-border-width);\n /* Dropdown */\n --vs-dropdown-bg: var(--color-main-background);\n --vs-dropdown-color: var(--color-main-text);\n --vs-dropdown-z-index: 9999;\n --vs-dropdown-box-shadow: 0px 2px 2px 0px var(--color-box-shadow);\n /* Options */\n --vs-dropdown-option-padding: 8px 20px;\n /* Active State */\n --vs-dropdown-option--active-bg: var(--color-background-hover);\n --vs-dropdown-option--active-color: var(--color-main-text);\n /* Keyboard Focus State */\n --vs-dropdown-option--kb-focus-box-shadow: inset 0px 0px 0px 2px var(--vs-border-color);\n /* Deselect State */\n --vs-dropdown-option--deselect-bg: var(--color-error);\n --vs-dropdown-option--deselect-color: #fff;\n /* Transitions */\n --vs-transition-duration: 0ms;\n /* Actions */\n --vs-actions-padding: 0 8px 0 4px;\n}\n.v-select.select {\n /* Override default vue-select styles */\n min-height: var(--default-clickable-area);\n min-width: 260px;\n margin: 0 0 var(--default-grid-baseline);\n}\n.v-select.select.vs--open {\n --vs-border-width: var(--border-width-input-focused, 2px);\n}\n.v-select.select .select__label {\n display: block;\n margin-bottom: 2px;\n}\n.v-select.select .vs__selected {\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width) - var(--default-grid-baseline));\n margin: calc(var(--default-grid-baseline) / 2);\n padding-block: 0;\n padding-inline: 12px 8px;\n border-radius: 16px !important;\n background: var(--color-primary-element-light);\n border: none;\n}\n.v-select.select.vs--open .vs__selected:first-of-type {\n margin-inline-start: calc(var(--default-grid-baseline) / 2 - (var(--border-width-input-focused, 2px) - var(--border-width-input, 2px))) !important;\n}\n.v-select.select .vs__search {\n text-overflow: ellipsis;\n color: var(--color-main-text);\n min-height: unset !important;\n height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width)) !important;\n}\n.v-select.select .vs__search::placeholder {\n color: var(--color-text-maxcontrast);\n}\n.v-select.select .vs__search, .v-select.select .vs__search:focus {\n margin: 0;\n}\n.v-select.select .vs__dropdown-toggle {\n position: relative;\n max-height: 100px;\n padding: 0;\n overflow-y: auto;\n}\n.v-select.select .vs__actions {\n position: sticky;\n top: 0;\n}\n.v-select.select .vs__clear {\n margin-right: 2px;\n}\n.v-select.select.vs--open .vs__dropdown-toggle {\n border-width: var(--border-width-input-focused);\n outline: 2px solid var(--color-main-background);\n border-color: var(--color-main-text);\n border-bottom-color: transparent;\n}\n.v-select.select:not(.vs--disabled, .vs--open) .vs__dropdown-toggle:hover {\n outline: 2px solid var(--color-main-background);\n border-color: var(--color-main-text);\n}\n.v-select.select.vs--disabled .vs__search,\n.v-select.select.vs--disabled .vs__selected {\n color: var(--color-text-maxcontrast);\n}\n.v-select.select.vs--disabled .vs__clear,\n.v-select.select.vs--disabled .vs__deselect {\n display: none;\n}\n.v-select.select--no-wrap .vs__selected-options {\n flex-wrap: nowrap;\n overflow: auto;\n min-width: unset;\n}\n.v-select.select--no-wrap .vs__selected-options .vs__selected {\n min-width: unset;\n}\n.v-select.select--drop-up.vs--open .vs__dropdown-toggle {\n border-radius: 0 0 var(--vs-border-radius) var(--vs-border-radius);\n border-top-color: transparent;\n border-bottom-color: var(--color-main-text);\n}\n.v-select.select .vs__selected-options {\n min-height: calc(var(--default-clickable-area) - 2 * var(--vs-border-width));\n padding: 0 5px;\n}\n.v-select.select .vs__selected-options .vs__selected ~ .vs__search[readonly] {\n position: absolute;\n}\n.v-select.select.vs--single.vs--loading .vs__selected, .v-select.select.vs--single.vs--open .vs__selected {\n max-width: 100%;\n opacity: 1;\n color: var(--color-text-maxcontrast);\n}\n.v-select.select.vs--single .vs__selected-options {\n flex-wrap: nowrap;\n}\n.v-select.select.vs--single .vs__selected {\n background: unset !important;\n}\n.vs__dropdown-menu {\n border-width: var(--border-width-input-focused) !important;\n border-color: var(--color-main-text) !important;\n outline: none !important;\n box-shadow: -2px 0 0 var(--color-main-background), 0 2px 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n padding: 4px !important;\n}\n.vs__dropdown-menu--floating {\n /* Fallback styles overidden by programmatically set inline styles */\n width: max-content;\n position: absolute;\n top: 0;\n left: 0;\n}\n.vs__dropdown-menu--floating-placement-top {\n border-radius: var(--vs-border-radius) var(--vs-border-radius) 0 0 !important;\n border-top-style: var(--vs-border-style) !important;\n border-bottom-style: none !important;\n box-shadow: 0 -2px 0 var(--color-main-background), -2px 0 0 var(--color-main-background), 2px 0 0 var(--color-main-background), !important;\n}\n.vs__dropdown-menu .vs__dropdown-option {\n border-radius: 6px !important;\n}\n.vs__dropdown-menu .vs__no-options {\n color: var(--color-text-lighter) !important;\n}\n.user-select .vs__selected {\n padding-inline: 0 5px !important;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},87114:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-f5a7bd55] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-f5a7bd55] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-f5a7bd55] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-f5a7bd55]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-f5a7bd55] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsInputText-DbTNj9E6.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;AACA;EACE,oCAAoC;EACpC,gBAAgB;AAClB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-f5a7bd55] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.input-wrapper[data-v-f5a7bd55] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n max-width: 400px;\n}\n.input-wrapper .action-input__label[data-v-f5a7bd55] {\n margin-right: 12px;\n}\n.input-wrapper[data-v-f5a7bd55]:disabled {\n cursor: default;\n}\n.input-wrapper .hint[data-v-f5a7bd55] {\n color: var(--color-text-maxcontrast);\n margin-left: 8px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},15598:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0974f50a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.settings-section[data-v-0974f50a] {\n display: block;\n margin-bottom: auto;\n padding: 30px;\n}\n.settings-section[data-v-0974f50a]:not(:last-child) {\n border-bottom: 1px solid var(--color-border);\n}\n.settings-section--limit-width > *[data-v-0974f50a] {\n max-width: 900px;\n}\n.settings-section__name[data-v-0974f50a] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n font-weight: bold;\n max-width: 900px;\n margin-top: 0;\n}\n.settings-section__info[data-v-0974f50a] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n margin-left: 0;\n color: var(--color-text-maxcontrast);\n}\n.settings-section__info[data-v-0974f50a]:hover, .settings-section__info[data-v-0974f50a]:focus, .settings-section__info[data-v-0974f50a]:active {\n color: var(--color-main-text);\n}\n.settings-section__desc[data-v-0974f50a] {\n margin-top: -0.2em;\n margin-bottom: 1em;\n color: var(--color-text-maxcontrast);\n max-width: 900px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsSection-CGaCS1X0.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,aAAa;AACf;AACA;EACE,4CAA4C;AAC9C;AACA;EACE,gBAAgB;AAClB;AACA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,aAAa;AACf;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,oCAAoC;EACpC,qCAAqC;EACrC,6DAA6D;EAC7D,cAAc;EACd,oCAAoC;AACtC;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,oCAAoC;EACpC,gBAAgB;AAClB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0974f50a] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.settings-section[data-v-0974f50a] {\n display: block;\n margin-bottom: auto;\n padding: 30px;\n}\n.settings-section[data-v-0974f50a]:not(:last-child) {\n border-bottom: 1px solid var(--color-border);\n}\n.settings-section--limit-width > *[data-v-0974f50a] {\n max-width: 900px;\n}\n.settings-section__name[data-v-0974f50a] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n font-weight: bold;\n max-width: 900px;\n margin-top: 0;\n}\n.settings-section__info[data-v-0974f50a] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--default-clickable-area);\n height: var(--default-clickable-area);\n margin: calc((var(--default-clickable-area) - 16px) / 2 * -1);\n margin-left: 0;\n color: var(--color-text-maxcontrast);\n}\n.settings-section__info[data-v-0974f50a]:hover, .settings-section__info[data-v-0974f50a]:focus, .settings-section__info[data-v-0974f50a]:active {\n color: var(--color-main-text);\n}\n.settings-section__desc[data-v-0974f50a] {\n margin-top: -0.2em;\n margin-bottom: 1em;\n color: var(--color-text-maxcontrast);\n max-width: 900px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|82(0|79)|(326|59|660)0|(442|784|964)3|1864|3604|4897|5438|6371)$/.test(n.j)?null:o},6581:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-75b4f01b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.select-group-error[data-v-75b4f01b] {\n color: var(--color-error);\n font-size: 13px;\n padding-inline-start: var(--border-radius-large);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcSettingsSelectGroup-CzD7YrGm.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,yBAAyB;EACzB,eAAe;EACf,gDAAgD;AAClD",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-75b4f01b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.select-group-error[data-v-75b4f01b] {\n color: var(--color-error);\n font-size: 13px;\n padding-inline-start: var(--border-radius-large);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},72341:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4b6abfac] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.textarea[data-v-4b6abfac] {\n position: relative;\n width: 100%;\n border-radius: var(--border-radius-large);\n margin-block-start: 6px;\n resize: vertical;\n}\n.textarea__main-wrapper[data-v-4b6abfac] {\n position: relative;\n}\n.textarea--disabled[data-v-4b6abfac] {\n opacity: 0.7;\n filter: saturate(0.7);\n}\n.textarea__input[data-v-4b6abfac] {\n margin: 0;\n padding-inline: 10px 6px;\n width: 100%;\n height: calc(var(--default-clickable-area) * 2);\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n border-radius: var(--border-radius-large);\n cursor: pointer;\n}\n.textarea__input[data-v-4b6abfac]:active:not([disabled]), .textarea__input[data-v-4b6abfac]:hover:not([disabled]), .textarea__input[data-v-4b6abfac]:focus:not([disabled]) {\n border-width: var(--border-width-input-focused, 2px);\n border-color: var(--color-main-text);\n box-shadow: 0 0 0 2px var(--color-main-background) !important;\n}\n.textarea__input[data-v-4b6abfac]:not(:focus, .textarea__input--label-outside)::placeholder {\n opacity: 0;\n}\n.textarea__input[data-v-4b6abfac]:focus {\n cursor: text;\n}\n.textarea__input[data-v-4b6abfac]:disabled {\n cursor: default;\n}\n.textarea__input[data-v-4b6abfac]:focus-visible {\n box-shadow: unset !important;\n}\n.textarea__input--success[data-v-4b6abfac] {\n border-color: var(--color-success) !important;\n}\n.textarea__input--success[data-v-4b6abfac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__input--error[data-v-4b6abfac] {\n border-color: var(--color-error) !important;\n}\n.textarea__input--error[data-v-4b6abfac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__label[data-v-4b6abfac] {\n position: absolute;\n margin-inline: 12px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.textarea__input:focus + .textarea__label[data-v-4b6abfac], .textarea__input:not(:placeholder-shown) + .textarea__label[data-v-4b6abfac] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: 500;\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n padding-inline: 4px;\n margin-inline-start: 8px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.textarea__helper-text-message[data-v-4b6abfac] {\n padding-block: 4px;\n display: flex;\n align-items: center;\n}\n.textarea__helper-text-message__icon[data-v-4b6abfac] {\n margin-inline-end: 8px;\n}\n.textarea__helper-text-message--error[data-v-4b6abfac] {\n color: var(--color-error-text);\n}\n.textarea__helper-text-message--success[data-v-4b6abfac] {\n color: var(--color-success-text);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcTextArea-D8bZi2fT.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,yCAAyC;EACzC,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,SAAS;EACT,wBAAwB;EACxB,WAAW;EACX,+CAA+C;EAC/C,mCAAmC;EACnC,uBAAuB;EACvB,8CAA8C;EAC9C,6BAA6B;EAC7B,4EAA4E;EAC5E,yCAAyC;EACzC,eAAe;AACjB;AACA;EACE,oDAAoD;EACpD,oCAAoC;EACpC,6DAA6D;AAC/D;AACA;EACE,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;EACE,eAAe;AACjB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,6CAA6C;AAC/C;AACA;EACE,iIAAiI;AACnI;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,iIAAiI;AACnI;AACA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,sBAAsB;EACtB,uBAAuB;EACvB,eAAe;EACf,oCAAoC;EACpC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,kNAAkN;AACpN;AACA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,6BAA6B;EAC7B,8CAA8C;EAC9C,mBAAmB;EACnB,wBAAwB;EACxB,mJAAmJ;AACrJ;AACA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,8BAA8B;AAChC;AACA;EACE,gCAAgC;AAClC",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-4b6abfac] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.textarea[data-v-4b6abfac] {\n position: relative;\n width: 100%;\n border-radius: var(--border-radius-large);\n margin-block-start: 6px;\n resize: vertical;\n}\n.textarea__main-wrapper[data-v-4b6abfac] {\n position: relative;\n}\n.textarea--disabled[data-v-4b6abfac] {\n opacity: 0.7;\n filter: saturate(0.7);\n}\n.textarea__input[data-v-4b6abfac] {\n margin: 0;\n padding-inline: 10px 6px;\n width: 100%;\n height: calc(var(--default-clickable-area) * 2);\n font-size: var(--default-font-size);\n text-overflow: ellipsis;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n border: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n border-radius: var(--border-radius-large);\n cursor: pointer;\n}\n.textarea__input[data-v-4b6abfac]:active:not([disabled]), .textarea__input[data-v-4b6abfac]:hover:not([disabled]), .textarea__input[data-v-4b6abfac]:focus:not([disabled]) {\n border-width: var(--border-width-input-focused, 2px);\n border-color: var(--color-main-text);\n box-shadow: 0 0 0 2px var(--color-main-background) !important;\n}\n.textarea__input[data-v-4b6abfac]:not(:focus, .textarea__input--label-outside)::placeholder {\n opacity: 0;\n}\n.textarea__input[data-v-4b6abfac]:focus {\n cursor: text;\n}\n.textarea__input[data-v-4b6abfac]:disabled {\n cursor: default;\n}\n.textarea__input[data-v-4b6abfac]:focus-visible {\n box-shadow: unset !important;\n}\n.textarea__input--success[data-v-4b6abfac] {\n border-color: var(--color-success) !important;\n}\n.textarea__input--success[data-v-4b6abfac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__input--error[data-v-4b6abfac] {\n border-color: var(--color-error) !important;\n}\n.textarea__input--error[data-v-4b6abfac]:focus-visible {\n box-shadow: rgb(248, 250, 252) 0px 0px 0px 2px, var(--color-primary-element) 0px 0px 0px 4px, rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;\n}\n.textarea__label[data-v-4b6abfac] {\n position: absolute;\n margin-inline: 12px 0;\n max-width: fit-content;\n inset-block-start: 11px;\n inset-inline: 0;\n color: var(--color-text-maxcontrast);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n}\n.textarea__input:focus + .textarea__label[data-v-4b6abfac], .textarea__input:not(:placeholder-shown) + .textarea__label[data-v-4b6abfac] {\n inset-block-start: -10px;\n line-height: 1.5;\n font-size: 13px;\n font-weight: 500;\n color: var(--color-main-text);\n background-color: var(--color-main-background);\n padding-inline: 4px;\n margin-inline-start: 8px;\n transition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n}\n.textarea__helper-text-message[data-v-4b6abfac] {\n padding-block: 4px;\n display: flex;\n align-items: center;\n}\n.textarea__helper-text-message__icon[data-v-4b6abfac] {\n margin-inline-end: 8px;\n}\n.textarea__helper-text-message--error[data-v-4b6abfac] {\n color: var(--color-error-text);\n}\n.textarea__helper-text-message--success[data-v-4b6abfac] {\n color: var(--color-success-text);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},9952:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b07a6c57] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-bubble__wrapper[data-v-b07a6c57] {\n display: inline-block;\n vertical-align: middle;\n min-width: 0;\n max-width: 100%;\n}\n.user-bubble__content[data-v-b07a6c57] {\n display: inline-flex;\n max-width: 100%;\n background-color: var(--color-background-dark);\n}\n.user-bubble__content--primary[data-v-b07a6c57] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.user-bubble__content[data-v-b07a6c57] > :last-child {\n padding-right: 8px;\n}\n.user-bubble__avatar[data-v-b07a6c57] {\n align-self: center;\n}\n.user-bubble__name[data-v-b07a6c57] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.user-bubble__name[data-v-b07a6c57], .user-bubble__secondary[data-v-b07a6c57] {\n padding: 0;\n padding-left: 4px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcUserBubble-Cv-q-rH5.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,YAAY;EACZ,eAAe;AACjB;AACA;EACE,oBAAoB;EACpB,eAAe;EACf,8CAA8C;AAChD;AACA;EACE,wCAAwC;EACxC,8CAA8C;AAChD;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,UAAU;EACV,iBAAiB;AACnB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b07a6c57] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-bubble__wrapper[data-v-b07a6c57] {\n display: inline-block;\n vertical-align: middle;\n min-width: 0;\n max-width: 100%;\n}\n.user-bubble__content[data-v-b07a6c57] {\n display: inline-flex;\n max-width: 100%;\n background-color: var(--color-background-dark);\n}\n.user-bubble__content--primary[data-v-b07a6c57] {\n color: var(--color-primary-element-text);\n background-color: var(--color-primary-element);\n}\n.user-bubble__content[data-v-b07a6c57] > :last-child {\n padding-right: 8px;\n}\n.user-bubble__avatar[data-v-b07a6c57] {\n align-self: center;\n}\n.user-bubble__name[data-v-b07a6c57] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.user-bubble__name[data-v-b07a6c57], .user-bubble__secondary[data-v-b07a6c57] {\n padding: 0;\n padding-left: 4px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},61081:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0555d8d0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-status-icon[data-v-0555d8d0] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 16px;\n min-height: 16px;\n max-width: 20px;\n max-height: 20px;\n}\n.user-status-icon--invisible[data-v-0555d8d0] {\n filter: var(--background-invert-if-dark);\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/NcUserStatusIcon-DMxcdM51.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,wCAAwC;AAC1C",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-0555d8d0] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.user-status-icon[data-v-0555d8d0] {\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 16px;\n min-height: 16px;\n max-width: 20px;\n max-height: 20px;\n}\n.user-status-icon--invisible[data-v-0555d8d0] {\n filter: var(--background-invert-if-dark);\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|3260|3604|4897|5438|590)$/.test(n.j)?null:o},29281:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n* SPDX-FileCopyrightText: 2011-2015 Twitter, Inc.\n* SPDX-FileCopyrightText: 2015-2016 Owncloud, Inc.\n* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n* SPDX-License-Identifier: MIT\n*/\n.v-popper--theme-tooltip.v-popper__popper {\n position: absolute;\n z-index: 100000;\n top: 0;\n right: auto;\n left: auto;\n display: block;\n margin: 0;\n padding: 0;\n text-align: left;\n text-align: start;\n opacity: 0;\n line-height: 1.6;\n line-break: auto;\n filter: drop-shadow(0 1px 10px var(--color-box-shadow));\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -10px;\n border-bottom-width: 0;\n border-top-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -10px;\n border-top-width: 0;\n border-bottom-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n right: 100%;\n border-left-width: 0;\n border-right-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n left: 100%;\n border-right-width: 0;\n border-left-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity 0.15s, visibility 0.15s;\n opacity: 0;\n}\n.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity 0.15s;\n opacity: 1;\n}\n.v-popper--theme-tooltip .v-popper__inner {\n max-width: 350px;\n padding: 5px 8px;\n text-align: center;\n color: var(--color-main-text);\n border-radius: var(--border-radius);\n background-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n margin: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/Tooltip-4CSl8xev.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;;;;CAKC;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,MAAM;EACN,WAAW;EACX,UAAU;EACV,cAAc;EACd,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,iBAAiB;EACjB,UAAU;EACV,gBAAgB;EAChB,gBAAgB;EAChB,uDAAuD;AACzD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,8CAA8C;AAChD;AACA;EACE,UAAU;EACV,mBAAmB;EACnB,iDAAiD;AACnD;AACA;EACE,WAAW;EACX,oBAAoB;EACpB,gDAAgD;AAClD;AACA;EACE,UAAU;EACV,qBAAqB;EACrB,+CAA+C;AACjD;AACA;EACE,kBAAkB;EAClB,2CAA2C;EAC3C,UAAU;AACZ;AACA;EACE,mBAAmB;EACnB,yBAAyB;EACzB,UAAU;AACZ;AACA;EACE,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,6BAA6B;EAC7B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,SAAS;EACT,SAAS;EACT,mBAAmB;EACnB,yBAAyB;EACzB,kBAAkB;AACpB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n\n/**\n* SPDX-FileCopyrightText: 2011-2015 Twitter, Inc.\n* SPDX-FileCopyrightText: 2015-2016 Owncloud, Inc.\n* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors\n* SPDX-License-Identifier: MIT\n*/\n.v-popper--theme-tooltip.v-popper__popper {\n position: absolute;\n z-index: 100000;\n top: 0;\n right: auto;\n left: auto;\n display: block;\n margin: 0;\n padding: 0;\n text-align: left;\n text-align: start;\n opacity: 0;\n line-height: 1.6;\n line-break: auto;\n filter: drop-shadow(0 1px 10px var(--color-box-shadow));\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container {\n bottom: -10px;\n border-bottom-width: 0;\n border-top-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container {\n top: -10px;\n border-top-width: 0;\n border-bottom-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container {\n right: 100%;\n border-left-width: 0;\n border-right-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container {\n left: 100%;\n border-right-width: 0;\n border-left-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip.v-popper__popper[aria-hidden=true] {\n visibility: hidden;\n transition: opacity 0.15s, visibility 0.15s;\n opacity: 0;\n}\n.v-popper--theme-tooltip.v-popper__popper[aria-hidden=false] {\n visibility: visible;\n transition: opacity 0.15s;\n opacity: 1;\n}\n.v-popper--theme-tooltip .v-popper__inner {\n max-width: 350px;\n padding: 5px 8px;\n text-align: center;\n color: var(--color-main-text);\n border-radius: var(--border-radius);\n background-color: var(--color-main-background);\n}\n.v-popper--theme-tooltip .v-popper__arrow-container {\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n margin: 0;\n border-style: solid;\n border-color: transparent;\n border-width: 10px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|82(0|79)|(78|96)43|1952|4897|5438|590|6174|6371)$/.test(n.j)?null:o},12761:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,"/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b293f5d9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.widget-custom[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n}\n.widget-custom.full-width[data-v-b293f5d9] {\n width: var(--widget-full-width, 100%) !important;\n left: calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);\n position: relative;\n}\n.widget-access[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n padding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n.widget-default[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n}\n.widget-default--compact[data-v-b293f5d9] {\n flex-direction: column;\n}\n.widget-default--compact .widget-default--image[data-v-b293f5d9] {\n width: 100%;\n height: 150px;\n}\n.widget-default--compact .widget-default--details[data-v-b293f5d9] {\n width: 100%;\n padding-top: calc(var(--default-grid-baseline, 4px) * 2);\n padding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n}\n.widget-default--compact .widget-default--description[data-v-b293f5d9] {\n display: none;\n}\n.widget-default--image[data-v-b293f5d9] {\n width: 40%;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n}\n.widget-default--name[data-v-b293f5d9] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n}\n.widget-default--details[data-v-b293f5d9] {\n padding: calc(var(--default-grid-baseline, 4px) * 3);\n width: 60%;\n}\n.widget-default--details p[data-v-b293f5d9] {\n margin: 0;\n padding: 0;\n}\n.widget-default--description[data-v-b293f5d9] {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n.widget-default--link[data-v-b293f5d9] {\n color: var(--color-text-maxcontrast);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.toggle-interactive[data-v-b293f5d9] {\n position: relative;\n}\n.toggle-interactive .toggle-interactive--button[data-v-b293f5d9] {\n position: absolute;\n top: 50%;\n z-index: 10000;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n opacity: 0;\n}\n.toggle-interactive:focus-within .toggle-interactive--button[data-v-b293f5d9], .toggle-interactive:hover .toggle-interactive--button[data-v-b293f5d9] {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de9850e4] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e54e09d6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.provider-list[data-v-e54e09d6] {\n width: 100%;\n min-height: 400px;\n padding: 0 16px 16px 16px;\n display: flex;\n flex-direction: column;\n}\n.provider-list--select[data-v-e54e09d6] {\n width: 100%;\n}\n.provider-list--select .provider[data-v-e54e09d6] {\n display: flex;\n align-items: center;\n height: 28px;\n overflow: hidden;\n}\n.provider-list--select .provider .link-icon[data-v-e54e09d6] {\n margin-right: 8px;\n}\n.provider-list--select .provider .provider-icon[data-v-e54e09d6] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n margin-right: 8px;\n filter: var(--background-invert-if-dark);\n}\n.provider-list--select .provider .option-text[data-v-e54e09d6] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c1803b5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.raw-link[data-v-3c1803b5] {\n width: 100%;\n min-height: 350px;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n padding: 0 16px 16px 16px;\n}\n.raw-link .input-wrapper[data-v-3c1803b5] {\n width: 100%;\n}\n.raw-link .reference-widget[data-v-3c1803b5] {\n display: flex;\n}\n.raw-link--empty-content .provider-icon[data-v-3c1803b5] {\n width: 150px;\n height: 150px;\n object-fit: contain;\n filter: var(--background-invert-if-dark);\n}\n.raw-link--input[data-v-3c1803b5] {\n width: 99%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8571023b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.result[data-v-8571023b] {\n display: flex;\n align-items: center;\n height: var(--default-clickable-area);\n overflow: hidden;\n}\n.result--icon-class[data-v-8571023b], .result--image[data-v-8571023b] {\n width: 40px;\n min-width: 40px;\n height: 40px;\n object-fit: contain;\n}\n.result--icon-class.rounded[data-v-8571023b], .result--image.rounded[data-v-8571023b] {\n border-radius: 50%;\n}\n.result--content[data-v-8571023b] {\n display: flex;\n flex-direction: column;\n padding-left: 10px;\n overflow: hidden;\n}\n.result--content--name[data-v-8571023b], .result--content--subline[data-v-8571023b] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-05fef988] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.smart-picker-search[data-v-05fef988] {\n width: 100%;\n display: flex;\n flex-direction: column;\n padding: 0 16px 16px 16px;\n}\n.smart-picker-search.with-empty-content[data-v-05fef988] {\n min-height: 400px;\n}\n.smart-picker-search .provider-icon[data-v-05fef988] {\n width: 150px;\n height: 150px;\n object-fit: contain;\n filter: var(--background-invert-if-dark);\n}\n.smart-picker-search--select[data-v-05fef988] {\n width: 100%;\n}\n.smart-picker-search--select .search-result[data-v-05fef988] {\n width: 100%;\n}\n.smart-picker-search--select .group-name-icon[data-v-05fef988],\n.smart-picker-search--select .option-simple-icon[data-v-05fef988] {\n width: 20px;\n height: 20px;\n margin: 0 20px 0 10px;\n}\n.smart-picker-search--select .custom-option[data-v-05fef988] {\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.smart-picker-search--select .option-text[data-v-05fef988] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-f3f0de17] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker[data-v-f3f0de17] {\n display: flex;\n overflow-y: auto;\n width: 100%;\n}\n.reference-picker .custom-element-wrapper[data-v-f3f0de17] {\n display: flex;\n overflow-y: auto;\n width: 100%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker-modal .modal-container {\n display: flex !important;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-19d3f57d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker-modal--content[data-v-19d3f57d] {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: auto;\n}\n.reference-picker-modal--content .close-button[data-v-19d3f57d],\n.reference-picker-modal--content .back-button[data-v-19d3f57d] {\n position: absolute;\n top: 4px;\n}\n.reference-picker-modal--content .back-button[data-v-19d3f57d] {\n left: 4px;\n}\n.reference-picker-modal--content .close-button[data-v-19d3f57d] {\n right: 4px;\n}\n.reference-picker-modal--content > h2[data-v-19d3f57d] {\n display: flex;\n margin: 12px 0 20px 0;\n}\n.reference-picker-modal--content > h2 .icon[data-v-19d3f57d] {\n margin-right: 8px;\n}","",{version:3,sources:["webpack://./node_modules/@nextcloud/vue/dist/assets/referencePickerModal-9BcmmfUy.css"],names:[],mappings:"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,YAAY;EACZ,0DAA0D;EAC1D,uDAAuD;EACvD,gBAAgB;EAChB,qCAAqC;EACrC,yCAAyC;EACzC,6BAA6B;EAC7B,aAAa;AACf;AACA;EACE,gDAAgD;EAChD,4DAA4D;EAC5D,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,0DAA0D;EAC1D,uDAAuD;EACvD,gBAAgB;EAChB,qCAAqC;EACrC,yCAAyC;EACzC,6BAA6B;EAC7B,aAAa;EACb,oDAAoD;AACtD;AACA;EACE,WAAW;EACX,YAAY;EACZ,0DAA0D;EAC1D,uDAAuD;EACvD,gBAAgB;EAChB,qCAAqC;EACrC,yCAAyC;EACzC,6BAA6B;EAC7B,aAAa;AACf;AACA;EACE,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,aAAa;AACf;AACA;EACE,WAAW;EACX,wDAAwD;EACxD,2DAA2D;AAC7D;AACA;EACE,aAAa;AACf;AACA;EACE,UAAU;EACV,2BAA2B;EAC3B,sBAAsB;EACtB,4BAA4B;AAC9B;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,oDAAoD;EACpD,UAAU;AACZ;AACA;EACE,SAAS;EACT,UAAU;AACZ;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;EACrB,aAAa;EACb,4BAA4B;AAC9B;AACA;EACE,oCAAoC;EACpC,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,cAAc;EACd,SAAS;EACT,4CAA4C;EAC5C,UAAU;AACZ;AACA;EACE,UAAU;AACZ,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,yBAAyB;EACzB,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,iBAAiB;EACjB,wCAAwC;AAC1C;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,aAAa;EACb,sBAAsB;EACtB,gBAAgB;EAChB,yBAAyB;AAC3B;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,wCAAwC;AAC1C;AACA;EACE,UAAU;AACZ,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,qCAAqC;EACrC,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,eAAe;EACf,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,yBAAyB;AAC3B;AACA;EACE,iBAAiB;AACnB;AACA;EACE,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,wCAAwC;AAC1C;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;;EAEE,WAAW;EACX,YAAY;EACZ,qBAAqB;AACvB;AACA;EACE,qCAAqC;EACrC,aAAa;EACb,mBAAmB;EACnB,gBAAgB;AAClB;AACA;EACE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,WAAW;AACb;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,WAAW;AACb,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,wBAAwB;AAC1B,CAAC;;;EAGC;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;;EAEE,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE,SAAS;AACX;AACA;EACE,UAAU;AACZ;AACA;EACE,aAAa;EACb,qBAAqB;AACvB;AACA;EACE,iBAAiB;AACnB",sourcesContent:["/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-b293f5d9] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.widget-custom[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n}\n.widget-custom.full-width[data-v-b293f5d9] {\n width: var(--widget-full-width, 100%) !important;\n left: calc((var(--widget-full-width, 100%) - 100%) / 2 * -1);\n position: relative;\n}\n.widget-access[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n padding: calc(var(--default-grid-baseline, 4px) * 3);\n}\n.widget-default[data-v-b293f5d9] {\n width: 100%;\n margin: auto;\n margin-bottom: calc(var(--default-grid-baseline, 4px) * 3);\n margin-top: calc(var(--default-grid-baseline, 4px) * 3);\n overflow: hidden;\n border: 2px solid var(--color-border);\n border-radius: var(--border-radius-large);\n background-color: transparent;\n display: flex;\n}\n.widget-default--compact[data-v-b293f5d9] {\n flex-direction: column;\n}\n.widget-default--compact .widget-default--image[data-v-b293f5d9] {\n width: 100%;\n height: 150px;\n}\n.widget-default--compact .widget-default--details[data-v-b293f5d9] {\n width: 100%;\n padding-top: calc(var(--default-grid-baseline, 4px) * 2);\n padding-bottom: calc(var(--default-grid-baseline, 4px) * 2);\n}\n.widget-default--compact .widget-default--description[data-v-b293f5d9] {\n display: none;\n}\n.widget-default--image[data-v-b293f5d9] {\n width: 40%;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n}\n.widget-default--name[data-v-b293f5d9] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: bold;\n}\n.widget-default--details[data-v-b293f5d9] {\n padding: calc(var(--default-grid-baseline, 4px) * 3);\n width: 60%;\n}\n.widget-default--details p[data-v-b293f5d9] {\n margin: 0;\n padding: 0;\n}\n.widget-default--description[data-v-b293f5d9] {\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n.widget-default--link[data-v-b293f5d9] {\n color: var(--color-text-maxcontrast);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.toggle-interactive[data-v-b293f5d9] {\n position: relative;\n}\n.toggle-interactive .toggle-interactive--button[data-v-b293f5d9] {\n position: absolute;\n top: 50%;\n z-index: 10000;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n opacity: 0;\n}\n.toggle-interactive:focus-within .toggle-interactive--button[data-v-b293f5d9], .toggle-interactive:hover .toggle-interactive--button[data-v-b293f5d9] {\n opacity: 1;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-de9850e4] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-e54e09d6] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.provider-list[data-v-e54e09d6] {\n width: 100%;\n min-height: 400px;\n padding: 0 16px 16px 16px;\n display: flex;\n flex-direction: column;\n}\n.provider-list--select[data-v-e54e09d6] {\n width: 100%;\n}\n.provider-list--select .provider[data-v-e54e09d6] {\n display: flex;\n align-items: center;\n height: 28px;\n overflow: hidden;\n}\n.provider-list--select .provider .link-icon[data-v-e54e09d6] {\n margin-right: 8px;\n}\n.provider-list--select .provider .provider-icon[data-v-e54e09d6] {\n width: 20px;\n height: 20px;\n object-fit: contain;\n margin-right: 8px;\n filter: var(--background-invert-if-dark);\n}\n.provider-list--select .provider .option-text[data-v-e54e09d6] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-3c1803b5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.raw-link[data-v-3c1803b5] {\n width: 100%;\n min-height: 350px;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n padding: 0 16px 16px 16px;\n}\n.raw-link .input-wrapper[data-v-3c1803b5] {\n width: 100%;\n}\n.raw-link .reference-widget[data-v-3c1803b5] {\n display: flex;\n}\n.raw-link--empty-content .provider-icon[data-v-3c1803b5] {\n width: 150px;\n height: 150px;\n object-fit: contain;\n filter: var(--background-invert-if-dark);\n}\n.raw-link--input[data-v-3c1803b5] {\n width: 99%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-8571023b] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.result[data-v-8571023b] {\n display: flex;\n align-items: center;\n height: var(--default-clickable-area);\n overflow: hidden;\n}\n.result--icon-class[data-v-8571023b], .result--image[data-v-8571023b] {\n width: 40px;\n min-width: 40px;\n height: 40px;\n object-fit: contain;\n}\n.result--icon-class.rounded[data-v-8571023b], .result--image.rounded[data-v-8571023b] {\n border-radius: 50%;\n}\n.result--content[data-v-8571023b] {\n display: flex;\n flex-direction: column;\n padding-left: 10px;\n overflow: hidden;\n}\n.result--content--name[data-v-8571023b], .result--content--subline[data-v-8571023b] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-05fef988] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.smart-picker-search[data-v-05fef988] {\n width: 100%;\n display: flex;\n flex-direction: column;\n padding: 0 16px 16px 16px;\n}\n.smart-picker-search.with-empty-content[data-v-05fef988] {\n min-height: 400px;\n}\n.smart-picker-search .provider-icon[data-v-05fef988] {\n width: 150px;\n height: 150px;\n object-fit: contain;\n filter: var(--background-invert-if-dark);\n}\n.smart-picker-search--select[data-v-05fef988] {\n width: 100%;\n}\n.smart-picker-search--select .search-result[data-v-05fef988] {\n width: 100%;\n}\n.smart-picker-search--select .group-name-icon[data-v-05fef988],\n.smart-picker-search--select .option-simple-icon[data-v-05fef988] {\n width: 20px;\n height: 20px;\n margin: 0 20px 0 10px;\n}\n.smart-picker-search--select .custom-option[data-v-05fef988] {\n height: var(--default-clickable-area);\n display: flex;\n align-items: center;\n overflow: hidden;\n}\n.smart-picker-search--select .option-text[data-v-05fef988] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-f3f0de17] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker[data-v-f3f0de17] {\n display: flex;\n overflow-y: auto;\n width: 100%;\n}\n.reference-picker .custom-element-wrapper[data-v-f3f0de17] {\n display: flex;\n overflow-y: auto;\n width: 100%;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker-modal .modal-container {\n display: flex !important;\n}/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-19d3f57d] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.reference-picker-modal--content[data-v-19d3f57d] {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n overflow-y: auto;\n}\n.reference-picker-modal--content .close-button[data-v-19d3f57d],\n.reference-picker-modal--content .back-button[data-v-19d3f57d] {\n position: absolute;\n top: 4px;\n}\n.reference-picker-modal--content .back-button[data-v-19d3f57d] {\n left: 4px;\n}\n.reference-picker-modal--content .close-button[data-v-19d3f57d] {\n right: 4px;\n}\n.reference-picker-modal--content > h2[data-v-19d3f57d] {\n display: flex;\n margin: 12px 0 20px 0;\n}\n.reference-picker-modal--content > h2 .icon[data-v-19d3f57d] {\n margin-right: 8px;\n}"],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|6(174|371|600)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590)$/.test(n.j)?null:o},67507:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var a=n(71354),r=n.n(a),i=n(76314),o=n.n(i)()(r());o.push([e.id,'.splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;-o-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;-o-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;-o-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}\n',"",{version:3,sources:["webpack://./node_modules/splitpanes/dist/splitpanes.css"],names:[],mappings:"AAAA,YAAY,mBAAmB,CAAC,mBAAmB,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,sBAAsB,6BAA6B,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,wBAAwB,2BAA2B,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,wBAAwB,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,kBAAkB,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,wCAAwC,qCAAqC,CAAC,gCAAgC,CAAC,6BAA6B,CAAC,0CAA0C,sCAAsC,CAAC,iCAAiC,CAAC,8BAA8B,CAAC,wCAAwC,uBAAuB,CAAC,kBAAkB,CAAC,eAAe,CAAC,sBAAsB,qBAAqB,CAAC,iBAAiB,CAAC,4CAA4C,aAAa,CAAC,iBAAiB,CAAC,8CAA8C,cAAc,CAAC,iBAAiB,CAAC,4CAA4C,wBAAwB,CAAC,gDAAgD,qBAAqB,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,aAAa,CAAC,6GAA6G,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,uCAAuC,CAAC,kCAAkC,CAAC,+BAA+B,CAAC,yHAAyH,0BAA0B,CAAC,4DAA4D,WAAW,CAAC,4DAA4D,SAAS,CAAC,qHAAqH,SAAS,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,oQAAoQ,kCAAkC,CAAC,8BAA8B,CAAC,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC,mIAAmI,gBAAgB,CAAC,iIAAiI,eAAe,CAAC,yHAAyH,UAAU,CAAC,yBAAyB,CAAC,eAAe,CAAC,4QAA4Q,kCAAkC,CAAC,8BAA8B,CAAC,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,uIAAuI,eAAe,CAAC,qIAAqI,cAAc",sourcesContent:['.splitpanes{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%}.splitpanes--vertical{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.splitpanes--horizontal{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{-webkit-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{-webkit-transition:height .2s ease-out;-o-transition:height .2s ease-out;transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{-webkit-transition:none;-o-transition:none;transition:none}.splitpanes__splitter{-ms-touch-action:none;touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-negative:0;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:before,.splitpanes.default-theme .splitpanes__splitter:after{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;-webkit-transition:background-color .3s;-o-transition:background-color .3s;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:before,.splitpanes.default-theme .splitpanes__splitter:hover:after{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme.splitpanes--vertical>.splitpanes__splitter,.default-theme .splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:1px;height:30px}.default-theme.splitpanes--vertical>.splitpanes__splitter:before,.default-theme .splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter,.default-theme .splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%);width:30px;height:1px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:before,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}\n'],sourceRoot:""}]);const s=/^(2((07|69|76)6|299|573)|3(012|260|604)|82(0|79)|(442|784|964)3|1864|1952|4897|5438|590|6174|6371)$/.test(n.j)?null:o},76314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",a=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),a&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),a&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,a,r,i){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(a)for(var s=0;s0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=i),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),t.push(d))}},t}},4417:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},71354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),i="/*# ".concat(r," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},79560:(e,t,n)=>{"use strict";function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function r(e){return a(e)?new Date(e.getTime()):null==e?new Date(NaN):new Date(e)}function i(e){return a(e)&&!isNaN(e.getTime())}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(!(t>=0&&t<=6))throw new RangeError("weekStartsOn must be between 0 and 6");var n=r(e),a=(n.getDay()+7-t)%7;return n.setDate(n.getDate()-a),n.setHours(0,0,0,0),n}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.firstDayOfWeek,a=void 0===n?0:n,i=t.firstWeekContainsDate,s=void 0===i?1:i;if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7");for(var l=r(e),u=l.getFullYear(),d=new Date(0),c=u+1;c>=u-1&&(d.setFullYear(c,0,s),d.setHours(0,0,0,0),d=o(d,a),!(l.getTime()>=d.getTime()));c--);return d}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.firstDayOfWeek,a=void 0===n?0:n,i=t.firstWeekContainsDate,l=void 0===i?1:i,u=r(e),d=o(u,a),c=s(u,{firstDayOfWeek:a,firstWeekContainsDate:l}),m=d.getTime()-c.getTime();return Math.round(m/6048e5)+1}n.d(t,{Nr:()=>l,ay:()=>r,bu:()=>s,vd:()=>i})},17334:e=>{function t(e,t=100,n={}){if("function"!=typeof e)throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw new RangeError("`wait` must not be negative.");const{immediate:a}="boolean"==typeof n?{immediate:n}:n;let r,i,o,s,l;function u(){const t=r,n=i;return r=void 0,i=void 0,l=e.apply(t,n),l}function d(){const e=Date.now()-s;e=0?o=setTimeout(d,t-e):(o=void 0,a||(l=u()))}const c=function(...e){if(r&&this!==r)throw new Error("Debounced method called with different contexts.");r=this,i=e,s=Date.now();const n=a&&!o;return o||(o=setTimeout(d,t)),n&&(l=u()),l};return c.clear=()=>{o&&(clearTimeout(o),o=void 0)},c.flush=()=>{o&&c.trigger()},c.trigger=()=>{l=u(),c.clear()},c}e.exports.debounce=t,e.exports=t},30041:(e,t,n)=>{"use strict";var a=n(30655),r=n(58068),i=n(69675),o=n(75795);e.exports=function(e,t,n){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new i("`obj` must be an object or a function`");if("string"!=typeof t&&"symbol"!=typeof t)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,d=arguments.length>6&&arguments[6],c=!!o&&o(e,t);if(a)a(e,t,{configurable:null===u&&c?c.configurable:!u,enumerable:null===s&&c?c.enumerable:!s,value:n,writable:null===l&&c?c.writable:!l});else{if(!d&&(s||l||u))throw new r("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");e[t]=n}}},38452:(e,t,n)=>{"use strict";var a=n(1189),r="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,o=Array.prototype.concat,s=n(30041),l=n(30592)(),u=function(e,t,n,a){if(t in e)if(!0===a){if(e[t]===n)return}else if("function"!=typeof(r=a)||"[object Function]"!==i.call(r)||!a())return;var r;l?s(e,t,n,!0):s(e,t,n)},d=function(e,t){var n=arguments.length>2?arguments[2]:{},i=a(t);r&&(i=o.call(i,Object.getOwnPropertySymbols(t)));for(var s=0;s1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=a.length;for(;i--;){let t=a[i];if("string"==typeof t){const e=r(t);e!==t&&(n(a)||(a[i]=e),t=e)}e[t]=!0}return e}function E(e){for(let t=0;t/gm),z=s(/\${[\w\W]*}/gm),U=s(/^data-[\-\w.\u00B7-\uFFFF]/),q=s(/^aria-[\-\w]+$/),G=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Z=s(/^(?:\w+script|data):/i),$=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),W=s(/^html$/i),V=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var X=Object.freeze({__proto__:null,MUSTACHE_EXPR:I,ERB_EXPR:H,TMPLIT_EXPR:z,DATA_ATTR:U,ARIA_ATTR:q,IS_ALLOWED_URI:G,IS_SCRIPT_OR_DATA:Z,ATTR_WHITESPACE:$,DOCTYPE_NAME:W,CUSTOM_ELEMENT:V});const K=1,J=3,Q=7,ee=8,te=9,ne=function(){return"undefined"==typeof window?null:window};return function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ne();const r=e=>t(e);if(r.version="3.1.6",r.removed=[],!n||!n.document||n.document.nodeType!==te)return r.isSupported=!1,r;let{document:i}=n;const s=i,u=s.currentScript,{DocumentFragment:d,HTMLTemplateElement:k,Node:w,Element:E,NodeFilter:I,NamedNodeMap:H=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:z,DOMParser:U,trustedTypes:q}=n,Z=E.prototype,$=x(Z,"cloneNode"),V=x(Z,"remove"),ae=x(Z,"nextSibling"),re=x(Z,"childNodes"),ie=x(Z,"parentNode");if("function"==typeof k){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let oe,se="";const{implementation:le,createNodeIterator:ue,createDocumentFragment:de,getElementsByTagName:ce}=i,{importNode:me}=s;let he={};r.isSupported="function"==typeof e&&"function"==typeof ie&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:pe,TMPLIT_EXPR:ge,DATA_ATTR:_e,ARIA_ATTR:ve,IS_SCRIPT_OR_DATA:be,ATTR_WHITESPACE:Ae,CUSTOM_ELEMENT:ye}=X;let{IS_ALLOWED_URI:Fe}=X,ke=null;const we=C({},[...D,...S,...B,...L,...j]);let Ce=null;const Ee=C({},[...O,...P,...Y,...R]);let Te=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),xe=null,De=null,Se=!0,Be=!0,Me=!1,Le=!0,Ne=!1,je=!0,Oe=!1,Pe=!1,Ye=!1,Re=!1,Ie=!1,He=!1,ze=!0,Ue=!1,qe=!0,Ge=!1,Ze={},$e=null;const We=C({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ve=null;const Xe=C({},["audio","video","img","source","image","track"]);let Ke=null;const Je=C({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qe="http://www.w3.org/1998/Math/MathML",et="http://www.w3.org/2000/svg",tt="http://www.w3.org/1999/xhtml";let nt=tt,at=!1,rt=null;const it=C({},[Qe,et,tt],p);let ot=null;const st=["application/xhtml+xml","text/html"];let lt=null,ut=null;const dt=i.createElement("form"),ct=function(e){return e instanceof RegExp||e instanceof Function},mt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ut||ut!==e){if(e&&"object"==typeof e||(e={}),e=T(e),ot=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===ot?p:f,ke=A(e,"ALLOWED_TAGS")?C({},e.ALLOWED_TAGS,lt):we,Ce=A(e,"ALLOWED_ATTR")?C({},e.ALLOWED_ATTR,lt):Ee,rt=A(e,"ALLOWED_NAMESPACES")?C({},e.ALLOWED_NAMESPACES,p):it,Ke=A(e,"ADD_URI_SAFE_ATTR")?C(T(Je),e.ADD_URI_SAFE_ATTR,lt):Je,Ve=A(e,"ADD_DATA_URI_TAGS")?C(T(Xe),e.ADD_DATA_URI_TAGS,lt):Xe,$e=A(e,"FORBID_CONTENTS")?C({},e.FORBID_CONTENTS,lt):We,xe=A(e,"FORBID_TAGS")?C({},e.FORBID_TAGS,lt):{},De=A(e,"FORBID_ATTR")?C({},e.FORBID_ATTR,lt):{},Ze=!!A(e,"USE_PROFILES")&&e.USE_PROFILES,Se=!1!==e.ALLOW_ARIA_ATTR,Be=!1!==e.ALLOW_DATA_ATTR,Me=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Le=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Ne=e.SAFE_FOR_TEMPLATES||!1,je=!1!==e.SAFE_FOR_XML,Oe=e.WHOLE_DOCUMENT||!1,Re=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,He=e.RETURN_TRUSTED_TYPE||!1,Ye=e.FORCE_BODY||!1,ze=!1!==e.SANITIZE_DOM,Ue=e.SANITIZE_NAMED_PROPS||!1,qe=!1!==e.KEEP_CONTENT,Ge=e.IN_PLACE||!1,Fe=e.ALLOWED_URI_REGEXP||G,nt=e.NAMESPACE||tt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ct(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ct(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ne&&(Be=!1),Ie&&(Re=!0),Ze&&(ke=C({},j),Ce=[],!0===Ze.html&&(C(ke,D),C(Ce,O)),!0===Ze.svg&&(C(ke,S),C(Ce,P),C(Ce,R)),!0===Ze.svgFilters&&(C(ke,B),C(Ce,P),C(Ce,R)),!0===Ze.mathMl&&(C(ke,L),C(Ce,Y),C(Ce,R))),e.ADD_TAGS&&(ke===we&&(ke=T(ke)),C(ke,e.ADD_TAGS,lt)),e.ADD_ATTR&&(Ce===Ee&&(Ce=T(Ce)),C(Ce,e.ADD_ATTR,lt)),e.ADD_URI_SAFE_ATTR&&C(Ke,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&($e===We&&($e=T($e)),C($e,e.FORBID_CONTENTS,lt)),qe&&(ke["#text"]=!0),Oe&&C(ke,["html","head","body"]),ke.table&&(C(ke,["tbody"]),delete xe.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw F('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw F('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');oe=e.TRUSTED_TYPES_POLICY,se=oe.createHTML("")}else void 0===oe&&(oe=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(n=t.getAttribute(r));const i="dompurify"+(n?"#"+n:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return a.warn("TrustedTypes policy "+i+" could not be created."),null}}(q,u)),null!==oe&&"string"==typeof se&&(se=oe.createHTML(""));o&&o(e),ut=e}},ht=C({},["mi","mo","mn","ms","mtext"]),ft=C({},["foreignobject","annotation-xml"]),pt=C({},["title","style","font","a","script"]),gt=C({},[...S,...B,...M]),_t=C({},[...L,...N]),vt=function(e){h(r.removed,{element:e});try{ie(e).removeChild(e)}catch(t){V(e)}},bt=function(e,t){try{h(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){h(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e&&!Ce[e])if(Re||Ie)try{vt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},At=function(e){let t=null,n=null;if(Ye)e=""+e;else{const t=g(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ot&&nt===tt&&(e=''+e+"");const a=oe?oe.createHTML(e):e;if(nt===tt)try{t=(new U).parseFromString(a,ot)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(nt,"template",null);try{t.documentElement.innerHTML=at?se:a}catch(e){}}const r=t.body||t.documentElement;return e&&n&&r.insertBefore(i.createTextNode(n),r.childNodes[0]||null),nt===tt?ce.call(t,Oe?"html":"body")[0]:Oe?t.documentElement:r},yt=function(e){return ue.call(e.ownerDocument||e,e,I.SHOW_ELEMENT|I.SHOW_COMMENT|I.SHOW_TEXT|I.SHOW_PROCESSING_INSTRUCTION|I.SHOW_CDATA_SECTION,null)},Ft=function(e){return e instanceof z&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof H)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},kt=function(e){return"function"==typeof w&&e instanceof w},wt=function(e,t,n){he[e]&&c(he[e],(e=>{e.call(r,t,n,ut)}))},Ct=function(e){let t=null;if(wt("beforeSanitizeElements",e,null),Ft(e))return vt(e),!0;const n=lt(e.nodeName);if(wt("uponSanitizeElement",e,{tagName:n,allowedTags:ke}),e.hasChildNodes()&&!kt(e.firstElementChild)&&y(/<[/\w]/g,e.innerHTML)&&y(/<[/\w]/g,e.textContent))return vt(e),!0;if(e.nodeType===Q)return vt(e),!0;if(je&&e.nodeType===ee&&y(/<[/\w]/g,e.data))return vt(e),!0;if(!ke[n]||xe[n]){if(!xe[n]&&Tt(n)){if(Te.tagNameCheck instanceof RegExp&&y(Te.tagNameCheck,n))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))return!1}if(qe&&!$e[n]){const t=ie(e)||e.parentNode,n=re(e)||e.childNodes;if(n&&t)for(let a=n.length-1;a>=0;--a){const r=$(n[a],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ae(e))}}return vt(e),!0}return e instanceof E&&!function(e){let t=ie(e);t&&t.tagName||(t={namespaceURI:nt,tagName:"template"});const n=f(e.tagName),a=f(t.tagName);return!!rt[e.namespaceURI]&&(e.namespaceURI===et?t.namespaceURI===tt?"svg"===n:t.namespaceURI===Qe?"svg"===n&&("annotation-xml"===a||ht[a]):Boolean(gt[n]):e.namespaceURI===Qe?t.namespaceURI===tt?"math"===n:t.namespaceURI===et?"math"===n&&ft[a]:Boolean(_t[n]):e.namespaceURI===tt?!(t.namespaceURI===et&&!ft[a])&&!(t.namespaceURI===Qe&&!ht[a])&&!_t[n]&&(pt[n]||!gt[n]):!("application/xhtml+xml"!==ot||!rt[e.namespaceURI]))}(e)?(vt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!y(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ne&&e.nodeType===J&&(t=e.textContent,c([fe,pe,ge],(e=>{t=_(t,e," ")})),e.textContent!==t&&(h(r.removed,{element:e.cloneNode()}),e.textContent=t)),wt("afterSanitizeElements",e,null),!1):(vt(e),!0)},Et=function(e,t,n){if(ze&&("id"===t||"name"===t)&&(n in i||n in dt))return!1;if(Be&&!De[t]&&y(_e,t));else if(Se&&y(ve,t));else if(!Ce[t]||De[t]){if(!(Tt(e)&&(Te.tagNameCheck instanceof RegExp&&y(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&y(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&y(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ke[t]);else if(y(Fe,_(n,Ae,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==v(n,"data:")||!Ve[e])if(Me&&!y(be,_(n,Ae,"")));else if(n)return!1;return!0},Tt=function(e){return"annotation-xml"!==e&&g(e,ye)},xt=function(e){wt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ce};let a=t.length;for(;a--;){const i=t[a],{name:o,namespaceURI:s,value:l}=i,u=lt(o);let d="value"===o?l:b(l);if(n.attrName=u,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,wt("uponSanitizeAttribute",e,n),d=n.attrValue,je&&y(/((--!?|])>)|<\/(style|title)/i,d)){bt(o,e);continue}if(n.forceKeepAttr)continue;if(bt(o,e),!n.keepAttr)continue;if(!Le&&y(/\/>/i,d)){bt(o,e);continue}Ne&&c([fe,pe,ge],(e=>{d=_(d,e," ")}));const h=lt(e.nodeName);if(Et(h,u,d)){if(!Ue||"id"!==u&&"name"!==u||(bt(o,e),d="user-content-"+d),oe&&"object"==typeof q&&"function"==typeof q.getAttributeType)if(s);else switch(q.getAttributeType(h,u)){case"TrustedHTML":d=oe.createHTML(d);break;case"TrustedScriptURL":d=oe.createScriptURL(d)}try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),Ft(e)?vt(e):m(r.removed)}catch(e){}}}wt("afterSanitizeAttributes",e,null)},Dt=function e(t){let n=null;const a=yt(t);for(wt("beforeSanitizeShadowDOM",t,null);n=a.nextNode();)wt("uponSanitizeShadowNode",n,null),Ct(n)||(n.content instanceof d&&e(n.content),xt(n));wt("afterSanitizeShadowDOM",t,null)};return r.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,a=null,i=null,o=null;if(at=!e,at&&(e="\x3c!--\x3e"),"string"!=typeof e&&!kt(e)){if("function"!=typeof e.toString)throw F("toString is not a function");if("string"!=typeof(e=e.toString()))throw F("dirty is not a string, aborting")}if(!r.isSupported)return e;if(Pe||mt(t),r.removed=[],"string"==typeof e&&(Ge=!1),Ge){if(e.nodeName){const t=lt(e.nodeName);if(!ke[t]||xe[t])throw F("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof w)n=At("\x3c!----\x3e"),a=n.ownerDocument.importNode(e,!0),a.nodeType===K&&"BODY"===a.nodeName||"HTML"===a.nodeName?n=a:n.appendChild(a);else{if(!Re&&!Ne&&!Oe&&-1===e.indexOf("<"))return oe&&He?oe.createHTML(e):e;if(n=At(e),!n)return Re?null:He?se:""}n&&Ye&&vt(n.firstChild);const l=yt(Ge?e:n);for(;i=l.nextNode();)Ct(i)||(i.content instanceof d&&Dt(i.content),xt(i));if(Ge)return e;if(Re){if(Ie)for(o=de.call(n.ownerDocument);n.firstChild;)o.appendChild(n.firstChild);else o=n;return(Ce.shadowroot||Ce.shadowrootmode)&&(o=me.call(s,o,!0)),o}let u=Oe?n.outerHTML:n.innerHTML;return Oe&&ke["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&y(W,n.ownerDocument.doctype.name)&&(u="\n"+u),Ne&&c([fe,pe,ge],(e=>{u=_(u,e," ")})),oe&&He?oe.createHTML(u):u},r.setConfig=function(){mt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},r.clearConfig=function(){ut=null,Pe=!1},r.isValidAttribute=function(e,t,n){ut||mt({});const a=lt(e),r=lt(t);return Et(a,r,n)},r.addHook=function(e,t){"function"==typeof t&&(he[e]=he[e]||[],h(he[e],t))},r.removeHook=function(e){if(he[e])return m(he[e])},r.removeHooks=function(e){he[e]&&(he[e]=[])},r.removeAllHooks=function(){he={}},r}()}()},43850:function(e,t,n){var a=n(96763);"undefined"!=typeof self&&self,e.exports=function(){var e={537:function(){"undefined"!=typeof window&&function(){for(var e=0,t=["ms","moz","webkit","o"],n=0;ne.length)&&(t=e.length);for(var n=0,a=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i=!0,o=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){o=!0,r=e},f:function(){try{i||null==t.return||t.return()}finally{if(o)throw r}}}}(Object.getOwnPropertyNames(e));try{for(n.s();!(t=n.n()).done;){var a=t.value,r=e[a];e[a]=r&&"object"===d(r)?f(r):r}}catch(e){n.e(e)}finally{n.f()}return Object.freeze(e)}var p,g,_=function(e){if(!e.compressed)return e;for(var t in e.compressed=!1,e.emojis){var n=e.emojis[t];for(var a in m)n[a]=n[m[a]],delete n[m[a]];n.short_names||(n.short_names=[]),n.short_names.unshift(t),n.sheet_x=n.sheet[0],n.sheet_y=n.sheet[1],delete n.sheet,n.text||(n.text=""),n.added_in||(n.added_in=6),n.added_in=n.added_in.toFixed(1),n.search=h(n)}return f(e)},v=["+1","grinning","kissing_heart","heart_eyes","laughing","stuck_out_tongue_winking_eye","sweat_smile","joy","scream","disappointed","unamused","weary","sob","sunglasses","heart","hankey"],b={};function A(){g=!0,p=u.get("frequently")}var y={add:function(e){g||A();var t=e.id;p||(p=b),p[t]||(p[t]=0),p[t]+=1,u.set("last",t),u.set("frequently",p)},get:function(e){if(g||A(),!p){b={};for(var t=[],n=Math.min(e,v.length),a=0;a',custom:'',flags:'',foods:'',nature:'',objects:'',smileys:'',people:' ',places:'',recent:'',symbols:''};function k(e,t,n,a,r,i,o,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),o?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(e,t){return l.call(t),d(e,t)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:u}}var w=k({props:{i18n:{type:Object,required:!0},color:{type:String},categories:{type:Array,required:!0},activeCategory:{type:Object,default:function(){return{}}}},emits:["click"],created:function(){this.svgs=F}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-anchors",attrs:{role:"tablist"}},e._l(e.categories,(function(n){return t("button",{key:n.id,class:{"emoji-mart-anchor":!0,"emoji-mart-anchor-selected":n.id==e.activeCategory.id},style:{color:n.id==e.activeCategory.id?e.color:""},attrs:{role:"tab",type:"button","aria-label":n.name,"aria-selected":n.id==e.activeCategory.id,"data-title":e.i18n.categories[n.id]},on:{click:function(t){return e.$emit("click",n)}}},[t("div",{attrs:{"aria-hidden":"true"},domProps:{innerHTML:e._s(e.svgs[n.id])}}),e._v(" "),t("span",{staticClass:"emoji-mart-anchor-bar",style:{backgroundColor:e.color},attrs:{"aria-hidden":"true"}})])})),0)}),[],!1,null,null,null),C=w.exports;function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function T(e){var t=function(e){if("object"!=d(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(t)?t:t+""}function x(e,t){for(var n=0;n1114111||Math.floor(o)!=o)throw RangeError("Invalid code point: "+o);o<=65535?n.push(o):(e=55296+((o-=65536)>>10),t=o%1024+56320,n.push(e,t)),(a+1===r||n.length>16384)&&(i+=String.fromCharCode.apply(null,n),n.length=0)}return i};function B(e){var t=e.split("-").map((function(e){return"0x".concat(e)}));return S.apply(null,t)}function M(e){return e.reduce((function(e,t){return-1===e.indexOf(t)&&e.push(t),e}),[])}function L(e,t){var n=M(e),a=M(t);return n.filter((function(e){return a.indexOf(e)>=0}))}function N(e,t){var n={};for(var a in e){var r=e[a],i=r;t.hasOwnProperty(a)&&(i=t[a]),"object"===d(i)&&(i=N(r,i)),n[a]=i}return n}function j(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw i}}}}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},a=n.emojisToShowFilter,r=n.include,i=n.exclude,o=n.custom,s=n.recent,l=n.recentLength,u=void 0===l?20:l;E(this,e),this._data=_(t),this._emojisFilter=a||null,this._include=r||null,this._exclude=i||null,this._custom=o||[],this._recent=s||y.get(u),this._emojis={},this._nativeEmojis={},this._emoticons={},this._categories=[],this._recentCategory={id:"recent",name:"Recent",emojis:[]},this._customCategory={id:"custom",name:"Custom",emojis:[]},this._searchIndex={},this.buildIndex(),Object.freeze(this)}),[{key:"buildIndex",value:function(){var e=this,t=this._data.categories;if(this._include&&(t=(t=t.filter((function(t){return e._include.includes(t.id)}))).sort((function(t,n){var a=e._include.indexOf(t.id),r=e._include.indexOf(n.id);return ar?1:0}))),t.forEach((function(t){if(e.isCategoryNeeded(t.id)){var n={id:t.id,name:t.name,emojis:[]};t.emojis.forEach((function(t){var a=e.addEmoji(t);a&&n.emojis.push(a)})),n.emojis.length&&e._categories.push(n)}})),this.isCategoryNeeded("custom")){if(this._custom.length>0){var n,a=j(this._custom);try{for(a.s();!(n=a.n()).done;){var r=n.value;this.addCustomEmoji(r)}}catch(e){a.e(e)}finally{a.f()}}this._customCategory.emojis.length&&this._categories.push(this._customCategory)}this.isCategoryNeeded("recent")&&(this._recent.length&&this._recent.map((function(t){var n,a=j(e._customCategory.emojis);try{for(a.s();!(n=a.n()).done;){var r=n.value;if(r.id===t)return void e._recentCategory.emojis.push(r)}}catch(e){a.e(e)}finally{a.f()}e.hasEmoji(t)&&e._recentCategory.emojis.push(e.emoji(t))})),this._recentCategory.emojis.length&&this._categories.unshift(this._recentCategory))}},{key:"findEmoji",value:function(e,t){var n=e.match(P);if(n&&(e=n[1],n[2]&&(t=parseInt(n[2],10))),this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),this._emojis.hasOwnProperty(e)){var a=this._emojis[e];return t?a.getSkin(t):a}return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"categories",value:function(){return this._categories}},{key:"emoji",value:function(e){this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]);var t=this._emojis[e];if(!t)throw new Error("Can not find emoji by id: "+e);return t}},{key:"firstEmoji",value:function(){var e=this._emojis[Object.keys(this._emojis)[0]];if(!e)throw new Error("Can not get first emoji");return e}},{key:"hasEmoji",value:function(e){return this._data.aliases.hasOwnProperty(e)&&(e=this._data.aliases[e]),!!this._emojis[e]}},{key:"nativeEmoji",value:function(e){return this._nativeEmojis.hasOwnProperty(e)?this._nativeEmojis[e]:null}},{key:"search",value:function(e,t){var n=this;if(t||(t=75),!e.length)return null;if("-"==e||"-1"==e)return[this.emoji("-1")];var a,r=e.toLowerCase().split(/[\s|,|\-|_]+/);r.length>2&&(r=[r[0],r[1]]),a=r.map((function(e){for(var t=n._emojis,a=n._searchIndex,r=0,i=function(){var n=e[o];if(r++,a[n]||(a[n]={}),!(a=a[n]).results){var i={};for(var s in a.results=[],a.emojis={},t){var l=t[s],u=l._data.search,d=e.substr(0,r),c=u.indexOf(d);if(-1!=c){var m=c+1;d==s&&(m=0),a.results.push(l),a.emojis[s]=l,i[s]=m}}a.results.sort((function(e,t){return i[e.id]-i[t.id]}))}t=a.emojis},o=0;o1?L.apply(null,a):a.length?a[0]:[])&&i.length>t&&(i=i.slice(0,t)),i}},{key:"addCustomEmoji",value:function(e){var t=Object.assign({},e,{id:e.short_names[0],custom:!0});t.search||(t.search=h(t));var n=new I(t);return this._emojis[n.id]=n,this._customCategory.emojis.push(n),n}},{key:"addEmoji",value:function(e){var t=this,n=this._data.emojis[e];if(!this.isEmojiNeeded(n))return!1;var a=new I(n);if(this._emojis[e]=a,a.native&&(this._nativeEmojis[a.native]=a),a._skins)for(var r in a._skins){var i=a._skins[r];i.native&&(this._nativeEmojis[i.native]=i)}return a.emoticons&&a.emoticons.forEach((function(n){t._emoticons[n]||(t._emoticons[n]=e)})),a}},{key:"isCategoryNeeded",value:function(e){var t=!this._include||!this._include.length||this._include.indexOf(e)>-1,n=!(!this._exclude||!this._exclude.length)&&this._exclude.indexOf(e)>-1;return!(!t||n)}},{key:"isEmojiNeeded",value:function(e){return!this._emojisFilter||this._emojisFilter(e)}}]),I=D((function e(t){if(E(this,e),this._data=Object.assign({},t),this._skins=null,this._data.skin_variations)for(var n in this._skins=[],Y){var a=Y[n],r=this._data.skin_variations[a],i=Object.assign({},t);for(var o in r)i[o]=r[o];delete i.skin_variations,i.skin_tone=parseInt(n)+1,this._skins.push(new e(i))}for(var s in this._sanitized=z(this._data),this._sanitized)this[s]=this._sanitized[s];this.short_names=this._data.short_names,this.short_name=this._data.short_names[0],Object.freeze(this)}),[{key:"getSkin",value:function(e){return e&&"native"!=e&&this._skins?this._skins[e-1]:this}},{key:"getPosition",value:function(){var e=+(100/60*this._data.sheet_x).toFixed(2),t=+(100/60*this._data.sheet_y).toFixed(2);return"".concat(e,"% ").concat(t,"%")}},{key:"ariaLabel",value:function(){return[this.native].concat(this.short_names).filter(Boolean).join(", ")}}]),H=D((function e(t,n,a,r,i,o,s){E(this,e),this._emoji=t,this._native=r,this._skin=n,this._set=a,this._fallback=i,this.canRender=this._canRender(),this.cssClass=this._cssClass(),this.cssStyle=this._cssStyle(s),this.content=this._content(),this.title=!0===o?t.short_name:null,this.ariaLabel=t.ariaLabel(),Object.freeze(this)}),[{key:"getEmoji",value:function(){return this._emoji.getSkin(this._skin)}},{key:"_canRender",value:function(){return this._isCustom()||this._isNative()||this._hasEmoji()||this._fallback}},{key:"_cssClass",value:function(){return["emoji-set-"+this._set,"emoji-type-"+this._emojiType()]}},{key:"_cssStyle",value:function(e){var t={};return this._isCustom()?t={backgroundImage:"url("+this.getEmoji()._data.imageUrl+")",backgroundSize:"100%",width:e+"px",height:e+"px"}:this._hasEmoji()&&!this._isNative()&&(t={backgroundPosition:this.getEmoji().getPosition()}),e&&(t=this._isNative()?Object.assign(t,{fontSize:Math.round(.95*e*10)/10+"px"}):Object.assign(t,{width:e+"px",height:e+"px"})),t}},{key:"_content",value:function(){return this._isCustom()?"":this._isNative()?this.getEmoji().native:this._hasEmoji()?"":this._fallback?this._fallback(this.getEmoji()):null}},{key:"_isNative",value:function(){return this._native}},{key:"_isCustom",value:function(){return this.getEmoji().custom}},{key:"_hasEmoji",value:function(){if(!this.getEmoji()._data)return!1;var e=this.getEmoji()._data["has_img_"+this._set];return void 0===e||e}},{key:"_emojiType",value:function(){return this._isCustom()?"custom":this._isNative()?"native":this._hasEmoji()?"image":"fallback"}}]);function z(e){var t=e.name,n=e.short_names,a=e.skin_tone,r=e.skin_variations,i=e.emoticons,o=e.unified,s=e.custom,l=e.imageUrl,u=e.id||n[0],d=":".concat(u,":");return s?{id:u,name:t,colons:d,emoticons:i,custom:s,imageUrl:l}:(a&&(d+=":skin-tone-".concat(a,":")),{id:u,name:t,colons:d,emoticons:i,unified:o.toLowerCase(),skin:a||(r?1:null),native:B(o)})}function U(e,t,n){return(t=T(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q={native:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1},fallback:{type:Function},skin:{type:Number,default:1},set:{type:String,default:"apple"},emoji:{type:[String,Object],required:!0},size:{type:Number,default:null},tag:{type:String,default:"span"}},G={perLine:{type:Number,default:9},maxSearchResults:{type:Number,default:75},emojiSize:{type:Number,default:24},title:{type:String,default:"Emoji Mart™"},emoji:{type:String,default:"department_store"},color:{type:String,default:"#ae65c5"},set:{type:String,default:"apple"},skin:{type:Number,default:null},defaultSkin:{type:Number,default:1},native:{type:Boolean,default:!1},emojiTooltip:{type:Boolean,default:!1},autoFocus:{type:Boolean,default:!1},i18n:{type:Object,default:function(){return{}}},showPreview:{type:Boolean,default:!0},showSearch:{type:Boolean,default:!0},showCategories:{type:Boolean,default:!0},showSkinTones:{type:Boolean,default:!0},infiniteScroll:{type:Boolean,default:!0},pickerStyles:{type:Object,default:function(){return{}}}};function Z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function $(e){for(var t=1;t0},emojiObjects:function(){var e=this;return this.emojis.map((function(t){return{emojiObject:t,emojiView:new H(t,e.emojiProps.skin,e.emojiProps.set,e.emojiProps.native,e.emojiProps.fallback,e.emojiProps.emojiTooltip,e.emojiProps.emojiSize)}}))}},components:{Emoji:W}},(function(){var e=this,t=e._self._c;return e.isVisible&&(e.isSearch||e.hasResults)?t("section",{class:{"emoji-mart-category":!0,"emoji-mart-no-results":!e.hasResults},attrs:{"aria-label":e.i18n.categories[e.id]}},[t("div",{staticClass:"emoji-mart-category-label"},[t("h3",{staticClass:"emoji-mart-category-label"},[e._v(e._s(e.i18n.categories[e.id]))])]),e._v(" "),e._l(e.emojiObjects,(function(n){var a=n.emojiObject,r=n.emojiView;return[r.canRender?t("button",{key:a.id,staticClass:"emoji-mart-emoji",class:e.activeClass(a),attrs:{"aria-label":r.ariaLabel,role:"option","aria-selected":"false","aria-posinset":"1","aria-setsize":"1812",type:"button","data-title":a.short_name,title:r.title},on:{mouseenter:function(t){e.emojiProps.onEnter(r.getEmoji())},mouseleave:function(t){e.emojiProps.onLeave(r.getEmoji())},click:function(t){e.emojiProps.onClick(r.getEmoji())}}},[t("span",{class:r.cssClass,style:r.cssStyle},[e._v(e._s(r.content))])]):e._e()]})),e._v(" "),e.hasResults?e._e():t("div",[t("emoji",{attrs:{data:e.data,emoji:"sleuth_or_spy",native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}}),e._v(" "),t("div",{staticClass:"emoji-mart-no-results-label"},[e._v(e._s(e.i18n.notfound))])],1)],2):e._e()}),[],!1,null,null,null).exports,X=k({props:{skin:{type:Number,required:!0}},emits:["change"],data:function(){return{opened:!1}},methods:{onClick:function(e){this.opened&&e!=this.skin&&this.$emit("change",e),this.opened=!this.opened}}},(function(){var e=this,t=e._self._c;return t("div",{class:{"emoji-mart-skin-swatches":!0,"emoji-mart-skin-swatches-opened":e.opened}},e._l(6,(function(n){return t("span",{key:n,class:{"emoji-mart-skin-swatch":!0,"emoji-mart-skin-swatch-selected":e.skin==n}},[t("span",{class:"emoji-mart-skin emoji-mart-skin-tone-"+n,on:{click:function(t){return e.onClick(n)}}})])})),0)}),[],!1,null,null,null).exports,K=k({props:{data:{type:Object,required:!0},title:{type:String,required:!0},emoji:{type:[String,Object]},idleEmoji:{type:[String,Object],required:!0},showSkinTones:{type:Boolean,default:!0},emojiProps:{type:Object,required:!0},skinProps:{type:Object,required:!0},onSkinChange:{type:Function,required:!0}},computed:{emojiData:function(){return this.emoji?this.emoji:{}},emojiShortNames:function(){return this.emojiData.short_names},emojiEmoticons:function(){return this.emojiData.emoticons}},components:{Emoji:W,Skins:X}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-preview"},[e.emoji?[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.emoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("div",{staticClass:"emoji-mart-preview-name"},[e._v(e._s(e.emoji.name))]),e._v(" "),t("div",{staticClass:"emoji-mart-preview-shortnames"},e._l(e.emojiShortNames,(function(n){return t("span",{key:n,staticClass:"emoji-mart-preview-shortname"},[e._v(":"+e._s(n)+":")])})),0),e._v(" "),t("div",{staticClass:"emoji-mart-preview-emoticons"},e._l(e.emojiEmoticons,(function(n){return t("span",{key:n,staticClass:"emoji-mart-preview-emoticon"},[e._v(e._s(n))])})),0)])]:[t("div",{staticClass:"emoji-mart-preview-emoji"},[t("emoji",{attrs:{data:e.data,emoji:e.idleEmoji,native:e.emojiProps.native,skin:e.emojiProps.skin,set:e.emojiProps.set}})],1),e._v(" "),t("div",{staticClass:"emoji-mart-preview-data"},[t("span",{staticClass:"emoji-mart-title-label"},[e._v(e._s(e.title))])]),e._v(" "),e.showSkinTones?t("div",{staticClass:"emoji-mart-preview-skins"},[t("skins",{attrs:{skin:e.skinProps.skin},on:{change:function(t){return e.onSkinChange(t)}}})],1):e._e()]],2)}),[],!1,null,null,null).exports,J=k({props:{data:{type:Object,required:!0},i18n:{type:Object,required:!0},autoFocus:{type:Boolean,default:!1},onSearch:{type:Function,required:!0},onArrowLeft:{type:Function,required:!1},onArrowRight:{type:Function,required:!1},onArrowDown:{type:Function,required:!1},onArrowUp:{type:Function,required:!1},onEnter:{type:Function,required:!1}},emits:["search","enter","arrowUp","arrowDown","arrowRight","arrowLeft"],data:function(){return{value:""}},computed:{emojiIndex:function(){return this.data}},watch:{value:function(){this.$emit("search",this.value)}},methods:{clear:function(){this.value=""}},mounted:function(){var e=this.$el.querySelector("input");this.autoFocus&&e.focus()}},(function(){var e=this,t=e._self._c;return t("div",{staticClass:"emoji-mart-search"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],attrs:{type:"text",placeholder:e.i18n.search,role:"textbox","aria-autocomplete":"list","aria-owns":"emoji-mart-list","aria-label":"Search for an emoji","aria-describedby":"emoji-mart-search-description"},domProps:{value:e.value},on:{keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:function(t){return e.$emit("arrowLeft",t)}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:function(){return e.$emit("arrowRight")}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:function(){return e.$emit("arrowDown")}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:function(t){return e.$emit("arrowUp",t)}.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:function(){return e.$emit("enter")}.apply(null,arguments)}],input:function(t){t.target.composing||(e.value=t.target.value)}}}),e._v(" "),t("span",{staticClass:"hidden",attrs:{id:"emoji-picker-search-description"}},[e._v("Use the left, right, up and down arrow keys to navigate the emoji search\n results.")])])}),[],!1,null,null,null),Q=J.exports;function ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n0})),this._categories[0].first=!0,Object.freeze(this._categories),this.activeCategory=this._categories[0],this.searchEmojis=null,this.previewEmoji=null,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=-1}),[{key:"onScroll",value:function(){for(var e=this._vm.$refs.scroll.scrollTop,t=this.filteredCategories[0],n=0,a=this.filteredCategories.length;ne)break;t=r}this.activeCategory=t}},{key:"allCategories",get:function(){return this._categories}},{key:"filteredCategories",get:function(){return this.searchEmojis?[{id:"search",name:"Search",emojis:this.searchEmojis}]:this._categories.filter((function(e){return e.emojis.length>0}))}},{key:"previewEmojiCategory",get:function(){return this.previewEmojiCategoryIdx>=0?this.filteredCategories[this.previewEmojiCategoryIdx]:null}},{key:"onAnchorClick",value:function(e){var t=this;if(!this.searchEmojis){var n=this.filteredCategories.indexOf(e),a=this._vm.getCategoryComponent(n);this._vm.infiniteScroll?function(){if(a){var n=a.$el.offsetTop;e.first&&(n=0),t._vm.$refs.scroll.scrollTop=n}}():this.activeCategory=this.filteredCategories[n]}}},{key:"onSearch",value:function(e){var t=this._data.search(e,this.maxSearchResults);this.searchEmojis=t,this.previewEmojiCategoryIdx=0,this.previewEmojiIdx=0,this.updatePreviewEmoji()}},{key:"onEmojiEnter",value:function(e){this.previewEmoji=e,this.previewEmojiIdx=-1,this.previewEmojiCategoryIdx=-1}},{key:"onEmojiLeave",value:function(e){this.previewEmoji=null}},{key:"onArrowLeft",value:function(){this.previewEmojiIdx>0?this.previewEmojiIdx-=1:(this.previewEmojiCategoryIdx-=1,this.previewEmojiCategoryIdx<0?this.previewEmojiCategoryIdx=0:this.previewEmojiIdx=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length-1),this.updatePreviewEmoji()}},{key:"onArrowRight",value:function(){this.previewEmojiIdx=this.filteredCategories.length?this.previewEmojiCategoryIdx=this.filteredCategories.length-1:this.previewEmojiIdx=0),this.updatePreviewEmoji()}},{key:"onArrowDown",value:function(){if(-1==this.previewEmojiIdx)return this.onArrowRight();var e=this.filteredCategories[this.previewEmojiCategoryIdx].emojis.length,t=this._perLine;this.previewEmojiIdx+t>e&&(t=e%this._perLine);for(var n=0;n0?this.filteredCategories[this.previewEmojiCategoryIdx-1].emojis.length%this._perLine:0);for(var t=0;ta+t.scrollTop&&(t.scrollTop+=n.offsetHeight),n&&n.offsetTop{"use strict";var a=n(70453)("%Object.defineProperty%",!0)||!1;if(a)try{a({},"a",{value:1})}catch(e){a=!1}e.exports=a},41237:e=>{"use strict";e.exports=EvalError},69383:e=>{"use strict";e.exports=Error},79290:e=>{"use strict";e.exports=RangeError},79538:e=>{"use strict";e.exports=ReferenceError},58068:e=>{"use strict";e.exports=SyntaxError},69675:e=>{"use strict";e.exports=TypeError},35345:e=>{"use strict";e.exports=URIError},70580:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var n,a=""+e,r=t.exec(a);if(!r)return a;var i="",o=0,s=0;for(o=r.index;o{"use strict";var a,r=n(96763),i="object"==typeof Reflect?Reflect:null,o=i&&"function"==typeof i.apply?i.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};a=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function l(){l.init.call(this)}e.exports=l,e.exports.once=function(e,t){return new Promise((function(n,a){function r(n){e.removeListener(t,i),a(n)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}v(e,t,i,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&v(e,"error",t,{once:!0})}(e,r)}))},l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var u=10;function d(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?l.defaultMaxListeners:e._maxListeners}function m(e,t,n,a){var i,o,s,l;if(d(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),s=o[t]),void 0===s)s=o[t]=n,++e._eventsCount;else if("function"==typeof s?s=o[t]=a?[n,s]:[s,n]:a?s.unshift(n):s.push(n),(i=c(e))>0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=s.length,l=u,r&&r.warn&&r.warn(l)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var a={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=h.bind(a);return r.listener=n,a.wrapFn=r,r}function p(e,t,n){var a=e._events;if(void 0===a)return[];var r=a[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var l=r[e];if(void 0===l)return!1;if("function"==typeof l)o(l,this,t);else{var u=l.length,d=_(l,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,r=i;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1=0;a--)this.removeListener(e,t[a]);return this},l.prototype.listeners=function(e){return p(this,e,!0)},l.prototype.rawListeners=function(e){return p(this,e,!1)},l.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},l.prototype.listenerCount=g,l.prototype.eventNames=function(){return this._eventsCount>0?a(this._events):[]}},92849:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,a=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},o=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var a,r=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!r&&!i)return!1;for(a in e);return void 0===a||t.call(e,a)},s=function(e,t){a&&"__proto__"===t.name?a(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(r)return r(e,n).value}return e[n]};e.exports=function e(){var t,n,a,r,u,d,c=arguments[0],m=1,h=arguments.length,f=!1;for("boolean"==typeof c&&(f=c,c=arguments[1]||{},m=2),(null==c||"object"!=typeof c&&"function"!=typeof c)&&(c={});m{"use strict";const a=n(43918),r=n(32923),i=n(8904);e.exports={XMLParser:r,XMLValidator:a,XMLBuilder:i}},35334:(e,t)=>{"use strict";const n=":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",a="["+n+"]["+n+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*",r=new RegExp("^"+a+"$");t.isExist=function(e){return void 0!==e},t.isEmptyObject=function(e){return 0===Object.keys(e).length},t.merge=function(e,t,n){if(t){const a=Object.keys(t),r=a.length;for(let i=0;i{"use strict";const a=n(35334),r={allowBooleanAttributes:!1,unpairedTags:[]};function i(e){return" "===e||"\t"===e||"\n"===e||"\r"===e}function o(e,t){const n=t;for(;t5&&"xml"===a)return f("InvalidXml","XML declaration allowed only at the start of the document.",g(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function s(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t"===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 n=1;for(t+=8;t"===e[t]&&(n--,0===n))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[t+2]){t+=2;break}return t}t.validate=function(e,t){t=Object.assign({},r,t);const n=[];let l=!1,u=!1;"\ufeff"===e[0]&&(e=e.substr(1));for(let r=0;r"!==e[r]&&" "!==e[r]&&"\t"!==e[r]&&"\n"!==e[r]&&"\r"!==e[r];r++)v+=e[r];if(v=v.trim(),"/"===v[v.length-1]&&(v=v.substring(0,v.length-1),r--),c=v,!a.isName(c)){let t;return t=0===v.trim().length?"Invalid space after '<'.":"Tag '"+v+"' is an invalid name.",f("InvalidTag",t,g(e,r))}const b=d(e,r);if(!1===b)return f("InvalidAttr","Attributes for '"+v+"' have open quote.",g(e,r));let A=b.value;if(r=b.index,"/"===A[A.length-1]){const n=r-A.length;A=A.substring(0,A.length-1);const a=m(A,t);if(!0!==a)return f(a.err.code,a.err.msg,g(e,n+a.err.line));l=!0}else if(_){if(!b.tagClosed)return f("InvalidTag","Closing tag '"+v+"' doesn't have proper closing.",g(e,r));if(A.trim().length>0)return f("InvalidTag","Closing tag '"+v+"' can't have attributes or invalid starting.",g(e,p));if(0===n.length)return f("InvalidTag","Closing tag '"+v+"' has not been opened.",g(e,p));{const t=n.pop();if(v!==t.tagName){let n=g(e,t.tagStartPos);return f("InvalidTag","Expected closing tag '"+t.tagName+"' (opened in line "+n.line+", col "+n.col+") instead of closing tag '"+v+"'.",g(e,p))}0==n.length&&(u=!0)}}else{const a=m(A,t);if(!0!==a)return f(a.err.code,a.err.msg,g(e,r-A.length+a.err.line));if(!0===u)return f("InvalidXml","Multiple possible root nodes found.",g(e,r));-1!==t.unpairedTags.indexOf(v)||n.push({tagName:v,tagStartPos:p}),l=!0}for(r++;r0)||f("InvalidXml","Invalid '"+JSON.stringify(n.map((e=>e.tagName)),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):f("InvalidXml","Start tag expected.",1)};const l='"',u="'";function d(e,t){let n="",a="",r=!1;for(;t"===e[t]&&""===a){r=!0;break}n+=e[t]}return""===a&&{value:n,index:t,tagClosed:r}}const c=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function m(e,t){const n=a.getAllMatches(e,c),r={};for(let e=0;e{"use strict";const a=n(12788),r={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({},r,e),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=l),this.processTextOrObjNode=o,this.options.format?(this.indentate=s,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function o(e,t,n){const a=this.j2x(e,n+1);return void 0!==e[this.options.textNodeName]&&1===Object.keys(e).length?this.buildTextValNode(e[this.options.textNodeName],t,a.attrStr,n):this.buildObjectNode(a.val,t,a.attrStr,n)}function s(e){return this.options.indentBy.repeat(e)}function l(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}i.prototype.build=function(e){return this.options.preserveOrder?a(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0).val)},i.prototype.j2x=function(e,t){let n="",a="";for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r))if(void 0===e[r])this.isAttribute(r)&&(a+="");else if(null===e[r])this.isAttribute(r)?a+="":"?"===r[0]?a+=this.indentate(t)+"<"+r+"?"+this.tagEndChar:a+=this.indentate(t)+"<"+r+"/"+this.tagEndChar;else if(e[r]instanceof Date)a+=this.buildTextValNode(e[r],r,"",t);else if("object"!=typeof e[r]){const i=this.isAttribute(r);if(i)n+=this.buildAttrPairStr(i,""+e[r]);else if(r===this.options.textNodeName){let t=this.options.tagValueProcessor(r,""+e[r]);a+=this.replaceEntitiesValue(t)}else a+=this.buildTextValNode(e[r],r,"",t)}else if(Array.isArray(e[r])){const n=e[r].length;let i="",o="";for(let s=0;s"+e+r}},i.prototype.closeTag=function(e){let t="";return-1!==this.options.unpairedTags.indexOf(e)?this.options.suppressUnpairedNode||(t="/"):t=this.options.suppressEmptyNode?"/":`>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(a)+`\x3c!--${e}--\x3e`+this.newLine;if("?"===t[0])return this.indentate(a)+"<"+t+n+"?"+this.tagEndChar;{let r=this.options.tagValueProcessor(t,e);return r=this.replaceEntitiesValue(r),""===r?this.indentate(a)+"<"+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(a)+"<"+t+n+">"+r+"0&&this.options.processEntities)for(let t=0;t{function t(e,o,s,l){let u="",d=!1;for(let c=0;c`,d=!1;continue}if(h===o.commentPropName){u+=l+`\x3c!--${m[h][0][o.textNodeName]}--\x3e`,d=!0;continue}if("?"===h[0]){const e=a(m[":@"],o),t="?xml"===h?"":l;let n=m[h][0][o.textNodeName];n=0!==n.length?" "+n:"",u+=t+`<${h}${n}${e}?>`,d=!0;continue}let p=l;""!==p&&(p+=o.indentBy);const g=l+`<${h}${a(m[":@"],o)}`,_=t(m[h],o,f,p);-1!==o.unpairedTags.indexOf(h)?o.suppressUnpairedNode?u+=g+">":u+=g+"/>":_&&0!==_.length||!o.suppressEmptyNode?_&&_.endsWith(">")?u+=g+`>${_}${l}`:(u+=g+">",_&&""!==l&&(_.includes("/>")||_.includes("`):u+=g+"/>",d=!0}return u}function n(e){const t=Object.keys(e);for(let n=0;n0&&t.processEntities)for(let n=0;n0&&(a="\n"),t(e,n,"",a)}},9400:(e,t,n)=>{const a=n(35334);function r(e,t){let n="";for(;t"===e[t]){if(m?"-"===e[t-1]&&"-"===e[t-2]&&(m=!1,a--):a--,0===a)break}else"["===e[t]?c=!0:h+=e[t];else{if(c&&o(e,t))t+=7,[entityName,val,t]=r(e,t+1),-1===val.indexOf("&")&&(n[d(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(c&&s(e,t))t+=8;else if(c&&l(e,t))t+=8;else if(c&&u(e,t))t+=9;else{if(!i)throw new Error("Invalid DOCTYPE");m=!0}a++,h=""}if(0!==a)throw new Error("Unclosed DOCTYPE")}return{entities:n,i:t}}},50460:(e,t)=>{const n={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,n){return e}};t.buildOptions=function(e){return Object.assign({},n,e)},t.defaultOptions=n},17680:(e,t,n)=>{"use strict";const a=n(35334),r=n(23832),i=n(9400),o=n(17983);function s(e){const t=Object.keys(e);for(let n=0;n0)){o||(e=this.replaceEntitiesValue(e));const a=this.options.tagValueProcessor(t,e,n,r,i);return null==a?e:typeof a!=typeof e||a!==e?a:this.options.trimValues||e.trim()===e?A(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function u(e){if(this.options.removeNSPrefix){const t=e.split(":"),n="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=n+t[1])}return e}const d=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function c(e,t,n){if(!this.options.ignoreAttributes&&"string"==typeof e){const n=a.getAllMatches(e,d),r=n.length,i={};for(let e=0;e",s,"Closing Tag is not closed.");let r=e.substring(s+2,t).trim();if(this.options.removeNSPrefix){const e=r.indexOf(":");-1!==e&&(r=r.substr(e+1))}this.options.transformTagName&&(r=this.options.transformTagName(r)),n&&(a=this.saveTextToParentTag(a,n,o));const i=o.substring(o.lastIndexOf(".")+1);if(r&&-1!==this.options.unpairedTags.indexOf(r))throw new Error(`Unpaired tag can not be used as closing tag: `);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="",s=t}else if("?"===e[s+1]){let t=v(e,s,!1,"?>");if(!t)throw new Error("Pi Tag is not closed.");if(a=this.saveTextToParentTag(a,n,o),this.options.ignoreDeclaration&&"?xml"===t.tagName||this.options.ignorePiTags);else{const e=new r(t.tagName);e.add(this.options.textNodeName,""),t.tagName!==t.tagExp&&t.attrExpPresent&&(e[":@"]=this.buildAttributesMap(t.tagExp,o,t.tagName)),this.addChild(n,e,o)}s=t.closeIndex+1}else if("!--"===e.substr(s+1,3)){const t=_(e,"--\x3e",s+4,"Comment is not closed.");if(this.options.commentPropName){const r=e.substring(s+4,t-2);a=this.saveTextToParentTag(a,n,o),n.add(this.options.commentPropName,[{[this.options.textNodeName]:r}])}s=t}else if("!D"===e.substr(s+1,2)){const t=i(e,s);this.docTypeEntities=t.entities,s=t.i}else if("!["===e.substr(s+1,2)){const t=_(e,"]]>",s,"CDATA is not closed.")-2,r=e.substring(s+9,t);a=this.saveTextToParentTag(a,n,o);let i=this.parseTextData(r,n.tagname,o,!0,!1,!0,!0);null==i&&(i=""),this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:r}]):n.add(this.options.textNodeName,i),s=t+2}else{let i=v(e,s,this.options.removeNSPrefix),l=i.tagName;const u=i.rawTagName;let d=i.tagExp,c=i.attrExpPresent,m=i.closeIndex;this.options.transformTagName&&(l=this.options.transformTagName(l)),n&&a&&"!xml"!==n.tagname&&(a=this.saveTextToParentTag(a,n,o,!1));const h=n;if(h&&-1!==this.options.unpairedTags.indexOf(h.tagname)&&(n=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),l!==t.tagname&&(o+=o?"."+l:l),this.isItStopNode(this.options.stopNodes,o,l)){let t="";if(d.length>0&&d.lastIndexOf("/")===d.length-1)"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),d=l):d=d.substr(0,d.length-1),s=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(l))s=i.closeIndex;else{const n=this.readStopNodeData(e,u,m+1);if(!n)throw new Error(`Unexpected end of ${u}`);s=n.i,t=n.tagContent}const a=new r(l);l!==d&&c&&(a[":@"]=this.buildAttributesMap(d,o,l)),t&&(t=this.parseTextData(t,l,o,!0,c,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),a.add(this.options.textNodeName,t),this.addChild(n,a,o)}else{if(d.length>0&&d.lastIndexOf("/")===d.length-1){"/"===l[l.length-1]?(l=l.substr(0,l.length-1),o=o.substr(0,o.length-1),d=l):d=d.substr(0,d.length-1),this.options.transformTagName&&(l=this.options.transformTagName(l));const e=new r(l);l!==d&&c&&(e[":@"]=this.buildAttributesMap(d,o,l)),this.addChild(n,e,o),o=o.substr(0,o.lastIndexOf("."))}else{const e=new r(l);this.tagsNodeStack.push(n),l!==d&&c&&(e[":@"]=this.buildAttributesMap(d,o,l)),this.addChild(n,e,o),n=e}a="",s=m}}else a+=e[s];return t.child};function h(e,t,n){const a=this.options.updateTag(t.tagname,n,t[":@"]);!1===a||("string"==typeof a?(t.tagname=a,e.addChild(t)):e.addChild(t))}const f=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){const n=this.docTypeEntities[t];e=e.replace(n.regx,n.val)}for(let t in this.lastEntities){const n=this.lastEntities[t];e=e.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){const n=this.htmlEntities[t];e=e.replace(n.regex,n.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function p(e,t,n,a){return e&&(void 0===a&&(a=0===Object.keys(t.child).length),void 0!==(e=this.parseTextData(e,t.tagname,n,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,a))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function g(e,t,n){const a="*."+n;for(const n in e){const r=e[n];if(a===r||t===r)return!0}return!1}function _(e,t,n,a){const r=e.indexOf(t,n);if(-1===r)throw new Error(a);return r+t.length-1}function v(e,t,n,a=">"){const r=function(e,t,n=">"){let a,r="";for(let i=t;i",n,`${t} is not closed`);if(e.substring(n+2,i).trim()===t&&(r--,0===r))return{tagContent:e.substring(a,n),i};n=i}else if("?"===e[n+1])n=_(e,"?>",n+1,"StopNode is not closed.");else if("!--"===e.substr(n+1,3))n=_(e,"--\x3e",n+3,"StopNode is not closed.");else if("!["===e.substr(n+1,2))n=_(e,"]]>",n,"StopNode is not closed.")-2;else{const a=v(e,n,">");a&&((a&&a.tagName)===t&&"/"!==a.tagExp[a.tagExp.length-1]&&r++,n=a.closeIndex)}}function A(e,t,n){if(t&&"string"==typeof e){const t=e.trim();return"true"===t||"false"!==t&&o(e,n)}return a.isExist(e)?e:""}e.exports=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=s,this.parseXml=m,this.parseTextData=l,this.resolveNameSpace=u,this.buildAttributesMap=c,this.isItStopNode=g,this.replaceEntitiesValue=f,this.readStopNodeData=b,this.saveTextToParentTag=p,this.addChild=h}}},32923:(e,t,n)=>{const{buildOptions:a}=n(50460),r=n(17680),{prettify:i}=n(75629),o=n(43918);e.exports=class{constructor(e){this.externalEntities={},this.options=a(e)}parse(e,t){if("string"==typeof e);else{if(!e.toString)throw new Error("XML data is accepted in String or Bytes[] form.");e=e.toString()}if(t){!0===t&&(t={});const n=o.validate(e,t);if(!0!==n)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}const n=new r(this.options);n.addExternalEntities(this.externalEntities);const a=n.parseXml(e);return this.options.preserveOrder||void 0===a?a:i(a,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}}},75629:(e,t)=>{"use strict";function n(e,t,o){let s;const l={};for(let u=0;u0&&(l[t.textNodeName]=s):void 0!==s&&(l[t.textNodeName]=s),l}function a(e){const t=Object.keys(e);for(let e=0;e{"use strict";e.exports=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})}}},2508:(e,t,n)=>{"use strict";function a(e){return e.split("-")[0]}function r(e){return e.split("-")[1]}function i(e){return["top","bottom"].includes(a(e))?"x":"y"}function o(e){return"y"===e?"height":"width"}function s(e){let{reference:t,floating:n,placement:s}=e;const l=t.x+t.width/2-n.width/2,u=t.y+t.height/2-n.height/2;let d;switch(a(s)){case"top":d={x:l,y:t.y-n.height};break;case"bottom":d={x:l,y:t.y+t.height};break;case"right":d={x:t.x+t.width,y:u};break;case"left":d={x:t.x-n.width,y:u};break;default:d={x:t.x,y:t.y}}const c=i(s),m=o(c);switch(r(s)){case"start":d[c]=d[c]-(t[m]/2-n[m]/2);break;case"end":d[c]=d[c]+(t[m]/2-n[m]/2)}return d}function l(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function u(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function d(e,t){void 0===t&&(t={});const{x:n,y:a,platform:r,rects:i,elements:o,strategy:s}=e,{boundary:d="clippingParents",rootBoundary:c="viewport",elementContext:m="floating",altBoundary:h=!1,padding:f=0}=t,p=l(f),g=o[h?"floating"===m?"reference":"floating":m],_=await r.getClippingClientRect({element:await r.isElement(g)?g:g.contextElement||await r.getDocumentElement({element:o.floating}),boundary:d,rootBoundary:c}),v=u(await r.convertOffsetParentRelativeRectToViewportRelativeRect({rect:"floating"===m?{...i.floating,x:n,y:a}:i.reference,offsetParent:await r.getOffsetParent({element:o.floating}),strategy:s}));return{top:_.top-v.top+p.top,bottom:v.bottom-_.bottom+p.bottom,left:_.left-v.left+p.left,right:v.right-_.right+p.right}}n.d(t,{ms:()=>Lt,yw:()=>Mt,fF:()=>Bt});const c=Math.min,m=Math.max;function h(e,t,n){return m(e,c(t,n))}const f={left:"right",right:"left",bottom:"top",top:"bottom"};function p(e){return e.replace(/left|right|bottom|top/g,(e=>f[e]))}function g(e,t){const n="start"===r(e),a=i(e),s=o(a);let l="x"===a?n?"right":"left":n?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=p(l)),{main:l,cross:p(l)}}const _={start:"end",end:"start"};function v(e){return e.replace(/start|end/g,(e=>_[e]))}const b=["top","right","bottom","left"].reduce(((e,t)=>e.concat(t,t+"-start",t+"-end")),[]);function A(e){return"[object Window]"===(null==e?void 0:e.toString())}function y(e){if(null==e)return window;if(!A(e)){const t=e.ownerDocument;return t&&t.defaultView||window}return e}function F(e){return y(e).getComputedStyle(e)}function k(e){return A(e)?"":e?(e.nodeName||"").toLowerCase():""}function w(e){return e instanceof y(e).HTMLElement}function C(e){return e instanceof y(e).Element}function E(e){return e instanceof y(e).ShadowRoot||e instanceof ShadowRoot}function T(e){const{overflow:t,overflowX:n,overflowY:a}=F(e);return/auto|scroll|overlay|hidden/.test(t+a+n)}function x(e){return["table","td","th"].includes(k(e))}function D(e){const t=navigator.userAgent.toLowerCase().includes("firefox"),n=F(e);return"none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||["transform","perspective"].includes(n.willChange)||t&&"filter"===n.willChange||t&&!!n.filter&&"none"!==n.filter}const S=Math.min,B=Math.max,M=Math.round;function L(e,t){void 0===t&&(t=!1);const n=e.getBoundingClientRect();let a=1,r=1;return t&&w(e)&&(a=e.offsetWidth>0&&M(n.width)/e.offsetWidth||1,r=e.offsetHeight>0&&M(n.height)/e.offsetHeight||1),{width:n.width/a,height:n.height/r,top:n.top/r,right:n.right/a,bottom:n.bottom/r,left:n.left/a,x:n.left/a,y:n.top/r}}function N(e){return(t=e,(t instanceof y(t).Node?e.ownerDocument:e.document)||window.document).documentElement;var t}function j(e){return A(e)?{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}:{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function O(e){return L(N(e)).left+j(e).scrollLeft}function P(e,t,n){const a=w(t),r=N(t),i=L(e,a&&function(e){const t=L(e);return M(t.width)!==e.offsetWidth||M(t.height)!==e.offsetHeight}(t));let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if(a||!a&&"fixed"!==n)if(("body"!==k(t)||T(r))&&(o=j(t)),w(t)){const e=L(t,!0);s.x=e.x+t.clientLeft,s.y=e.y+t.clientTop}else r&&(s.x=O(r));return{x:i.left+o.scrollLeft-s.x,y:i.top+o.scrollTop-s.y,width:i.width,height:i.height}}function Y(e){return"html"===k(e)?e:e.assignedSlot||e.parentNode||(E(e)?e.host:null)||N(e)}function R(e){return w(e)&&"fixed"!==getComputedStyle(e).position?e.offsetParent:null}function I(e){const t=y(e);let n=R(e);for(;n&&x(n)&&"static"===getComputedStyle(n).position;)n=R(n);return n&&("html"===k(n)||"body"===k(n)&&"static"===getComputedStyle(n).position&&!D(n))?t:n||function(e){let t=Y(e);for(;w(t)&&!["html","body"].includes(k(t));){if(D(t))return t;t=t.parentNode}return null}(e)||t}function H(e){return{width:e.offsetWidth,height:e.offsetHeight}}function z(e){return["html","body","#document"].includes(k(e))?e.ownerDocument.body:w(e)&&T(e)?e:z(Y(e))}function U(e,t){var n;void 0===t&&(t=[]);const a=z(e),r=a===(null==(n=e.ownerDocument)?void 0:n.body),i=y(a),o=r?[i].concat(i.visualViewport||[],T(a)?a:[]):a,s=t.concat(o);return r?s:s.concat(U(Y(o)))}function q(e,t){return"viewport"===t?u(function(e){const t=y(e),n=N(e),a=t.visualViewport;let r=n.clientWidth,i=n.clientHeight,o=0,s=0;return a&&(r=a.width,i=a.height,Math.abs(t.innerWidth/a.scale-a.width)<.01&&(o=a.offsetLeft,s=a.offsetTop)),{width:r,height:i,x:o,y:s}}(e)):C(t)?function(e){const t=L(e),n=t.top+e.clientTop,a=t.left+e.clientLeft;return{top:n,left:a,x:a,y:n,right:a+e.clientWidth,bottom:n+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}(t):u(function(e){var t;const n=N(e),a=j(e),r=null==(t=e.ownerDocument)?void 0:t.body,i=B(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),o=B(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0);let s=-a.scrollLeft+O(e);const l=-a.scrollTop;return"rtl"===F(r||n).direction&&(s+=B(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:o,x:s,y:l}}(N(e)))}function G(e){const t=U(Y(e)),n=["absolute","fixed"].includes(F(e).position)&&w(e)?I(e):e;return C(n)?t.filter((e=>C(e)&&function(e,t){const n=null==t.getRootNode?void 0:t.getRootNode();if(e.contains(t))return!0;if(n&&E(n)){let n=t;do{if(n&&e===n)return!0;n=n.parentNode||n.host}while(n)}return!1}(e,n)&&"body"!==k(e))):[]}const Z={getElementRects:e=>{let{reference:t,floating:n,strategy:a}=e;return{reference:P(t,I(n),a),floating:{...H(n),x:0,y:0}}},convertOffsetParentRelativeRectToViewportRelativeRect:e=>function(e){let{rect:t,offsetParent:n,strategy:a}=e;const r=w(n),i=N(n);if(n===i)return t;let o={scrollLeft:0,scrollTop:0};const s={x:0,y:0};if((r||!r&&"fixed"!==a)&&(("body"!==k(n)||T(i))&&(o=j(n)),w(n))){const e=L(n,!0);s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}return{...t,x:t.x-o.scrollLeft+s.x,y:t.y-o.scrollTop+s.y}}(e),getOffsetParent:e=>{let{element:t}=e;return I(t)},isElement:e=>C(e),getDocumentElement:e=>{let{element:t}=e;return N(t)},getClippingClientRect:e=>function(e){let{element:t,boundary:n,rootBoundary:a}=e;const r=[..."clippingParents"===n?G(t):[].concat(n),a],i=r[0],o=r.reduce(((e,n)=>{const a=q(t,n);return e.top=B(a.top,e.top),e.right=S(a.right,e.right),e.bottom=S(a.bottom,e.bottom),e.left=B(a.left,e.left),e}),q(t,i));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}(e),getDimensions:e=>{let{element:t}=e;return H(t)},getClientRects:e=>{let{element:t}=e;return t.getClientRects()}};var $=n(85471),W=n(96763),V=Object.defineProperty,X=Object.defineProperties,K=Object.getOwnPropertyDescriptors,J=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,ee=Object.prototype.propertyIsEnumerable,te=(e,t,n)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ne=(e,t)=>{for(var n in t||(t={}))Q.call(t,n)&&te(e,n,t[n]);if(J)for(var n of J(t))ee.call(t,n)&&te(e,n,t[n]);return e},ae=(e,t)=>X(e,K(t));function re(e,t){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&("object"==typeof t[n]&&e[n]?re(e[n],t[n]):e[n]=t[n])}const ie={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:5e3,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:e=>[...e,"click"],delay:{show:200,hide:0},handleResize:!1,html:!1,loadingContent:"..."},dropdown:{placement:"bottom",triggers:["click"],delay:0,handleResize:!0,autoHide:!0},menu:{$extend:"dropdown",triggers:["hover","focus"],popperTriggers:["hover","focus"],delay:{show:0,hide:400}}}};function oe(e,t){let n,a=ie.themes[e]||{};do{n=a[t],void 0===n?a.$extend?a=ie.themes[a.$extend]||{}:(a=null,n=ie[t]):a=null}while(a);return n}function se(e){const t=[e];let n=ie.themes[e]||{};do{n.$extend?(t.push(n.$extend),n=ie.themes[n.$extend]||{}):n=null}while(n);return t}let le=!1;if("undefined"!=typeof window){le=!1;try{const e=Object.defineProperty({},"passive",{get(){le=!0}});window.addEventListener("test",null,e)}catch(e){}}let ue=!1;"undefined"!=typeof window&&"undefined"!=typeof navigator&&(ue=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const de=["auto","top","bottom","left","right"].reduce(((e,t)=>e.concat([t,`${t}-start`,`${t}-end`])),[]),ce={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart"},me={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend"};function he(e,t){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}function fe(){return new Promise((e=>requestAnimationFrame((()=>{requestAnimationFrame(e)}))))}const pe=[];let ge=null;const _e={};function ve(e){let t=_e[e];return t||(t=_e[e]=[]),t}let be=function(){};function Ae(e){return function(){return oe(this.$props.theme,e)}}"undefined"!=typeof window&&(be=window.Element);const ye="__floating-vue__popper";var Fe=()=>({name:"VPopper",props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,required:!0},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:Ae("disabled")},positioningDisabled:{type:Boolean,default:Ae("positioningDisabled")},placement:{type:String,default:Ae("placement"),validator:e=>de.includes(e)},delay:{type:[String,Number,Object],default:Ae("delay")},distance:{type:[Number,String],default:Ae("distance")},skidding:{type:[Number,String],default:Ae("skidding")},triggers:{type:Array,default:Ae("triggers")},showTriggers:{type:[Array,Function],default:Ae("showTriggers")},hideTriggers:{type:[Array,Function],default:Ae("hideTriggers")},popperTriggers:{type:Array,default:Ae("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:Ae("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:Ae("popperHideTriggers")},container:{type:[String,Object,be,Boolean],default:Ae("container")},boundary:{type:[String,be],default:Ae("boundary")},strategy:{type:String,validator:e=>["absolute","fixed"].includes(e),default:Ae("strategy")},autoHide:{type:[Boolean,Function],default:Ae("autoHide")},handleResize:{type:Boolean,default:Ae("handleResize")},instantMove:{type:Boolean,default:Ae("instantMove")},eagerMount:{type:Boolean,default:Ae("eagerMount")},popperClass:{type:[String,Array,Object],default:Ae("popperClass")},computeTransformOrigin:{type:Boolean,default:Ae("computeTransformOrigin")},autoMinSize:{type:Boolean,default:Ae("autoMinSize")},autoSize:{type:[Boolean,String],default:Ae("autoSize")},autoMaxSize:{type:Boolean,default:Ae("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:Ae("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:Ae("preventOverflow")},overflowPadding:{type:[Number,String],default:Ae("overflowPadding")},arrowPadding:{type:[Number,String],default:Ae("arrowPadding")},arrowOverflow:{type:Boolean,default:Ae("arrowOverflow")},flip:{type:Boolean,default:Ae("flip")},shift:{type:Boolean,default:Ae("shift")},shiftCrossAxis:{type:Boolean,default:Ae("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:Ae("noAutoFocus")}},provide(){return{[ye]:{parentPopper:this}}},inject:{[ye]:{default:null}},data(){return{isShown:!1,isMounted:!1,skipTransition:!1,classes:{showFrom:!1,showTo:!1,hideFrom:!1,hideTo:!0},result:{x:0,y:0,placement:"",strategy:this.strategy,arrow:{x:0,y:0,centerOffset:0},transformOrigin:null},shownChildren:new Set,lastAutoHide:!0}},computed:{popperId(){return null!=this.ariaId?this.ariaId:this.randomId},shouldMountContent(){return this.eagerMount||this.isMounted},slotData(){return{popperId:this.popperId,isShown:this.isShown,shouldMountContent:this.shouldMountContent,skipTransition:this.skipTransition,autoHide:"function"==typeof this.autoHide?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:ae(ne({},this.classes),{popperClass:this.popperClass}),result:this.positioningDisabled?null:this.result}},parentPopper(){var e;return null==(e=this[ye])?void 0:e.parentPopper},hasPopperShowTriggerHover(){var e,t;return(null==(e=this.popperTriggers)?void 0:e.includes("hover"))||(null==(t=this.popperShowTriggers)?void 0:t.includes("hover"))}},watch:ne(ne({shown:"$_autoShowHide",disabled(e){e?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())}},["triggers","positioningDisabled"].reduce(((e,t)=>(e[t]="$_refreshListeners",e)),{})),["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce(((e,t)=>(e[t]="$_computePosition",e)),{})),created(){this.$_isDisposed=!0,this.randomId=`popper_${[Math.random(),Date.now()].map((e=>e.toString(36).substring(2,10))).join("_")}`,this.autoMinSize&&W.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&W.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeDestroy(){this.dispose()},methods:{show({event:e=null,skipDelay:t=!1,force:n=!1}={}){var a,r;(null==(a=this.parentPopper)?void 0:a.lockedChild)&&this.parentPopper.lockedChild!==this||(this.$_pendingHide=!1,!n&&this.disabled||((null==(r=this.parentPopper)?void 0:r.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(e,t),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame((()=>{this.$_showFrameLocked=!1}))),this.$emit("update:shown",!0))},hide({event:e=null,skipDelay:t=!1,skipAiming:n=!1}={}){var a;this.$_hideInProgress||(this.shownChildren.size>0?this.$_pendingHide=!0:!n&&this.hasPopperShowTriggerHover&&this.$_isAimingPopper()?this.parentPopper&&(this.parentPopper.lockedChild=this,clearTimeout(this.parentPopper.lockedChildTimer),this.parentPopper.lockedChildTimer=setTimeout((()=>{this.parentPopper.lockedChild===this&&(this.parentPopper.lockedChild.hide({skipDelay:t}),this.parentPopper.lockedChild=null)}),1e3)):((null==(a=this.parentPopper)?void 0:a.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_pendingHide=!1,this.$_scheduleHide(e,t),this.$emit("hide"),this.$emit("update:shown",!1)))},init(){this.$_isDisposed&&(this.$_isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=this.referenceNode(),this.$_targetNodes=this.targetNodes().filter((e=>e.nodeType===e.ELEMENT_NODE)),this.$_popperNode=this.popperNode(),this.$_innerNode=this.$_popperNode.querySelector(".v-popper__inner"),this.$_arrowNode=this.$_popperNode.querySelector(".v-popper__arrow-container"),this.$_swapTargetAttrs("title","data-original-title"),this.$_detachPopperNode(),this.triggers.length&&this.$_addEventListeners(),this.shown&&this.show())},dispose(){this.$_isDisposed||(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.$_detachPopperNode(),this.isMounted=!1,this.isShown=!1,this.$_updateParentShownChildren(!1),this.$_swapTargetAttrs("data-original-title","title"),this.$emit("dispose"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){var e;if(this.$_isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};var n;(this.distance||this.skidding)&&t.middleware.push((void 0===(n={mainAxis:this.distance,crossAxis:this.skidding})&&(n=0),{name:"offset",options:n,fn(e){const{x:t,y:r,placement:o,rects:s}=e,l=function(e){let{placement:t,rects:n,value:r}=e;const o=a(t),s=["left","top"].includes(o)?-1:1,l="function"==typeof r?r({...n,placement:t}):r,{mainAxis:u,crossAxis:d}="number"==typeof l?{mainAxis:l,crossAxis:0}:{mainAxis:0,crossAxis:0,...l};return"x"===i(o)?{x:d,y:u*s}:{x:u*s,y:d}}({placement:o,rects:s,value:n});return{x:t+l.x,y:r+l.y,data:l}}}));const u=this.placement.startsWith("auto");if(u?t.middleware.push(function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,i,o,s,l,u;const{x:c,y:m,rects:h,middlewareData:f,placement:p}=t,{alignment:_=null,allowedPlacements:A=b,autoAlignment:y=!0,...F}=e;if(null!=(n=f.autoPlacement)&&n.skip)return{};const k=function(e,t,n){return(e?[...n.filter((t=>r(t)===e)),...n.filter((t=>r(t)!==e))]:n.filter((e=>a(e)===e))).filter((n=>!e||r(n)===e||!!t&&v(n)!==n))}(_,y,A),w=await d(t,F),C=null!=(i=null==(o=f.autoPlacement)?void 0:o.index)?i:0,E=k[C],{main:T,cross:x}=g(E,h);if(p!==E)return{x:c,y:m,reset:{placement:k[0]}};const D=[w[a(E)],w[T],w[x]],S=[...null!=(s=null==(l=f.autoPlacement)?void 0:l.overflows)?s:[],{placement:E,overflows:D}],B=k[C+1];if(B)return{data:{index:C+1,overflows:S},reset:{placement:B}};const M=S.slice().sort(((e,t)=>e.overflows[0]-t.overflows[0])),L=null==(u=M.find((e=>{let{overflows:t}=e;return t.every((e=>e<=0))})))?void 0:u.placement;return{data:{skip:!0},reset:{placement:null!=L?L:M[0].placement}}}}}({alignment:null!=(e=this.placement.split("-")[1])?e:""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=e,m={x:n,y:r},f=await d(t,c),p=i(a(o)),g="x"===p?"y":"x";let _=m[p],v=m[g];if(s){const e="y"===p?"bottom":"right";_=h(_+f["y"===p?"top":"left"],_,_-f[e])}if(l){const e="y"===g?"bottom":"right";v=h(v+f["y"===g?"top":"left"],v,v-f[e])}const b=u.fn({...t,[p]:_,[g]:v});return{...b,data:{x:b.x-n,y:b.y-r}}}}}({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!u&&this.flip&&t.middleware.push(function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:i,middlewareData:o,rects:s,initialPlacement:l}=t;if(null!=(n=o.flip)&&n.skip)return{};const{mainAxis:u=!0,crossAxis:c=!0,fallbackPlacements:m,fallbackStrategy:h="bestFit",flipAlignment:f=!0,..._}=e,b=a(i),A=m||(b!==l&&f?function(e){const t=p(e);return[v(e),t,v(t)]}(l):[p(l)]),y=[l,...A],F=await d(t,_),k=[];let w=(null==(r=o.flip)?void 0:r.overflows)||[];if(u&&k.push(F[b]),c){const{main:e,cross:t}=g(i,s);k.push(F[e],F[t])}if(w=[...w,{placement:i,overflows:k}],!k.every((e=>e<=0))){var C,E;const e=(null!=(C=null==(E=o.flip)?void 0:E.index)?C:0)+1,t=y[e];if(t)return{data:{index:e,overflows:w},reset:{placement:t}};let n="bottom";switch(h){case"bestFit":{var T;const e=null==(T=w.slice().sort(((e,t)=>e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)-t.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)))[0])?void 0:T.placement;e&&(n=e);break}case"initialPlacement":n=l}return{data:{skip:!0},reset:{placement:n}}}return{}}}}({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push((e=>({name:"arrow",options:e,async fn(t){const{element:n,padding:r=0}=null!=e?e:{},{x:s,y:u,placement:d,rects:c,platform:m}=t;if(null==n)return{};const f=l(r),p={x:s,y:u},g=i(a(d)),_=o(g),v=await m.getDimensions({element:n}),b="y"===g?"top":"left",A="y"===g?"bottom":"right",y=c.reference[_]+c.reference[g]-p[g]-c.floating[_],F=p[g]-c.reference[g],k=await m.getOffsetParent({element:n}),w=k?"y"===g?k.clientHeight||0:k.clientWidth||0:0,C=y/2-F/2,E=f[b],T=w-v[_]-f[A],x=w/2-v[_]/2+C,D=h(E,x,T);return{data:{[g]:D,centerOffset:x-D}}}}))({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:e,rects:t,middlewareData:n})=>{let a;const{centerOffset:r}=n.arrow;return a=e.startsWith("top")||e.startsWith("bottom")?Math.abs(r)>t.reference.width/2:Math.abs(r)>t.reference.height/2,{data:{overflow:a}}}}),this.autoMinSize||this.autoSize){const e=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:t,placement:n,middlewareData:a})=>{var r;if(null==(r=a.autoSize)?void 0:r.skip)return{};let i,o;return n.startsWith("top")||n.startsWith("bottom")?i=t.reference.width:o=t.reference.height,this.$_innerNode.style["min"===e?"minWidth":"max"===e?"maxWidth":"width"]=null!=i?`${i}px`:null,this.$_innerNode.style["min"===e?"minHeight":"max"===e?"maxHeight":"height"]=null!=o?`${o}px`:null,{data:{skip:!0},reset:{rects:!0}}}})}(this.autoMaxSize||this.autoBoundaryMaxSize)&&(this.$_innerNode.style.maxWidth=null,this.$_innerNode.style.maxHeight=null,t.middleware.push(function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n;const{placement:i,rects:o,middlewareData:s}=t,{apply:l,...u}=e;if(null!=(n=s.size)&&n.skip)return{};const c=await d(t,u),h=a(i),f="end"===r(i);let p,g;"top"===h||"bottom"===h?(p=h,g=f?"left":"right"):(g=h,p=f?"top":"bottom");const _=m(c.left,0),v=m(c.right,0),b=m(c.top,0),A=m(c.bottom,0),y={height:o.floating.height-(["left","right"].includes(i)?2*(0!==b||0!==A?b+A:m(c.top,c.bottom)):c[p]),width:o.floating.width-(["top","bottom"].includes(i)?2*(0!==_||0!==v?_+v:m(c.left,c.right)):c[g])};return null==l||l({...y,...o}),{data:{skip:!0},reset:{rects:!0}}}}}({boundary:this.boundary,padding:this.overflowPadding,apply:({width:e,height:t})=>{this.$_innerNode.style.maxWidth=null!=e?`${e}px`:null,this.$_innerNode.style.maxHeight=null!=t?`${t}px`:null}})));const c=await((e,t,n)=>(async(e,t,n)=>{const{placement:a="bottom",strategy:r="absolute",middleware:i=[],platform:o}=n;let l=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:d}=s({...l,placement:a}),c=a,m={};for(let n=0;n0?this.$_pendingHide=!0:(this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(ge=this),t?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide")))},$_computeDelay(e){const t=this.delay;return parseInt(t&&t[e]||t||0)},async $_applyShow(e=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=e,this.isShown||(this.$_ensureTeleport(),await fe(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...U(this.$_referenceNode),...U(this.$_popperNode)],"scroll",(()=>{this.$_computePosition()})))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),t=this.$_popperNode.querySelector(".v-popper__wrapper"),n=t.parentNode.getBoundingClientRect(),a=e.x+e.width/2-(n.left+t.offsetLeft),r=e.y+e.height/2-(n.top+t.offsetTop);this.result.transformOrigin=`${a}px ${r}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const e=this.showGroup;if(e){let t;for(let n=0;n0)return this.$_pendingHide=!0,void(this.$_hideInProgress=!1);if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=e,he(pe,this),0===pe.length&&document.body.classList.remove("v-popper--some-open");for(const e of se(this.theme)){const t=ve(e);he(t,this),0===t.length&&document.body.classList.remove(`v-popper--some-open--${e}`)}ge===this&&(ge=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const t=oe(this.theme,"disposeTimeout");null!==t&&(this.$_disposeTimer=setTimeout((()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)}),t)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await fe(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.$_isDisposed)return;let e=this.container;if("string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=this.$_targetNodes[0].parentNode),!e)throw new Error("No container for popover: "+this.container);e.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const e=e=>{this.isShown&&!this.$_hideInProgress||(e.usedByTooltip=!0,!this.$_preventShow&&this.show({event:e}))};this.$_registerTriggerListeners(this.$_targetNodes,ce,this.triggers,this.showTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],ce,this.popperTriggers,this.popperShowTriggers,e);const t=e=>t=>{t.usedByTooltip||this.hide({event:t,skipAiming:e})};this.$_registerTriggerListeners(this.$_targetNodes,me,this.triggers,this.hideTriggers,t(!1)),this.$_registerTriggerListeners([this.$_popperNode],me,this.popperTriggers,this.popperHideTriggers,t(!0))},$_registerEventListeners(e,t,n){this.$_events.push({targetNodes:e,eventType:t,handler:n}),e.forEach((e=>e.addEventListener(t,n,le?{passive:!0}:void 0)))},$_registerTriggerListeners(e,t,n,a,r){let i=n;null!=a&&(i="function"==typeof a?a(i):a),i.forEach((n=>{const a=t[n];a&&this.$_registerEventListeners(e,a,r)}))},$_removeEventListeners(e){const t=[];this.$_events.forEach((n=>{const{targetNodes:a,eventType:r,handler:i}=n;e&&e!==r?t.push(n):a.forEach((e=>e.removeEventListener(r,i)))})),this.$_events=t},$_refreshListeners(){this.$_isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(e,t=!1){this.$_showFrameLocked||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),t&&(this.$_preventShow=!0,setTimeout((()=>{this.$_preventShow=!1}),300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(e,t){for(const n of this.$_targetNodes){const a=n.getAttribute(e);a&&(n.removeAttribute(e),n.setAttribute(t,a))}},$_applyAttrsToTarget(e){for(const t of this.$_targetNodes)for(const n in e){const a=e[n];null==a?t.removeAttribute(n):t.setAttribute(n,a)}},$_updateParentShownChildren(e){let t=this.parentPopper;for(;t;)e?t.shownChildren.add(this.randomId):(t.shownChildren.delete(this.randomId),t.$_pendingHide&&t.hide()),t=t.parentPopper},$_isAimingPopper(){const e=this.$el.getBoundingClientRect();if(De>=e.left&&De<=e.right&&Se>=e.top&&Se<=e.bottom){const e=this.$_popperNode.getBoundingClientRect(),t=De-Te,n=Se-xe,a=e.left+e.width/2-Te+(e.top+e.height/2)-xe+e.width+e.height,r=Te+t*a,i=xe+n*a;return Be(Te,xe,r,i,e.left,e.top,e.left,e.bottom)||Be(Te,xe,r,i,e.left,e.top,e.right,e.top)||Be(Te,xe,r,i,e.right,e.top,e.right,e.bottom)||Be(Te,xe,r,i,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$scopedSlots.default(this.slotData)[0]}});function ke(e){for(let t=0;t=0;a--){const r=pe[a];try{const a=r.$_containsGlobalTarget=Ce(r,e);r.$_pendingHide=!1,requestAnimationFrame((()=>{if(r.$_pendingHide=!1,!n[r.randomId]&&Ee(r,a,e)){if(r.$_handleGlobalClose(e,t),!e.closeAllPopover&&e.closePopover&&a){let e=r.parentPopper;for(;e;)n[e.randomId]=!0,e=e.parentPopper;return}let i=r.parentPopper;for(;i&&Ee(i,i.$_containsGlobalTarget,e);)i.$_handleGlobalClose(e,t),i=i.parentPopper}}))}catch(e){}}}function Ce(e,t){const n=e.popperNode();return e.$_mouseDownContains||n.contains(t.target)}function Ee(e,t,n){return n.closeAllPopover||n.closePopover&&t||function(e,t){if("function"==typeof e.autoHide){const n=e.autoHide(t);return e.lastAutoHide=n,n}return e.autoHide}(e,n)&&!t}"undefined"!=typeof document&&"undefined"!=typeof window&&(ue?(document.addEventListener("touchstart",ke,!le||{passive:!0,capture:!0}),document.addEventListener("touchend",(function(e){we(e,!0)}),!le||{passive:!0,capture:!0})):(window.addEventListener("mousedown",ke,!0),window.addEventListener("click",(function(e){we(e)}),!0)),window.addEventListener("resize",(function(e){for(let t=0;t=0&&l<=1&&u>=0&&u<=1}var Me;function Le(){Le.init||(Le.init=!0,Me=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}())}function Ne(e,t,n,a,r,i,o,s,l,u){"boolean"!=typeof o&&(l=s,s=o,o=!1);var d,c="function"==typeof n?n.options:n;if(e&&e.render&&(c.render=e.render,c.staticRenderFns=e.staticRenderFns,c._compiled=!0,r&&(c.functional=!0)),a&&(c._scopeId=a),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},c._ssrRegister=d):t&&(d=o?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,s(e))}),d)if(c.functional){var m=c.render;c.render=function(e,t){return d.call(t),m(e,t)}}else{var h=c.beforeCreate;c.beforeCreate=h?[].concat(h,d):[d]}return n}"undefined"!=typeof window&&window.addEventListener("mousemove",(e=>{Te=De,xe=Se,De=e.clientX,Se=e.clientY}),le?{passive:!0}:void 0);var je={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;Le(),this.$nextTick((function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()}));var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",Me&&this.$el.appendChild(t),t.data="about:blank",Me||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!Me&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},Oe=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};Oe._withStripped=!0;var Pe=Ne({render:Oe,staticRenderFns:[]},void 0,je,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),Ye={version:"1.0.1",install:function(e){e.component("resize-observer",Pe),e.component("ResizeObserver",Pe)}},Re=null;"undefined"!=typeof window?Re=window.Vue:void 0!==n.g&&(Re=n.g.Vue),Re&&Re.use(Ye);var Ie={computed:{themeClass(){return function(e){const t=[e];let n=ie.themes[e]||{};do{n.$extend&&!n.$resetCss?(t.push(n.$extend),n=ie.themes[n.$extend]||{}):n=null}while(n);return t.map((e=>`v-popper--theme-${e}`))}(this.theme)}}},He={name:"VPopperContent",components:{ResizeObserver:Pe},mixins:[Ie],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},methods:{toPx:e=>null==e||isNaN(e)?null:`${e}px`}};function ze(e,t,n,a,r,i,o,s){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),a&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),o?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},u._ssrRegister=l):r&&(l=s?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(e,t){return l.call(t),d(e,t)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:e,options:u}}const Ue={};var qe=ze(He,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"popover",staticClass:"v-popper__popper",class:[e.themeClass,e.classes.popperClass,{"v-popper__popper--shown":e.shown,"v-popper__popper--hidden":!e.shown,"v-popper__popper--show-from":e.classes.showFrom,"v-popper__popper--show-to":e.classes.showTo,"v-popper__popper--hide-from":e.classes.hideFrom,"v-popper__popper--hide-to":e.classes.hideTo,"v-popper__popper--skip-transition":e.skipTransition,"v-popper__popper--arrow-overflow":e.result&&e.result.arrow.overflow,"v-popper__popper--no-positioning":!e.result}],style:e.result?{position:e.result.strategy,transform:"translate3d("+Math.round(e.result.x)+"px,"+Math.round(e.result.y)+"px,0)"}:void 0,attrs:{id:e.popperId,"aria-hidden":e.shown?"false":"true",tabindex:e.autoHide?0:void 0,"data-popper-placement":e.result?e.result.placement:void 0},on:{keyup:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.autoHide&&e.$emit("hide")}}},[n("div",{staticClass:"v-popper__backdrop",on:{click:function(t){e.autoHide&&e.$emit("hide")}}}),n("div",{staticClass:"v-popper__wrapper",style:e.result?{transformOrigin:e.result.transformOrigin}:void 0},[n("div",{ref:"inner",staticClass:"v-popper__inner"},[e.mounted?[n("div",[e._t("default")],2),e.handleResize?n("ResizeObserver",{on:{notify:function(t){return e.$emit("resize",t)}}}):e._e()]:e._e()],2),n("div",{ref:"arrow",staticClass:"v-popper__arrow-container",style:e.result?{left:e.toPx(e.result.arrow.x),top:e.toPx(e.result.arrow.y)}:void 0},[n("div",{staticClass:"v-popper__arrow-outer"}),n("div",{staticClass:"v-popper__arrow-inner"})])])])}),[],!1,Ge,null,null,null);function Ge(e){for(let e in Ue)this[e]=Ue[e]}var Ze=function(){return qe.exports}(),$e={methods:{show(...e){return this.$refs.popper.show(...e)},hide(...e){return this.$refs.popper.hide(...e)},dispose(...e){return this.$refs.popper.dispose(...e)},onResize(...e){return this.$refs.popper.onResize(...e)}}},We={name:"VPopperWrapper",components:{Popper:Fe(),PopperContent:Ze},mixins:[$e,Ie],inheritAttrs:!1,props:{theme:{type:String,default(){return this.$options.vPopperTheme}}},methods:{getTargetNodes(){return Array.from(this.$refs.reference.children).filter((e=>e!==this.$refs.popperContent.$el))}}};const Ve={};var Xe=ze(We,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"target-nodes":e.getTargetNodes,"reference-node":function(){return e.$refs.reference},"popper-node":function(){return e.$refs.popperContent.$el}},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.popperId,r=t.isShown,i=t.shouldMountContent,o=t.skipTransition,s=t.autoHide,l=t.show,u=t.hide,d=t.handleResize,c=t.onResize,m=t.classes,h=t.result;return[n("div",{ref:"reference",staticClass:"v-popper",class:[e.themeClass,{"v-popper--shown":r}]},[e._t("default",null,{shown:r,show:l,hide:u}),n("PopperContent",{ref:"popperContent",attrs:{"popper-id":a,theme:e.theme,shown:r,mounted:i,"skip-transition":o,"auto-hide":s,"handle-resize":d,classes:m,result:h},on:{hide:u,resize:c}},[e._t("popper",null,{shown:r,hide:u})],2)],2)]}}],null,!0)},"Popper",e.$attrs,!1),e.$listeners))}),[],!1,Ke,null,null,null);function Ke(e){for(let e in Ve)this[e]=Ve[e]}var Je=function(){return Xe.exports}(),Qe=ae(ne({},Je),{name:"VDropdown",vPopperTheme:"dropdown"});const et={};var tt=ze(Qe,void 0,void 0,!1,nt,null,null,null);function nt(e){for(let e in et)this[e]=et[e]}var at=function(){return tt.exports}(),rt=ae(ne({},Je),{name:"VMenu",vPopperTheme:"menu"});const it={};var ot=ze(rt,void 0,void 0,!1,st,null,null,null);function st(e){for(let e in it)this[e]=it[e]}var lt=function(){return ot.exports}(),ut=ae(ne({},Je),{name:"VTooltip",vPopperTheme:"tooltip"});const dt={};var ct=ze(ut,void 0,void 0,!1,mt,null,null,null);function mt(e){for(let e in dt)this[e]=dt[e]}var ht=function(){return ct.exports}(),ft={name:"VTooltipDirective",components:{Popper:Fe(),PopperContent:Ze},mixins:[$e],inheritAttrs:!1,props:{theme:{type:String,default:"tooltip"},html:{type:Boolean,default(){return oe(this.theme,"html")}},content:{type:[String,Number,Function],default:null},loadingContent:{type:String,default(){return oe(this.theme,"loadingContent")}}},data:()=>({asyncContent:null}),computed:{isContentAsync(){return"function"==typeof this.content},loading(){return this.isContentAsync&&null==this.asyncContent},finalContent(){return this.isContentAsync?this.loading?this.loadingContent:this.asyncContent:this.content}},watch:{content:{handler(){this.fetchContent(!0)},immediate:!0},async finalContent(e){await this.$nextTick(),this.$refs.popper.onResize()}},created(){this.$_fetchId=0},methods:{fetchContent(e){if("function"==typeof this.content&&this.$_isShown&&(e||!this.$_loading&&null==this.asyncContent)){this.asyncContent=null,this.$_loading=!0;const e=++this.$_fetchId,t=this.content(this);t.then?t.then((t=>this.onResult(e,t))):this.onResult(e,t)}},onResult(e,t){e===this.$_fetchId&&(this.$_loading=!1,this.asyncContent=t)},onShow(){this.$_isShown=!0,this.fetchContent()},onHide(){this.$_isShown=!1}}};const pt={};var gt=ze(ft,(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("Popper",e._g(e._b({ref:"popper",attrs:{theme:e.theme,"popper-node":function(){return e.$refs.popperContent.$el}},on:{"apply-show":e.onShow,"apply-hide":e.onHide},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.popperId,r=t.isShown,i=t.shouldMountContent,o=t.skipTransition,s=t.autoHide,l=t.hide,u=t.handleResize,d=t.onResize,c=t.classes,m=t.result;return[n("PopperContent",{ref:"popperContent",class:{"v-popper--tooltip-loading":e.loading},attrs:{"popper-id":a,theme:e.theme,shown:r,mounted:i,"skip-transition":o,"auto-hide":s,"handle-resize":u,classes:c,result:m},on:{hide:l,resize:d}},[e.html?n("div",{domProps:{innerHTML:e._s(e.finalContent)}}):n("div",{domProps:{textContent:e._s(e.finalContent)}})])]}}])},"Popper",e.$attrs,!1),e.$listeners))}),[],!1,_t,null,null,null);function _t(e){for(let e in pt)this[e]=pt[e]}var vt=function(){return gt.exports}();const bt="v-popper--has-tooltip";function At(e,t,n){let a;const r=typeof t;return a="string"===r?{content:t}:t&&"object"===r?t:{content:!1},a.placement=function(e,t){let n=e.placement;if(!n&&t)for(const e of de)t[e]&&(n=e);return n||(n=oe(e.theme||"tooltip","placement")),n}(a,n),a.targetNodes=()=>[e],a.referenceNode=()=>e,a}function yt(e){e.$_popper&&(e.$_popper.$destroy(),delete e.$_popper,delete e.$_popperOldShown),e.classList&&e.classList.remove(bt)}function Ft(e,{value:t,oldValue:n,modifiers:a}){const r=At(e,t,a);if(!r.content||oe(r.theme||"tooltip","disabled"))yt(e);else{let n;e.$_popper?(n=e.$_popper,n.options=r):n=function(e,t,n){const a=At(e,t,n),r=e.$_popper=new $.Ay({mixins:[$e],data:()=>({options:a}),render(e){const t=this.options,{theme:n,html:a,content:r,loadingContent:i}=t,o=((e,t)=>{var n={};for(var a in e)Q.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&J)for(var a of J(e))t.indexOf(a)<0&&ee.call(e,a)&&(n[a]=e[a]);return n})(t,["theme","html","content","loadingContent"]);return e(vt,{props:{theme:n,html:a,content:r,loadingContent:i},attrs:o,ref:"popper"})},devtools:{hide:!0}}),i=document.createElement("div");return document.body.appendChild(i),r.$mount(i),e.classList&&e.classList.add(bt),r}(e,t,a),void 0!==t.shown&&t.shown!==e.$_popperOldShown&&(e.$_popperOldShown=t.shown,t.shown?n.show():n.hide())}}var kt={bind:Ft,update:Ft,unbind(e){yt(e)}};function wt(e){e.addEventListener("click",Et),e.addEventListener("touchstart",Tt,!!le&&{passive:!0})}function Ct(e){e.removeEventListener("click",Et),e.removeEventListener("touchstart",Tt),e.removeEventListener("touchend",xt),e.removeEventListener("touchcancel",Dt)}function Et(e){const t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Tt(e){if(1===e.changedTouches.length){const t=e.currentTarget;t.$_vclosepopover_touch=!0;const n=e.changedTouches[0];t.$_vclosepopover_touchPoint=n,t.addEventListener("touchend",xt),t.addEventListener("touchcancel",Dt)}}function xt(e){const t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){const n=e.changedTouches[0],a=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(n.screenY-a.screenY)<20&&Math.abs(n.screenX-a.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Dt(e){e.currentTarget.$_vclosepopover_touch=!1}var St={bind(e,{value:t,modifiers:n}){e.$_closePopoverModifiers=n,(void 0===t||t)&&wt(e)},update(e,{value:t,oldValue:n,modifiers:a}){e.$_closePopoverModifiers=a,t!==n&&(void 0===t||t?wt(e):Ct(e))},unbind(e){Ct(e)}};const Bt=/^(2573|3012)$/.test(n.j)?null:ie,Mt=/^(2573|3012)$/.test(n.j)?null:kt,Lt=6600!=n.j?at:null,Nt={version:"1.0.0-beta.19",install:function(e,t={}){e.$_vTooltipInstalled||(e.$_vTooltipInstalled=!0,re(ie,t),e.directive("tooltip",kt),e.directive("close-popper",St),e.component("v-tooltip",ht),e.component("VTooltip",ht),e.component("v-dropdown",at),e.component("VDropdown",at),e.component("v-menu",lt),e.component("VMenu",lt))},options:ie};let jt=null;"undefined"!=typeof window?jt=window.Vue:void 0!==n.g&&(jt=n.g.Vue),jt&&jt.use(Nt)},52697:(e,t,n)=>{"use strict";if(n.d(t,{K:()=>f}),!/^(2((07|69|76)6|299)|6(174|371|600)|82(0|79)|(78|96)43|1952|3260|3604|4897|5438|590)$/.test(n.j))var a=n(49054);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t1?t-1:0),a=1;a1?n-1:0),i=1;i=0)e=r.activeElement;else{var t=g.tabbableGroups[0];e=t&&t.firstTabbableNode||b("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},y=function(){if(g.containerGroups=g.containers.map((function(e){var t=(0,a.Kr)(e,p.tabbableOptions),n=(0,a.nq)(e,p.tabbableOptions),r=t.length>0?t[0]:void 0,i=t.length>0?t[t.length-1]:void 0,o=n.find((function(e){return(0,a.AO)(e)})),s=n.slice().reverse().find((function(e){return(0,a.AO)(e)})),l=!!t.find((function(e){return(0,a.yT)(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:l,firstTabbableNode:r,lastTabbableNode:i,firstDomTabbableNode:o,lastDomTabbableNode:s,nextTabbableNode:function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=t.indexOf(e);return i<0?r?n.slice(n.indexOf(e)+1).find((function(e){return(0,a.AO)(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return(0,a.AO)(e)})):t[i+(r?1:-1)]}}})),g.tabbableGroups=g.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),g.tabbableGroups.length<=0&&!b("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(g.containerGroups.find((function(e){return e.posTabIndexesFound}))&&g.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},F=function e(t){var n=t.activeElement;if(n)return n.shadowRoot&&null!==n.shadowRoot.activeElement?e(n.shadowRoot):n},k=function e(t){!1!==t&&t!==F(document)&&(t&&t.focus?(t.focus({preventScroll:!!p.preventScroll}),g.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(t)&&t.select()):e(A()))},w=function(e){var t=b("setReturnFocus",e);return t||!1!==t&&e},C=function(e){var t=e.target,n=e.event,r=e.isBackward,i=void 0!==r&&r;t=t||m(n),y();var s=null;if(g.tabbableGroups.length>0){var l=v(t,n),u=l>=0?g.containerGroups[l]:void 0;if(l<0)s=i?g.tabbableGroups[g.tabbableGroups.length-1].lastTabbableNode:g.tabbableGroups[0].firstTabbableNode;else if(i){var c=d(g.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(c<0&&(u.container===t||(0,a.tp)(t,p.tabbableOptions)&&!(0,a.AO)(t,p.tabbableOptions)&&!u.nextTabbableNode(t,!1))&&(c=l),c>=0){var h=0===c?g.tabbableGroups.length-1:c-1,f=g.tabbableGroups[h];s=(0,a.yT)(t)>=0?f.lastTabbableNode:f.lastDomTabbableNode}else o(n)||(s=u.nextTabbableNode(t,!1))}else{var _=d(g.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(_<0&&(u.container===t||(0,a.tp)(t,p.tabbableOptions)&&!(0,a.AO)(t,p.tabbableOptions)&&!u.nextTabbableNode(t))&&(_=l),_>=0){var A=_===g.tabbableGroups.length-1?0:_+1,F=g.tabbableGroups[A];s=(0,a.yT)(t)>=0?F.firstTabbableNode:F.firstDomTabbableNode}else o(n)||(s=u.nextTabbableNode(t))}}else s=b("fallbackFocus");return s},E=function(e){var t=m(e);v(t,e)>=0||(c(p.clickOutsideDeactivates,e)?n.deactivate({returnFocus:p.returnFocusOnDeactivate}):c(p.allowOutsideClick,e)||e.preventDefault())},T=function(e){var t=m(e),n=v(t,e)>=0;if(n||t instanceof Document)n&&(g.mostRecentlyFocusedNode=t);else{var r;e.stopImmediatePropagation();var i=!0;if(g.mostRecentlyFocusedNode)if((0,a.yT)(g.mostRecentlyFocusedNode)>0){var o=v(g.mostRecentlyFocusedNode),s=g.containerGroups[o].tabbableNodes;if(s.length>0){var l=s.findIndex((function(e){return e===g.mostRecentlyFocusedNode}));l>=0&&(p.isKeyForward(g.recentNavEvent)?l+1=0&&(r=s[l-1],i=!1))}}else g.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return(0,a.yT)(e)>0}))}))||(i=!1);else i=!1;i&&(r=C({target:g.mostRecentlyFocusedNode,isBackward:p.isKeyBackward(g.recentNavEvent)})),k(r||g.mostRecentlyFocusedNode||A())}g.recentNavEvent=void 0},x=function(e){if(("Escape"===(null==(t=e)?void 0:t.key)||"Esc"===(null==t?void 0:t.key)||27===(null==t?void 0:t.keyCode))&&!1!==c(p.escapeDeactivates,e))return e.preventDefault(),void n.deactivate();var t;(p.isKeyForward(e)||p.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];g.recentNavEvent=e;var n=C({event:e,isBackward:t});n&&(o(e)&&e.preventDefault(),k(n))}(e,p.isKeyBackward(e))},D=function(e){var t=m(e);v(t,e)>=0||c(p.clickOutsideDeactivates,e)||c(p.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},S=function(){if(g.active)return function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n.pause()}var a=e.indexOf(t);-1===a||e.splice(a,1),e.push(t)}(f,n),g.delayInitialFocusTimer=p.delayInitialFocus?u((function(){k(A())})):k(A()),r.addEventListener("focusin",T,!0),r.addEventListener("mousedown",E,{capture:!0,passive:!1}),r.addEventListener("touchstart",E,{capture:!0,passive:!1}),r.addEventListener("click",D,{capture:!0,passive:!1}),r.addEventListener("keydown",x,{capture:!0,passive:!1}),n},B=function(){if(g.active)return r.removeEventListener("focusin",T,!0),r.removeEventListener("mousedown",E,!0),r.removeEventListener("touchstart",E,!0),r.removeEventListener("click",D,!0),r.removeEventListener("keydown",x,!0),n},M="undefined"!=typeof window&&"MutationObserver"in window?new MutationObserver((function(e){e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===g.mostRecentlyFocusedNode}))}))&&k(A())})):void 0,L=function(){M&&(M.disconnect(),g.active&&!g.paused&&g.containers.map((function(e){M.observe(e,{subtree:!0,childList:!0})})))};return(n={get active(){return g.active},get paused(){return g.paused},activate:function(e){if(g.active)return this;var t=_(e,"onActivate"),n=_(e,"onPostActivate"),a=_(e,"checkCanFocusTrap");a||y(),g.active=!0,g.paused=!1,g.nodeFocusedBeforeActivation=r.activeElement,null==t||t();var i=function(){a&&y(),S(),L(),null==n||n()};return a?(a(g.containers.concat()).then(i,i),this):(i(),this)},deactivate:function(e){if(!g.active)return this;var t=i({onDeactivate:p.onDeactivate,onPostDeactivate:p.onPostDeactivate,checkCanReturnFocus:p.checkCanReturnFocus},e);clearTimeout(g.delayInitialFocusTimer),g.delayInitialFocusTimer=void 0,B(),g.active=!1,g.paused=!1,L(),function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}(f,n);var a=_(t,"onDeactivate"),r=_(t,"onPostDeactivate"),o=_(t,"checkCanReturnFocus"),s=_(t,"returnFocus","returnFocusOnDeactivate");null==a||a();var l=function(){u((function(){s&&k(w(g.nodeFocusedBeforeActivation)),null==r||r()}))};return s&&o?(o(w(g.nodeFocusedBeforeActivation)).then(l,l),this):(l(),this)},pause:function(e){if(g.paused||!g.active)return this;var t=_(e,"onPause"),n=_(e,"onPostPause");return g.paused=!0,null==t||t(),B(),L(),null==n||n(),this},unpause:function(e){if(!g.paused||!g.active)return this;var t=_(e,"onUnpause"),n=_(e,"onPostUnpause");return g.paused=!1,null==t||t(),y(),S(),L(),null==n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return g.containers=t.map((function(e){return"string"==typeof e?r.querySelector(e):e})),g.active&&y(),L(),this}}).updateContainerElements(e),n}},82682:(e,t,n)=>{"use strict";var a=n(69600),r=Object.prototype.toString,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!a(t))throw new TypeError("iterator must be a function");var o;arguments.length>=3&&(o=n),"[object Array]"===r.call(e)?function(e,t,n){for(var a=0,r=e.length;a{"use strict";var t=Object.prototype.toString,n=Math.max,a=function(e,t){for(var n=[],a=0;a{"use strict";var a=n(89353);e.exports=Function.prototype.bind||a},70453:(e,t,n)=>{"use strict";var a,r=n(69383),i=n(41237),o=n(79290),s=n(79538),l=n(58068),u=n(69675),d=n(35345),c=Function,m=function(e){try{return c('"use strict"; return ('+e+").constructor;")()}catch(e){}},h=Object.getOwnPropertyDescriptor;if(h)try{h({},"")}catch(e){h=null}var f=function(){throw new u},p=h?function(){try{return f}catch(e){try{return h(arguments,"callee").get}catch(e){return f}}}():f,g=n(64039)(),_=n(80024)(),v=Object.getPrototypeOf||(_?function(e){return e.__proto__}:null),b={},A="undefined"!=typeof Uint8Array&&v?v(Uint8Array):a,y={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?a:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?a:ArrayBuffer,"%ArrayIteratorPrototype%":g&&v?v([][Symbol.iterator]()):a,"%AsyncFromSyncIteratorPrototype%":a,"%AsyncFunction%":b,"%AsyncGenerator%":b,"%AsyncGeneratorFunction%":b,"%AsyncIteratorPrototype%":b,"%Atomics%":"undefined"==typeof Atomics?a:Atomics,"%BigInt%":"undefined"==typeof BigInt?a:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?a:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?a:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?a:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":i,"%Float32Array%":"undefined"==typeof Float32Array?a:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?a:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?a:FinalizationRegistry,"%Function%":c,"%GeneratorFunction%":b,"%Int8Array%":"undefined"==typeof Int8Array?a:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?a:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?a:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&v?v(v([][Symbol.iterator]())):a,"%JSON%":"object"==typeof JSON?JSON:a,"%Map%":"undefined"==typeof Map?a:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&g&&v?v((new Map)[Symbol.iterator]()):a,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?a:Promise,"%Proxy%":"undefined"==typeof Proxy?a:Proxy,"%RangeError%":o,"%ReferenceError%":s,"%Reflect%":"undefined"==typeof Reflect?a:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?a:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&g&&v?v((new Set)[Symbol.iterator]()):a,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?a:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&v?v(""[Symbol.iterator]()):a,"%Symbol%":g?Symbol:a,"%SyntaxError%":l,"%ThrowTypeError%":p,"%TypedArray%":A,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?a:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?a:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?a:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?a:Uint32Array,"%URIError%":d,"%WeakMap%":"undefined"==typeof WeakMap?a:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?a:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?a:WeakSet};if(v)try{null.error}catch(e){var F=v(v(e));y["%Error.prototype%"]=F}var k=function e(t){var n;if("%AsyncFunction%"===t)n=m("async function () {}");else if("%GeneratorFunction%"===t)n=m("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=m("async function* () {}");else if("%AsyncGenerator%"===t){var a=e("%AsyncGeneratorFunction%");a&&(n=a.prototype)}else if("%AsyncIteratorPrototype%"===t){var r=e("%AsyncGenerator%");r&&v&&(n=v(r.prototype))}return y[t]=n,n},w={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},C=n(66743),E=n(9957),T=C.call(Function.call,Array.prototype.concat),x=C.call(Function.apply,Array.prototype.splice),D=C.call(Function.call,String.prototype.replace),S=C.call(Function.call,String.prototype.slice),B=C.call(Function.call,RegExp.prototype.exec),M=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,L=/\\(\\)?/g,N=function(e,t){var n,a=e;if(E(w,a)&&(a="%"+(n=w[a])[0]+"%"),E(y,a)){var r=y[a];if(r===b&&(r=k(a)),void 0===r&&!t)throw new u("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:a,value:r}}throw new l("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new u('"allowMissing" argument must be a boolean');if(null===B(/^%?[^%]*%?$/,e))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=S(e,0,1),n=S(e,-1);if("%"===t&&"%"!==n)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new l("invalid intrinsic syntax, expected opening `%`");var a=[];return D(e,M,(function(e,t,n,r){a[a.length]=n?D(r,L,"$1"):t||e})),a}(e),a=n.length>0?n[0]:"",r=N("%"+a+"%",t),i=r.name,o=r.value,s=!1,d=r.alias;d&&(a=d[0],x(n,T([0,1],d)));for(var c=1,m=!0;c=n.length){var _=h(o,f);o=(m=!!_)&&"get"in _&&!("originalValue"in _.get)?_.get:o[f]}else m=E(o,f),o=o[f];m&&!s&&(y[i]=o)}}return o}},75795:(e,t,n)=>{"use strict";var a=n(70453)("%Object.getOwnPropertyDescriptor%",!0);if(a)try{a([],"length")}catch(e){a=null}e.exports=a},20261:(e,t,n)=>{"use strict";function a(e){return e&&e.__esModule?e:{default:e}}function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.__esModule=!0;var i=r(n(82871)),o=a(n(19613)),s=a(n(13769)),l=r(n(82849)),u=r(n(7624)),d=a(n(91148));function c(){var e=new i.HandlebarsEnvironment;return l.extend(e,i),e.SafeString=o.default,e.Exception=s.default,e.Utils=l,e.escapeExpression=l.escapeExpression,e.VM=u,e.template=function(t){return u.template(t,e)},e}var m=c();m.create=c,d.default(m),m.default=m,t.default=m,e.exports=t.default},82871:(e,t,n)=>{"use strict";function a(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.HandlebarsEnvironment=c;var r=n(82849),i=a(n(13769)),o=n(2277),s=n(75940),l=a(n(40566)),u=n(63865);t.VERSION="4.7.8",t.COMPILER_REVISION=8,t.LAST_COMPATIBLE_COMPILER_REVISION=7,t.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};var d="[object Object]";function c(e,t,n){this.helpers=e||{},this.partials=t||{},this.decorators=n||{},o.registerDefaultHelpers(this),s.registerDefaultDecorators(this)}c.prototype={constructor:c,logger:l.default,log:l.default.log,registerHelper:function(e,t){if(r.toString.call(e)===d){if(t)throw new i.default("Arg not supported with multiple helpers");r.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(r.toString.call(e)===d)r.extend(this.partials,e);else{if(void 0===t)throw new i.default('Attempting to register a partial called "'+e+'" as undefined');this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]},registerDecorator:function(e,t){if(r.toString.call(e)===d){if(t)throw new i.default("Arg not supported with multiple decorators");r.extend(this.decorators,e)}else this.decorators[e]=t},unregisterDecorator:function(e){delete this.decorators[e]},resetLoggedPropertyAccesses:function(){u.resetLoggedProperties()}};var m=l.default.log;t.log=m,t.createFrame=r.createFrame,t.logger=l.default},75940:(e,t,n)=>{"use strict";t.__esModule=!0,t.registerDefaultDecorators=function(e){r.default(e)};var a,r=(a=n(77430))&&a.__esModule?a:{default:a}},77430:(e,t,n)=>{"use strict";t.__esModule=!0;var a=n(82849);t.default=function(e){e.registerDecorator("inline",(function(e,t,n,r){var i=e;return t.partials||(t.partials={},i=function(r,i){var o=n.partials;n.partials=a.extend({},o,t.partials);var s=e(r,i);return n.partials=o,s}),t.partials[r.args[0]]=r.fn,i}))},e.exports=t.default},13769:(e,t)=>{"use strict";t.__esModule=!0;var n=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function a(e,t){var r=t&&t.loc,i=void 0,o=void 0,s=void 0,l=void 0;r&&(i=r.start.line,o=r.end.line,s=r.start.column,l=r.end.column,e+=" - "+i+":"+s);for(var u=Error.prototype.constructor.call(this,e),d=0;d{"use strict";function a(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.registerDefaultHelpers=function(e){r.default(e),i.default(e),o.default(e),s.default(e),l.default(e),u.default(e),d.default(e)},t.moveHelperToHooks=function(e,t,n){e.helpers[t]&&(e.hooks[t]=e.helpers[t],n||delete e.helpers[t])};var r=a(n(26097)),i=a(n(46785)),o=a(n(14353)),s=a(n(82355)),l=a(n(85300)),u=a(n(37466)),d=a(n(50908))},26097:(e,t,n)=>{"use strict";t.__esModule=!0;var a=n(82849);t.default=function(e){e.registerHelper("blockHelperMissing",(function(t,n){var r=n.inverse,i=n.fn;if(!0===t)return i(this);if(!1===t||null==t)return r(this);if(a.isArray(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&&n.ids){var o=a.createFrame(n.data);o.contextPath=a.appendContextPath(n.data.contextPath,n.name),n={data:o}}return i(t,n)}))},e.exports=t.default},46785:(e,t,n)=>{"use strict";t.__esModule=!0;var a,r=n(82849),i=(a=n(13769))&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("each",(function(e,t){if(!t)throw new i.default("Must pass iterator to #each");var n,a=t.fn,o=t.inverse,s=0,l="",u=void 0,d=void 0;function c(t,n,i){u&&(u.key=t,u.index=n,u.first=0===n,u.last=!!i,d&&(u.contextPath=d+t)),l+=a(e[t],{data:u,blockParams:r.blockParams([e[t],t],[d+t,null])})}if(t.data&&t.ids&&(d=r.appendContextPath(t.data.contextPath,t.ids[0])+"."),r.isFunction(e)&&(e=e.call(this)),t.data&&(u=r.createFrame(t.data)),e&&"object"==typeof e)if(r.isArray(e))for(var m=e.length;s{"use strict";t.__esModule=!0;var a,r=(a=n(13769))&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("helperMissing",(function(){if(1!==arguments.length)throw new r.default('Missing helper: "'+arguments[arguments.length-1].name+'"')}))},e.exports=t.default},82355:(e,t,n)=>{"use strict";t.__esModule=!0;var a,r=n(82849),i=(a=n(13769))&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("if",(function(e,t){if(2!=arguments.length)throw new i.default("#if requires exactly one argument");return r.isFunction(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||r.isEmpty(e)?t.inverse(this):t.fn(this)})),e.registerHelper("unless",(function(t,n){if(2!=arguments.length)throw new i.default("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}))},e.exports=t.default},85300:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("log",(function(){for(var t=[void 0],n=arguments[arguments.length-1],a=0;a{"use strict";t.__esModule=!0,t.default=function(e){e.registerHelper("lookup",(function(e,t,n){return e?n.lookupProperty(e,t):e}))},e.exports=t.default},50908:(e,t,n)=>{"use strict";t.__esModule=!0;var a,r=n(82849),i=(a=n(13769))&&a.__esModule?a:{default:a};t.default=function(e){e.registerHelper("with",(function(e,t){if(2!=arguments.length)throw new i.default("#with requires exactly one argument");r.isFunction(e)&&(e=e.call(this));var n=t.fn;if(r.isEmpty(e))return t.inverse(this);var a=t.data;return t.data&&t.ids&&((a=r.createFrame(t.data)).contextPath=r.appendContextPath(t.data.contextPath,t.ids[0])),n(e,{data:a,blockParams:r.blockParams([e],[a&&a.contextPath])})}))},e.exports=t.default},89726:(e,t,n)=>{"use strict";t.__esModule=!0,t.createNewLookupObject=function(){for(var e=arguments.length,t=Array(e),n=0;n{"use strict";t.__esModule=!0,t.createProtoAccessControl=function(e){var t=Object.create(null);t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1;var n=Object.create(null);return n.__proto__=!1,{properties:{whitelist:r.createNewLookupObject(n,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:r.createNewLookupObject(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}},t.resultIsAllowed=function(e,t,n){return function(e,t){return void 0!==e.whitelist[t]?!0===e.whitelist[t]:void 0!==e.defaultValue?e.defaultValue:(function(e){!0!==o[e]&&(o[e]=!0,i.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+'" because it is not an "own property" of its parent.\nYou can add a runtime option to disable the check or this warning:\nSee https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details'))}(t),!1)}("function"==typeof e?t.methods:t.properties,n)},t.resetLoggedProperties=function(){Object.keys(o).forEach((function(e){delete o[e]}))};var a,r=n(89726),i=(a=n(40566))&&a.__esModule?a:{default:a},o=Object.create(null)},72614:(e,t)=>{"use strict";t.__esModule=!0,t.wrapHelper=function(e,t){return"function"!=typeof e?e:function(){return arguments[arguments.length-1]=t(arguments[arguments.length-1]),e.apply(this,arguments)}}},40566:(e,t,n)=>{"use strict";var a=n(96763);t.__esModule=!0;var r=n(82849),i={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(e){if("string"==typeof e){var t=r.indexOf(i.methodMap,e.toLowerCase());e=t>=0?t:parseInt(e,10)}return e},log:function(e){if(e=i.lookupLevel(e),void 0!==a&&i.lookupLevel(i.level)<=e){var t=i.methodMap[e];a[t]||(t="log");for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o{"use strict";t.__esModule=!0,t.default=function(e){"object"!=typeof globalThis&&(Object.prototype.__defineGetter__("__magic__",(function(){return this})),__magic__.globalThis=__magic__,delete Object.prototype.__magic__);var t=globalThis.Handlebars;e.noConflict=function(){return globalThis.Handlebars===e&&(globalThis.Handlebars=t),e}},e.exports=t.default},7624:(e,t,n)=>{"use strict";t.__esModule=!0,t.checkRevision=function(e){var t=e&&e[0]||1,n=o.COMPILER_REVISION;if(!(t>=o.LAST_COMPATIBLE_COMPILER_REVISION&&t<=o.COMPILER_REVISION)){if(t{"use strict";function n(e){this.string=e}t.__esModule=!0,n.prototype.toString=n.prototype.toHTML=function(){return""+this.string},t.default=n,e.exports=t.default},82849:(e,t)=>{"use strict";t.__esModule=!0,t.extend=o,t.indexOf=function(e,t){for(var n=0,a=e.length;n":">",'"':""","'":"'","`":"`","=":"="},a=/[&<>"'`=]/g,r=/[&<>"'`=]/;function i(e){return n[e]}function o(e){for(var t=1;t{e.exports=n(20261).default},30592:(e,t,n)=>{"use strict";var a=n(30655),r=function(){return!!a};r.hasArrayLengthDefineBug=function(){if(!a)return null;try{return 1!==a([],"length",{value:1}).length}catch(e){return!0}},e.exports=r},80024:e=>{"use strict";var t={__proto__:null,foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!(t instanceof n)}},64039:(e,t,n)=>{"use strict";var a="undefined"!=typeof Symbol&&Symbol,r=n(41333);e.exports=function(){return"function"==typeof a&&"function"==typeof Symbol&&"symbol"==typeof a("foo")&&"symbol"==typeof Symbol("bar")&&r()}},41333:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var a=Object.getOwnPropertySymbols(e);if(1!==a.length||a[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var r=Object.getOwnPropertyDescriptor(e,t);if(42!==r.value||!0!==r.enumerable)return!1}return!0}},49092:(e,t,n)=>{"use strict";var a=n(41333);e.exports=function(){return a()&&!!Symbol.toStringTag}},9957:(e,t,n)=>{"use strict";var a=Function.prototype.call,r=Object.prototype.hasOwnProperty,i=n(66743);e.exports=i.call(a,r)},11083:(e,t,n)=>{var a=n(11568),r=n(88835),i=e.exports;for(var o in a)a.hasOwnProperty(o)&&(i[o]=a[o]);function s(e){if("string"==typeof e&&(e=r.parse(e)),e.protocol||(e.protocol="https:"),"https:"!==e.protocol)throw new Error('Protocol "'+e.protocol+'" not supported. Expected "https:"');return e}i.request=function(e,t){return e=s(e),a.request.call(this,e,t)},i.get=function(e,t){return e=s(e),a.get.call(this,e,t)}},251:(e,t)=>{t.read=function(e,t,n,a,r){var i,o,s=8*r-a-1,l=(1<>1,d=-7,c=n?r-1:0,m=n?-1:1,h=e[t+c];for(c+=m,i=h&(1<<-d)-1,h>>=-d,d+=s;d>0;i=256*i+e[t+c],c+=m,d-=8);for(o=i&(1<<-d)-1,i>>=-d,d+=a;d>0;o=256*o+e[t+c],c+=m,d-=8);if(0===i)i=1-u;else{if(i===l)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,a),i-=u}return(h?-1:1)*o*Math.pow(2,i-a)},t.write=function(e,t,n,a,r,i){var o,s,l,u=8*i-r-1,d=(1<>1,m=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,h=a?0:i-1,f=a?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),(t+=o+c>=1?m/l:m*Math.pow(2,1-c))*l>=2&&(o++,l/=2),o+c>=d?(s=0,o=d):o+c>=1?(s=(t*l-1)*Math.pow(2,r),o+=c):(s=t*Math.pow(2,c-1)*Math.pow(2,r),o=0));r>=8;e[n+h]=255&s,h+=f,s/=256,r-=8);for(o=o<0;e[n+h]=255&o,h+=f,o/=256,u-=8);e[n+h-f]|=128*p}},56698:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},19788:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,a=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,u="";function d(e){return e?e.replace(l,u):u}e.exports=function(e,l){if("string"!=typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var c=1,m=1;function h(e){var t=e.match(n);t&&(c+=t.length);var a=e.lastIndexOf("\n");m=~a?e.length-a:m+e.length}function f(){var e={line:c,column:m};return function(t){return t.position=new p(e),b(),t}}function p(e){this.start=e,this.end={line:c,column:m},this.source=l.source}p.prototype.content=e;var g=[];function _(t){var n=new Error(l.source+":"+c+":"+m+": "+t);if(n.reason=t,n.filename=l.source,n.line=c,n.column=m,n.source=e,!l.silent)throw n;g.push(n)}function v(t){var n=t.exec(e);if(n){var a=n[0];return h(a),e=e.slice(a.length),n}}function b(){v(a)}function A(e){var t;for(e=e||[];t=y();)!1!==t&&e.push(t);return e}function y(){var t=f();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;u!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,u===e.charAt(n-1))return _("End of comment missing");var a=e.slice(2,n-2);return m+=2,h(a),e=e.slice(n),m+=2,t({type:"comment",comment:a})}}function F(){var e=f(),n=v(r);if(n){if(y(),!v(i))return _("property missing ':'");var a=v(o),l=e({type:"declaration",property:d(n[0].replace(t,u)),value:a?d(a[0].replace(t,u)):u});return v(s),l}}return b(),function(){var e,t=[];for(A(t);e=F();)!1!==e&&(t.push(e),A(t));return t}()}},47244:(e,t,n)=>{"use strict";var a=n(49092)(),r=n(38075)("Object.prototype.toString"),i=function(e){return!(a&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===r(e)},o=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==r(e)&&"[object Function]"===r(e.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=o,e.exports=s?i:o},87206:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},69600:e=>{"use strict";var t,n,a=Function.prototype.toString,r="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof r&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},r((function(){throw 42}),null,t)}catch(e){e!==n&&(r=null)}else r=null;var i=/^\s*class\b/,o=function(e){try{var t=a.call(e);return i.test(t)}catch(e){return!1}},s=function(e){try{return!o(e)&&(a.call(e),!0)}catch(e){return!1}},l=Object.prototype.toString,u="function"==typeof Symbol&&!!Symbol.toStringTag,d=!(0 in[,]),c=function(){return!1};if("object"==typeof document){var m=document.all;l.call(m)===l.call(document.all)&&(c=function(e){if((d||!e)&&(void 0===e||"object"==typeof e))try{var t=l.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=r?function(e){if(c(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{r(e,null,t)}catch(e){if(e!==n)return!1}return!o(e)&&s(e)}:function(e){if(c(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(u)return s(e);if(o(e))return!1;var t=l.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&s(e)}},48184:(e,t,n)=>{"use strict";var a,r=Object.prototype.toString,i=Function.prototype.toString,o=/^\s*(?:function)?\*/,s=n(49092)(),l=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(o.test(i.call(e)))return!0;if(!s)return"[object GeneratorFunction]"===r.call(e);if(!l)return!1;if(void 0===a){var t=function(){if(!s)return!1;try{return Function("return function*() {}")()}catch(e){}}();a=!!t&&l(t)}return l(e)===a}},13003:e=>{"use strict";e.exports=function(e){return e!=e}},24133:(e,t,n)=>{"use strict";var a=n(10487),r=n(38452),i=n(13003),o=n(76642),s=n(92464),l=a(o(),Number);r(l,{getPolyfill:o,implementation:i,shim:s}),e.exports=l},76642:(e,t,n)=>{"use strict";var a=n(13003);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:a}},92464:(e,t,n)=>{"use strict";var a=n(38452),r=n(76642);e.exports=function(){var e=r();return a(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},51111:e=>{"use strict";const t=new Set(["ENOTFOUND","ENETUNREACH","UNABLE_TO_GET_ISSUER_CERT","UNABLE_TO_GET_CRL","UNABLE_TO_DECRYPT_CERT_SIGNATURE","UNABLE_TO_DECRYPT_CRL_SIGNATURE","UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY","CERT_SIGNATURE_FAILURE","CRL_SIGNATURE_FAILURE","CERT_NOT_YET_VALID","CERT_HAS_EXPIRED","CRL_NOT_YET_VALID","CRL_HAS_EXPIRED","ERROR_IN_CERT_NOT_BEFORE_FIELD","ERROR_IN_CERT_NOT_AFTER_FIELD","ERROR_IN_CRL_LAST_UPDATE_FIELD","ERROR_IN_CRL_NEXT_UPDATE_FIELD","OUT_OF_MEM","DEPTH_ZERO_SELF_SIGNED_CERT","SELF_SIGNED_CERT_IN_CHAIN","UNABLE_TO_GET_ISSUER_CERT_LOCALLY","UNABLE_TO_VERIFY_LEAF_SIGNATURE","CERT_CHAIN_TOO_LONG","CERT_REVOKED","INVALID_CA","PATH_LENGTH_EXCEEDED","INVALID_PURPOSE","CERT_UNTRUSTED","CERT_REJECTED","HOSTNAME_MISMATCH"]);e.exports=e=>!t.has(e&&e.code)},35680:(e,t,n)=>{"use strict";var a=n(25767);e.exports=function(e){return!!a(e)}},74692:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(a,r){"use strict";var i=[],o=Object.getPrototypeOf,s=i.slice,l=i.flat?function(e){return i.flat.call(e)}:function(e){return i.concat.apply([],e)},u=i.push,d=i.indexOf,c={},m=c.toString,h=c.hasOwnProperty,f=h.toString,p=f.call(Object),g={},_=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},v=function(e){return null!=e&&e===e.window},b=a.document,A={type:!0,src:!0,nonce:!0,noModule:!0};function y(e,t,n){var a,r,i=(n=n||b).createElement("script");if(i.text=e,t)for(a in A)(r=t[a]||t.getAttribute&&t.getAttribute(a))&&i.setAttribute(a,r);n.head.appendChild(i).parentNode.removeChild(i)}function F(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[m.call(e)]||"object":typeof e}var k="3.7.1",w=/HTML$/i,C=function(e,t){return new C.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,n=F(e);return!_(e)&&!v(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function T(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}C.fn=C.prototype={jquery:k,constructor:C,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return C.each(this,e)},map:function(e){return this.pushStack(C.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(C.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(C.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+B+")"+B+"*"),H=new RegExp(B+"|>"),z=new RegExp(P),U=new RegExp("^"+L+"$"),q={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+B+"*(even|odd|(([+-]|)(\\d*)n|)"+B+"*(?:([+-]|)"+B+"*(\\d+)|))"+B+"*\\)|)","i"),bool:new RegExp("^(?:"+E+")$","i"),needsContext:new RegExp("^"+B+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+B+"*((?:-\\d)?\\d*)"+B+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,W=/[+~]/,V=new RegExp("\\\\[\\da-fA-F]{1,6}"+B+"?|\\\\([^\\r\\n\\f])","g"),X=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},K=function(){le()},J=me((function(e){return!0===e.disabled&&T(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{p.apply(i=s.call(j.childNodes),j.childNodes),i[j.childNodes.length].nodeType}catch(e){p={apply:function(e,t){O.apply(e,s.call(t))},call:function(e){O.apply(e,s.call(arguments,1))}}}function Q(e,t,n,a){var r,i,o,s,u,d,h,f=t&&t.ownerDocument,v=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==v&&9!==v&&11!==v)return n;if(!a&&(le(t),t=t||l,c)){if(11!==v&&(u=$.exec(e)))if(r=u[1]){if(9===v){if(!(o=t.getElementById(r)))return n;if(o.id===r)return p.call(n,o),n}else if(f&&(o=f.getElementById(r))&&Q.contains(t,o)&&o.id===r)return p.call(n,o),n}else{if(u[2])return p.apply(n,t.getElementsByTagName(e)),n;if((r=u[3])&&t.getElementsByClassName)return p.apply(n,t.getElementsByClassName(r)),n}if(!(k[e+" "]||m&&m.test(e))){if(h=e,f=t,1===v&&(H.test(e)||I.test(e))){for((f=W.test(e)&&se(t.parentNode)||t)==t&&g.scope||((s=t.getAttribute("id"))?s=C.escapeSelector(s):t.setAttribute("id",s=_)),i=(d=de(e)).length;i--;)d[i]=(s?"#"+s:":scope")+" "+ce(d[i]);h=d.join(",")}try{return p.apply(n,f.querySelectorAll(h)),n}catch(t){k(e,!0)}finally{s===_&&t.removeAttribute("id")}}}return ve(e.replace(M,"$1"),t,n,a)}function ee(){var e=[];return function n(a,r){return e.push(a+" ")>t.cacheLength&&delete n[e.shift()],n[a+" "]=r}}function te(e){return e[_]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ae(e){return function(t){return T(t,"input")&&t.type===e}}function re(e){return function(t){return(T(t,"input")||T(t,"button"))&&t.type===e}}function ie(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&J(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function oe(e){return te((function(t){return t=+t,te((function(n,a){for(var r,i=e([],n.length,t),o=i.length;o--;)n[r=i[o]]&&(n[r]=!(a[r]=n[r]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,a=e?e.ownerDocument||e:j;return a!=l&&9===a.nodeType&&a.documentElement?(u=(l=a).documentElement,c=!C.isXMLDoc(l),f=u.matches||u.webkitMatchesSelector||u.msMatchesSelector,u.msMatchesSelector&&j!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",K),g.getById=ne((function(e){return u.appendChild(e).id=C.expando,!l.getElementsByName||!l.getElementsByName(C.expando).length})),g.disconnectedMatch=ne((function(e){return f.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(V,X);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&c){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(V,X);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&c){var n,a,r,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(r=t.getElementsByName(e),a=0;i=r[a++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&c)return t.getElementsByClassName(e)},m=[],ne((function(e){var t;u.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||m.push("\\["+B+"*(?:value|"+E+")"),e.querySelectorAll("[id~="+_+"-]").length||m.push("~="),e.querySelectorAll("a#"+_+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll(":checked").length||m.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),u.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+B+"*name"+B+"*="+B+"*(?:''|\"\")")})),g.cssHas||m.push(":has"),m=m.length&&new RegExp(m.join("|")),w=function(e,t){if(e===t)return o=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==j&&Q.contains(j,e)?-1:t===l||t.ownerDocument==j&&Q.contains(j,t)?1:r?d.call(r,e)-d.call(r,t):0:4&n?-1:1)},l):l}for(e in Q.matches=function(e,t){return Q(e,null,null,t)},Q.matchesSelector=function(e,t){if(le(e),c&&!k[t+" "]&&(!m||!m.test(t)))try{var n=f.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){k(t,!0)}return Q(t,l,null,[e]).length>0},Q.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),C.contains(e,t)},Q.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var a=t.attrHandle[n.toLowerCase()],r=a&&h.call(t.attrHandle,n.toLowerCase())?a(e,n,!c):void 0;return void 0!==r?r:e.getAttribute(n)},Q.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},C.uniqueSort=function(e){var t,n=[],a=0,i=0;if(o=!g.sortStable,r=!g.sortStable&&s.call(e,0),D.call(e,w),o){for(;t=e[i++];)t===e[i]&&(a=n.push(i));for(;a--;)S.call(e,n[a],1)}return r=null,e},C.fn.uniqueSort=function(){return this.pushStack(C.uniqueSort(s.apply(this)))},t=C.expr={cacheLength:50,createPseudo:te,match:q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(V,X),e[3]=(e[3]||e[4]||e[5]||"").replace(V,X),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Q.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Q.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=de(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(V,X).toLowerCase();return"*"===e?function(){return!0}:function(e){return T(e,t)}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+B+")"+e+"("+B+"|$)"))&&A(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(a){var r=Q.attr(a,e);return null==r?"!="===t:!t||(r+="","="===t?r===n:"!="===t?r!==n:"^="===t?n&&0===r.indexOf(n):"*="===t?n&&r.indexOf(n)>-1:"$="===t?n&&r.slice(-n.length)===n:"~="===t?(" "+r.replace(Y," ")+" ").indexOf(n)>-1:"|="===t&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,a,r){var i="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===a&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var u,d,c,m,h,f=i!==o?"nextSibling":"previousSibling",p=t.parentNode,g=s&&t.nodeName.toLowerCase(),b=!l&&!s,A=!1;if(p){if(i){for(;f;){for(c=t;c=c[f];)if(s?T(c,g):1===c.nodeType)return!1;h=f="only"===e&&!h&&"nextSibling"}return!0}if(h=[o?p.firstChild:p.lastChild],o&&b){for(A=(m=(u=(d=p[_]||(p[_]={}))[e]||[])[0]===v&&u[1])&&u[2],c=m&&p.childNodes[m];c=++m&&c&&c[f]||(A=m=0)||h.pop();)if(1===c.nodeType&&++A&&c===t){d[e]=[v,m,A];break}}else if(b&&(A=m=(u=(d=t[_]||(t[_]={}))[e]||[])[0]===v&&u[1]),!1===A)for(;(c=++m&&c&&c[f]||(A=m=0)||h.pop())&&(!(s?T(c,g):1===c.nodeType)||!++A||(b&&((d=c[_]||(c[_]={}))[e]=[v,A]),c!==t)););return(A-=r)===a||A%a==0&&A/a>=0}}},PSEUDO:function(e,n){var a,r=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Q.error("unsupported pseudo: "+e);return r[_]?r(n):r.length>1?(a=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var a,i=r(e,n),o=i.length;o--;)e[a=d.call(e,i[o])]=!(t[a]=i[o])})):function(e){return r(e,0,a)}):r}},pseudos:{not:te((function(e){var t=[],n=[],a=_e(e.replace(M,"$1"));return a[_]?te((function(e,t,n,r){for(var i,o=a(e,null,r,[]),s=e.length;s--;)(i=o[s])&&(e[s]=!(t[s]=i))})):function(e,r,i){return t[0]=e,a(t,null,i,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Q(e,t).length>0}})),contains:te((function(e){return e=e.replace(V,X),function(t){return(t.textContent||C.text(t)).indexOf(e)>-1}})),lang:te((function(e){return U.test(e||"")||Q.error("unsupported lang: "+e),e=e.replace(V,X).toLowerCase(),function(t){var n;do{if(n=c?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=a.location&&a.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===u},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:ie(!1),disabled:ie(!0),checked:function(e){return T(e,"input")&&!!e.checked||T(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return Z.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){return T(e,"input")&&"button"===e.type||T(e,"button")},text:function(e){var t;return T(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:oe((function(){return[0]})),last:oe((function(e,t){return[t-1]})),eq:oe((function(e,t,n){return[n<0?n+t:n]})),even:oe((function(e,t){for(var n=0;nt?t:n;--a>=0;)e.push(a);return e})),gt:oe((function(e,t,n){for(var a=n<0?n+t:n;++a1?function(t,n,a){for(var r=e.length;r--;)if(!e[r](t,n,a))return!1;return!0}:e[0]}function fe(e,t,n,a,r){for(var i,o=[],s=0,l=e.length,u=null!=t;s-1&&(i[u]=!(o[u]=m))}}else h=fe(h===o?h.splice(_,h.length):h),r?r(null,o,h,l):p.apply(o,h)}))}function ge(e){for(var a,r,i,o=e.length,s=t.relative[e[0].type],l=s||t.relative[" "],u=s?1:0,c=me((function(e){return e===a}),l,!0),m=me((function(e){return d.call(a,e)>-1}),l,!0),h=[function(e,t,r){var i=!s&&(r||t!=n)||((a=t).nodeType?c(e,t,r):m(e,t,r));return a=null,i}];u1&&he(h),u>1&&ce(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(M,"$1"),r,u0,i=e.length>0,o=function(o,s,u,d,m){var h,f,g,_=0,b="0",A=o&&[],y=[],F=n,k=o||i&&t.find.TAG("*",m),w=v+=null==F?1:Math.random()||.1,E=k.length;for(m&&(n=s==l||s||m);b!==E&&null!=(h=k[b]);b++){if(i&&h){for(f=0,s||h.ownerDocument==l||(le(h),u=!c);g=e[f++];)if(g(h,s||l,u)){p.call(d,h);break}m&&(v=w)}r&&((h=!g&&h)&&_--,o&&A.push(h))}if(_+=b,r&&b!==_){for(f=0;g=a[f++];)g(A,y,s,u);if(o){if(_>0)for(;b--;)A[b]||y[b]||(y[b]=x.call(d));y=fe(y)}p.apply(d,y),m&&!o&&y.length>0&&_+a.length>1&&C.uniqueSort(d)}return m&&(v=w,n=F),A};return r?te(o):o}(o,i)),s.selector=e}return s}function ve(e,n,a,r){var i,o,s,l,u,d="function"==typeof e&&e,m=!r&&de(e=d.selector||e);if(a=a||[],1===m.length){if((o=m[0]=m[0].slice(0)).length>2&&"ID"===(s=o[0]).type&&9===n.nodeType&&c&&t.relative[o[1].type]){if(!(n=(t.find.ID(s.matches[0].replace(V,X),n)||[])[0]))return a;d&&(n=n.parentNode),e=e.slice(o.shift().value.length)}for(i=q.needsContext.test(e)?0:o.length;i--&&(s=o[i],!t.relative[l=s.type]);)if((u=t.find[l])&&(r=u(s.matches[0].replace(V,X),W.test(o[0].type)&&se(n.parentNode)||n))){if(o.splice(i,1),!(e=r.length&&ce(o)))return p.apply(a,r),a;break}}return(d||_e(e,m))(r,n,!c,a,!n||W.test(e)&&se(n.parentNode)||n),a}ue.prototype=t.filters=t.pseudos,t.setFilters=new ue,g.sortStable=_.split("").sort(w).join("")===_,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),C.find=Q,C.expr[":"]=C.expr.pseudos,C.unique=C.uniqueSort,Q.compile=_e,Q.select=ve,Q.setDocument=le,Q.tokenize=de,Q.escape=C.escapeSelector,Q.getText=C.text,Q.isXML=C.isXMLDoc,Q.selectors=C.expr,Q.support=C.support,Q.uniqueSort=C.uniqueSort}();var P=function(e,t,n){for(var a=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&C(e).is(n))break;a.push(e)}return a},Y=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},R=C.expr.match.needsContext,I=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function H(e,t,n){return _(t)?C.grep(e,(function(e,a){return!!t.call(e,a,e)!==n})):t.nodeType?C.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?C.grep(e,(function(e){return d.call(t,e)>-1!==n})):C.filter(t,e,n)}C.filter=function(e,t,n){var a=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===a.nodeType?C.find.matchesSelector(a,e)?[a]:[]:C.find.matches(e,C.grep(t,(function(e){return 1===e.nodeType})))},C.fn.extend({find:function(e){var t,n,a=this.length,r=this;if("string"!=typeof e)return this.pushStack(C(e).filter((function(){for(t=0;t1?C.uniqueSort(n):n},filter:function(e){return this.pushStack(H(this,e||[],!1))},not:function(e){return this.pushStack(H(this,e||[],!0))},is:function(e){return!!H(this,"string"==typeof e&&R.test(e)?C(e):e||[],!1).length}});var z,U=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(e,t,n){var a,r;if(!e)return this;if(n=n||z,"string"==typeof e){if(!(a="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:U.exec(e))||!a[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(a[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(a[1],t&&t.nodeType?t.ownerDocument||t:b,!0)),I.test(a[1])&&C.isPlainObject(t))for(a in t)_(this[a])?this[a](t[a]):this.attr(a,t[a]);return this}return(r=b.getElementById(a[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):_(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this)}).prototype=C.fn,z=C(b);var q=/^(?:parents|prev(?:Until|All))/,G={children:!0,contents:!0,next:!0,prev:!0};function Z(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&C.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?C.uniqueSort(i):i)},index:function(e){return e?"string"==typeof e?d.call(C(e),this[0]):d.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return P(e,"parentNode")},parentsUntil:function(e,t,n){return P(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return P(e,"nextSibling")},prevAll:function(e){return P(e,"previousSibling")},nextUntil:function(e,t,n){return P(e,"nextSibling",n)},prevUntil:function(e,t,n){return P(e,"previousSibling",n)},siblings:function(e){return Y((e.parentNode||{}).firstChild,e)},children:function(e){return Y(e.firstChild)},contents:function(e){return null!=e.contentDocument&&o(e.contentDocument)?e.contentDocument:(T(e,"template")&&(e=e.content||e),C.merge([],e.childNodes))}},(function(e,t){C.fn[e]=function(n,a){var r=C.map(this,t,n);return"Until"!==e.slice(-5)&&(a=n),a&&"string"==typeof a&&(r=C.filter(a,r)),this.length>1&&(G[e]||C.uniqueSort(r),q.test(e)&&r.reverse()),this.pushStack(r)}}));var $=/[^\x20\t\r\n\f]+/g;function W(e){return e}function V(e){throw e}function X(e,t,n,a){var r;try{e&&_(r=e.promise)?r.call(e).done(t).fail(n):e&&_(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(a))}catch(e){n.apply(void 0,[e])}}C.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return C.each(e.match($)||[],(function(e,n){t[n]=!0})),t}(e):C.extend({},e);var t,n,a,r,i=[],o=[],s=-1,l=function(){for(r=r||e.once,a=t=!0;o.length;s=-1)for(n=o.shift();++s-1;)i.splice(n,1),n<=s&&s--})),this},has:function(e){return e?C.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return r=o=[],i=n="",this},disabled:function(){return!i},lock:function(){return r=o=[],n||t||(i=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!a}};return u},C.extend({Deferred:function(e){var t=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return C.Deferred((function(n){C.each(t,(function(t,a){var r=_(e[a[4]])&&e[a[4]];i[a[1]]((function(){var e=r&&r.apply(this,arguments);e&&_(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[a[0]+"With"](this,r?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,r){var i=0;function o(e,t,n,r){return function(){var s=this,l=arguments,u=function(){var a,u;if(!(e=i&&(n!==V&&(s=void 0,l=[a]),t.rejectWith(s,l))}};e?d():(C.Deferred.getErrorHook?d.error=C.Deferred.getErrorHook():C.Deferred.getStackHook&&(d.error=C.Deferred.getStackHook()),a.setTimeout(d))}}return C.Deferred((function(a){t[0][3].add(o(0,a,_(r)?r:W,a.notifyWith)),t[1][3].add(o(0,a,_(e)?e:W)),t[2][3].add(o(0,a,_(n)?n:V))})).promise()},promise:function(e){return null!=e?C.extend(e,r):r}},i={};return C.each(t,(function(e,a){var o=a[2],s=a[5];r[a[1]]=o.add,s&&o.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(a[3].fire),i[a[0]]=function(){return i[a[0]+"With"](this===i?void 0:this,arguments),this},i[a[0]+"With"]=o.fireWith})),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=arguments.length,n=t,a=Array(n),r=s.call(arguments),i=C.Deferred(),o=function(e){return function(n){a[e]=this,r[e]=arguments.length>1?s.call(arguments):n,--t||i.resolveWith(a,r)}};if(t<=1&&(X(e,i.done(o(n)).resolve,i.reject,!t),"pending"===i.state()||_(r[n]&&r[n].then)))return i.then();for(;n--;)X(r[n],o(n),i.reject);return i.promise()}});var K=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(e,t){a.console&&a.console.warn&&e&&K.test(e.name)&&a.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},C.readyException=function(e){a.setTimeout((function(){throw e}))};var J=C.Deferred();function Q(){b.removeEventListener("DOMContentLoaded",Q),a.removeEventListener("load",Q),C.ready()}C.fn.ready=function(e){return J.then(e).catch((function(e){C.readyException(e)})),this},C.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0,!0!==e&&--C.readyWait>0||J.resolveWith(b,[C]))}}),C.ready.then=J.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?a.setTimeout(C.ready):(b.addEventListener("DOMContentLoaded",Q),a.addEventListener("load",Q));var ee=function(e,t,n,a,r,i,o){var s=0,l=e.length,u=null==n;if("object"===F(n))for(s in r=!0,n)ee(e,t,s,n[s],!0,i,o);else if(void 0!==a&&(r=!0,_(a)||(o=!0),u&&(o?(t.call(e,a),t=null):(u=t,t=function(e,t,n){return u.call(C(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),C.extend({queue:function(e,t,n){var a;if(e)return t=(t||"fx")+"queue",a=se.get(e,t),n&&(!a||Array.isArray(n)?a=se.access(e,t,C.makeArray(n)):a.push(n)),a||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),a=n.length,r=n.shift(),i=C._queueHooks(e,t);"inprogress"===r&&(r=n.shift(),a--),r&&("fx"===t&&n.unshift("inprogress"),delete i.stop,r.call(e,(function(){C.dequeue(e,t)}),i)),!a&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return se.get(e,n)||se.access(e,n,{empty:C.Callbacks("once memory").add((function(){se.remove(e,[t+"queue",n])}))})}}),C.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Te=/^$|^module$|\/(?:java|ecma)script/i;ke=b.createDocumentFragment().appendChild(b.createElement("div")),(we=b.createElement("input")).setAttribute("type","radio"),we.setAttribute("checked","checked"),we.setAttribute("name","t"),ke.appendChild(we),g.checkClone=ke.cloneNode(!0).cloneNode(!0).lastChild.checked,ke.innerHTML="",g.noCloneChecked=!!ke.cloneNode(!0).lastChild.defaultValue,ke.innerHTML="",g.option=!!ke.lastChild;var xe={thead:[1,"
t('Authentication')); ?> t('Configuration')); ?> ' . $l->t('Available for') . '   
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function De(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&T(e,t)?C.merge([e],n):n}function Se(e,t){for(var n=0,a=e.length;n",""]);var Be=/<|&#?\w+;/;function Me(e,t,n,a,r){for(var i,o,s,l,u,d,c=t.createDocumentFragment(),m=[],h=0,f=e.length;h-1)r&&r.push(i);else if(u=ge(i),o=De(c.appendChild(i),"script"),u&&Se(o),n)for(d=0;i=o[d++];)Te.test(i.type||"")&&n.push(i);return c}var Le=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function je(){return!1}function Oe(e,t,n,a,r,i){var o,s;if("object"==typeof t){for(s in"string"!=typeof n&&(a=a||n,n=void 0),t)Oe(e,s,n,a,t[s],i);return e}if(null==a&&null==r?(r=n,a=n=void 0):null==r&&("string"==typeof n?(r=a,a=void 0):(r=a,a=n,n=void 0)),!1===r)r=je;else if(!r)return e;return 1===i&&(o=r,r=function(e){return C().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=C.guid++)),e.each((function(){C.event.add(this,t,r,a,n)}))}function Pe(e,t,n){n?(se.set(e,t,!1),C.event.add(e,t,{namespace:!1,handler:function(e){var n,a=se.get(this,t);if(1&e.isTrigger&&this[t]){if(a)(C.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=s.call(arguments),se.set(this,t,a),this[t](),n=se.get(this,t),se.set(this,t,!1),a!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else a&&(se.set(this,t,C.event.trigger(a[0],a.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===se.get(e,t)&&C.event.add(e,t,Ne)}C.event={global:{},add:function(e,t,n,a,r){var i,o,s,l,u,d,c,m,h,f,p,g=se.get(e);if(ie(e))for(n.handler&&(n=(i=n).handler,r=i.selector),r&&C.find.matchesSelector(pe,r),n.guid||(n.guid=C.guid++),(l=g.events)||(l=g.events=Object.create(null)),(o=g.handle)||(o=g.handle=function(t){return void 0!==C&&C.event.triggered!==t.type?C.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match($)||[""]).length;u--;)h=p=(s=Le.exec(t[u])||[])[1],f=(s[2]||"").split(".").sort(),h&&(c=C.event.special[h]||{},h=(r?c.delegateType:c.bindType)||h,c=C.event.special[h]||{},d=C.extend({type:h,origType:p,data:a,handler:n,guid:n.guid,selector:r,needsContext:r&&C.expr.match.needsContext.test(r),namespace:f.join(".")},i),(m=l[h])||((m=l[h]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(e,a,f,o)||e.addEventListener&&e.addEventListener(h,o)),c.add&&(c.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),r?m.splice(m.delegateCount++,0,d):m.push(d),C.event.global[h]=!0)},remove:function(e,t,n,a,r){var i,o,s,l,u,d,c,m,h,f,p,g=se.hasData(e)&&se.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match($)||[""]).length;u--;)if(h=p=(s=Le.exec(t[u])||[])[1],f=(s[2]||"").split(".").sort(),h){for(c=C.event.special[h]||{},m=l[h=(a?c.delegateType:c.bindType)||h]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=i=m.length;i--;)d=m[i],!r&&p!==d.origType||n&&n.guid!==d.guid||s&&!s.test(d.namespace)||a&&a!==d.selector&&("**"!==a||!d.selector)||(m.splice(i,1),d.selector&&m.delegateCount--,c.remove&&c.remove.call(e,d));o&&!m.length&&(c.teardown&&!1!==c.teardown.call(e,f,g.handle)||C.removeEvent(e,h,g.handle),delete l[h])}else for(h in l)C.event.remove(e,h+t[u],n,a,!0);C.isEmptyObject(l)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,a,r,i,o,s=new Array(arguments.length),l=C.event.fix(e),u=(se.get(this,"events")||Object.create(null))[l.type]||[],d=C.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(i=[],o={},n=0;n-1:C.find(r,this,null,[u]).length),o[r]&&i.push(a);i.length&&s.push({elem:u,handlers:i})}return u=this,l\s*$/g;function He(e,t){return T(e,"table")&&T(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function ze(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ue(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function qe(e,t){var n,a,r,i,o,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(r in se.remove(t,"handle events"),s)for(n=0,a=s[r].length;n1&&"string"==typeof f&&!g.checkClone&&Re.test(f))return e.each((function(r){var i=e.eq(r);p&&(t[0]=f.call(this,r,i.html())),Ze(i,t,n,a)}));if(m&&(i=(r=Me(t,e[0].ownerDocument,!1,e,a)).firstChild,1===r.childNodes.length&&(r=i),i||a)){for(s=(o=C.map(De(r,"script"),ze)).length;c0&&Se(o,!l&&De(e,"script")),s},cleanData:function(e){for(var t,n,a,r=C.event.special,i=0;void 0!==(n=e[i]);i++)if(ie(n)){if(t=n[se.expando]){if(t.events)for(a in t.events)r[a]?C.event.remove(n,a):C.removeEvent(n,a,t.handle);n[se.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),C.fn.extend({detach:function(e){return $e(this,e,!0)},remove:function(e){return $e(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?C.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ze(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||He(this,e).appendChild(e)}))},prepend:function(){return Ze(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=He(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(De(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return C.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,a=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ye.test(e)&&!xe[(Ee.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-i-l-s-.5))||0),l+u}function dt(e,t,n){var a=Xe(e),r=(!g.boxSizingReliable()||n)&&"border-box"===C.css(e,"boxSizing",!1,a),i=r,o=Qe(e,t,a),s="offset"+t[0].toUpperCase()+t.slice(1);if(We.test(o)){if(!n)return o;o="auto"}return(!g.boxSizingReliable()&&r||!g.reliableTrDimensions()&&T(e,"tr")||"auto"===o||!parseFloat(o)&&"inline"===C.css(e,"display",!1,a))&&e.getClientRects().length&&(r="border-box"===C.css(e,"boxSizing",!1,a),(i=s in e)&&(o=e[s])),(o=parseFloat(o)||0)+ut(e,t,n||(r?"border":"content"),i,a,o)+"px"}function ct(e,t,n,a,r){return new ct.prototype.init(e,t,n,a,r)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Qe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,a){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,i,o,s=re(t),l=Ve.test(t),u=e.style;if(l||(t=rt(s)),o=C.cssHooks[t]||C.cssHooks[s],void 0===n)return o&&"get"in o&&void 0!==(r=o.get(e,!1,a))?r:u[t];"string"==(i=typeof n)&&(r=he.exec(n))&&r[1]&&(n=be(e,t,r),i="number"),null!=n&&n==n&&("number"!==i||l||(n+=r&&r[3]||(C.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,a))||(l?u.setProperty(t,n):u[t]=n))}},css:function(e,t,n,a){var r,i,o,s=re(t);return Ve.test(t)||(t=rt(s)),(o=C.cssHooks[t]||C.cssHooks[s])&&"get"in o&&(r=o.get(e,!0,n)),void 0===r&&(r=Qe(e,t,a)),"normal"===r&&t in st&&(r=st[t]),""===n||n?(i=parseFloat(r),!0===n||isFinite(i)?i||0:r):r}}),C.each(["height","width"],(function(e,t){C.cssHooks[t]={get:function(e,n,a){if(n)return!it.test(C.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?dt(e,t,a):Ke(e,ot,(function(){return dt(e,t,a)}))},set:function(e,n,a){var r,i=Xe(e),o=!g.scrollboxSize()&&"absolute"===i.position,s=(o||a)&&"border-box"===C.css(e,"boxSizing",!1,i),l=a?ut(e,t,a,s,i):0;return s&&o&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(i[t])-ut(e,t,"border",!1,i)-.5)),l&&(r=he.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=C.css(e,t)),lt(0,n,l)}}})),C.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Qe(e,"marginLeft"))||e.getBoundingClientRect().left-Ke(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),C.each({margin:"",padding:"",border:"Width"},(function(e,t){C.cssHooks[e+t]={expand:function(n){for(var a=0,r={},i="string"==typeof n?n.split(" "):[n];a<4;a++)r[e+fe[a]+t]=i[a]||i[a-2]||i[0];return r}},"margin"!==e&&(C.cssHooks[e+t].set=lt)})),C.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var a,r,i={},o=0;if(Array.isArray(t)){for(a=Xe(e),r=t.length;o1)}}),C.Tween=ct,ct.prototype={constructor:ct,init:function(e,t,n,a,r,i){this.elem=e,this.prop=n,this.easing=r||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=a,this.unit=i||(C.cssNumber[n]?"":"px")},cur:function(){var e=ct.propHooks[this.prop];return e&&e.get?e.get(this):ct.propHooks._default.get(this)},run:function(e){var t,n=ct.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ct.propHooks._default.set(this),this}},ct.prototype.init.prototype=ct.prototype,ct.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||!C.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}},ct.propHooks.scrollTop=ct.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=ct.prototype.init,C.fx.step={};var mt,ht,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function gt(){ht&&(!1===b.hidden&&a.requestAnimationFrame?a.requestAnimationFrame(gt):a.setTimeout(gt,C.fx.interval),C.fx.tick())}function _t(){return a.setTimeout((function(){mt=void 0})),mt=Date.now()}function vt(e,t){var n,a=0,r={height:e};for(t=t?1:0;a<4;a+=2-t)r["margin"+(n=fe[a])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function bt(e,t,n){for(var a,r=(At.tweeners[t]||[]).concat(At.tweeners["*"]),i=0,o=r.length;i1)},removeAttr:function(e){return this.each((function(){C.removeAttr(this,e)}))}}),C.extend({attr:function(e,t,n){var a,r,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return void 0===e.getAttribute?C.prop(e,t,n):(1===i&&C.isXMLDoc(e)||(r=C.attrHooks[t.toLowerCase()]||(C.expr.match.bool.test(t)?yt:void 0)),void 0!==n?null===n?void C.removeAttr(e,t):r&&"set"in r&&void 0!==(a=r.set(e,n,t))?a:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(a=r.get(e,t))?a:null==(a=C.find.attr(e,t))?void 0:a)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&T(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,a=0,r=t&&t.match($);if(r&&1===e.nodeType)for(;n=r[a++];)e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?C.removeAttr(e,n):e.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=Ft[t]||C.find.attr;Ft[t]=function(e,t,a){var r,i,o=t.toLowerCase();return a||(i=Ft[o],Ft[o]=r,r=null!=n(e,t,a)?o:null,Ft[o]=i),r}}));var kt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Ct(e){return(e.match($)||[]).join(" ")}function Et(e){return e.getAttribute&&e.getAttribute("class")||""}function Tt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match($)||[]}C.fn.extend({prop:function(e,t){return ee(this,C.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[C.propFix[e]||e]}))}}),C.extend({prop:function(e,t,n){var a,r,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&C.isXMLDoc(e)||(t=C.propFix[t]||t,r=C.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(a=r.set(e,n,t))?a:e[t]=n:r&&"get"in r&&null!==(a=r.get(e,t))?a:e[t]},propHooks:{tabIndex:{get:function(e){var t=C.find.attr(e,"tabindex");return t?parseInt(t,10):kt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(C.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){C.propFix[this.toLowerCase()]=this})),C.fn.extend({addClass:function(e){var t,n,a,r,i,o;return _(e)?this.each((function(t){C(this).addClass(e.call(this,t,Et(this)))})):(t=Tt(e)).length?this.each((function(){if(a=Et(this),n=1===this.nodeType&&" "+Ct(a)+" "){for(i=0;i-1;)n=n.replace(" "+r+" "," ");o=Ct(n),a!==o&&this.setAttribute("class",o)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,a,r,i,o=typeof e,s="string"===o||Array.isArray(e);return _(e)?this.each((function(n){C(this).toggleClass(e.call(this,n,Et(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=Tt(e),this.each((function(){if(s)for(i=C(this),r=0;r-1)return!0;return!1}});var xt=/\r/g;C.fn.extend({val:function(e){var t,n,a,r=this[0];return arguments.length?(a=_(e),this.each((function(n){var r;1===this.nodeType&&(null==(r=a?e.call(this,n,C(this).val()):e)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=C.map(r,(function(e){return null==e?"":e+""}))),(t=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))}))):r?(t=C.valHooks[r.type]||C.valHooks[r.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(xt,""):null==n?"":n:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:Ct(C.text(e))}},select:{get:function(e){var t,n,a,r=e.options,i=e.selectedIndex,o="select-one"===e.type,s=o?null:[],l=o?i+1:r.length;for(a=i<0?l:o?i:0;a-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),C.each(["radio","checkbox"],(function(){C.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=C.inArray(C(e).val(),t)>-1}},g.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Dt=a.location,St={guid:Date.now()},Bt=/\?/;C.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new a.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||C.error("Invalid XML: "+(n?C.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Mt=/^(?:focusinfocus|focusoutblur)$/,Lt=function(e){e.stopPropagation()};C.extend(C.event,{trigger:function(e,t,n,r){var i,o,s,l,u,d,c,m,f=[n||b],p=h.call(e,"type")?e.type:e,g=h.call(e,"namespace")?e.namespace.split("."):[];if(o=m=s=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!Mt.test(p+C.event.triggered)&&(p.indexOf(".")>-1&&(g=p.split("."),p=g.shift(),g.sort()),u=p.indexOf(":")<0&&"on"+p,(e=e[C.expando]?e:new C.Event(p,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),c=C.event.special[p]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!v(n)){for(l=c.delegateType||p,Mt.test(l+p)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(n.ownerDocument||b)&&f.push(s.defaultView||s.parentWindow||a)}for(i=0;(o=f[i++])&&!e.isPropagationStopped();)m=o,e.type=i>1?l:c.bindType||p,(d=(se.get(o,"events")||Object.create(null))[e.type]&&se.get(o,"handle"))&&d.apply(o,t),(d=u&&o[u])&&d.apply&&ie(o)&&(e.result=d.apply(o,t),!1===e.result&&e.preventDefault());return e.type=p,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(f.pop(),t)||!ie(n)||u&&_(n[p])&&!v(n)&&((s=n[u])&&(n[u]=null),C.event.triggered=p,e.isPropagationStopped()&&m.addEventListener(p,Lt),n[p](),e.isPropagationStopped()&&m.removeEventListener(p,Lt),C.event.triggered=void 0,s&&(n[u]=s)),e.result}},simulate:function(e,t,n){var a=C.extend(new C.Event,n,{type:e,isSimulated:!0});C.event.trigger(a,null,t)}}),C.fn.extend({trigger:function(e,t){return this.each((function(){C.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return C.event.trigger(e,t,n,!0)}});var Nt=/\[\]$/,jt=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,Pt=/^(?:input|select|textarea|keygen)/i;function Yt(e,t,n,a){var r;if(Array.isArray(t))C.each(t,(function(t,r){n||Nt.test(e)?a(e,r):Yt(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,a)}));else if(n||"object"!==F(t))a(e,t);else for(r in t)Yt(e+"["+r+"]",t[r],n,a)}C.param=function(e,t){var n,a=[],r=function(e,t){var n=_(t)?t():t;a[a.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,(function(){r(this.name,this.value)}));else for(n in e)Yt(n,e[n],t,r);return a.join("&")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&Pt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!Ce.test(e))})).map((function(e,t){var n=C(this).val();return null==n?null:Array.isArray(n)?C.map(n,(function(e){return{name:t.name,value:e.replace(jt,"\r\n")}})):{name:t.name,value:n.replace(jt,"\r\n")}})).get()}});var Rt=/%20/g,It=/#.*$/,Ht=/([?&])_=[^&]*/,zt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ut=/^(?:GET|HEAD)$/,qt=/^\/\//,Gt={},Zt={},$t="*/".concat("*"),Wt=b.createElement("a");function Vt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var a,r=0,i=t.toLowerCase().match($)||[];if(_(n))for(;a=i[r++];)"+"===a[0]?(a=a.slice(1)||"*",(e[a]=e[a]||[]).unshift(n)):(e[a]=e[a]||[]).push(n)}}function Xt(e,t,n,a){var r={},i=e===Zt;function o(s){var l;return r[s]=!0,C.each(e[s]||[],(function(e,s){var u=s(t,n,a);return"string"!=typeof u||i||r[u]?i?!(l=u):void 0:(t.dataTypes.unshift(u),o(u),!1)})),l}return o(t.dataTypes[0])||!r["*"]&&o("*")}function Kt(e,t){var n,a,r=C.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:a||(a={}))[n]=t[n]);return a&&C.extend(!0,e,a),e}Wt.href=Dt.href,C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Kt(Kt(e,C.ajaxSettings),t):Kt(C.ajaxSettings,e)},ajaxPrefilter:Vt(Gt),ajaxTransport:Vt(Zt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,i,o,s,l,u,d,c,m,h=C.ajaxSetup({},t),f=h.context||h,p=h.context&&(f.nodeType||f.jquery)?C(f):C.event,g=C.Deferred(),_=C.Callbacks("once memory"),v=h.statusCode||{},A={},y={},F="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(u){if(!o)for(o={};t=zt.exec(i);)o[t[1].toLowerCase()+" "]=(o[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=o[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return u?i:null},setRequestHeader:function(e,t){return null==u&&(e=y[e.toLowerCase()]=y[e.toLowerCase()]||e,A[e]=t),this},overrideMimeType:function(e){return null==u&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)k.always(e[k.status]);else for(t in e)v[t]=[v[t],e[t]];return this},abort:function(e){var t=e||F;return n&&n.abort(t),w(0,t),this}};if(g.promise(k),h.url=((e||h.url||Dt.href)+"").replace(qt,Dt.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match($)||[""],null==h.crossDomain){l=b.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Wt.protocol+"//"+Wt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=C.param(h.data,h.traditional)),Xt(Gt,h,t,k),u)return k;for(c in(d=C.event&&h.global)&&0==C.active++&&C.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Ut.test(h.type),r=h.url.replace(It,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Rt,"+")):(m=h.url.slice(r.length),h.data&&(h.processData||"string"==typeof h.data)&&(r+=(Bt.test(r)?"&":"?")+h.data,delete h.data),!1===h.cache&&(r=r.replace(Ht,"$1"),m=(Bt.test(r)?"&":"?")+"_="+St.guid+++m),h.url=r+m),h.ifModified&&(C.lastModified[r]&&k.setRequestHeader("If-Modified-Since",C.lastModified[r]),C.etag[r]&&k.setRequestHeader("If-None-Match",C.etag[r])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&k.setRequestHeader("Content-Type",h.contentType),k.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]),h.headers)k.setRequestHeader(c,h.headers[c]);if(h.beforeSend&&(!1===h.beforeSend.call(f,k,h)||u))return k.abort();if(F="abort",_.add(h.complete),k.done(h.success),k.fail(h.error),n=Xt(Zt,h,t,k)){if(k.readyState=1,d&&p.trigger("ajaxSend",[k,h]),u)return k;h.async&&h.timeout>0&&(s=a.setTimeout((function(){k.abort("timeout")}),h.timeout));try{u=!1,n.send(A,w)}catch(e){if(u)throw e;w(-1,e)}}else w(-1,"No Transport");function w(e,t,o,l){var c,m,b,A,y,F=t;u||(u=!0,s&&a.clearTimeout(s),n=void 0,i=l||"",k.readyState=e>0?4:0,c=e>=200&&e<300||304===e,o&&(A=function(e,t,n){for(var a,r,i,o,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===a&&(a=e.mimeType||t.getResponseHeader("Content-Type"));if(a)for(r in s)if(s[r]&&s[r].test(a)){l.unshift(r);break}if(l[0]in n)i=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){i=r;break}o||(o=r)}i=i||o}if(i)return i!==l[0]&&l.unshift(i),n[i]}(h,k,o)),!c&&C.inArray("script",h.dataTypes)>-1&&C.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),A=function(e,t,n,a){var r,i,o,s,l,u={},d=e.dataTypes.slice();if(d[1])for(o in e.converters)u[o.toLowerCase()]=e.converters[o];for(i=d.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!l&&a&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=i,i=d.shift())if("*"===i)i=l;else if("*"!==l&&l!==i){if(!(o=u[l+" "+i]||u["* "+i]))for(r in u)if((s=r.split(" "))[1]===i&&(o=u[l+" "+s[0]]||u["* "+s[0]])){!0===o?o=u[r]:!0!==u[r]&&(i=s[0],d.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(e){return{state:"parsererror",error:o?e:"No conversion from "+l+" to "+i}}}return{state:"success",data:t}}(h,A,k,c),c?(h.ifModified&&((y=k.getResponseHeader("Last-Modified"))&&(C.lastModified[r]=y),(y=k.getResponseHeader("etag"))&&(C.etag[r]=y)),204===e||"HEAD"===h.type?F="nocontent":304===e?F="notmodified":(F=A.state,m=A.data,c=!(b=A.error))):(b=F,!e&&F||(F="error",e<0&&(e=0))),k.status=e,k.statusText=(t||F)+"",c?g.resolveWith(f,[m,F,k]):g.rejectWith(f,[k,F,b]),k.statusCode(v),v=void 0,d&&p.trigger(c?"ajaxSuccess":"ajaxError",[k,h,c?m:b]),_.fireWith(f,[k,F]),d&&(p.trigger("ajaxComplete",[k,h]),--C.active||C.event.trigger("ajaxStop")))}return k},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,void 0,t,"script")}}),C.each(["get","post"],(function(e,t){C[t]=function(e,n,a,r){return _(n)&&(r=r||a,a=n,n=void 0),C.ajax(C.extend({url:e,type:t,dataType:r,data:n,success:a},C.isPlainObject(e)&&e))}})),C.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),C._evalUrl=function(e,t,n){return C.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){C.globalEval(e,t,n)}})},C.fn.extend({wrapAll:function(e){var t;return this[0]&&(_(e)&&(e=e.call(this[0])),t=C(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return _(e)?this.each((function(t){C(this).wrapInner(e.call(this,t))})):this.each((function(){var t=C(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=_(e);return this.each((function(n){C(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){C(this).replaceWith(this.childNodes)})),this}}),C.expr.pseudos.hidden=function(e){return!C.expr.pseudos.visible(e)},C.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},C.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(e){}};var Jt={0:200,1223:204},Qt=C.ajaxSettings.xhr();g.cors=!!Qt&&"withCredentials"in Qt,g.ajax=Qt=!!Qt,C.ajaxTransport((function(e){var t,n;if(g.cors||Qt&&!e.crossDomain)return{send:function(r,i){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)s.setRequestHeader(o,r[o]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?i(0,"error"):i(s.status,s.statusText):i(Jt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&a.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),C.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),C.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(a,r){t=C("","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=2626c25c\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.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-group-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,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowDown.vue?vue&type=template&id=fb6e0974\"\nimport script from \"./ArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowDown.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-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\":\"M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowRight.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowRight.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowRight.vue?vue&type=template&id=145c588a\"\nimport script from \"./ArrowRight.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowRight.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-right-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\":\"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowUp.vue?vue&type=template&id=63d5381c\"\nimport script from \"./ArrowUp.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowUp.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-up-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\":\"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Check.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Check.vue?vue&type=template&id=955fb7b6\"\nimport script from \"./Check.vue?vue&type=script&lang=js\"\nexport * from \"./Check.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-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\":\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Close.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Close.vue?vue&type=template&id=a9c649ce\"\nimport script from \"./Close.vue?vue&type=script&lang=js\"\nexport * from \"./Close.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 close-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,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ContentCopy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ContentCopy.vue?vue&type=template&id=e5f28fbc\"\nimport script from \"./ContentCopy.vue?vue&type=script&lang=js\"\nexport * from \"./ContentCopy.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 content-copy-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,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Delete.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Delete.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Delete.vue?vue&type=template&id=bd3ee6c0\"\nimport script from \"./Delete.vue?vue&type=script&lang=js\"\nexport * from \"./Delete.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 delete-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,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=a4d4ab3e\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./DotsHorizontal.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 dots-horizontal-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\":\"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Folder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Folder.vue?vue&type=template&id=07f089a4\"\nimport script from \"./Folder.vue?vue&type=script&lang=js\"\nexport * from \"./Folder.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-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,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Link.vue?vue&type=template&id=65f55100\"\nimport script from \"./Link.vue?vue&type=script&lang=js\"\nexport * from \"./Link.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 link-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.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Magnify.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Magnify.vue?vue&type=template&id=9bebb224\"\nimport script from \"./Magnify.vue?vue&type=script&lang=js\"\nexport * from \"./Magnify.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 magnify-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.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuDown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MenuDown.vue?vue&type=template&id=6738b53f\"\nimport script from \"./MenuDown.vue?vue&type=script&lang=js\"\nexport * from \"./MenuDown.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 menu-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\":\"M7,10L12,15L17,10H7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuUp.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MenuUp.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MenuUp.vue?vue&type=template&id=bd0156c6\"\nimport script from \"./MenuUp.vue?vue&type=script&lang=js\"\nexport * from \"./MenuUp.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 menu-up-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,15L12,10L17,15H7Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Pencil.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pencil.vue?vue&type=template&id=038276ef\"\nimport script from \"./Pencil.vue?vue&type=script&lang=js\"\nexport * from \"./Pencil.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 pencil-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.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Plus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Plus.vue?vue&type=template&id=6374de20\"\nimport script from \"./Plus.vue?vue&type=script&lang=js\"\nexport * from \"./Plus.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 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\":\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Upload.vue?vue&type=template&id=b380ab28\"\nimport script from \"./Upload.vue?vue&type=script&lang=js\"\nexport * from \"./Upload.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 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\":\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\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 findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/*!\n * Vue.js v2.7.16\n * (c) 2014-2023 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n}\nfunction replacer(_key, val) {\n // avoid circular deps from v3\n if (val && val.__v_isRef) {\n return val.value;\n }\n return val;\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow) {\n if (observeEvenIfShallow === void 0) { observeEvenIfShallow = false; }\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = shallow ? val && val.__ob__ : observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar WATCHER = \"watcher\";\nvar WATCHER_CB = \"\".concat(WATCHER, \" callback\");\nvar WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\nvar WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nvar INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (process.env.NODE_ENV !== 'production' && !cb) {\n if (immediate !== undefined) {\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n var res = invokeWithErrorHandling(fn, null, args, instance, type);\n if (deep && res && res.__ob__)\n res.__ob__.dep.depend();\n return res;\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n s.__ob__.dep.depend();\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n process.env.NODE_ENV !== 'production' && warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n process.env.NODE_ENV !== 'production' && warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n if (process.env.NODE_ENV !== 'production') {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n}\n\nvar activeEffectScope;\nvar EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n}());\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\n/**\n * @internal\n */\nfunction recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n}\nfunction resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"inject() can only be used inside setup() or functional components.\");\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.