From 7dcfea4d1e3d63604799cb642ed1c5592f9ef24d Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 23 Aug 2026 19:25:57 +0000 Subject: [PATCH 1/3] feat: add opcache / refresh php section Assisted-by: ClaudeCode:claude-opus-5 Assisted-by: ClaudeCode:claude-sonnet-5 Signed-off-by: Daniel --- lib/Collector/Opcache.php | 140 +++++++++++++++ lib/Collector/Php.php | 64 +++++++ lib/StaticData.php | 8 +- src/components/OpcacheSection.vue | 191 +++++++++++++++++++++ src/components/PhpExtensionsDialog.vue | 37 ++++ src/components/PhpExtensionsSection.vue | 29 ---- src/components/PhpSection.vue | 67 ++++++-- src/components/ResourceOverviewSection.vue | 24 +-- src/components/UsageMeterBar.vue | 43 +++++ src/composables/useStaticData.ts | 12 +- src/main.css | 14 -- src/types.ts | 22 +++ src/views/SettingsAdmin.vue | 27 ++- tests/lib/Collector/OpcacheTest.php | 178 +++++++++++++++++++ tests/lib/Collector/PhpTest.php | 65 +++++++ tests/lib/PhpStatisticsTest.php | 32 ++++ tests/stub.phpstub | 1 + 17 files changed, 861 insertions(+), 93 deletions(-) create mode 100644 lib/Collector/Opcache.php create mode 100644 lib/Collector/Php.php create mode 100644 src/components/OpcacheSection.vue create mode 100644 src/components/PhpExtensionsDialog.vue delete mode 100644 src/components/PhpExtensionsSection.vue create mode 100644 src/components/UsageMeterBar.vue create mode 100644 tests/lib/Collector/OpcacheTest.php create mode 100644 tests/lib/Collector/PhpTest.php create mode 100644 tests/lib/PhpStatisticsTest.php diff --git a/lib/Collector/Opcache.php b/lib/Collector/Opcache.php new file mode 100644 index 00000000..7ed7f8b9 --- /dev/null +++ b/lib/Collector/Opcache.php @@ -0,0 +1,140 @@ + 'not_loaded']; + } + + if (!$this->iniGetWrapper->getBool('opcache.enable')) { + return ['status' => 'disabled']; + } + + if (!$this->isApiPermitted()) { + return ['status' => 'api_restricted']; + } + + $disabledFunctions = (string)$this->iniGetWrapper->getString('disable_functions'); + if (str_contains($disabledFunctions, 'opcache_get_status')) { + return ['status' => 'status_unavailable']; + } + + $status = $this->readStatus(); + if (!is_array($status)) { + return ['status' => 'status_unavailable']; + } + + return array_merge(['status' => 'ok'], $this->mapStatus($status)); + } + + /** + * @return array|false the raw opcache_get_status(false) result + */ + protected function readStatus(): array|false { + return function_exists('opcache_get_status') ? opcache_get_status(false) : false; + } + + /** + * Nextcloud may be denied access to the OPcache API for its own directories, + * see the `opcache.restrict_api` ini setting. + */ + private function isApiPermitted(): bool { + $restrictPath = rtrim((string)$this->iniGetWrapper->getString('opcache.restrict_api'), '/'); + return $restrictPath === '' + || \OC::$SERVERROOT === $restrictPath + || str_starts_with(\OC::$SERVERROOT, $restrictPath . '/'); + } + + /** + * @return array{ + * memory: array{used: int, wasted: int, free: int, total: int}, + * internedStrings: array{used: int, free: int, total: int}, + * keys: array{used: int, max: int}, + * hitRate: float, + * cachedScripts: int, + * oomRestarts: int, + * cacheFull: bool, + * revalidateFreq: int, + * validateTimestamps: bool, + * lastRestart: int|null, + * jit: array{enabled: bool, bufferUsed: int, bufferTotal: int}|null + * } + */ + private function mapStatus(array $status): array { + $memory = $status['memory_usage']; + $strings = $status['interned_strings_usage']; + $stats = $status['opcache_statistics']; + + $jit = null; + if (isset($status['jit']['buffer_size']) && $status['jit']['buffer_size'] > 0) { + $jit = [ + 'enabled' => (bool)($status['jit']['enabled'] ?? false), + 'bufferUsed' => (int)$status['jit']['buffer_size'] - (int)$status['jit']['buffer_free'], + 'bufferTotal' => (int)$status['jit']['buffer_size'], + ]; + } + + return [ + 'memory' => [ + 'used' => (int)$memory['used_memory'], + 'wasted' => (int)$memory['wasted_memory'], + 'free' => (int)$memory['free_memory'], + 'total' => (int)$memory['used_memory'] + (int)$memory['wasted_memory'] + (int)$memory['free_memory'], + ], + 'internedStrings' => [ + 'used' => (int)$strings['used_memory'], + 'free' => (int)$strings['free_memory'], + 'total' => (int)$strings['buffer_size'], + ], + 'keys' => [ + 'used' => (int)$stats['num_cached_keys'], + 'max' => (int)$stats['max_cached_keys'], + ], + 'hitRate' => (float)$stats['opcache_hit_rate'], + 'cachedScripts' => (int)$stats['num_cached_scripts'], + 'oomRestarts' => (int)$stats['oom_restarts'], + 'cacheFull' => (bool)$status['cache_full'], + 'revalidateFreq' => (int)$this->iniGetWrapper->getNumeric('opcache.revalidate_freq'), + 'validateTimestamps' => (bool)$this->iniGetWrapper->getBool('opcache.validate_timestamps'), + 'lastRestart' => ((int)($stats['last_restart_time'] ?? 0)) ?: null, + 'jit' => $jit, + ]; + } +} diff --git a/lib/Collector/Php.php b/lib/Collector/Php.php new file mode 100644 index 00000000..4b013dee --- /dev/null +++ b/lib/Collector/Php.php @@ -0,0 +1,64 @@ +|null + * } + */ + public function getData(): array { + return [ + 'version' => PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION . '.' . PHP_RELEASE_VERSION, + 'sapi' => PHP_SAPI, + 'memoryLimit' => (int)$this->iniGetWrapper->getBytes('memory_limit'), + 'maxExecutionTime' => (int)$this->iniGetWrapper->getNumeric('max_execution_time'), + 'uploadMaxFilesize' => (int)$this->iniGetWrapper->getBytes('upload_max_filesize'), + 'postMaxSize' => (int)$this->iniGetWrapper->getBytes('post_max_size'), + 'extensions' => $this->getLoadedPhpExtensions(), + ]; + } + + /** + * @return list|null null if PHP forbids enumeration + */ + private function getLoadedPhpExtensions(): ?array { + if (!function_exists('get_loaded_extensions')) { + return null; + } + + // `get_loaded_extensions(true)` returns Zend extensions (OPcache, Xdebug, + // etc.) which are otherwise hidden from the regular call. + $extensions = array_unique(array_map('strtolower', array_merge( + get_loaded_extensions(false), + get_loaded_extensions(true), + ))); + natcasesort($extensions); + + return array_values($extensions); + } +} diff --git a/lib/StaticData.php b/lib/StaticData.php index 4e859665..56fcfd60 100644 --- a/lib/StaticData.php +++ b/lib/StaticData.php @@ -9,6 +9,8 @@ namespace OCA\ServerInfo; +use OCA\ServerInfo\Collector\Opcache; +use OCA\ServerInfo\Collector\Php; use OCP\AppFramework\Services\IAppConfig; use OCP\IURLGenerator; @@ -17,7 +19,8 @@ public function __construct( private Os $os, private IURLGenerator $urlGenerator, private StorageStatistics $storageStatistics, - private PhpStatistics $phpStatistics, + private Php $php, + private Opcache $opcache, private FpmStatistics $fpmStatistics, private DatabaseStatistics $databaseStatistics, private ShareStatistics $shareStatistics, @@ -58,7 +61,8 @@ public function getData(): array { 'ocs' => $this->urlGenerator->getAbsoluteURL('ocs/v2.php/apps/serverinfo/api/v1/info'), 'storage' => $this->storageStatistics->getStorageStatistics(), 'shares' => $this->shareStatistics->getShareStatistics(), - 'php' => $this->phpStatistics->getPhpStatistics(), + 'php' => $this->php->getData(), + 'opcache' => $this->opcache->getData(), 'fpm' => $this->fpmStatistics->getFpmStatistics(), 'database' => $this->databaseStatistics->getDatabaseStatistics(), 'activeUsers' => $this->sessionStatistics->getSessionStatistics(), diff --git a/src/components/OpcacheSection.vue b/src/components/OpcacheSection.vue new file mode 100644 index 00000000..c29ec893 --- /dev/null +++ b/src/components/OpcacheSection.vue @@ -0,0 +1,191 @@ + + + + + + diff --git a/src/components/PhpExtensionsDialog.vue b/src/components/PhpExtensionsDialog.vue new file mode 100644 index 00000000..59ba4c80 --- /dev/null +++ b/src/components/PhpExtensionsDialog.vue @@ -0,0 +1,37 @@ + + + + diff --git a/src/components/PhpExtensionsSection.vue b/src/components/PhpExtensionsSection.vue deleted file mode 100644 index 3fe970fb..00000000 --- a/src/components/PhpExtensionsSection.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - diff --git a/src/components/PhpSection.vue b/src/components/PhpSection.vue index 62e1629e..727427ed 100644 --- a/src/components/PhpSection.vue +++ b/src/components/PhpSection.vue @@ -4,37 +4,47 @@ --> + + + + diff --git a/src/components/ResourceOverviewSection.vue b/src/components/ResourceOverviewSection.vue index caf114e5..821e695f 100644 --- a/src/components/ResourceOverviewSection.vue +++ b/src/components/ResourceOverviewSection.vue @@ -6,26 +6,16 @@
-
-
- {{ row.label }} - {{ row.detail }} -
- -
+
+ + diff --git a/src/composables/useStaticData.ts b/src/composables/useStaticData.ts index 023ffe36..f8632e72 100644 --- a/src/composables/useStaticData.ts +++ b/src/composables/useStaticData.ts @@ -3,6 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ +import type { OpcacheStatus } from '../types.ts' + import axios from '@nextcloud/axios' import { generateUrl } from '@nextcloud/router' import { ref } from 'vue' @@ -37,12 +39,14 @@ export interface StaticData { } php: { version: string - memory_limit: number - max_execution_time: number - upload_max_filesize: number - opcache_revalidate_freq: number + sapi: string + memoryLimit: number + maxExecutionTime: number + uploadMaxFilesize: number + postMaxSize: number extensions: string[] | null } + opcache: OpcacheStatus fpm: Record | false database: { type: string, version: string, size: number } activeUsers: { last1hour: number, last24hours: number, last7days: number, last1month: number } diff --git a/src/main.css b/src/main.css index bafa81b9..d402cecd 100644 --- a/src/main.css +++ b/src/main.css @@ -159,17 +159,3 @@ .server-info-table tr:last-child td { border-bottom: none; } - - -.server-info__tag-wrapper { - display: flex; - flex-wrap: wrap; -} - -.server-info__php-extension-tag { - display: inline-block; - margin: 2px; - padding: 1px 9px; - border-radius: 16px; - border: 1px solid var(--color-main-text); -} diff --git a/src/types.ts b/src/types.ts index 953c1ec5..fcd9a57c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,6 +18,28 @@ export interface LiveData { thermalzones: ThermalZone[] } +/** The OPcache segment is per PHP master process: other FPM pools or CLI have their own. */ +export type OpcacheStatus + = | { status: 'not_loaded' | 'disabled' | 'api_restricted' | 'status_unavailable' } + | { + status: 'ok' + /** Bytes */ + memory: { used: number, wasted: number, free: number, total: number } + /** Bytes */ + internedStrings: { used: number, free: number, total: number } + keys: { used: number, max: number } + hitRate: number + cachedScripts: number + oomRestarts: number + cacheFull: boolean + /** Seconds */ + revalidateFreq: number + validateTimestamps: boolean + /** Unix timestamp on the server clock, null if the cache has never restarted */ + lastRestart: number | null + jit: { enabled: boolean, bufferUsed: number, bufferTotal: number } | null + } + export type JobStatus = 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CRASHED' export interface JobRun { diff --git a/src/views/SettingsAdmin.vue b/src/views/SettingsAdmin.vue index 19bbc265..7808a61a 100644 --- a/src/views/SettingsAdmin.vue +++ b/src/views/SettingsAdmin.vue @@ -79,8 +79,8 @@ - -
+ +
+
+ +
+
+
+ + +
+
- -
@@ -124,7 +131,7 @@
-
+
@@ -133,7 +140,13 @@
- +
+
+
+
+ +
+
@@ -151,7 +164,7 @@ import DiskSection from '../components/DiskSection.vue' import MemoryChartSection from '../components/MemoryChartSection.vue' import MonitoringSection from '../components/MonitoringSection.vue' import NetworkSection from '../components/NetworkSection.vue' -import PhpExtensionsSection from '../components/PhpExtensionsSection.vue' +import OpcacheSection from '../components/OpcacheSection.vue' import PhpSection from '../components/PhpSection.vue' import ResourceOverviewSection from '../components/ResourceOverviewSection.vue' import SectionSkeleton from '../components/SectionSkeleton.vue' diff --git a/tests/lib/Collector/OpcacheTest.php b/tests/lib/Collector/OpcacheTest.php new file mode 100644 index 00000000..7b182a4b --- /dev/null +++ b/tests/lib/Collector/OpcacheTest.php @@ -0,0 +1,178 @@ +iniGetWrapper = $this->createMock(IniGetWrapper::class); + } + + /** + * @param list $mockedMethods + */ + private function getInstance(array $mockedMethods): Opcache&MockObject { + return $this->getMockBuilder(Opcache::class) + ->setConstructorArgs([$this->iniGetWrapper]) + ->onlyMethods($mockedMethods) + ->getMock(); + } + + public function testDisabled(): void { + $instance = $this->getInstance([]); + $this->iniGetWrapper->method('getBool')->with('opcache.enable')->willReturn(false); + + $this->assertSame(['status' => 'disabled'], $instance->getData()); + } + + public function testApiRestricted(): void { + $instance = $this->getInstance([]); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', '/some/other/path'], + ]); + + $this->assertSame(['status' => 'api_restricted'], $instance->getData()); + } + + public function testApiRestrictedRequiresAPathBoundary(): void { + // A string prefix of SERVERROOT that is not an actual parent directory + // (e.g. "/srv/nextclou" for "/srv/nextcloud") must not count as permitted. + $instance = $this->getInstance([]); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', substr(\OC::$SERVERROOT, 0, -1)], + ]); + + $this->assertSame(['status' => 'api_restricted'], $instance->getData()); + } + + public function testApiPermittedOnExactServerRootMatch(): void { + $instance = $this->getInstance(['readStatus']); + $instance->method('readStatus')->willReturn(false); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', \OC::$SERVERROOT], + ['disable_functions', ''], + ]); + + $this->assertSame(['status' => 'status_unavailable'], $instance->getData()); + } + + public function testStatusUnavailableWhenTheFunctionIsDisabled(): void { + $instance = $this->getInstance([]); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', ''], + ['disable_functions', 'exec,opcache_get_status,shell_exec'], + ]); + + $this->assertSame(['status' => 'status_unavailable'], $instance->getData()); + } + + public function testStatusUnavailableWhenTheCallReturnsFalse(): void { + $instance = $this->getInstance(['readStatus']); + $instance->method('readStatus')->willReturn(false); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', ''], + ['disable_functions', ''], + ]); + + $this->assertSame(['status' => 'status_unavailable'], $instance->getData()); + } + + public function testOk(): void { + $instance = $this->getInstance(['readStatus']); + $instance->method('readStatus')->willReturn([ + 'cache_full' => false, + 'memory_usage' => [ + 'used_memory' => 1_000_000, + 'free_memory' => 2_000_000, + 'wasted_memory' => 500_000, + ], + 'interned_strings_usage' => [ + 'buffer_size' => 8_000_000, + 'used_memory' => 6_000_000, + 'free_memory' => 2_000_000, + ], + 'opcache_statistics' => [ + 'num_cached_scripts' => 250, + 'num_cached_keys' => 300, + 'max_cached_keys' => 500, + 'opcache_hit_rate' => 99.98, + 'oom_restarts' => 3, + 'last_restart_time' => 1_700_000_000, + ], + 'jit' => [ + 'enabled' => true, + 'buffer_size' => 67_108_864, + 'buffer_free' => 50_000_000, + ], + ]); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', ''], + ['disable_functions', ''], + ]); + $this->iniGetWrapper->method('getNumeric')->with('opcache.revalidate_freq')->willReturn(2); + + $this->assertSame([ + 'status' => 'ok', + 'memory' => ['used' => 1_000_000, 'wasted' => 500_000, 'free' => 2_000_000, 'total' => 3_500_000], + 'internedStrings' => ['used' => 6_000_000, 'free' => 2_000_000, 'total' => 8_000_000], + 'keys' => ['used' => 300, 'max' => 500], + 'hitRate' => 99.98, + 'cachedScripts' => 250, + 'oomRestarts' => 3, + 'cacheFull' => false, + 'revalidateFreq' => 2, + 'validateTimestamps' => true, + 'lastRestart' => 1_700_000_000, + 'jit' => ['enabled' => true, 'bufferUsed' => 17_108_864, 'bufferTotal' => 67_108_864], + ], $instance->getData()); + } + + public function testOkWithoutJit(): void { + $instance = $this->getInstance(['readStatus']); + $instance->method('readStatus')->willReturn([ + 'cache_full' => true, + 'memory_usage' => ['used_memory' => 1, 'free_memory' => 0, 'wasted_memory' => 0], + 'interned_strings_usage' => ['buffer_size' => 1, 'used_memory' => 0, 'free_memory' => 1], + 'opcache_statistics' => [ + 'num_cached_scripts' => 1, + 'num_cached_keys' => 1, + 'max_cached_keys' => 1, + 'opcache_hit_rate' => 0.0, + 'oom_restarts' => 0, + ], + ]); + $this->iniGetWrapper->method('getBool')->willReturn(true); + $this->iniGetWrapper->method('getString')->willReturnMap([ + ['opcache.restrict_api', ''], + ['disable_functions', ''], + ]); + $this->iniGetWrapper->method('getNumeric')->willReturn(0); + + $data = $instance->getData(); + + $this->assertSame('ok', $data['status']); + $this->assertTrue($data['cacheFull']); + $this->assertNull($data['jit']); + $this->assertNull($data['lastRestart']); + } +} diff --git a/tests/lib/Collector/PhpTest.php b/tests/lib/Collector/PhpTest.php new file mode 100644 index 00000000..2c3a1311 --- /dev/null +++ b/tests/lib/Collector/PhpTest.php @@ -0,0 +1,65 @@ +iniGetWrapper = $this->createMock(IniGetWrapper::class); + } + + /** + * @param list $mockedMethods + */ + private function getInstance(array $mockedMethods = []): Php&MockObject { + return $this->getMockBuilder(Php::class) + ->setConstructorArgs([$this->iniGetWrapper]) + ->onlyMethods($mockedMethods) + ->getMock(); + } + + public function testReadsIniValues(): void { + $this->iniGetWrapper->method('getBytes')->willReturnMap([ + ['memory_limit', 134217728], + ['upload_max_filesize', 2097152], + ['post_max_size', 8388608], + ]); + $this->iniGetWrapper->method('getNumeric')->with('max_execution_time')->willReturn(30); + + $data = $this->getInstance()->getData(); + + $this->assertSame(PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION . '.' . PHP_RELEASE_VERSION, $data['version']); + $this->assertSame(PHP_SAPI, $data['sapi']); + $this->assertSame(134217728, $data['memoryLimit']); + $this->assertSame(30, $data['maxExecutionTime']); + $this->assertSame(2097152, $data['uploadMaxFilesize']); + $this->assertSame(8388608, $data['postMaxSize']); + } + + public function testExtensionsAreLowercasedDeduplicatedAndSorted(): void { + $extensions = $this->getInstance()->getData()['extensions']; + + $this->assertIsArray($extensions); + $this->assertContains('core', $extensions); + $this->assertSame(array_values(array_unique($extensions)), $extensions); + $this->assertSame(array_map('strtolower', $extensions), $extensions); + + $sorted = $extensions; + natcasesort($sorted); + $this->assertSame(array_values($sorted), $extensions); + } +} diff --git a/tests/lib/PhpStatisticsTest.php b/tests/lib/PhpStatisticsTest.php new file mode 100644 index 00000000..8a07a77d --- /dev/null +++ b/tests/lib/PhpStatisticsTest.php @@ -0,0 +1,32 @@ +createMock(IniGetWrapper::class); + $instance = new PhpStatistics($iniGetWrapper); + + $stats = $instance->getPhpStatistics(); + + $this->assertArrayHasKey('opcache', $stats); + $this->assertArrayHasKey('apcu', $stats); + $this->assertArrayHasKey('extensions', $stats); + $this->assertArrayHasKey('opcache_revalidate_freq', $stats); + } +} diff --git a/tests/stub.phpstub b/tests/stub.phpstub index 36ab7a75..a28eab01 100644 --- a/tests/stub.phpstub +++ b/tests/stub.phpstub @@ -348,6 +348,7 @@ namespace { static $CLI = false; /** @var IServerContainer */ static $server; + static $SERVERROOT; } } From 5acff9bbf8e49b660105899bff3baf7d4ff1b930 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 23 Aug 2026 19:26:31 +0000 Subject: [PATCH 2/3] chore(assets): Recompile assets Signed-off-by: Daniel --- ...QMcv.chunk.css => main-CaivFkOz.chunk.css} | 2 +- css/serverinfo-main.css | 2 +- js/serverinfo-main.mjs | 24 +++++++++---------- js/serverinfo-main.mjs.map | 2 +- 4 files changed, 15 insertions(+), 15 deletions(-) rename css/{main-B5AoQMcv.chunk.css => main-CaivFkOz.chunk.css} (91%) diff --git a/css/main-B5AoQMcv.chunk.css b/css/main-CaivFkOz.chunk.css similarity index 91% rename from css/main-B5AoQMcv.chunk.css rename to css/main-CaivFkOz.chunk.css index 0a839034..e5ce3f02 100644 --- a/css/main-B5AoQMcv.chunk.css +++ b/css/main-CaivFkOz.chunk.css @@ -1 +1 @@ -.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-00a99684]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-00a99684]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-00a99684]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-00a99684]{--button-size: var(--clickable-area-large)}.button-vue[data-v-00a99684] *{cursor:pointer}.button-vue[data-v-00a99684]:focus{outline:none}.button-vue[data-v-00a99684]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-00a99684]:disabled *{cursor:default}.button-vue[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-00a99684]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-00a99684]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-00a99684]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-00a99684]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-00a99684]{flex-direction:row-reverse}.button-vue--reverse[data-v-00a99684]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-00a99684]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-00a99684]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-00a99684]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-00a99684] svg{height:16px;width:16px}.button-vue__text[data-v-00a99684]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-00a99684]:empty{display:none}.button-vue[data-v-00a99684]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-00a99684]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-00a99684]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-00a99684]{width:100%}.button-vue[data-v-00a99684]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-00a99684]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-00a99684]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-00a99684]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-00a99684]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-00a99684]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-00a99684]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-00a99684]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-00a99684]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-00a99684]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-00a99684]:active{background-color:var(--color-success)}.button-vue--warning[data-v-00a99684]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-00a99684]:active{background-color:var(--color-warning)}.button-vue--error[data-v-00a99684]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-00a99684]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-00a99684]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-00a99684],.button-vue--legacy.button-vue--success[data-v-00a99684],.button-vue--legacy.button-vue--warning[data-v-00a99684]{color:#fff}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3c357e2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3c357e2d]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3c357e2d],.modal-mask[data-v-3c357e2d] *{box-sizing:border-box}.modal-mask--opaque[data-v-3c357e2d]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3c357e2d]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3c357e2d]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3c357e2d]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3c357e2d]{padding-inline-start:calc(var(--header-height) * var(--v046d2bb2));text-align:center}}.modal-header .icons-menu[data-v-3c357e2d]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3c357e2d] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3c357e2d] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3c357e2d],.modal-wrapper .next[data-v-3c357e2d]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,.modal-wrapper .next[data-v-3c357e2d]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3c357e2d]{inset-inline-start:2px}.modal-wrapper .next[data-v-3c357e2d]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3c357e2d]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3c357e2d]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3c357e2d]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3c357e2d]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3c357e2d]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3c357e2d]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3c357e2d]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3c357e2d]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-3c357e2d],.fade-leave-active[data-v-3c357e2d]{transition:opacity .25s}.fade-enter-from[data-v-3c357e2d],.fade-leave-to[data-v-3c357e2d]{opacity:0}.fade-visibility-enter-from[data-v-3c357e2d],.fade-visibility-leave-to[data-v-3c357e2d]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3c357e2d],.modal-in-leave-active[data-v-3c357e2d],.modal-out-enter-active[data-v-3c357e2d],.modal-out-leave-active[data-v-3c357e2d]{transition:opacity .25s}.modal-in-enter-from[data-v-3c357e2d],.modal-in-leave-to[data-v-3c357e2d],.modal-out-enter-from[data-v-3c357e2d],.modal-out-leave-to[data-v-3c357e2d]{opacity:0}.modal-in-enter .modal-container[data-v-3c357e2d],.modal-in-leave-to .modal-container[data-v-3c357e2d]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3c357e2d],.modal-out-leave-to .modal-container[data-v-3c357e2d]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3c357e2d linear var(--v71f7c020) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d]{animation:breath-3c357e2d 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d]{animation-play-state:paused!important}@keyframes progressring-3c357e2d{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3c357e2d{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-23e5cae7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-23e5cae7]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-23e5cae7]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-23e5cae7]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-23e5cae7]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-23e5cae7]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-23e5cae7]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-23e5cae7]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-23e5cae7]{width:100%}.action-item__menutoggle__icon[data-v-23e5cae7]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_bkeq-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_zfWgY.v-popper--theme-nc-popover-9,._ncPopover_zfWgY.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-10f09a63]{table-layout:fixed}.status-cell[data-v-10f09a63]{width:32px}.when-cell[data-v-10f09a63]{width:180px}.duration-cell[data-v-10f09a63]{width:90px}.memory-cell[data-v-10f09a63]{width:110px}.info-cell[data-v-10f09a63]{width:44px;padding:0}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.chart-wrapper[data-v-6950f64f]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-494041bc]{height:200px;width:100%}._material-design-icon_JPsV1{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_s7kf-{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_s7kf-._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox__item_691pI{border-radius:var(--border-radius-small)!important}._ncFormBox_col_Lt4lg{flex-direction:column}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI{flex:1 1}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_MaIxG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_E8Xfr{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_8BFGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_Gp-TA{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_Gp-TA *{cursor:inherit}._formBoxItem_Gp-TA:has(:disabled){cursor:default;opacity:.5}._formBoxItem_Gp-TA:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_Gp-TA:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_UqZJ1{font-weight:var(--font-weight-default, normal)}._formBoxItem_Gp-TA._formBoxItem_legacy_dP9aJ{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__element_jHCux{color:var(--color-text-maxcontrast)}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__description_UqZJ1{color:inherit}._formBoxItem__content_UKovC{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_jHCux:after{content:"";position:absolute;inset:0}._formBoxItem__description_UqZJ1{color:var(--color-text-maxcontrast)}._formBoxItem__icon_AvkP3{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_v0XYD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_n8432{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}._material-design-icon_2NWOj{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_P4ub1{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_P4ub1._formGroup_noGap_I25Tm{--form-group-content-gap: 0}._formGroup__label_dvGhm{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rqVc0{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_fnqsg{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_fnqsg._formGroup__content_only_G-Ivq{margin-block-start:0}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-353fa414]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-353fa414]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v3a86fec2);--progress-bar-height: var(--v57442460)}.progress-bar--linear[data-v-353fa414]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-353fa414]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-353fa414]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-353fa414]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-353fa414]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-353fa414]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.resource-usage[data-v-ba447d79]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.resource-usage__header[data-v-ba447d79]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none}.server-info__tag-wrapper{display:flex;flex-wrap:wrap}.server-info__php-extension-tag{display:inline-block;margin:2px;padding:1px 9px;border-radius:16px;border:1px solid var(--color-main-text)} +.section-heading[data-v-0eb9e63c]{justify-content:start}.icon[data-v-0eb9e63c]{display:inline-flex;vertical-align:middle;margin-right:8px}.material-design-icon[data-v-6be9fa31]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.notecard[data-v-6be9fa31]{--note-card-icon-size: 20px;--note-card-padding: calc(2 * var(--default-grid-baseline));color:var(--color-main-text)!important;background-color:var(--note-background)!important;border-inline-start:var(--default-grid-baseline) solid var(--note-theme);border-radius:var(--border-radius-small);margin:1rem 0;padding:var(--note-card-padding);display:flex;flex-direction:row;gap:var(--note-card-padding)}.notecard__heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);font-weight:var(--font-weight-heading, 600)}.notecard__icon[data-v-6be9fa31]{color:var(--note-theme)}.notecard__icon--heading[data-v-6be9fa31]{font-size:var(--note-card-icon-size);margin-block:calc((1lh - 1em)/2) auto}.notecard--success[data-v-6be9fa31]{--note-background: var(--color-success);--note-theme: var(--color-success-text)}.notecard--info[data-v-6be9fa31]{--note-background: var(--color-info);--note-theme: var(--color-info-text)}.notecard--error[data-v-6be9fa31]{--note-background: var(--color-error);--note-theme: var(--color-error-text)}.notecard--warning[data-v-6be9fa31]{--note-background: var(--color-warning);--note-theme: var(--color-warning-text)}.notecard--legacy[data-v-6be9fa31]{background-color:color-mix(in srgb,var(--note-background),var(--color-main-background) 80%)!important;color:var(--color-main-text)!important}.material-design-icon[data-v-aaedb1c3]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.icon-vue[data-v-aaedb1c3]{display:flex;justify-content:center;align-items:center;min-width:var(--default-clickable-area);min-height:var(--default-clickable-area);opacity:1}.icon-vue.icon-vue--inline[data-v-aaedb1c3]{display:inline-flex!important;min-width:fit-content;min-height:fit-content;vertical-align:text-bottom}.icon-vue span[data-v-aaedb1c3]{line-height:0}.icon-vue[data-v-aaedb1c3] svg{fill:currentColor;width:var(--fb515064);height:var(--fb515064);max-width:var(--fb515064);max-height:var(--fb515064)}.icon-vue--directional[data-v-aaedb1c3] svg:dir(rtl){transform:scaleX(-1)}@media only screen and (max-width:512px){.dialog__modal .modal-wrapper--small .modal-container{width:fit-content;height:unset;max-height:90%;position:relative;top:unset;border-radius:var(--border-radius-element)}}.material-design-icon[data-v-24e91b99]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.dialog[data-v-24e91b99]{height:100%;width:100%;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container{display:flex!important;padding-block:4px 0;padding-inline:12px 0}.dialog__modal[data-v-24e91b99] .modal-wrapper .modal-container__content{display:flex;flex-direction:column;overflow:hidden}.dialog__wrapper[data-v-24e91b99]{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.dialog__wrapper--collapsed[data-v-24e91b99]{flex-direction:column}.dialog__navigation[data-v-24e91b99]{display:flex;flex-shrink:0}.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-24e91b99]{flex-direction:column;overflow:hidden auto;height:100%;min-width:200px;margin-inline-end:20px}.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-24e91b99]{flex-direction:row;justify-content:space-between;overflow:auto hidden;width:100%;min-width:100%}.dialog__name[data-v-24e91b99]{font-size:21px;text-align:center;height:fit-content;min-height:var(--default-clickable-area);line-height:var(--default-clickable-area);overflow-wrap:break-word;margin-block:0 12px}.dialog__content[data-v-24e91b99]{flex:1;min-height:0;overflow:auto;padding-inline-end:12px}.dialog__text[data-v-24e91b99]{padding-block-end:6px}.dialog__actions[data-v-24e91b99]{display:flex;gap:6px;align-content:center;justify-content:end;width:100%;max-width:100%;padding-inline:0 12px;margin-inline:0;margin-block:0}.dialog__actions[data-v-24e91b99]:not(:empty){margin-block:6px 12px}@media only screen and (max-width:512px){.dialog__name[data-v-24e91b99]{text-align:start;margin-inline-end:var(--default-clickable-area)}}.material-design-icon[data-v-00a99684]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-00a99684]{--button-size: var(--default-clickable-area);--button-inner-size: calc(var(--button-size) - 4px);--button-radius: var(--border-radius-element);--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));--button-padding: var(--default-grid-baseline) var(--button-padding-default);color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light);border:1px solid var(--color-primary-element-light-hover);border-bottom-width:2px;border-radius:var(--button-radius);box-sizing:border-box;position:relative;width:fit-content;overflow:hidden;padding-block:1px 0;padding-inline:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);display:flex;align-items:center;justify-content:center;transition-property:color,border-color,background-color;transition-duration:.1s;transition-timing-function:linear;cursor:pointer;font-size:var(--default-font-size);font-weight:var(--font-weight-element, bold)}.button-vue--size-small[data-v-00a99684]{--button-size: var(--clickable-area-small)}.button-vue--size-large[data-v-00a99684]{--button-size: var(--clickable-area-large)}.button-vue[data-v-00a99684] *{cursor:pointer}.button-vue[data-v-00a99684]:focus{outline:none}.button-vue[data-v-00a99684]:disabled{filter:saturate(.7);opacity:.5;cursor:default}.button-vue[data-v-00a99684]:disabled *{cursor:default}.button-vue[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-light-hover)}.button-vue[data-v-00a99684]:active:not(:disabled){background-color:var(--color-primary-element-light)}.button-vue__wrapper[data-v-00a99684]{display:inline-flex;align-items:center;justify-content:center;width:100%}.button-vue--end .button-vue__wrapper[data-v-00a99684]{justify-content:end}.button-vue--start .button-vue__wrapper[data-v-00a99684]{justify-content:start}.button-vue--reverse .button-vue__wrapper[data-v-00a99684]{flex-direction:row-reverse}.button-vue--reverse[data-v-00a99684]{--button-padding: var(--button-padding-default) var(--default-grid-baseline)}.button-vue__icon[data-v-00a99684]{--default-clickable-area: var(--button-inner-size);height:var(--button-inner-size);width:var(--button-inner-size);min-height:var(--button-inner-size);min-width:var(--button-inner-size);display:flex;justify-content:center;align-items:center}.button-vue__icon[data-v-00a99684]:empty{display:none}.button-vue--size-small .button-vue__icon[data-v-00a99684]>*{max-height:16px;max-width:16px}.button-vue--size-small .button-vue__icon[data-v-00a99684] svg{height:16px;width:16px}.button-vue__text[data-v-00a99684]{font-weight:var(--font-weight-element, bold);margin-bottom:1px;padding:2px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.button-vue__text[data-v-00a99684]:empty{display:none}.button-vue[data-v-00a99684]:has(.button-vue__text:empty):not(.button-vue--wide){--button-padding: var(--button-radius);line-height:1;width:var(--button-size)!important}.button-vue[data-v-00a99684]:has(.button-vue__icon:empty){--button-padding: var(--button-padding-default)}.button-vue:has(.button-vue__icon:empty) .button-vue__text[data-v-00a99684]{padding-inline:var(--default-grid-baseline)}.button-vue--wide[data-v-00a99684]{width:100%}.button-vue[data-v-00a99684]:focus-visible{outline:2px solid var(--color-main-text)!important;box-shadow:0 0 0 4px var(--color-main-background)!important}.button-vue:focus-visible.button-vue--vue-tertiary-on-primary[data-v-00a99684]{outline:2px solid var(--color-primary-element-text);border-radius:var(--border-radius-element);background-color:transparent}.button-vue--primary[data-v-00a99684]{background-color:var(--color-primary-element);border-color:var(--color-primary-element-hover);color:var(--color-primary-element-text)}.button-vue--primary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-primary-element-hover)}.button-vue--primary[data-v-00a99684]:active{background-color:var(--color-primary-element)}.button-vue--secondary[data-v-00a99684]{background-color:var(--color-primary-element-light);border-color:var(--color-primary-element-light-hover);color:var(--color-primary-element-light-text)}.button-vue--secondary[data-v-00a99684]:hover:not(:disabled){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-light-hover)}.button-vue--tertiary[data-v-00a99684]{background-color:transparent;border-color:transparent;color:var(--color-main-text)}.button-vue--tertiary[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-background-hover)}.button-vue--tertiary[data-v-00a99684]:not(.button-vue--legacy34):hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary-element) 8%,transparent)}.button-vue--tertiary-no-background[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--tertiary-on-primary[data-v-00a99684]{color:var(--color-primary-element-text)}.button-vue--tertiary-on-primary[data-v-00a99684]:hover:not(:disabled){background-color:transparent}.button-vue--success[data-v-00a99684]{border-color:var(--color-success-hover);background-color:var(--color-success);color:var(--color-success-text)}.button-vue--success[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-success-hover)}.button-vue--success[data-v-00a99684]:active{background-color:var(--color-success)}.button-vue--warning[data-v-00a99684]{border-color:var(--color-warning-hover);background-color:var(--color-warning);color:var(--color-warning-text)}.button-vue--warning[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-warning-hover)}.button-vue--warning[data-v-00a99684]:active{background-color:var(--color-warning)}.button-vue--error[data-v-00a99684]{border-color:var(--color-error-hover);background-color:var(--color-error);color:var(--color-error-text)}.button-vue--error[data-v-00a99684]:hover:not(:disabled){background-color:var(--color-error-hover)}.button-vue--error[data-v-00a99684]:active{background-color:var(--color-error)}.button-vue--legacy[data-v-00a99684]{--button-inner-size: var(--button-size);border:none;padding-block:0}.button-vue--legacy.button-vue--error[data-v-00a99684],.button-vue--legacy.button-vue--success[data-v-00a99684],.button-vue--legacy.button-vue--warning[data-v-00a99684]{color:#fff}.material-design-icon[data-v-cf399190]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.loading-icon[data-v-cf399190]{overflow:hidden}.loading-icon svg[data-v-cf399190]{animation:rotate var(--animation-duration, .8s) linear infinite}.material-design-icon[data-v-3c357e2d]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-3c357e2d]{position:fixed;z-index:9998;top:0;inset-inline-start:0;display:block;width:100%;height:100%;--backdrop-color: 0, 0, 0;background-color:rgba(var(--backdrop-color),.5)}.modal-mask[data-v-3c357e2d],.modal-mask[data-v-3c357e2d] *{box-sizing:border-box}.modal-mask--opaque[data-v-3c357e2d]{background-color:rgba(var(--backdrop-color),.92)}.modal-mask--light[data-v-3c357e2d]{--backdrop-color: 255, 255, 255}.modal-header[data-v-3c357e2d]{position:absolute;z-index:10001;top:0;inset-inline:0 0;display:flex!important;align-items:center;justify-content:space-between;width:100%;height:var(--header-height);overflow:hidden;transition:opacity .25s,visibility .25s}.modal-header__name[data-v-3c357e2d]{overflow-x:hidden;width:100%;padding-inline:12px 0;transition:padding ease .1s;white-space:nowrap;text-overflow:ellipsis;font-size:16px;margin-block:0}@media only screen and (min-width:1024px){.modal-header__name[data-v-3c357e2d]{padding-inline-start:calc(var(--header-height) * var(--v046d2bb2));text-align:center}}.modal-header .icons-menu[data-v-3c357e2d]{display:flex;align-items:center;justify-content:flex-end;align-self:flex-end}.modal-header .icons-menu .header-close[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);padding:0}.modal-header .icons-menu .play-pause-icons[data-v-3c357e2d]{position:relative;width:var(--header-height);height:var(--header-height);margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__icon[data-v-3c357e2d],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__icon[data-v-3c357e2d]{opacity:1;border-radius:calc(var(--default-clickable-area) / 2);background-color:#7f7f7f40}.modal-header .icons-menu .play-pause-icons__icon[data-v-3c357e2d]{width:var(--default-clickable-area);height:var(--default-clickable-area);margin:calc((var(--header-height) - var(--default-clickable-area)) / 2);cursor:pointer;opacity:.7}.modal-header .icons-menu[data-v-3c357e2d] .action-item{margin:calc((var(--header-height) - var(--default-clickable-area)) / 2)}.modal-header .icons-menu[data-v-3c357e2d] .action-item--single{width:var(--default-clickable-area);height:var(--default-clickable-area);cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu .header-actions[data-v-3c357e2d] button:focus-visible{box-shadow:none!important;outline:2px solid #fff!important}.modal-wrapper[data-v-3c357e2d]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.modal-wrapper .prev[data-v-3c357e2d],.modal-wrapper .next[data-v-3c357e2d]{z-index:10000;height:35vh;min-height:300px;position:absolute;transition:opacity .25s;color:#fff}.modal-wrapper .prev[data-v-3c357e2d]:focus-visible,.modal-wrapper .next[data-v-3c357e2d]:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element-text);background-color:var(--color-box-shadow)}.modal-wrapper .prev[data-v-3c357e2d]{inset-inline-start:2px}.modal-wrapper .next[data-v-3c357e2d]{inset-inline-end:2px}.modal-wrapper .modal-container[data-v-3c357e2d]{position:relative;display:flex;padding:0;transition:transform .3s ease;border-radius:var(--border-radius-container);background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 40px #0003;overflow:auto}.modal-wrapper .modal-container__close[data-v-3c357e2d]{z-index:1;position:absolute;top:4px;inset-inline-end:var(--default-grid-baseline)}.modal-wrapper .modal-container__content[data-v-3c357e2d]{width:100%;min-height:52px;overflow:auto}.modal-wrapper--small>.modal-container[data-v-3c357e2d]{width:400px;max-width:90%;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--normal>.modal-container[data-v-3c357e2d]{max-width:90%;width:600px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--large>.modal-container[data-v-3c357e2d]{max-width:90%;width:900px;max-height:min(90%,100% - 2 * var(--header-height) - 2 * var(--body-container-margin))}.modal-wrapper--full>.modal-container[data-v-3c357e2d]{width:100%;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}@media only screen and ((max-width:512px)or (max-height:400px)){.modal-wrapper .modal-container[data-v-3c357e2d]{max-width:initial;width:100%;max-height:initial;height:calc(100% - var(--header-height));position:absolute;top:var(--header-height);border-radius:0}}.fade-enter-active[data-v-3c357e2d],.fade-leave-active[data-v-3c357e2d]{transition:opacity .25s}.fade-enter-from[data-v-3c357e2d],.fade-leave-to[data-v-3c357e2d]{opacity:0}.fade-visibility-enter-from[data-v-3c357e2d],.fade-visibility-leave-to[data-v-3c357e2d]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-3c357e2d],.modal-in-leave-active[data-v-3c357e2d],.modal-out-enter-active[data-v-3c357e2d],.modal-out-leave-active[data-v-3c357e2d]{transition:opacity .25s}.modal-in-enter-from[data-v-3c357e2d],.modal-in-leave-to[data-v-3c357e2d],.modal-out-enter-from[data-v-3c357e2d],.modal-out-leave-to[data-v-3c357e2d]{opacity:0}.modal-in-enter .modal-container[data-v-3c357e2d],.modal-in-leave-to .modal-container[data-v-3c357e2d]{transform:scale(.9)}.modal-out-enter .modal-container[data-v-3c357e2d],.modal-out-leave-to .modal-container[data-v-3c357e2d]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-3c357e2d]{position:absolute;top:0;inset-inline-start:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-3c357e2d]{transition:.1s stroke-dashoffset;transform-origin:50% 50%;animation:progressring-3c357e2d linear var(--v71f7c020) infinite;stroke-linecap:round;stroke-dashoffset:94.2477796077;stroke-dasharray:94.2477796077}.modal-mask .play-pause-icons--paused .play-pause-icons__icon[data-v-3c357e2d]{animation:breath-3c357e2d 2s cubic-bezier(.4,0,.2,1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-3c357e2d]{animation-play-state:paused!important}@keyframes progressring-3c357e2d{0%{stroke-dashoffset:94.2477796077}to{stroke-dashoffset:0}}@keyframes breath-3c357e2d{0%{opacity:1}50%{opacity:0}to{opacity:1}}.material-design-icon[data-v-23e5cae7]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-items[data-v-23e5cae7]{display:flex;align-items:center;gap:calc((var(--default-clickable-area) - 16px) / 2 / 2)}.action-item[data-v-23e5cae7]{--open-background-color: var(--color-background-hover, $action-background-hover);position:relative;display:inline-block}.action-item.action-item--primary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-hover)}.action-item.action-item--secondary[data-v-23e5cae7]{--open-background-color: var(--color-primary-element-light-hover)}.action-item.action-item--error[data-v-23e5cae7]{--open-background-color: var(--color-error-hover)}.action-item.action-item--warning[data-v-23e5cae7]{--open-background-color: var(--color-warning-hover)}.action-item.action-item--success[data-v-23e5cae7]{--open-background-color: var(--color-success-hover)}.action-item.action-item--tertiary-no-background[data-v-23e5cae7]{--open-background-color: transparent}.action-item.action-item--open .action-item__menutoggle[data-v-23e5cae7]{background-color:var(--open-background-color)}.action-item.action-item--wide[data-v-23e5cae7]{width:100%}.action-item__menutoggle__icon[data-v-23e5cae7]{width:20px;height:20px;object-fit:contain}.material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper{border-radius:var(--border-radius-element)}.v-popper--theme-nc-popover-9.v-popper__popper.action-item__popper .v-popper__wrapper .v-popper__inner{border-radius:var(--border-radius-element);padding:4px;max-height:calc(100vh - var(--header-height));overflow:auto}._material-design-icon_bkeq-{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncPopover_zfWgY.v-popper--theme-nc-popover-9,._ncPopover_zfWgY.v-popper--theme-nc-popover-9 *{box-sizing:border-box}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9 .resize-observer object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper{z-index:100000;top:0;left:0;display:block!important}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__wrapper{box-shadow:0 1px 10px var(--color-box-shadow);border-radius:var(--border-radius-element)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius-element);overflow:hidden;background:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper .v-popper__arrow-container{position:absolute;z-index:1;width:0;height:0;border-style:solid;border-color:transparent;border-width:10px}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-container{bottom:-9px;border-bottom-width:0;border-top-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:-9px;border-top-width:0;border-bottom-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-container{left:-9px;border-left-width:0;border-right-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-9px;border-right-width:0;border-left-color:var(--color-main-background)}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=true]{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}._ncPopover_zfWgY.v-popper--theme-nc-popover-9.v-popper__popper[aria-hidden=false]{visibility:visible;transition:opacity var(--animation-quick);opacity:1}.job-status[data-v-0e5a1326]{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.job-status__dot[data-v-0e5a1326]{flex:0 0 auto;width:10px;height:10px;border-radius:10px;background-color:var(--color-text-maxcontrast)}.job-status--succeeded .job-status__dot[data-v-0e5a1326]{background-color:var(--color-success)}.job-status--failed .job-status__dot[data-v-0e5a1326],.job-status--crashed .job-status__dot[data-v-0e5a1326]{background-color:var(--color-error)}.job-details[data-v-c21cb020]{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding:0;margin:0}.job-details dt[data-v-c21cb020]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap}.job-details dd[data-v-c21cb020]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.job-details__class[data-v-c21cb020]{font-family:var(--font-face-monospace, monospace);-webkit-user-select:all;user-select:all}table[data-v-10f09a63]{table-layout:fixed}.status-cell[data-v-10f09a63]{width:32px}.when-cell[data-v-10f09a63]{width:180px}.duration-cell[data-v-10f09a63]{width:90px}.memory-cell[data-v-10f09a63]{width:110px}.info-cell[data-v-10f09a63]{width:44px;padding:0}table[data-v-452808c1]{table-layout:fixed}.job-cell[data-v-452808c1]{padding-inline-start:38px}.count-cell[data-v-452808c1]{width:80px}.memory-cell[data-v-452808c1]{width:154px}.stat-tile[data-v-4a64fa3b]{display:grid;grid-template-rows:auto 1fr;gap:2px;padding:10px 12px;border-radius:var(--border-radius);background-color:var(--color-background-hover)}.stat-tile__label[data-v-4a64fa3b]{font-size:.72em;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-maxcontrast)}.stat-tile__value[data-v-4a64fa3b]{font-size:1.25em;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;word-break:break-word}.stat-tile__value--warning[data-v-4a64fa3b]{color:var(--color-warning-text, var(--color-warning))}.stat-tile__value--critical[data-v-4a64fa3b]{color:var(--color-error-text, var(--color-error))}.background-jobs h3[data-v-612ee243]{font-weight:700;margin:16px 0 8px}.chart-wrapper[data-v-6950f64f]{height:200px;width:100%}.diskchart-container[data-v-d52cfcd6]{position:relative;flex:0 0 auto;width:120px;margin-right:24px}.diskinfo-container[data-v-d52cfcd6]{flex:1 1 auto;min-width:0}.diskinfo[data-v-d52cfcd6]{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:0;margin:0;line-height:1.4}.diskinfo__row[data-v-d52cfcd6]{display:contents}.diskinfo__row dt[data-v-d52cfcd6]{width:auto;padding:0;color:var(--color-text-maxcontrast);white-space:nowrap;text-align:end}.diskinfo__row dd[data-v-d52cfcd6]{min-width:0;padding:0;margin:0;overflow-wrap:break-word}.info-color-label--available[data-v-d52cfcd6]:before,.info-color-label--used[data-v-d52cfcd6]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;margin-right:5px}.info-color-label--available[data-v-d52cfcd6]:before{background-color:var(--color-border-maxcontrast)}.info-color-label--used[data-v-d52cfcd6]:before{background-color:var(--color-primary-element)}@media(width<=1280px){.text-center-mobile[data-v-d52cfcd6]{text-align:center}.diskchart-container[data-v-d52cfcd6]{margin:0 auto}.text-center-mobile .diskinfo[data-v-d52cfcd6]{justify-content:center}}.chart-wrapper[data-v-494041bc]{height:200px;width:100%}._material-design-icon_JPsV1{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._ncFormBox_s7kf-{display:flex;flex-direction:column;gap:calc(1 * var(--default-grid-baseline))}._ncFormBox_s7kf-._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox__item_691pI{border-radius:var(--border-radius-small)!important}._ncFormBox_col_Lt4lg{flex-direction:column}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._ncFormBox_col_Lt4lg ._ncFormBox__item_691pI:last-child{border-end-start-radius:var(--border-radius-element)!important;border-end-end-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE{flex-direction:row}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI{flex:1 1}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:first-child{border-start-start-radius:var(--border-radius-element)!important;border-end-start-radius:var(--border-radius-element)!important}._ncFormBox_row_GzYuE ._ncFormBox__item_691pI:last-child{border-end-end-radius:var(--border-radius-element)!important;border-start-end-radius:var(--border-radius-element)!important}._material-design-icon_MaIxG{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxButton_E8Xfr{background:unset;border:none;color:inherit;font-size:inherit;font-weight:inherit;text-decoration:none;text-align:inherit;line-height:inherit;padding:0;margin:0;outline:none}._material-design-icon_8BFGk{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formBoxItem_Gp-TA{--nc-form-box-item-border-width: 1px;--nc-form-box-item-min-height: 40px;--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-element-label-padding: calc(var(--form-element-label-offset) - var(--nc-form-box-item-border-width));--color-primary-element-extra-light: hsl(from var(--color-primary-element-light) h s calc(l*1.045) );--color-primary-element-extra-light-hover: hsl(from var(--color-primary-element-light-hover) h s calc(l*1.045) );position:relative;display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline));min-height:var(--nc-form-box-item-min-height);padding-inline:var(--form-element-label-padding);border:1px solid var(--color-primary-element-extra-light-hover);border-bottom-width:2px;border-radius:var(--border-radius-element);background-color:var(--color-primary-element-extra-light);color:var(--color-main-text);font-weight:var(--font-weight-element, normal);transition-property:color,border-color,background-color;transition-duration:var(--animation-quick);transition-timing-function:linear;-webkit-user-select:none;user-select:none;cursor:pointer}._formBoxItem_Gp-TA *{cursor:inherit}._formBoxItem_Gp-TA:has(:disabled){cursor:default;opacity:.5}._formBoxItem_Gp-TA:hover:not(:has(:disabled)){color:var(--color-primary-element-light-text);background-color:var(--color-primary-element-extra-light-hover)}._formBoxItem_Gp-TA:has(:focus-visible){outline:2px solid var(--color-main-text);box-shadow:0 0 0 4px var(--color-main-background)}._formBoxItem__description_UqZJ1{font-weight:var(--font-weight-default, normal)}._formBoxItem_Gp-TA._formBoxItem_legacy_dP9aJ{--nc-form-box-item-border-width: 0px;border:none}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__element_jHCux{color:var(--color-text-maxcontrast)}._formBoxItem_Gp-TA._formBoxItem_inverted_BU-i- ._formBoxItem__description_UqZJ1{color:inherit}._formBoxItem__content_UKovC{flex:1;display:flex;flex-direction:column;padding-block:calc(2 * var(--default-grid-baseline));overflow-wrap:anywhere}._formBoxItem__element_jHCux:after{content:"";position:absolute;inset:0}._formBoxItem__description_UqZJ1{color:var(--color-text-maxcontrast)}._formBoxItem__icon_AvkP3{display:flex;align-items:center;justify-content:flex-end}._material-design-icon_v0XYD{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}input._formBoxSwitch__input_n8432{margin:0;width:var(--default-clickable-area);position:absolute;inset-block:0;inset-inline-end:var(--form-element-label-offset);z-index:-1;opacity:0!important;height:auto;cursor:inherit}._material-design-icon_63AMQ{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._iconToggleSwitch_IKWaj{color:var(--v6bd152af);transition:color var(--animation-quick) ease}._iconToggleSwitch_IKWaj svg{height:auto!important}._iconToggleSwitch_IKWaj circle{cx:var(--v16fd8ca9);transition:cx var(--animation-quick) ease}._material-design-icon_2NWOj{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}._formGroup_P4ub1{--form-element-label-offset: calc(var(--border-radius-element) + var(--default-grid-baseline));--form-group-content-gap: calc(2 * var(--default-grid-baseline))}._formGroup_P4ub1._formGroup_noGap_I25Tm{--form-group-content-gap: 0}._formGroup__label_dvGhm{padding-inline:var(--form-element-label-offset);font-size:var(--font-size);font-weight:var(--font-weight-heading, bold)}._formGroup__description_rqVc0{padding-inline:var(--form-element-label-offset);color:var(--color-text-maxcontrast)}._formGroup__content_fnqsg{display:flex;flex-direction:column;gap:var(--form-group-content-gap);margin-block-start:calc(2.5 * var(--default-grid-baseline))}._formGroup__content_fnqsg._formGroup__content_only_G-Ivq{margin-block-start:0}.monitoring[data-v-94a398b4]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px) * 4)}.material-design-icon[data-v-353fa414]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.progress-bar[data-v-353fa414]{display:block;height:var(--progress-bar-height);--progress-bar-color: var(--v3a86fec2);--progress-bar-height: var(--v57442460)}.progress-bar--linear[data-v-353fa414]{width:100%;overflow:hidden;border:0;padding:0;background:var(--color-background-dark);border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-webkit-progress-bar{height:var(--progress-bar-height);background-color:transparent}.progress-bar--linear[data-v-353fa414]::-webkit-progress-value{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--linear[data-v-353fa414]::-moz-progress-bar{background:var(--progress-bar-color, var(--gradient-primary-background));border-radius:calc(var(--progress-bar-height) / 2)}.progress-bar--circular[data-v-353fa414]{width:var(--progress-bar-height);color:var(--progress-bar-color)}.progress-bar--error[data-v-353fa414]{color:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-moz-progress-bar{background:var(--color-text-error, var(--color-error))!important}.progress-bar--error[data-v-353fa414]::-webkit-progress-value{background:var(--color-text-error, var(--color-error))!important}.progress-bar-container[data-v-353fa414]{display:flex;align-items:center;gap:calc(2 * var(--default-grid-baseline))}.progress-bar__value[data-v-353fa414]{font-size:var(--font-size-small, 13px);font-variant-numeric:tabular-nums;min-width:4ch;text-align:end}.usage-meter-bar__header[data-v-733874f2]{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.opcache-meters[data-v-6fef687a]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.info--warning[data-v-6fef687a]{color:var(--color-warning-text, var(--color-warning))}.extensions-button[data-v-1f664f3e]{margin-inline-start:calc(-2 * var(--default-grid-baseline) - var(--border-radius-element))}.resource-usage[data-v-ff265f31]{display:flex;flex-direction:column;gap:16px;padding:16px 0}.section-skeleton .skeleton-bar[data-v-9a2b13f0]{background:var(--color-background-dark, #ededed);border-radius:var(--border-radius, 3px);animation:skeleton-pulse-9a2b13f0 1.5s ease-in-out infinite}.section-skeleton .skeleton-title[data-v-9a2b13f0]{height:24px;width:40%;margin-bottom:20px}.section-skeleton .skeleton-chart[data-v-9a2b13f0]{height:200px;margin-bottom:16px}@keyframes skeleton-pulse-9a2b13f0{50%{opacity:.5}}.temp[data-v-cb3096fd]{font-variant-numeric:tabular-nums}.section h3{font-size:18px}.info{font-weight:700}.smallinfo{color:var(--color-text-maxcontrast)}.infobox{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:16px 0;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}@media(width<=1280px){.infobox{display:block;word-break:break-word}}.infobox h3{font-weight:700;padding:5px 0 10px;margin:0;overflow-wrap:break-word}.chart-container{position:relative;margin:10px}.clipboardButton{display:inline-block;position:relative;top:2px;margin-left:5px}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:30px}.row--cards{grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));margin:16px 0}.row--cards .infobox{margin:0}.row--tiles{grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;margin:16px 0}.row>*{min-width:0}.active-users-wrapper{flex:1;display:flex;gap:0 1rem;flex-wrap:wrap;align-items:center;justify-content:center}.active-users-box{padding:.25rem 1rem;flex:1;min-width:150px;border-left:2px solid var(--color-border)}@media(width<=1280px){.active-users-box{padding:1rem .5rem;border:none;text-align:center}}.active-users-box:first-child{border:none}.active-users-box .info{font-size:2rem}.smoothie-chart-tooltip{display:flex;flex-wrap:nowrap;align-items:center;padding:16px;margin:0 .25rem;background-color:var(--color-main-background);border:2px solid var(--color-border);border-radius:var(--border-radius-large)}.server-info-table table{width:100%;white-space:normal;overflow-wrap:break-word}.server-info-table th,.server-info-table td{padding:6px;border-bottom:1px solid var(--color-border)}.server-info-table th{color:var(--color-text-maxcontrast)}.server-info-table tr:last-child td{border-bottom:none} diff --git a/css/serverinfo-main.css b/css/serverinfo-main.css index 97e698e2..d0c97021 100644 --- a/css/serverinfo-main.css +++ b/css/serverinfo-main.css @@ -1,2 +1,2 @@ /* extracted by css-entry-points-plugin */ -@import './main-B5AoQMcv.chunk.css'; \ No newline at end of file +@import './main-CaivFkOz.chunk.css'; \ No newline at end of file diff --git a/js/serverinfo-main.mjs b/js/serverinfo-main.mjs index 96babb13..8864305a 100644 --- a/js/serverinfo-main.mjs +++ b/js/serverinfo-main.mjs @@ -1,13 +1,13 @@ -const Js=globalThis||void 0||self;function Dc(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const Ut={},Bo=[],xn=()=>{},E0=()=>!1,sl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),rl=t=>t.startsWith("onUpdate:"),ye=Object.assign,Nc=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},kv=Object.prototype.hasOwnProperty,Xt=(t,e)=>kv.call(t,e),bt=Array.isArray,Fo=t=>gr(t)==="[object Map]",al=t=>gr(t)==="[object Set]",zd=t=>gr(t)==="[object Date]",Tt=t=>typeof t=="function",se=t=>typeof t=="string",un=t=>typeof t=="symbol",Kt=t=>t!==null&&typeof t=="object",A0=t=>(Kt(t)||Tt(t))&&Tt(t.then)&&Tt(t.catch),S0=Object.prototype.toString,gr=t=>S0.call(t),Rv=t=>gr(t).slice(8,-1),C0=t=>gr(t)==="[object Object]",ll=t=>se(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,ks=Dc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ul=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},Pv=/-\w/g,je=ul(t=>t.replace(Pv,e=>e.slice(1).toUpperCase())),Lv=/\B([A-Z])/g,fi=ul(t=>t.replace(Lv,"-$1").toLowerCase()),cl=ul(t=>t.charAt(0).toUpperCase()+t.slice(1)),oa=ul(t=>t?`on${cl(t)}`:""),Oe=(t,e)=>!Object.is(t,e),sa=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:n})},Dv=t=>{const e=parseFloat(t);return isNaN(e)?t:e},Nv=t=>{const e=se(t)?Number(t):NaN;return isNaN(e)?t:e};let Hd;const ba=()=>Hd||(Hd=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Js<"u"?Js:{});function ro(t){if(bt(t)){const e={};for(let n=0;n{if(n){const i=n.split($v);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Yt(t){let e="";if(se(t))e=t;else if(bt(t))for(let n=0;nmr(n,e))}const P0=t=>!!(t&&t.__v_isRef===!0),L=t=>se(t)?t:t==null?"":bt(t)||Kt(t)&&(t.toString===S0||!Tt(t.toString))?P0(t)?L(t.value):JSON.stringify(t,L0,2):String(t),L0=(t,e)=>P0(e)?L0(t,e.value):Fo(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[i,o],s)=>(n[Jl(i,s)+" =>"]=o,n),{})}:al(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Jl(n))}:un(e)?Jl(e):Kt(e)&&!bt(e)&&!C0(e)?String(e):e,Jl=(t,e="")=>{var n;return un(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function Iv(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}let _e;class zv{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&_e&&(_e.active?(this.parent=_e,this.index=(_e.scopes||(_e.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e0&&--this._on===0){if(_e===this)_e=this.prevScope;else{let e=_e;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(Ps){let e=Ps;for(Ps=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;Rs;){let e=Rs;for(Rs=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=n}}if(t)throw t}function B0(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function F0(t){let e,n=t.depsTail,i=n;for(;i;){const o=i.prevDep;i.version===-1?(i===n&&(n=o),Bc(i),Jv(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=n}function Iu(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(j0(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function j0(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Ws)||(t.globalVersion=Ws,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Iu(t))))return;t.flags|=2;const e=t.dep,n=ie,i=En;ie=t,En=!0;try{B0(t);const o=t.fn(t._value);(e.version===0||Oe(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{ie=n,En=i,F0(t),t.flags&=-3}}function Bc(t,e=!1){const{dep:n,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),n.subs===t&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Bc(s,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function Jv(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let En=!0;const U0=[];function ui(){U0.push(En),En=!1}function ci(){const t=U0.pop();En=t===void 0?!0:t}function Jd(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=ie;ie=void 0;try{e()}finally{ie=n}}}let Ws=0;class Wv{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class dl{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ie||!En||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new Wv(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,V0(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=i)}return n}trigger(e){this.version++,Ws++,this.notify(e)}notify(e){Oc();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{$c()}}}function V0(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)V0(i)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const _a=new WeakMap,ao=Symbol(""),zu=Symbol(""),Gs=Symbol("");function $e(t,e,n){if(En&&ie){let i=_a.get(t);i||_a.set(t,i=new Map);let o=i.get(n);o||(i.set(n,o=new dl),o.map=i,o.key=n),o.track()}}function ni(t,e,n,i,o,s){const r=_a.get(t);if(!r){Ws++;return}const a=l=>{l&&l.trigger()};if(Oc(),e==="clear")r.forEach(a);else{const l=bt(t),c=l&&ll(n);if(l&&n==="length"){const u=Number(i);r.forEach((d,f)=>{(f==="length"||f===Gs||!un(f)&&f>=u)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),c&&a(r.get(Gs)),e){case"add":l?c&&a(r.get("length")):(a(r.get(ao)),Fo(t)&&a(r.get(zu)));break;case"delete":l||(a(r.get(ao)),Fo(t)&&a(r.get(zu)));break;case"set":Fo(t)&&a(r.get(ao));break}}$c()}function Gv(t,e){const n=_a.get(t);return n&&n.get(e)}function Ao(t){const e=jt(t);return e===t?e:($e(e,"iterate",Gs),ln(t)?e:e.map(Sn))}function hl(t){return $e(t=jt(t),"iterate",Gs),t}function jn(t,e){return di(t)?qs(lo(t)?Sn(e):e):Sn(e)}const qv={__proto__:null,[Symbol.iterator](){return Gl(this,Symbol.iterator,t=>jn(this,t))},concat(...t){return Ao(this).concat(...t.map(e=>bt(e)?Ao(e):e))},entries(){return Gl(this,"entries",t=>(t[1]=jn(this,t[1]),t))},every(t,e){return qn(this,"every",t,e,void 0,arguments)},filter(t,e){return qn(this,"filter",t,e,n=>n.map(i=>jn(this,i)),arguments)},find(t,e){return qn(this,"find",t,e,n=>jn(this,n),arguments)},findIndex(t,e){return qn(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return qn(this,"findLast",t,e,n=>jn(this,n),arguments)},findLastIndex(t,e){return qn(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return qn(this,"forEach",t,e,void 0,arguments)},includes(...t){return ql(this,"includes",t)},indexOf(...t){return ql(this,"indexOf",t)},join(t){return Ao(this).join(t)},lastIndexOf(...t){return ql(this,"lastIndexOf",t)},map(t,e){return qn(this,"map",t,e,void 0,arguments)},pop(){return ss(this,"pop")},push(...t){return ss(this,"push",t)},reduce(t,...e){return Wd(this,"reduce",t,e)},reduceRight(t,...e){return Wd(this,"reduceRight",t,e)},shift(){return ss(this,"shift")},some(t,e){return qn(this,"some",t,e,void 0,arguments)},splice(...t){return ss(this,"splice",t)},toReversed(){return Ao(this).toReversed()},toSorted(t){return Ao(this).toSorted(t)},toSpliced(...t){return Ao(this).toSpliced(...t)},unshift(...t){return ss(this,"unshift",t)},values(){return Gl(this,"values",t=>jn(this,t))}};function Gl(t,e,n){const i=hl(t),o=i[e]();return i!==t&&!ln(t)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.done||(s.value=n(s.value)),s}),o}const Kv=Array.prototype;function qn(t,e,n,i,o,s){const r=hl(t),a=r!==t&&!ln(t),l=r[e];if(l!==Kv[e]){const d=l.apply(t,s);return a?Sn(d):d}let c=n;r!==t&&(a?c=function(d,f){return n.call(this,jn(t,d),f,t)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,t)}));const u=l.call(r,c,i);return a&&o?o(u):u}function Wd(t,e,n,i){const o=hl(t),s=o!==t&&!ln(t);let r=n,a=!1;o!==t&&(s?(a=i.length===0,r=function(c,u,d){return a&&(a=!1,c=jn(t,c)),n.call(this,c,jn(t,u),d,t)}):n.length>3&&(r=function(c,u,d){return n.call(this,c,u,d,t)}));const l=o[e](r,...i);return a?jn(t,l):l}function ql(t,e,n){const i=jt(t);$e(i,"iterate",Gs);const o=i[e](...n);return(o===-1||o===!1)&&Zo(n[0])?(n[0]=jt(n[0]),i[e](...n)):o}function ss(t,e,n=[]){ui(),Oc();const i=jt(t)[e].apply(t,n);return $c(),ci(),i}const Xv=Dc("__proto__,__v_isRef,__isVue"),I0=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(un));function Yv(t){un(t)||(t=String(t));const e=jt(this);return $e(e,"has",t),e.hasOwnProperty(t)}class z0{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,i){if(n==="__v_skip")return e.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return i===(o?s?K0:q0:s?G0:W0).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=bt(e);if(!o){let l;if(r&&(l=qv[n]))return l;if(n==="hasOwnProperty")return Yv}const a=Reflect.get(e,n,ve(e)?e:i);if((un(n)?I0.has(n):Xv(n))||(o||$e(e,"get",n),s))return a;if(ve(a)){const l=r&&ll(n)?a:a.value;return o&&Kt(l)?wa(l):l}return Kt(a)?o?wa(a):Jo(a):a}}class H0 extends z0{constructor(e=!1){super(!1,e)}set(e,n,i,o){let s=e[n];const r=bt(e)&&ll(n);if(!this._isShallow){const c=di(s);if(!ln(i)&&!di(i)&&(s=jt(s),i=jt(i)),!r&&ve(s)&&!ve(i))return c||(s.value=i),!0}const a=r?Number(n)t,Or=t=>Reflect.getPrototypeOf(t);function ey(t,e,n){return function(...i){const o=this.__v_raw,s=jt(o),r=Fo(s),a=t==="entries"||t===Symbol.iterator&&r,l=t==="keys"&&r,c=o[t](...i),u=n?Hu:e?qs:Sn;return!e&&$e(s,"iterate",l?zu:ao),ye(Object.create(c),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:a?[u(d[0]),u(d[1])]:u(d),done:f}}})}}function $r(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function ny(t,e){const n={get(i){const o=this.__v_raw,s=jt(o),r=jt(i);t||(Oe(i,r)&&$e(s,"get",i),$e(s,"get",r));const{has:a}=Or(s),l=e?Hu:t?qs:Sn;if(a.call(s,i))return l(o.get(i));if(a.call(s,r))return l(o.get(r));o!==s&&o.get(i)},get size(){const i=this.__v_raw;return!t&&$e(jt(i),"iterate",ao),i.size},has(i){const o=this.__v_raw,s=jt(o),r=jt(i);return t||(Oe(i,r)&&$e(s,"has",i),$e(s,"has",r)),i===r?o.has(i):o.has(i)||o.has(r)},forEach(i,o){const s=this,r=s.__v_raw,a=jt(r),l=e?Hu:t?qs:Sn;return!t&&$e(a,"iterate",ao),r.forEach((c,u)=>i.call(o,l(c),l(u),s))}};return ye(n,t?{add:$r("add"),set:$r("set"),delete:$r("delete"),clear:$r("clear")}:{add(i){const o=jt(this),s=Or(o),r=jt(i),a=!e&&!ln(i)&&!di(i)?r:i;return s.has.call(o,a)||Oe(i,a)&&s.has.call(o,i)||Oe(r,a)&&s.has.call(o,r)||(o.add(a),ni(o,"add",a,a)),this},set(i,o){!e&&!ln(o)&&!di(o)&&(o=jt(o));const s=jt(this),{has:r,get:a}=Or(s);let l=r.call(s,i);l||(i=jt(i),l=r.call(s,i));const c=a.call(s,i);return s.set(i,o),l?Oe(o,c)&&ni(s,"set",i,o):ni(s,"add",i,o),this},delete(i){const o=jt(this),{has:s,get:r}=Or(o);let a=s.call(o,i);a||(i=jt(i),a=s.call(o,i)),r&&r.call(o,i);const l=o.delete(i);return a&&ni(o,"delete",i,void 0),l},clear(){const i=jt(this),o=i.size!==0,s=i.clear();return o&&ni(i,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=ey(i,t,e)}),n}function fl(t,e){const n=ny(t,e);return(i,o,s)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Xt(n,o)&&o in i?n:i,o,s)}const iy={get:fl(!1,!1)},oy={get:fl(!1,!0)},sy={get:fl(!0,!1)},ry={get:fl(!0,!0)},W0=new WeakMap,G0=new WeakMap,q0=new WeakMap,K0=new WeakMap;function ay(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Jo(t){return di(t)?t:pl(t,!1,Zv,iy,W0)}function ly(t){return pl(t,!1,Mv,oy,G0)}function wa(t){return pl(t,!0,Qv,sy,q0)}function uy(t){return pl(t,!0,ty,ry,K0)}function pl(t,e,n,i,o){if(!Kt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const s=o.get(t);if(s)return s;const r=ay(Rv(t));if(r===0)return t;const a=new Proxy(t,r===2?i:n);return o.set(t,a),a}function lo(t){return di(t)?lo(t.__v_raw):!!(t&&t.__v_isReactive)}function di(t){return!!(t&&t.__v_isReadonly)}function ln(t){return!!(t&&t.__v_isShallow)}function Zo(t){return t?!!t.__v_raw:!1}function jt(t){const e=t&&t.__v_raw;return e?jt(e):t}function cy(t){return!Xt(t,"__v_skip")&&Object.isExtensible(t)&&T0(t,"__v_skip",!0),t}const Sn=t=>Kt(t)?Jo(t):t,qs=t=>Kt(t)?wa(t):t;function ve(t){return t?t.__v_isRef===!0:!1}function ge(t){return X0(t,!1)}function Jn(t){return X0(t,!0)}function X0(t,e){return ve(t)?t:new dy(t,e)}class dy{constructor(e,n){this.dep=new dl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:jt(e),this._value=n?e:Sn(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,i=this.__v_isShallow||ln(e)||di(e);e=i?e:jt(e),Oe(e,n)&&(this._rawValue=e,this._value=i?e:Sn(e),this.dep.trigger())}}function E(t){return ve(t)?t.value:t}function Fe(t){return Tt(t)?t():E(t)}const hy={get:(t,e,n)=>e==="__v_raw"?t:E(Reflect.get(t,e,n)),set:(t,e,n,i)=>{const o=t[e];return ve(o)&&!ve(n)?(o.value=n,!0):Reflect.set(t,e,n,i)}};function Y0(t){return lo(t)?t:new Proxy(t,hy)}class fy{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new dl,{get:i,set:o}=e(n.track.bind(n),n.trigger.bind(n));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function py(t){return new fy(t)}class gy{constructor(e,n,i){this._object=e,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=un(n)?n:String(n),this._raw=jt(e);let o=!0,s=e;if(!bt(e)||un(this._key)||!ll(this._key))do o=!Zo(s)||ln(s);while(o&&(s=s.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=E(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=e;return}}this._object[this._key]=e}get dep(){return Gv(this._raw,this._key)}}class my{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function to(t,e,n){return ve(t)?t:Tt(t)?new my(t):Kt(t)&&arguments.length>1?vy(t,e,n):ge(t)}function vy(t,e,n){return new gy(t,e,n)}class yy{constructor(e,n,i){this.fn=e,this.setter=n,this._value=void 0,this.dep=new dl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ws-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return $0(this,!0),!0}get value(){const e=this.dep.track();return j0(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function by(t,e,n=!1){let i,o;return Tt(t)?i=t:(i=t.get,o=t.set),new yy(i,o,n)}const Br={},xa=new WeakMap;let qi;function _y(t,e=!1,n=qi){if(n){let i=xa.get(n);i||xa.set(n,i=[]),i.push(t)}}function wy(t,e,n=Ut){const{immediate:i,deep:o,once:s,scheduler:r,augmentJob:a,call:l}=n,c=S=>o?S:ln(S)||o===!1||o===0?ii(S,1):ii(S);let u,d,f,p,y=!1,m=!1;if(ve(t)?(d=()=>t.value,y=ln(t)):lo(t)?(d=()=>c(t),y=!0):bt(t)?(m=!0,y=t.some(S=>lo(S)||ln(S)),d=()=>t.map(S=>{if(ve(S))return S.value;if(lo(S))return c(S);if(Tt(S))return l?l(S,2):S()})):Tt(t)?e?d=l?()=>l(t,2):t:d=()=>{if(f){ui();try{f()}finally{ci()}}const S=qi;qi=u;try{return l?l(t,3,[p]):t(p)}finally{qi=S}}:d=xn,e&&o){const S=d,N=o===!0?1/0:o;d=()=>ii(S(),N)}const x=D0(),b=()=>{u.stop(),x&&x.active&&Nc(x.effects,u)};if(s&&e){const S=e;e=(...N)=>{S(...N),b()}}let A=m?new Array(t.length).fill(Br):Br;const R=S=>{if(!(!(u.flags&1)||!u.dirty&&!S))if(e){const N=u.run();if(o||y||(m?N.some((j,U)=>Oe(j,A[U])):Oe(N,A))){f&&f();const j=qi;qi=u;try{const U=[N,A===Br?void 0:m&&A[0]===Br?[]:A,p];A=N,l?l(e,3,U):e(...U)}finally{qi=j}}}else u.run()};return a&&a(R),u=new N0(d),u.scheduler=r?()=>r(R,!1):R,p=S=>_y(S,!1,u),f=u.onStop=()=>{const S=xa.get(u);if(S){if(l)l(S,4);else for(const N of S)N();xa.delete(u)}},e?i?R(!0):A=u.run():r?r(R.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function ii(t,e=1/0,n){if(e<=0||!Kt(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,ve(t))ii(t.value,e,n);else if(bt(t))for(let i=0;i{ii(i,e,n)});else if(C0(t)){for(const i in t)ii(t[i],e,n);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&ii(t[i],e,n)}return t}function vr(t,e,n,i){try{return i?t(...i):t()}catch(o){gl(o,e,n)}}function gn(t,e,n,i){if(Tt(t)){const o=vr(t,e,n,i);return o&&A0(o)&&o.catch(s=>{gl(s,e,n)}),o}if(bt(t)){const o=[];for(let s=0;s>>1,o=Ge[i],s=Ks(o);s=Ks(n)?Ge.push(t):Ge.splice(Ey(e),0,t),t.flags|=1,Q0()}}function Q0(){Ea||(Ea=Z0.then(eg))}function M0(t){bt(t)?jo.push(...t):wi&&t.id===-1?wi.splice(Oo+1,0,t):t.flags&1||(jo.push(t),t.flags|=1),Q0()}function Gd(t,e,n=On+1){for(;nKs(n)-Ks(i));if(jo.length=0,wi){wi.push(...e);return}for(wi=e,Oo=0;Oot.id==null?t.flags&2?-1:1/0:t.id;function eg(t){try{for(On=0;Onkt;function kt(t,e=Te,n){if(!e||t._n)return t;const i=(...o)=>{i._d&&ka(-1);const s=Aa(e);let r;try{r=t(...o)}finally{Aa(s),i._d&&ka(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function _s(t,e){if(Te===null)return t;const n=El(Te),i=t.dirs||(t.dirs=[]);for(let o=0;o1)return n&&Tt(e)?e.call(i&&i.proxy):e}}const Ty=Symbol.for("v-scx"),ky=()=>Ci(Ty);function ig(t,e){return vl(t,null,e)}function Ry(t,e){return vl(t,null,{flush:"sync"})}function Ke(t,e,n){return vl(t,e,n)}function vl(t,e,n=Ut){const{immediate:i,deep:o,flush:s,once:r}=n,a=ye({},n),l=e&&i||!e&&s!=="post";let c;if(Ms){if(s==="sync"){const p=ky();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=xn,p.resume=xn,p.pause=xn,p}}const u=Be;a.call=(p,y,m)=>gn(p,u,y,m);let d=!1;s==="post"?a.scheduler=p=>{Je(p,u&&u.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(p,y)=>{y?p():Fc(p)}),a.augmentJob=p=>{e&&(p.flags|=4),d&&(p.flags|=2,u&&(p.id=u.uid,p.i=u))};const f=wy(t,e,a);return Ms&&(c?c.push(f):l&&f()),f}function Py(t,e,n){const i=this.proxy,o=se(t)?t.includes(".")?og(i,t):()=>i[t]:t.bind(i,i);let s;Tt(e)?s=e:(s=e.handler,n=e);const r=_r(this),a=vl(o,s.bind(i),n);return r(),a}function og(t,e){const n=e.split(".");return()=>{let i=t;for(let o=0;ot.__isTeleport,Yi=t=>t&&(t.disabled||t.disabled===""),Ly=t=>t&&(t.defer||t.defer===""),qd=t=>typeof SVGElement<"u"&&t instanceof SVGElement,Kd=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Ju=(t,e)=>{const n=t&&t.to;return se(n)?e?e(n):null:n},Dy={name:"Teleport",__isTeleport:!0,process(t,e,n,i,o,s,r,a,l,c){const{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:y,createText:m,createComment:x,parentNode:b}}=c,A=Yi(e.props);let{dynamicChildren:R}=e;const S=(U,H,q)=>{U.shapeFlag&16&&u(U.children,H,q,o,s,r,a,l)},N=(U=e)=>{const H=Yi(U.props),q=U.target=Ju(U.props,y),V=Wu(q,U,m,p);q&&(r!=="svg"&&qd(q)?r="svg":r!=="mathml"&&Kd(q)&&(r="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(q),H||(S(U,q,V),ws(U,!1)))},j=U=>{const H=()=>{if(yi.get(U)===H){if(yi.delete(U),Yi(U.props)){const q=b(U.el)||n;S(U,q,U.anchor),ws(U,!0)}N(U)}};yi.set(U,H),Je(H,s)};if(t==null){const U=e.el=m(""),H=e.anchor=m("");if(p(U,n,i),p(H,n,i),Ly(e.props)||s&&s.pendingBranch){j(e);return}A&&(S(e,n,H),ws(e,!0)),N()}else{e.el=t.el;const U=e.anchor=t.anchor,H=yi.get(t);if(H){H.flags|=8,yi.delete(t),j(e);return}e.targetStart=t.targetStart;const q=e.target=t.target,V=e.targetAnchor=t.targetAnchor,et=Yi(t.props),T=et?n:q,F=et?U:V;if(r==="svg"||qd(q)?r="svg":(r==="mathml"||Kd(q))&&(r="mathml"),R?(f(t.dynamicChildren,R,T,o,s,r,a),zc(t,e,!0)):l||d(t,e,T,F,o,s,r,a,!1),A)et?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Fr(e,n,U,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const Q=e.target=Ju(e.props,y);Q&&Fr(e,Q,null,c,0)}else et&&Fr(e,q,V,c,1);ws(e,A)}},remove(t,e,n,{um:i,o:{remove:o}},s){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:f}=t,p=s||!Yi(f),y=yi.get(t);if(y&&(y.flags|=8,yi.delete(t)),d&&(o(c),o(u)),s&&o(l),!y&&r&16)for(let m=0;m{t.isMounted=!0}),gg(()=>{t.isUnmounting=!0}),t}const cn=[Function,Array],ag={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:cn,onEnter:cn,onAfterEnter:cn,onEnterCancelled:cn,onBeforeLeave:cn,onLeave:cn,onAfterLeave:cn,onLeaveCancelled:cn,onBeforeAppear:cn,onAppear:cn,onAfterAppear:cn,onAppearCancelled:cn},lg=t=>{const e=t.subTree;return e.component?lg(e.component):e},By={name:"BaseTransition",props:ag,setup(t,{slots:e}){const n=Gn(),i=$y();return()=>{const o=e.default&&dg(e.default(),!0),s=o&&o.length?ug(o):n.subTree?_t():void 0;if(!s)return;const r=jt(t),{mode:a}=r;if(i.isLeaving)return Kl(s);const l=Xd(s);if(!l)return Kl(s);let c=Gu(l,r,i,n,d=>c=d);l.type!==Se&&Xs(l,c);let u=n.subTree&&Xd(n.subTree);if(u&&u.type!==Se&&!Zi(u,l)&&lg(n).type!==Se){let d=Gu(u,r,i,n);if(Xs(u,d),a==="out-in"&&l.type!==Se)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Kl(s);a==="in-out"&&l.type!==Se?d.delayLeave=(f,p,y)=>{const m=cg(i,u);m[String(u.key)]=u,f[fn]=()=>{p(),f[fn]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{y(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function ug(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Se){e=n;break}}return e}const Fy=By;function cg(t,e){const{leavingVNodes:n}=t;let i=n.get(e.type);return i||(i=Object.create(null),n.set(e.type,i)),i}function Gu(t,e,n,i,o){const{appear:s,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:y,onLeaveCancelled:m,onBeforeAppear:x,onAppear:b,onAfterAppear:A,onAppearCancelled:R}=e,S=String(t.key),N=cg(n,t),j=(q,V)=>{q&&gn(q,i,9,V)},U=(q,V)=>{const et=V[1];j(q,V),bt(q)?q.every(T=>T.length<=1)&&et():q.length<=1&&et()},H={mode:r,persisted:a,beforeEnter(q){let V=l;if(!n.isMounted)if(s)V=x||l;else return;q[fn]&&q[fn](!0);const et=N[S];et&&Zi(t,et)&&et.el[fn]&&et.el[fn](),j(V,[q])},enter(q){if(N[S]===t)return;let V=c,et=u,T=d;if(!n.isMounted)if(s)V=b||c,et=A||u,T=R||d;else return;let F=!1;q[rs]=M=>{F||(F=!0,M?j(T,[q]):j(et,[q]),H.delayedLeave&&H.delayedLeave(),q[rs]=void 0)};const Q=q[rs].bind(null,!1);V?U(V,[q,Q]):Q()},leave(q,V){const et=String(t.key);if(q[rs]&&q[rs](!0),n.isUnmounting)return V();j(f,[q]);let T=!1;q[fn]=Q=>{T||(T=!0,V(),Q?j(m,[q]):j(y,[q]),q[fn]=void 0,N[et]===t&&delete N[et])};const F=q[fn].bind(null,!1);N[et]=t,p?U(p,[q,F]):F()},clone(q){const V=Gu(q,e,n,i,o);return o&&o(V),V}};return H}function Kl(t){if(yl(t))return t=Li(t),t.children=null,t}function Xd(t){if(!yl(t))return rg(t.type)&&t.children?ug(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&Tt(n.default))return n.default()}}function Xs(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Xs(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function dg(t,e=!1,n){let i=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:o=>n.value=o})}return n}function Yd(t,e){let n;return!!((n=Object.getOwnPropertyDescriptor(t,e))&&!n.configurable)}const Sa=new WeakMap;function Ls(t,e,n,i,o=!1){if(bt(t)){t.forEach((m,x)=>Ls(m,e&&(bt(e)?e[x]:e),n,i,o));return}if(Uo(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Ls(t,e,n,i.component.subTree);return}const s=i.shapeFlag&4?El(i.component):i.el,r=o?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===Ut?a.refs={}:a.refs,d=a.setupState,f=jt(d),p=d===Ut?E0:m=>Yd(u,m)?!1:Xt(f,m),y=(m,x)=>!(x&&Yd(u,x));if(c!=null&&c!==l){if(Zd(e),se(c))u[c]=null,p(c)&&(d[c]=null);else if(ve(c)){const m=e;y(c,m.k)&&(c.value=null),m.k&&(u[m.k]=null)}}if(Tt(l))vr(l,a,12,[r,u]);else{const m=se(l),x=ve(l);if(m||x){const b=()=>{if(t.f){const A=m?p(l)?d[l]:u[l]:y()||!t.k?l.value:u[t.k];if(o)bt(A)&&Nc(A,s);else if(bt(A))A.includes(s)||A.push(s);else if(m)u[l]=[s],p(l)&&(d[l]=u[l]);else{const R=[s];y(l,t.k)&&(l.value=R),t.k&&(u[t.k]=R)}}else m?(u[l]=r,p(l)&&(d[l]=r)):x&&(y(l,t.k)&&(l.value=r),t.k&&(u[t.k]=r))};if(r){const A=()=>{b(),Sa.delete(t)};A.id=-1,Sa.set(t,A),Je(A,n)}else Zd(t),b()}}}function Zd(t){const e=Sa.get(t);e&&(e.flags|=8,Sa.delete(t))}ba().requestIdleCallback,ba().cancelIdleCallback;const Uo=t=>!!t.type.__asyncLoader,yl=t=>t.type.__isKeepAlive;function jy(t,e){fg(t,"a",e)}function Uy(t,e){fg(t,"da",e)}function fg(t,e,n=Be){const i=t.__wdc||(t.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(bl(e,i,n),n){let o=n.parent;for(;o&&o.parent;)yl(o.parent.vnode)&&Vy(i,e,n,o),o=o.parent}}function Vy(t,e,n,i){const o=bl(e,t,i,!0);Wn(()=>{Nc(i[e],o)},n)}function bl(t,e,n=Be,i=!1){if(n){const o=n[t]||(n[t]=[]),s=e.__weh||(e.__weh=(...r)=>{ui();const a=_r(n),l=gn(e,n,t,r);return a(),ci(),l});return i?o.unshift(s):o.push(s),s}}const pi=t=>(e,n=Be)=>{(!Ms||t==="sp")&&bl(t,(...i)=>e(...i),n)},Iy=pi("bm"),Oi=pi("m"),pg=pi("bu"),zy=pi("u"),gg=pi("bum"),Wn=pi("um"),Hy=pi("sp"),Jy=pi("rtg"),Wy=pi("rtc");function Gy(t,e=Be){bl("ec",t,e)}const mg="components";function Ys(t,e){return yg(mg,t,!0,e)||t}const vg=Symbol.for("v-ndc");function _l(t){return se(t)?yg(mg,t,!1)||t:t||vg}function yg(t,e,n=!0,i=!1){const o=Te||Be;if(o){const s=o.type;{const a=kb(s,!1);if(a&&(a===e||a===je(e)||a===cl(je(e))))return s}const r=Qd(o[t]||s[t],e)||Qd(o.appContext[t],e);return!r&&i?s:r}}function Qd(t,e){return t&&(t[e]||t[je(e)]||t[cl(je(e))])}function $i(t,e,n,i){let o;const s=n,r=bt(t);if(r||se(t)){const a=r&&lo(t);let l=!1,c=!1;a&&(l=!ln(t),c=di(t),t=hl(t)),o=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,s));else{const a=Object.keys(t);o=new Array(a.length);for(let l=0,c=a.length;l{const s=i.fn(...o);return s&&(s.key=i.key),s}:i.fn)}return t}function Zt(t,e,n={},i,o){if(Te.ce||Te.parent&&Uo(Te.parent)&&Te.parent.ce){const c=Object.keys(n).length>0;return e!=="default"&&(n.name=e),O(),Ct(At,null,[ot("slot",n,i&&i())],c?-2:64)}let s=t[e];s&&s._c&&(s._d=!1),O();const r=s&&bg(s(n)),a=n.key||r&&r.key,l=Ct(At,{key:(a&&!un(a)?a:`_${e}`)+(!r&&i?"_fb":"")},r||(i?i():[]),r&&t._===1?64:-2);return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function bg(t){return t.some(e=>Qs(e)?!(e.type===Se||e.type===At&&!bg(e.children)):!0)?t:null}function qy(t,e){const n={};for(const i in t)n[oa(i)]=t[i];return n}const Ku=t=>t?Ug(t)?El(t):Ku(t.parent):null,Ds=ye(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Ku(t.parent),$root:t=>Ku(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>wg(t),$forceUpdate:t=>t.f||(t.f=()=>{Fc(t.update)}),$nextTick:t=>t.n||(t.n=yr.bind(t.proxy)),$watch:t=>Py.bind(t)}),Xl=(t,e)=>t!==Ut&&!t.__isScriptSetup&&Xt(t,e),Ky={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:i,data:o,props:s,accessCache:r,type:a,appContext:l}=t;if(e[0]!=="$"){const f=r[e];if(f!==void 0)switch(f){case 1:return i[e];case 2:return o[e];case 4:return n[e];case 3:return s[e]}else{if(Xl(i,e))return r[e]=1,i[e];if(o!==Ut&&Xt(o,e))return r[e]=2,o[e];if(Xt(s,e))return r[e]=3,s[e];if(n!==Ut&&Xt(n,e))return r[e]=4,n[e];Xu&&(r[e]=0)}}const c=Ds[e];let u,d;if(c)return e==="$attrs"&&$e(t.attrs,"get",""),c(t);if((u=a.__cssModules)&&(u=u[e]))return u;if(n!==Ut&&Xt(n,e))return r[e]=4,n[e];if(d=l.config.globalProperties,Xt(d,e))return d[e]},set({_:t},e,n){const{data:i,setupState:o,ctx:s}=t;return Xl(o,e)?(o[e]=n,!0):i!==Ut&&Xt(i,e)?(i[e]=n,!0):Xt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:o,props:s,type:r}},a){let l;return!!(n[a]||t!==Ut&&a[0]!=="$"&&Xt(t,a)||Xl(e,a)||Xt(s,a)||Xt(i,a)||Xt(Ds,a)||Xt(o.config.globalProperties,a)||(l=r.__cssModules)&&l[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Xt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function wl(){return Xy().slots}function Xy(t){const e=Gn();return e.setupContext||(e.setupContext=Ig(e))}function Ca(t){return bt(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function Wo(t,e){return!t||!e?t||e:bt(t)&&bt(e)?t.concat(e):ye({},Ca(t),Ca(e))}let Xu=!0;function Yy(t){const e=wg(t),n=t.proxy,i=t.ctx;Xu=!1,e.beforeCreate&&Md(e.beforeCreate,t,"bc");const{data:o,computed:s,methods:r,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:y,activated:m,deactivated:x,beforeDestroy:b,beforeUnmount:A,destroyed:R,unmounted:S,render:N,renderTracked:j,renderTriggered:U,errorCaptured:H,serverPrefetch:q,expose:V,inheritAttrs:et,components:T,directives:F,filters:Q}=e;if(c&&Zy(c,i,null),r)for(const Z in r){const rt=r[Z];Tt(rt)&&(i[Z]=rt.bind(n))}if(o){const Z=o.call(n,n);Kt(Z)&&(t.data=Jo(Z))}if(Xu=!0,s)for(const Z in s){const rt=s[Z],lt=Tt(rt)?rt.bind(n,n):Tt(rt.get)?rt.get.bind(n,n):xn,ft=!Tt(rt)&&Tt(rt.set)?rt.set.bind(n):xn,pt=ht({get:lt,set:ft});Object.defineProperty(i,Z,{enumerable:!0,configurable:!0,get:()=>pt.value,set:xt=>pt.value=xt})}if(a)for(const Z in a)_g(a[Z],i,n,Z);if(l){const Z=Tt(l)?l.call(n):l;Reflect.ownKeys(Z).forEach(rt=>{ng(rt,Z[rt])})}u&&Md(u,t,"c");function M(Z,rt){bt(rt)?rt.forEach(lt=>Z(lt.bind(n))):rt&&Z(rt.bind(n))}if(M(Iy,d),M(Oi,f),M(pg,p),M(zy,y),M(jy,m),M(Uy,x),M(Gy,H),M(Wy,j),M(Jy,U),M(gg,A),M(Wn,S),M(Hy,q),bt(V))if(V.length){const Z=t.exposed||(t.exposed={});V.forEach(rt=>{Object.defineProperty(Z,rt,{get:()=>n[rt],set:lt=>n[rt]=lt,enumerable:!0})})}else t.exposed||(t.exposed={});N&&t.render===xn&&(t.render=N),et!=null&&(t.inheritAttrs=et),T&&(t.components=T),F&&(t.directives=F),q&&hg(t)}function Zy(t,e,n=xn){bt(t)&&(t=Yu(t));for(const i in t){const o=t[i];let s;Kt(o)?"default"in o?s=Ci(o.from||i,o.default,!0):s=Ci(o.from||i):s=Ci(o),ve(s)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):e[i]=s}}function Md(t,e,n){gn(bt(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,n)}function _g(t,e,n,i){let o=i.includes(".")?og(n,i):()=>n[i];if(se(t)){const s=e[t];Tt(s)&&Ke(o,s)}else if(Tt(t))Ke(o,t.bind(n));else if(Kt(t))if(bt(t))t.forEach(s=>_g(s,e,n,i));else{const s=Tt(t.handler)?t.handler.bind(n):e[t.handler];Tt(s)&&Ke(o,s,t)}}function wg(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:o,optionsCache:s,config:{optionMergeStrategies:r}}=t.appContext,a=s.get(e);let l;return a?l=a:!o.length&&!n&&!i?l=e:(l={},o.length&&o.forEach(c=>Ta(l,c,r,!0)),Ta(l,e,r)),Kt(e)&&s.set(e,l),l}function Ta(t,e,n,i=!1){const{mixins:o,extends:s}=e;s&&Ta(t,s,n,!0),o&&o.forEach(r=>Ta(t,r,n,!0));for(const r in e)if(!(i&&r==="expose")){const a=Qy[r]||n&&n[r];t[r]=a?a(t[r],e[r]):e[r]}return t}const Qy={data:th,props:eh,emits:eh,methods:xs,computed:xs,beforeCreate:He,created:He,beforeMount:He,mounted:He,beforeUpdate:He,updated:He,beforeDestroy:He,beforeUnmount:He,destroyed:He,unmounted:He,activated:He,deactivated:He,errorCaptured:He,serverPrefetch:He,components:xs,directives:xs,watch:tb,provide:th,inject:My};function th(t,e){return e?t?function(){return ye(Tt(t)?t.call(this,this):t,Tt(e)?e.call(this,this):e)}:e:t}function My(t,e){return xs(Yu(t),Yu(e))}function Yu(t){if(bt(t)){const e={};for(let n=0;n{let u,d=Ut,f;return Ry(()=>{const p=t[o];Oe(u,p)&&(u=p,c())}),{get(){return l(),n.get?n.get(u):u},set(p){const y=n.set?n.set(p):p;if(!Oe(y,u)&&!(d!==Ut&&Oe(p,d)))return;const m=i.vnode.props;m&&(e in m||o in m||s in m)&&(`onUpdate:${e}`in m||`onUpdate:${o}`in m||`onUpdate:${s}`in m)||(u=p,c()),i.emit(`update:${e}`,y),Oe(p,y)&&Oe(p,d)&&!Oe(y,f)&&c(),d=p,f=y}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||Ut:a,done:!1}:{done:!0}}}},a}const Eg=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${je(e)}Modifiers`]||t[`${fi(e)}Modifiers`];function ib(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||Ut;let o=n;const s=e.startsWith("update:"),r=s&&Eg(i,e.slice(7));r&&(r.trim&&(o=n.map(u=>se(u)?u.trim():u)),r.number&&(o=n.map(Dv)));let a,l=i[a=oa(e)]||i[a=oa(je(e))];!l&&s&&(l=i[a=oa(fi(e))]),l&&gn(l,t,6,o);const c=i[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,gn(c,t,6,o)}}const ob=new WeakMap;function Ag(t,e,n=!1){const i=n?ob:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const s=t.emits;let r={},a=!1;if(!Tt(t)){const l=c=>{const u=Ag(c,e,!0);u&&(a=!0,ye(r,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Kt(t)&&i.set(t,null),null):(bt(s)?s.forEach(l=>r[l]=null):ye(r,s),Kt(t)&&i.set(t,r),r)}function xl(t,e){return!t||!sl(e)?!1:(e=e.slice(2).replace(/Once$/,""),Xt(t,e[0].toLowerCase()+e.slice(1))||Xt(t,fi(e))||Xt(t,e))}function nh(t){const{type:e,vnode:n,proxy:i,withProxy:o,propsOptions:[s],slots:r,attrs:a,emit:l,render:c,renderCache:u,props:d,data:f,setupState:p,ctx:y,inheritAttrs:m}=t,x=Aa(t);let b,A;try{if(n.shapeFlag&4){const S=o||i,N=S;b=Un(c.call(N,S,u,d,p,f,y)),A=a}else{const S=e;b=Un(S.length>1?S(d,{attrs:a,slots:r,emit:l}):S(d,null)),A=e.props?a:sb(a)}}catch(S){Ns.length=0,gl(S,t,1),b=ot(Se)}let R=b;if(A&&m!==!1){const S=Object.keys(A),{shapeFlag:N}=R;S.length&&N&7&&(s&&S.some(rl)&&(A=rb(A,s)),R=Li(R,A,!1,!0))}return n.dirs&&(R=Li(R,null,!1,!0),R.dirs=R.dirs?R.dirs.concat(n.dirs):n.dirs),n.transition&&Xs(R,n.transition),b=R,Aa(x),b}const sb=t=>{let e;for(const n in t)(n==="class"||n==="style"||sl(n))&&((e||(e={}))[n]=t[n]);return e},rb=(t,e)=>{const n={};for(const i in t)(!rl(i)||!(i.slice(9)in e))&&(n[i]=t[i]);return n};function ab(t,e,n){const{props:i,children:o,component:s}=t,{props:r,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?ih(i,r,c):!!r;if(l&8){const u=e.dynamicProps;for(let d=0;dObject.create(Cg),kg=t=>Object.getPrototypeOf(t)===Cg;function ub(t,e,n,i=!1){const o={},s=Tg();t.propsDefaults=Object.create(null),Rg(t,e,o,s);for(const r in t.propsOptions[0])r in o||(o[r]=void 0);n?t.props=i?o:ly(o):t.type.props?t.props=o:t.props=s,t.attrs=s}function cb(t,e,n,i){const{props:o,attrs:s,vnode:{patchFlag:r}}=t,a=jt(o),[l]=t.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,p]=Pg(d,e,!0);ye(r,f),p&&a.push(...p)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return Kt(t)&&i.set(t,Bo),Bo;if(bt(s))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",Ic=t=>bt(t)?t.map(Un):[Un(t)],hb=(t,e,n)=>{if(e._n)return e;const i=kt((...o)=>Ic(e(...o)),n);return i._c=!1,i},Lg=(t,e,n)=>{const i=t._ctx;for(const o in t){if(Vc(o))continue;const s=t[o];if(Tt(s))e[o]=hb(o,s,i);else if(s!=null){const r=Ic(s);e[o]=()=>r}}},Dg=(t,e)=>{const n=Ic(e);t.slots.default=()=>n},Ng=(t,e,n)=>{for(const i in e)(n||!Vc(i))&&(t[i]=e[i])},fb=(t,e,n)=>{const i=t.slots=Tg();if(t.vnode.shapeFlag&32){const o=e._;o?(Ng(i,e,n),n&&T0(i,"_",o,!0)):Lg(e,i)}else e&&Dg(t,e)},pb=(t,e,n)=>{const{vnode:i,slots:o}=t;let s=!0,r=Ut;if(i.shapeFlag&32){const a=e._;a?n&&a===1?s=!1:Ng(o,e,n):(s=!e.$stable,Lg(e,o)),r=e}else e&&(Dg(t,e),r={default:1});if(s)for(const a in o)!Vc(a)&&r[a]==null&&delete o[a]},Je=bb;function gb(t){return mb(t)}function mb(t,e){const n=ba();n.__VUE__=!0;const{insert:i,remove:o,patchProp:s,createElement:r,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=xn,insertStaticContent:y}=t,m=(C,k,W,K=null,X=null,B=null,it=void 0,st=null,nt=!!k.dynamicChildren)=>{if(C===k)return;C&&!Zi(C,k)&&(K=ne(C),gt(C,X,B,!0),C=null),k.patchFlag===-2&&(nt=!1,k.dynamicChildren=null);const{type:tt,ref:mt,shapeFlag:ut}=k;switch(tt){case br:x(C,k,W,K);break;case Se:b(C,k,W,K);break;case ra:C==null&&A(k,W,K,it);break;case At:T(C,k,W,K,X,B,it,st,nt);break;default:ut&1?N(C,k,W,K,X,B,it,st,nt):ut&6?F(C,k,W,K,X,B,it,st,nt):(ut&64||ut&128)&&tt.process(C,k,W,K,X,B,it,st,nt,vn)}mt!=null&&X?Ls(mt,C&&C.ref,B,k||C,!k):mt==null&&C&&C.ref!=null&&Ls(C.ref,null,B,C,!0)},x=(C,k,W,K)=>{if(C==null)i(k.el=a(k.children),W,K);else{const X=k.el=C.el;k.children!==C.children&&c(X,k.children)}},b=(C,k,W,K)=>{C==null?i(k.el=l(k.children||""),W,K):k.el=C.el},A=(C,k,W,K)=>{[C.el,C.anchor]=y(C.children,k,W,K,C.el,C.anchor)},R=({el:C,anchor:k},W,K)=>{let X;for(;C&&C!==k;)X=f(C),i(C,W,K),C=X;i(k,W,K)},S=({el:C,anchor:k})=>{let W;for(;C&&C!==k;)W=f(C),o(C),C=W;o(k)},N=(C,k,W,K,X,B,it,st,nt)=>{if(k.type==="svg"?it="svg":k.type==="math"&&(it="mathml"),C==null)j(k,W,K,X,B,it,st,nt);else{const tt=C.el&&C.el._isVueCE?C.el:null;try{tt&&tt._beginPatch(),q(C,k,X,B,it,st,nt)}finally{tt&&tt._endPatch()}}},j=(C,k,W,K,X,B,it,st)=>{let nt,tt;const{props:mt,shapeFlag:ut,transition:yt,dirs:vt}=C;if(nt=C.el=r(C.type,B,mt&&mt.is,mt),ut&8?u(nt,C.children):ut&16&&H(C.children,nt,null,K,X,Yl(C,B),it,st),vt&&ji(C,null,K,"created"),U(nt,C,C.scopeId,it,K),mt){for(const Lt in mt)Lt!=="value"&&!ks(Lt)&&s(nt,Lt,null,mt[Lt],B,K);"value"in mt&&s(nt,"value",null,mt.value,B),(tt=mt.onVnodeBeforeMount)&&Ln(tt,K,C)}vt&&ji(C,null,K,"beforeMount");const wt=vb(X,yt);wt&&yt.beforeEnter(nt),i(nt,k,W),((tt=mt&&mt.onVnodeMounted)||wt||vt)&&Je(()=>{tt&&Ln(tt,K,C),wt&&yt.enter(nt),vt&&ji(C,null,K,"mounted")},X)},U=(C,k,W,K,X)=>{if(W&&p(C,W),K)for(let B=0;B{for(let tt=nt;tt{const st=k.el=C.el;let{patchFlag:nt,dynamicChildren:tt,dirs:mt}=k;nt|=C.patchFlag&16;const ut=C.props||Ut,yt=k.props||Ut;let vt;if(W&&Ui(W,!1),(vt=yt.onVnodeBeforeUpdate)&&Ln(vt,W,k,C),mt&&ji(k,C,W,"beforeUpdate"),W&&Ui(W,!0),(ut.innerHTML&&yt.innerHTML==null||ut.textContent&&yt.textContent==null)&&u(st,""),tt?V(C.dynamicChildren,tt,st,W,K,Yl(k,X),B):it||lt(C,k,st,null,W,K,Yl(k,X),B,!1),nt>0){if(nt&16)et(st,ut,yt,W,X);else if(nt&2&&ut.class!==yt.class&&s(st,"class",null,yt.class,X),nt&4&&s(st,"style",ut.style,yt.style,X),nt&8){const wt=k.dynamicProps;for(let Lt=0;Lt{vt&&Ln(vt,W,k,C),mt&&ji(k,C,W,"updated")},K)},V=(C,k,W,K,X,B,it)=>{for(let st=0;st{if(k!==W){if(k!==Ut)for(const B in k)!ks(B)&&!(B in W)&&s(C,B,k[B],null,X,K);for(const B in W){if(ks(B))continue;const it=W[B],st=k[B];it!==st&&B!=="value"&&s(C,B,st,it,X,K)}"value"in W&&s(C,"value",k.value,W.value,X)}},T=(C,k,W,K,X,B,it,st,nt)=>{const tt=k.el=C?C.el:a(""),mt=k.anchor=C?C.anchor:a("");let{patchFlag:ut,dynamicChildren:yt,slotScopeIds:vt}=k;vt&&(st=st?st.concat(vt):vt),C==null?(i(tt,W,K),i(mt,W,K),H(k.children||[],W,mt,X,B,it,st,nt)):ut>0&&ut&64&&yt&&C.dynamicChildren&&C.dynamicChildren.length===yt.length?(V(C.dynamicChildren,yt,W,X,B,it,st),(k.key!=null||X&&k===X.subTree)&&zc(C,k,!0)):lt(C,k,W,mt,X,B,it,st,nt)},F=(C,k,W,K,X,B,it,st,nt)=>{k.slotScopeIds=st,C==null?k.shapeFlag&512?X.ctx.activate(k,W,K,it,nt):Q(k,W,K,X,B,it,nt):M(C,k,nt)},Q=(C,k,W,K,X,B,it)=>{const st=C.component=Ab(C,K,X);if(yl(C)&&(st.ctx.renderer=vn),Sb(st,!1,it),st.asyncDep){if(X&&X.registerDep(st,Z,it),!C.el){const nt=st.subTree=ot(Se);b(null,nt,k,W),C.placeholder=nt.el}}else Z(st,C,k,W,X,B,it)},M=(C,k,W)=>{const K=k.component=C.component;if(ab(C,k,W))if(K.asyncDep&&!K.asyncResolved){rt(K,k,W);return}else K.next=k,K.update();else k.el=C.el,K.vnode=k},Z=(C,k,W,K,X,B,it)=>{const st=()=>{if(C.isMounted){let{next:ut,bu:yt,u:vt,parent:wt,vnode:Lt}=C;{const g=Og(C);if(g){ut&&(ut.el=Lt.el,rt(C,ut,it)),g.asyncDep.then(()=>{Je(()=>{C.isUnmounted||tt()},X)});return}}let Jt=ut,It;Ui(C,!1),ut?(ut.el=Lt.el,rt(C,ut,it)):ut=Lt,yt&&sa(yt),(It=ut.props&&ut.props.onVnodeBeforeUpdate)&&Ln(It,wt,ut,Lt),Ui(C,!0);const ae=nh(C),h=C.subTree;C.subTree=ae,m(h,ae,d(h.el),ne(h),C,X,B),ut.el=ae.el,Jt===null&&lb(C,ae.el),vt&&Je(vt,X),(It=ut.props&&ut.props.onVnodeUpdated)&&Je(()=>Ln(It,wt,ut,Lt),X)}else{let ut;const{el:yt,props:vt}=k,{bm:wt,m:Lt,parent:Jt,root:It,type:ae}=C,h=Uo(k);Ui(C,!1),wt&&sa(wt),!h&&(ut=vt&&vt.onVnodeBeforeMount)&&Ln(ut,Jt,k),Ui(C,!0);{It.ce&&It.ce._hasShadowRoot()&&It.ce._injectChildStyle(ae,C.parent?C.parent.type:void 0);const g=C.subTree=nh(C);m(null,g,W,K,C,X,B),k.el=g.el}if(Lt&&Je(Lt,X),!h&&(ut=vt&&vt.onVnodeMounted)){const g=k;Je(()=>Ln(ut,Jt,g),X)}(k.shapeFlag&256||Jt&&Uo(Jt.vnode)&&Jt.vnode.shapeFlag&256)&&C.a&&Je(C.a,X),C.isMounted=!0,k=W=K=null}};C.scope.on();const nt=C.effect=new N0(st);C.scope.off();const tt=C.update=nt.run.bind(nt),mt=C.job=nt.runIfDirty.bind(nt);mt.i=C,mt.id=C.uid,nt.scheduler=()=>Fc(mt),Ui(C,!0),tt()},rt=(C,k,W)=>{k.component=C;const K=C.vnode.props;C.vnode=k,C.next=null,cb(C,k.props,K,W),pb(C,k.children,W),ui(),Gd(C),ci()},lt=(C,k,W,K,X,B,it,st,nt=!1)=>{const tt=C&&C.children,mt=C?C.shapeFlag:0,ut=k.children,{patchFlag:yt,shapeFlag:vt}=k;if(yt>0){if(yt&128){pt(tt,ut,W,K,X,B,it,st,nt);return}else if(yt&256){ft(tt,ut,W,K,X,B,it,st,nt);return}}vt&8?(mt&16&&Et(tt,X,B),ut!==tt&&u(W,ut)):mt&16?vt&16?pt(tt,ut,W,K,X,B,it,st,nt):Et(tt,X,B,!0):(mt&8&&u(W,""),vt&16&&H(ut,W,K,X,B,it,st,nt))},ft=(C,k,W,K,X,B,it,st,nt)=>{C=C||Bo,k=k||Bo;const tt=C.length,mt=k.length,ut=Math.min(tt,mt);let yt;for(yt=0;ytmt?Et(C,X,B,!0,!1,ut):H(k,W,K,X,B,it,st,nt,ut)},pt=(C,k,W,K,X,B,it,st,nt)=>{let tt=0;const mt=k.length;let ut=C.length-1,yt=mt-1;for(;tt<=ut&&tt<=yt;){const vt=C[tt],wt=k[tt]=nt?ti(k[tt]):Un(k[tt]);if(Zi(vt,wt))m(vt,wt,W,null,X,B,it,st,nt);else break;tt++}for(;tt<=ut&&tt<=yt;){const vt=C[ut],wt=k[yt]=nt?ti(k[yt]):Un(k[yt]);if(Zi(vt,wt))m(vt,wt,W,null,X,B,it,st,nt);else break;ut--,yt--}if(tt>ut){if(tt<=yt){const vt=yt+1,wt=vtyt)for(;tt<=ut;)gt(C[tt],X,B,!0),tt++;else{const vt=tt,wt=tt,Lt=new Map;for(tt=wt;tt<=yt;tt++){const $=k[tt]=nt?ti(k[tt]):Un(k[tt]);$.key!=null&&Lt.set($.key,tt)}let Jt,It=0;const ae=yt-wt+1;let h=!1,g=0;const v=new Array(ae);for(tt=0;tt=ae){gt($,X,B,!0);continue}let G;if($.key!=null)G=Lt.get($.key);else for(Jt=wt;Jt<=yt;Jt++)if(v[Jt-wt]===0&&Zi($,k[Jt])){G=Jt;break}G===void 0?gt($,X,B,!0):(v[G-wt]=tt+1,G>=g?g=G:h=!0,m($,k[G],W,null,X,B,it,st,nt),It++)}const P=h?yb(v):Bo;for(Jt=P.length-1,tt=ae-1;tt>=0;tt--){const $=wt+tt,G=k[$],at=k[$+1],Wt=$+1{const{el:B,type:it,transition:st,children:nt,shapeFlag:tt}=C;if(tt&6){xt(C.component.subTree,k,W,K);return}if(tt&128){C.suspense.move(k,W,K);return}if(tt&64){it.move(C,k,W,vn);return}if(it===At){i(B,k,W);for(let mt=0;mtst.enter(B),X));else{const{leave:mt,delayLeave:ut,afterLeave:yt}=st,vt=()=>{C.ctx.isUnmounted?o(B):i(B,k,W)},wt=()=>{const Lt=B._isLeaving||!!B[fn];B._isLeaving&&B[fn](!0),st.persisted&&!Lt?vt():mt(B,()=>{vt(),yt&&yt()})};ut?ut(B,vt,wt):wt()}else i(B,k,W)},gt=(C,k,W,K=!1,X=!1)=>{const{type:B,props:it,ref:st,children:nt,dynamicChildren:tt,shapeFlag:mt,patchFlag:ut,dirs:yt,cacheIndex:vt,memo:wt}=C;if(ut===-2&&(X=!1),st!=null&&(ui(),Ls(st,null,W,C,!0),ci()),vt!=null&&(k.renderCache[vt]=void 0),mt&256){k.ctx.deactivate(C);return}const Lt=mt&1&&yt,Jt=!Uo(C);let It;if(Jt&&(It=it&&it.onVnodeBeforeUnmount)&&Ln(It,k,C),mt&6)$t(C.component,W,K);else{if(mt&128){C.suspense.unmount(W,K);return}Lt&&ji(C,null,k,"beforeUnmount"),mt&64?C.type.remove(C,k,W,vn,K):tt&&!tt.hasOnce&&(B!==At||ut>0&&ut&64)?Et(tt,k,W,!1,!0):(B===At&&ut&384||!X&&mt&16)&&Et(nt,k,W),K&&Gt(C)}const ae=wt!=null&&vt==null;(Jt&&(It=it&&it.onVnodeUnmounted)||Lt||ae)&&Je(()=>{It&&Ln(It,k,C),Lt&&ji(C,null,k,"unmounted"),ae&&(C.el=null)},W)},Gt=C=>{const{type:k,el:W,anchor:K,transition:X}=C;if(k===At){Pt(W,K);return}if(k===ra){S(C);return}const B=()=>{o(W),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(C.shapeFlag&1&&X&&!X.persisted){const{leave:it,delayLeave:st}=X,nt=()=>it(W,B);st?st(C.el,B,nt):nt()}else B()},Pt=(C,k)=>{let W;for(;C!==k;)W=f(C),o(C),C=W;o(k)},$t=(C,k,W)=>{const{bum:K,scope:X,job:B,subTree:it,um:st,m:nt,a:tt}=C;sh(nt),sh(tt),K&&sa(K),X.stop(),B&&(B.flags|=8,gt(it,C,k,W)),st&&Je(st,k),Je(()=>{C.isUnmounted=!0},k)},Et=(C,k,W,K=!1,X=!1,B=0)=>{for(let it=B;it{if(C.shapeFlag&6)return ne(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();const k=f(C.anchor||C.el),W=k&&k[sg];return W?f(W):k};let nn=!1;const mn=(C,k,W)=>{let K;C==null?k._vnode&&(gt(k._vnode,null,null,!0),K=k._vnode.component):m(k._vnode||null,C,k,null,null,null,W),k._vnode=C,nn||(nn=!0,Gd(K),tg(),nn=!1)},vn={p:m,um:gt,m:xt,r:Gt,mt:Q,mc:H,pc:lt,pbc:V,n:ne,o:t};return{render:mn,hydrate:void 0,createApp:nb(mn)}}function Yl({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function Ui({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function vb(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function zc(t,e,n=!1){const i=t.children,o=e.children;if(bt(i)&&bt(o))for(let s=0;s>1,t[n[a]]0&&(e[i]=n[s-1]),n[s]=i)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=e[r];return n}function Og(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Og(e)}function sh(t){if(t)for(let e=0;et.__isSuspense;function bb(t,e){e&&e.pendingBranch?bt(t)?e.effects.push(...t):e.effects.push(t):M0(t)}const At=Symbol.for("v-fgt"),br=Symbol.for("v-txt"),Se=Symbol.for("v-cmt"),ra=Symbol.for("v-stc"),Ns=[];let an=null;function O(t=!1){Ns.push(an=t?null:[])}function _b(){Ns.pop(),an=Ns[Ns.length-1]||null}let Zs=1;function ka(t,e=!1){Zs+=t,t<0&&an&&e&&(an.hasOnce=!0)}function Fg(t){return t.dynamicChildren=Zs>0?an||Bo:null,_b(),Zs>0&&an&&an.push(t),t}function J(t,e,n,i,o,s){return Fg(w(t,e,n,i,o,s,!0))}function Ct(t,e,n,i,o){return Fg(ot(t,e,n,i,o,!0))}function Qs(t){return t?t.__v_isVNode===!0:!1}function Zi(t,e){return t.type===e.type&&t.key===e.key}const jg=({key:t})=>t??null,aa=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?se(t)||ve(t)||Tt(t)?{i:Te,r:t,k:e,f:!!n}:t:null);function w(t,e=null,n=null,i=0,o=null,s=t===At?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&jg(e),ref:e&&aa(e),scopeId:ml,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Te};return a?(Hc(l,n),s&128&&t.normalize(l)):n&&(l.shapeFlag|=se(n)?8:16),Zs>0&&!r&&an&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&an.push(l),l}const ot=wb;function wb(t,e=null,n=null,i=0,o=null,s=!1){if((!t||t===vg)&&(t=Se),Qs(t)){const a=Li(t,e,!0);return n&&Hc(a,n),Zs>0&&!s&&an&&(a.shapeFlag&6?an[an.indexOf(t)]=a:an.push(a)),a.patchFlag=-2,a}if(Rb(t)&&(t=t.__vccOpts),e){e=Ra(e);let{class:a,style:l}=e;a&&!se(a)&&(e.class=Yt(a)),Kt(l)&&(Zo(l)&&!bt(l)&&(l=ye({},l)),e.style=ro(l))}const r=se(t)?1:Bg(t)?128:rg(t)?64:Kt(t)?4:Tt(t)?2:0;return w(t,e,n,i,o,r,s,!0)}function Ra(t){return t?Zo(t)||kg(t)?ye({},t):t:null}function Li(t,e,n=!1,i=!1){const{props:o,ref:s,patchFlag:r,children:a,transition:l}=t,c=e?ee(o||{},e):o,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&jg(c),ref:e&&e.ref?n&&s?bt(s)?s.concat(aa(e)):[s,aa(e)]:aa(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==At?r===-1?16:r|16:r,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Li(t.ssContent),ssFallback:t.ssFallback&&Li(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&i&&Xs(u,l.clone(u)),u}function Dt(t=" ",e=0){return ot(br,null,t,e)}function _t(t="",e=!1){return e?(O(),Ct(Se,null,t)):ot(Se,null,t)}function Un(t){return t==null||typeof t=="boolean"?ot(Se):bt(t)?ot(At,null,t.slice()):Qs(t)?ti(t):ot(br,null,String(t))}function ti(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Li(t)}function Hc(t,e){let n=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(bt(e))n=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),Hc(t,o()),o._c&&(o._d=!0));return}else{n=32;const o=e._;!o&&!kg(e)?e._ctx=Te:o===3&&Te&&(Te.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else Tt(e)?(e={default:e,_ctx:Te},n=32):(e=String(e),i&64?(n=16,e=[Dt(e)]):n=8);t.children=e,t.shapeFlag|=n}function ee(...t){const e={};for(let n=0;nBe||Te;let Pa,Qu;{const t=ba(),e=(n,i)=>{let o;return(o=t[n])||(o=t[n]=[]),o.push(i),s=>{o.length>1?o.forEach(r=>r(s)):o[0](s)}};Pa=e("__VUE_INSTANCE_SETTERS__",n=>Be=n),Qu=e("__VUE_SSR_SETTERS__",n=>Ms=n)}const _r=t=>{const e=Be;return Pa(t),t.scope.on(),()=>{t.scope.off(),Pa(e)}},rh=()=>{Be&&Be.scope.off(),Pa(null)};function Ug(t){return t.vnode.shapeFlag&4}let Ms=!1;function Sb(t,e=!1,n=!1){e&&Qu(e);const{props:i,children:o}=t.vnode,s=Ug(t);ub(t,i,s,e),fb(t,o,n||e);const r=s?Cb(t,e):void 0;return e&&Qu(!1),r}function Cb(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Ky);const{setup:i}=n;if(i){ui();const o=t.setupContext=i.length>1?Ig(t):null,s=_r(t),r=vr(i,t,0,[t.props,o]),a=A0(r);if(ci(),s(),(a||t.sp)&&!Uo(t)&&hg(t),a){if(r.then(rh,rh),e)return r.then(l=>{ah(t,l)}).catch(l=>{gl(l,t,0)});t.asyncDep=r}else ah(t,r)}else Vg(t)}function ah(t,e,n){Tt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Kt(e)&&(t.setupState=Y0(e)),Vg(t)}function Vg(t,e,n){const i=t.type;t.render||(t.render=i.render||xn);{const o=_r(t);ui();try{Yy(t)}finally{ci(),o()}}}const Tb={get(t,e){return $e(t,"get",""),t[e]}};function Ig(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,Tb),slots:t.slots,emit:t.emit,expose:e}}function El(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Y0(cy(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in Ds)return Ds[n](t)},has(e,n){return n in e||n in Ds}})):t.proxy}function kb(t,e=!0){return Tt(t)?t.displayName||t.name:t.name||e&&t.__name}function Rb(t){return Tt(t)&&"__vccOpts"in t}const ht=(t,e)=>by(t,e,Ms);function Ne(t,e,n){try{ka(-1);const i=arguments.length;return i===2?Kt(e)&&!bt(e)?Qs(e)?ot(t,null,[e]):ot(t,e):ot(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Qs(n)&&(n=[n]),ot(t,e,n))}finally{ka(1)}}const zg="3.5.35";let Mu;const lh=typeof window<"u"&&window.trustedTypes;if(lh)try{Mu=lh.createPolicy("vue",{createHTML:t=>t})}catch{}const Hg=Mu?t=>Mu.createHTML(t):t=>t,Pb="http://www.w3.org/2000/svg",Lb="http://www.w3.org/1998/Math/MathML",Mn=typeof document<"u"?document:null,uh=Mn&&Mn.createElement("template"),Db={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,i)=>{const o=e==="svg"?Mn.createElementNS(Pb,t):e==="mathml"?Mn.createElementNS(Lb,t):n?Mn.createElement(t,{is:n}):Mn.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>Mn.createTextNode(t),createComment:t=>Mn.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>Mn.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,i,o,s){const r=n?n.previousSibling:e.lastChild;if(o&&(o===s||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{uh.innerHTML=Hg(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const a=uh.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[r?r.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},mi="transition",as="animation",tr=Symbol("_vtc"),Jg={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Nb=ye({},ag,Jg),Ob=t=>(t.displayName="Transition",t.props=Nb,t),ls=Ob((t,{slots:e})=>Ne(Fy,$b(t),e)),Vi=(t,e=[])=>{bt(t)?t.forEach(n=>n(...e)):t&&t(...e)},ch=t=>t?bt(t)?t.some(e=>e.length>1):t.length>1:!1;function $b(t){const e={};for(const T in t)T in Jg||(e[T]=t[T]);if(t.css===!1)return e;const{name:n="v",type:i,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=t,y=Bb(o),m=y&&y[0],x=y&&y[1],{onBeforeEnter:b,onEnter:A,onEnterCancelled:R,onLeave:S,onLeaveCancelled:N,onBeforeAppear:j=b,onAppear:U=A,onAppearCancelled:H=R}=e,q=(T,F,Q,M)=>{T._enterCancelled=M,Ii(T,F?u:a),Ii(T,F?c:r),Q&&Q()},V=(T,F)=>{T._isLeaving=!1,Ii(T,d),Ii(T,p),Ii(T,f),F&&F()},et=T=>(F,Q)=>{const M=T?U:A,Z=()=>q(F,T,Q);Vi(M,[F,Z]),dh(()=>{Ii(F,T?l:s),Kn(F,T?u:a),ch(M)||hh(F,i,m,Z)})};return ye(e,{onBeforeEnter(T){Vi(b,[T]),Kn(T,s),Kn(T,r)},onBeforeAppear(T){Vi(j,[T]),Kn(T,l),Kn(T,c)},onEnter:et(!1),onAppear:et(!0),onLeave(T,F){T._isLeaving=!0;const Q=()=>V(T,F);Kn(T,d),T._enterCancelled?(Kn(T,f),gh(T)):(gh(T),Kn(T,f)),dh(()=>{T._isLeaving&&(Ii(T,d),Kn(T,p),ch(S)||hh(T,i,x,Q))}),Vi(S,[T,Q])},onEnterCancelled(T){q(T,!1,void 0,!0),Vi(R,[T])},onAppearCancelled(T){q(T,!0,void 0,!0),Vi(H,[T])},onLeaveCancelled(T){V(T),Vi(N,[T])}})}function Bb(t){if(t==null)return null;if(Kt(t))return[Zl(t.enter),Zl(t.leave)];{const e=Zl(t);return[e,e]}}function Zl(t){return Nv(t)}function Kn(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[tr]||(t[tr]=new Set)).add(e)}function Ii(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const n=t[tr];n&&(n.delete(e),n.size||(t[tr]=void 0))}function dh(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let Fb=0;function hh(t,e,n,i){const o=t._endId=++Fb,s=()=>{o===t._endId&&i()};if(n!=null)return setTimeout(s,n);const{type:r,timeout:a,propCount:l}=jb(t,e);if(!r)return i();const c=r+"end";let u=0;const d=()=>{t.removeEventListener(c,f),s()},f=p=>{p.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[y]||"").split(", "),o=i(`${mi}Delay`),s=i(`${mi}Duration`),r=fh(o,s),a=i(`${as}Delay`),l=i(`${as}Duration`),c=fh(a,l);let u=null,d=0,f=0;e===mi?r>0&&(u=mi,d=r,f=s.length):e===as?c>0&&(u=as,d=c,f=l.length):(d=Math.max(r,c),u=d>0?r>c?mi:as:null,f=u?u===mi?s.length:l.length:0);const p=u===mi&&/\b(?:transform|all)(?:,|$)/.test(i(`${mi}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function fh(t,e){for(;t.lengthph(n)+ph(t[i])))}function ph(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function gh(t){return(t?t.ownerDocument:document).body.offsetHeight}function Ub(t,e,n){const i=t[tr];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const La=Symbol("_vod"),Wg=Symbol("_vsh"),jr={name:"show",beforeMount(t,{value:e},{transition:n}){t[La]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):us(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:i}){!e!=!n&&(i?e?(i.beforeEnter(t),us(t,!0),i.enter(t)):i.leave(t,()=>{us(t,!1)}):us(t,e))},beforeUnmount(t,{value:e}){us(t,e)}};function us(t,e){t.style.display=e?t[La]:"none",t[Wg]=!e}const Gg=Symbol("");function Al(t){const e=Gn();if(!e)return;const n=e.ut=(o=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(s=>Da(s,o))},i=()=>{const o=t(e.proxy);e.ce?Da(e.ce,o):tc(e.subTree,o),n(o)};pg(()=>{M0(i)}),Oi(()=>{Ke(i,xn,{flush:"post"});const o=new MutationObserver(i);o.observe(e.subTree.el.parentNode,{childList:!0}),Wn(()=>o.disconnect())})}function tc(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{tc(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)Da(t.el,e);else if(t.type===At)t.children.forEach(n=>tc(n,e));else if(t.type===ra){let{el:n,anchor:i}=t;for(;n&&(Da(n,e),n!==i);)n=n.nextSibling}}function Da(t,e){if(t.nodeType===1){const n=t.style;let i="";for(const o in e){const s=Iv(e[o]);n.setProperty(`--${o}`,s),i+=`--${o}: ${s};`}n[Gg]=i}}const Vb=/(?:^|;)\s*display\s*:/;function Ib(t,e,n){const i=t.style,o=se(n);let s=!1;if(n&&!o){if(e)if(se(e))for(const r of e.split(";")){const a=r.slice(0,r.indexOf(":")).trim();n[a]==null&&Es(i,a,"")}else for(const r in e)n[r]==null&&Es(i,r,"");for(const r in n){r==="display"&&(s=!0);const a=n[r];a!=null?Hb(t,r,!se(e)&&e?e[r]:void 0,a)||Es(i,r,a):Es(i,r,"")}}else if(o){if(e!==n){const r=i[Gg];r&&(n+=";"+r),i.cssText=n,s=Vb.test(n)}}else e&&t.removeAttribute("style");La in t&&(t[La]=s?i.display:"",t[Wg]&&(i.display="none"))}const mh=/\s*!important$/;function Es(t,e,n){if(bt(n))n.forEach(i=>Es(t,e,i));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const i=zb(t,e);mh.test(n)?t.setProperty(fi(i),n.replace(mh,""),"important"):t[i]=n}}const vh=["Webkit","Moz","ms"],Ql={};function zb(t,e){const n=Ql[e];if(n)return n;let i=je(e);if(i!=="filter"&&i in t)return Ql[e]=i;i=cl(i);for(let o=0;oMl||(qb.then(()=>Ml=0),Ml=Date.now());function Xb(t,e){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const o=n.value;if(bt(o)){const s=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{s.call(i),i._stopped=!0};const r=o.slice(),a=[i];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Yb=(t,e,n,i,o,s)=>{const r=o==="svg";e==="class"?Ub(t,i,r):e==="style"?Ib(t,n,i):sl(e)?rl(e)||Wb(t,e,n,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Zb(t,e,i,r))?(_h(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&bh(t,e,i,r,s,e!=="value")):t._isVueCE&&(Qb(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!se(i)))?_h(t,je(e),i,s,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),bh(t,e,i,r))};function Zb(t,e,n,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Eh(e)&&Tt(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Eh(e)&&se(n)?!1:e in t}function Qb(t,e){const n=t._def.props;if(!n)return!1;const i=je(e);return Array.isArray(n)?n.some(o=>je(o)===i):Object.keys(n).some(o=>je(o)===i)}function Mb(t="$style"){{const e=Gn();if(!e)return Ut;const n=e.type.__cssModules;return n&&n[t]||Ut}}const Ah=t=>{const e=t.props["onUpdate:modelValue"]||!1;return bt(e)?n=>sa(e,n):e},tu=Symbol("_assign"),t_={deep:!0,created(t,e,n){t[tu]=Ah(n),qg(t,"change",()=>{const i=t._modelValue,o=e_(t),s=t.checked,r=t[tu];if(bt(i)){const a=R0(i,o),l=a!==-1;if(s&&!l)r(i.concat(o));else if(!s&&l){const c=[...i];c.splice(a,1),r(c)}}else if(al(i)){const a=new Set(i);s?a.add(o):a.delete(o),r(a)}else r(Kg(t,s))})},mounted:Sh,beforeUpdate(t,e,n){t[tu]=Ah(n),Sh(t,e,n)}};function Sh(t,{value:e,oldValue:n},i){t._modelValue=e;let o;if(bt(e))o=R0(e,i.props.value)>-1;else if(al(e))o=e.has(i.props.value);else{if(e===n)return;o=mr(e,Kg(t,!0))}t.checked!==o&&(t.checked=o)}function e_(t){return"_value"in t?t._value:t.value}function Kg(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const n_=["ctrl","shift","alt","meta"],i_={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>n_.some(n=>t[`${n}Key`]&&!e.includes(n))},o_=(t,e)=>{if(!t)return t;const n=t._withMods||(t._withMods={}),i=e.join(".");return n[i]||(n[i]=((o,...s)=>{for(let r=0;r{const n=t._withKeys||(t._withKeys={}),i=e.join(".");return n[i]||(n[i]=(o=>{if(!("key"in o))return;const s=fi(o.key);if(e.some(r=>r===s||s_[r]===s))return t(o)}))},a_=ye({patchProp:Yb},Db);let Ch;function l_(){return Ch||(Ch=gb(a_))}const u_=((...t)=>{const e=l_().createApp(...t),{mount:n}=e;return e.mount=i=>{const o=d_(i);if(!o)return;const s=e._component;!Tt(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=n(o,!1,c_(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},e});function c_(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function d_(t){return se(t)?document.querySelector(t):t}const Th=(t,e,n)=>{const i=Object.assign({escape:!0},{}),o=function(s,r){return r=r||{},s.replace(/{([^{}]*)}/g,function(a,l){const c=r[l];return i.escape?encodeURIComponent(typeof c=="string"||typeof c=="number"?c.toString():a):typeof c=="string"||typeof c=="number"?c.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),o(t,{})},Jc=(t,e,n)=>{const i=Object.assign({noRewrite:!1},{}),o=h_();return window?.OC?.config?.modRewriteWorking===!0&&!i.noRewrite?o+Th(t):o+"/index.php"+Th(t)};function h_(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const n=t.indexOf("/",1);t=t.slice(0,n>0?n:void 0)}}return t}function kh(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n2?n-2:0),o=2;o1?e-1:0),i=1;i"u"?null:be(BigInt.prototype.toString),Oh=typeof Symbol>"u"?null:be(Symbol.prototype.toString),Ee=be(Object.prototype.hasOwnProperty),ds=be(Object.prototype.toString),xe=be(RegExp.prototype.test),zi=C_(TypeError);function be(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:As;if(Rh&&Rh(t,null),!xi(e))return t;let i=e.length;for(;i--;){let o=e[i];if(typeof o=="string"){const s=n(o);s!==o&&(y_(e)||(e[i]=s),o=s)}t[o]=!0}return t}function T_(t){for(let e=0;e/g),O_=Re(/\${[\w\W]*/g),$_=Re(/^data-[\-\w.\u00B7-\uFFFF]+$/),B_=Re(/^aria-[\-\w]+$/),Uh=Re(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),F_=Re(/^(?:\w+script|data):/i),j_=Re(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),U_=Re(/^html$/i),V_=Re(/^[a-z][.\w]*(-[.\w]+)+$/i),Vh=Re(/<[/\w!]/g),Ih=Re(/<[/\w]/g),I_=Re(/<\/no(script|embed|frames)/i),z_=Re(/\/>/i),on={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},H_=function(){return typeof window>"u"?null:window},J_=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let n=null;const i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(n=e.getAttribute(i));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},zh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},vi=function(t,e,n,i){return Ee(t,e)&&xi(t[e])?Ht(i.base?De(i.base):{},t[e],i.transform):n};function Zg(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:H_();const e=_=>Zg(_);if(e.version="3.4.13",e.removed=[],!t||!t.document||t.document.nodeType!==on.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const i=n,o=i.currentScript;t.DocumentFragment;const s=t.HTMLTemplateElement,r=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const u=t.DOMParser,d=t.trustedTypes,f=a.prototype,p=bn(f,"cloneNode"),y=bn(f,"remove"),m=bn(f,"nextSibling"),x=bn(f,"childNodes"),b=bn(f,"parentNode"),A=bn(f,"shadowRoot"),R=bn(f,"attributes"),S=r&&r.prototype?bn(r.prototype,"nodeType"):null,N=r&&r.prototype?bn(r.prototype,"nodeName"):null,j=r&&r.prototype?bn(r.prototype,"ownerDocument"):null;if(typeof s=="function"){const _=n.createElement("template");_.content&&_.content.ownerDocument&&(n=_.content.ownerDocument)}let U,H="",q,V=!1,et=0;const T=function(){if(et>0)throw zi('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},F=function(_){T(),et++;try{return U.createHTML(_)}finally{et--}},Q=function(_){T(),et++;try{return U.createScriptURL(_)}finally{et--}},M=function(){return V||(q=J_(d,o),V=!0),q},Z=n,rt=Z.implementation,lt=Z.createNodeIterator,ft=Z.createDocumentFragment,pt=Z.getElementsByTagName,xt=i.importNode;let gt=zh();e.isSupported=typeof Xg=="function"&&typeof b=="function"&&rt&&rt.createHTMLDocument!==void 0;const Gt=D_,Pt=N_,$t=O_,Et=$_,ne=B_,nn=F_,mn=j_,vn=V_;let C=Uh,k=null;const W=Ht({},[...$h,...nu,...iu,...ou,...Bh]);let K=null;const X=Ht({},[...Fh,...su,...jh,...Ur]);let B=Object.seal($o(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}})),it=null,st=null;const nt=Object.seal($o(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let tt=!0,mt=!0,ut=!1,yt=!0,vt=!1,wt=!0,Lt=!1,Jt=!1,It=null,ae=null,h=!1,g=!1,v=!1,P=!1,$=!0,G=!1;const at="user-content-";let Wt=!0,he=!1,qt={},Nt=null;const le=Ht({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Td=null;const kd=Ht({},["audio","video","img","source","image","track"]);let Bl=null;const Rd=Ht({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),kr="http://www.w3.org/1998/Math/MathML",Rr="http://www.w3.org/2000/svg",kn="http://www.w3.org/1999/xhtml";let wo=kn,Fl=!1,jl=null;const hv=Ht({},[kr,Rr,kn],eu),Pd=ke(["mi","mo","mn","ms","mtext"]);let Ul=Ht({},Pd);const Ld=ke(["annotation-xml"]);let Vl=Ht({},Ld);const fv=Ht({},["title","style","font","a","script"]);let ns=null;const pv=["application/xhtml+xml","text/html"],gv="text/html";let ue=null,xo=null;const mv=n.createElement("form"),Dd=function(_){return _ instanceof RegExp||_ instanceof Function},Il=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(xo&&xo===_)return;(!_||typeof _!="object")&&(_={}),_=De(_),ns=pv.indexOf(_.PARSER_MEDIA_TYPE)===-1?gv:_.PARSER_MEDIA_TYPE,ue=ns==="application/xhtml+xml"?eu:As,k=vi(_,"ALLOWED_TAGS",W,{transform:ue}),K=vi(_,"ALLOWED_ATTR",X,{transform:ue}),jl=vi(_,"ALLOWED_NAMESPACES",hv,{transform:eu}),Bl=vi(_,"ADD_URI_SAFE_ATTR",Rd,{transform:ue,base:Rd}),Td=vi(_,"ADD_DATA_URI_TAGS",kd,{transform:ue,base:kd}),Nt=vi(_,"FORBID_CONTENTS",le,{transform:ue}),it=vi(_,"FORBID_TAGS",De({}),{transform:ue}),st=vi(_,"FORBID_ATTR",De({}),{transform:ue}),qt=Ee(_,"USE_PROFILES")?_.USE_PROFILES&&typeof _.USE_PROFILES=="object"?De(_.USE_PROFILES):_.USE_PROFILES:!1,tt=_.ALLOW_ARIA_ATTR!==!1,mt=_.ALLOW_DATA_ATTR!==!1,ut=_.ALLOW_UNKNOWN_PROTOCOLS||!1,yt=_.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=_.SAFE_FOR_TEMPLATES||!1,wt=_.SAFE_FOR_XML!==!1,Lt=_.WHOLE_DOCUMENT||!1,g=_.RETURN_DOM||!1,v=_.RETURN_DOM_FRAGMENT||!1,P=_.RETURN_TRUSTED_TYPE||!1,h=_.FORCE_BODY||!1,$=_.SANITIZE_DOM!==!1,G=_.SANITIZE_NAMED_PROPS||!1,Wt=_.KEEP_CONTENT!==!1,he=_.IN_PLACE||!1,C=R_(_.ALLOWED_URI_REGEXP)?_.ALLOWED_URI_REGEXP:Uh,wo=typeof _.NAMESPACE=="string"?_.NAMESPACE:kn,Ul=Ee(_,"MATHML_TEXT_INTEGRATION_POINTS")&&_.MATHML_TEXT_INTEGRATION_POINTS&&typeof _.MATHML_TEXT_INTEGRATION_POINTS=="object"?De(_.MATHML_TEXT_INTEGRATION_POINTS):Ht({},Pd),Vl=Ee(_,"HTML_INTEGRATION_POINTS")&&_.HTML_INTEGRATION_POINTS&&typeof _.HTML_INTEGRATION_POINTS=="object"?De(_.HTML_INTEGRATION_POINTS):Ht({},Ld);const z=Ee(_,"CUSTOM_ELEMENT_HANDLING")&&_.CUSTOM_ELEMENT_HANDLING&&typeof _.CUSTOM_ELEMENT_HANDLING=="object"?De(_.CUSTOM_ELEMENT_HANDLING):$o(null);if(B=$o(null),Ee(z,"tagNameCheck")&&Dd(z.tagNameCheck)&&(B.tagNameCheck=z.tagNameCheck),Ee(z,"attributeNameCheck")&&Dd(z.attributeNameCheck)&&(B.attributeNameCheck=z.attributeNameCheck),Ee(z,"allowCustomizedBuiltInElements")&&typeof z.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=z.allowCustomizedBuiltInElements),Re(B),vt&&(mt=!1),v&&(g=!0),qt&&(k=Ht({},Bh),K=$o(null),qt.html===!0&&(Ht(k,$h),Ht(K,Fh)),qt.svg===!0&&(Ht(k,nu),Ht(K,su),Ht(K,Ur)),qt.svgFilters===!0&&(Ht(k,iu),Ht(K,su),Ht(K,Ur)),qt.mathMl===!0&&(Ht(k,ou),Ht(K,jh),Ht(K,Ur))),nt.tagCheck=null,nt.attributeCheck=null,Ee(_,"ADD_TAGS")&&(typeof _.ADD_TAGS=="function"?nt.tagCheck=_.ADD_TAGS:xi(_.ADD_TAGS)&&(k===W&&(k=De(k)),Ht(k,_.ADD_TAGS,ue))),Ee(_,"ADD_ATTR")&&(typeof _.ADD_ATTR=="function"?nt.attributeCheck=_.ADD_ATTR:xi(_.ADD_ATTR)&&(K===X&&(K=De(K)),Ht(K,_.ADD_ATTR,ue))),Ee(_,"ADD_URI_SAFE_ATTR")&&xi(_.ADD_URI_SAFE_ATTR)&&Ht(Bl,_.ADD_URI_SAFE_ATTR,ue),Ee(_,"FORBID_CONTENTS")&&xi(_.FORBID_CONTENTS)&&(Nt===le&&(Nt=De(Nt)),Ht(Nt,_.FORBID_CONTENTS,ue)),Ee(_,"ADD_FORBID_CONTENTS")&&xi(_.ADD_FORBID_CONTENTS)&&(Nt===le&&(Nt=De(Nt)),Ht(Nt,_.ADD_FORBID_CONTENTS,ue)),Wt&&(k["#text"]=!0),Lt&&Ht(k,["html","head","body"]),k.table&&(Ht(k,["tbody"]),delete it.tbody),_.TRUSTED_TYPES_POLICY){if(typeof _.TRUSTED_TYPES_POLICY.createHTML!="function")throw zi('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof _.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw zi('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Y=U;U=_.TRUSTED_TYPES_POLICY;try{H=F("")}catch(ct){throw U=Y,ct}}else _.TRUSTED_TYPES_POLICY===null?(U=void 0,H=""):(U===void 0&&(U=M()),U&&typeof H=="string"&&(H=F("")));ke&&ke(_),xo=_},Nd=Ht({},[...nu,...iu,...P_]),Od=Ht({},[...ou,...L_]),vv=function(_,z,Y){return z.namespaceURI===kn?_==="svg":z.namespaceURI===kr?_==="svg"&&(Y==="annotation-xml"||Ul[Y]):!!Nd[_]},yv=function(_,z,Y){return z.namespaceURI===kn?_==="math":z.namespaceURI===Rr?_==="math"&&Vl[Y]:!!Od[_]},bv=function(_,z,Y){return z.namespaceURI===Rr&&!Vl[Y]||z.namespaceURI===kr&&!Ul[Y]?!1:!Od[_]&&(fv[_]||!Nd[_])},_v=function(_){let z=b(_);(!z||!z.tagName)&&(z={namespaceURI:wo,tagName:"template"});const Y=As(_.tagName),ct=As(z.tagName);return jl[_.namespaceURI]?_.namespaceURI===Rr?vv(Y,z,ct):_.namespaceURI===kr?yv(Y,z,ct):_.namespaceURI===kn?bv(Y,z,ct):!!(ns==="application/xhtml+xml"&&jl[_.namespaceURI]):!1},Bi=function(_){Co(e.removed,{element:_});try{b(_).removeChild(_)}catch{if(y(_),!b(_))throw zi("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Pr=function(_){is(_);const z=x(_);if(z){const ct=[];So(z,St=>{Co(ct,St)}),So(ct,St=>{try{y(St)}catch{}})}const Y=R(_);if(Y)for(let ct=Y.length-1;ct>=0;--ct){const St=Y[ct],Bt=St&&St.name;if(typeof Bt=="string")try{_.removeAttribute(Bt)}catch{}}},Fi=function(_,z){try{Co(e.removed,{attribute:z.getAttributeNode(_),from:z})}catch{Co(e.removed,{attribute:null,from:z})}if(z.removeAttribute(_),_==="is")if(g||v)try{Bi(z)}catch{}else try{z.setAttribute(_,"")}catch{}},wv=function(_){const z=R(_);if(z)for(let Y=z.length-1;Y>=0;--Y){const ct=z[Y],St=ct&&ct.name;if(!(typeof St!="string"||K[ue(St)]))try{_.removeAttribute(St)}catch{}}},is=function(_){const z=[_];for(;z.length>0;){const Y=z.pop();(S?S(Y):Y.nodeType)===on.element&&wv(Y);const ct=x(Y);if(ct)for(let St=ct.length-1;St>=0;--St)z.push(ct[St])}},xv=function(_){if(!wt)return;const z=[_];for(;z.length>0;){const Y=z.pop(),ct=S?S(Y):Y.nodeType;if(ct===on.processingInstruction||ct===on.comment&&xe(Ih,Y.data)){try{y(Y)}catch{}continue}if(ct===on.element){const Bt=Y,Ft=ue(N?N(Y):Y.nodeName);try{Bt.hasAttribute&&Bt.hasAttribute("patchsrc")&&Bt.removeAttribute("patchsrc"),Bt.hasAttribute&&Bt.hasAttribute("for")&&Ft!=="label"&&Ft!=="output"&&Bt.removeAttribute("for")}catch{}}const St=x(Y);if(St)for(let Bt=St.length-1;Bt>=0;--Bt)z.push(St[Bt])}},$d=function(_){let z=null,Y=null;if(h)_=""+_;else{const Bt=Lh(_,/^[\r\n\t ]+/);Y=Bt&&Bt[0]}ns==="application/xhtml+xml"&&wo===kn&&(_=''+_+"");const ct=U?F(_):_;if(wo===kn)try{z=new u().parseFromString(ct,ns)}catch{}if(!z||!z.documentElement){z=rt.createDocument(wo,"template",null);try{z.documentElement.innerHTML=Fl?H:ct}catch{}}const St=z.body||z.documentElement;return _&&Y&&St.insertBefore(n.createTextNode(Y),St.childNodes[0]||null),wo===kn?pt.call(z,Lt?"html":"body")[0]:Lt?z.documentElement:St},Bd=function(_){const z=j?j(_):_.ownerDocument;return lt.call(z||_,_,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Lr=function(_){return _=cs(_,Gt," "),_=cs(_,Pt," "),_=cs(_,$t," "),_},zl=function(_){var z;_.normalize();const Y=j?j(_):_.ownerDocument,ct=lt.call(Y||_,_,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let St=ct.nextNode();for(;St;)St.data=Lr(St.data),St=ct.nextNode();const Bt=(z=_.querySelectorAll)===null||z===void 0?void 0:z.call(_,"template");Bt&&So(Bt,Ft=>{Eo(Ft.content)&&zl(Ft.content)})},Dr=function(_){const z=N?N(_):null;return typeof z!="string"||ue(z)!=="form"?!1:typeof _.nodeName!="string"||typeof _.textContent!="string"||typeof _.removeChild!="function"||_.attributes!==R(_)||typeof _.removeAttribute!="function"||typeof _.setAttribute!="function"||typeof _.namespaceURI!="string"||typeof _.insertBefore!="function"||typeof _.hasChildNodes!="function"||_.nodeType!==S(_)||_.childNodes!==x(_)},Eo=function(_){if(!S||typeof _!="object"||_===null)return!1;try{return S(_)===on.documentFragment}catch{return!1}},os=function(_){if(!S||typeof _!="object"||_===null)return!1;try{return typeof S(_)=="number"}catch{return!1}};function Rn(_,z,Y){_.length!==0&&So(_,ct=>{ct.call(e,z,Y,xo)})}const Ev=function(_,z){return!!(wt&&_.hasChildNodes()&&!os(_.firstElementChild)&&xe(Vh,_.textContent)&&xe(Vh,_.innerHTML)||wt&&_.namespaceURI===kn&&z==="style"&&os(_.firstElementChild)||_.nodeType===on.processingInstruction||wt&&_.nodeType===on.comment&&xe(Ih,_.data))},Av=function(_,z,Y){if(!it[z]&&Vd(z)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,z)||B.tagNameCheck instanceof Function&&B.tagNameCheck(z)))return!1;if(Wt&&!Nt[z]){const ct=b(_),St=x(_);if(St&&ct){const Bt=St.length;for(let Ft=Bt-1;Ft>=0;--Ft){const Pn=_===Y?p(St[Ft],!0):St[Ft];ct.insertBefore(Pn,m(_))}}}return Bi(_),!0},Fd=function(_,z,Y,ct){return _.length===0?z:z===Y||z===ct?De(z):z},jd=function(_,z){if(Rn(gt.beforeSanitizeElements,_,null),_!==z&&b(_)===null)return he&&is(_),!0;if(Dr(_))return Bi(_),!0;const Y=ue(N?N(_):_.nodeName);if(k=Fd(gt.uponSanitizeElement,k,W,It),Rn(gt.uponSanitizeElement,_,{tagName:Y,allowedTags:k}),_!==z&&b(_)===null)return he&&is(_),!0;if(Ev(_,Y))return Bi(_),!0;if(it[Y]||!(nt.tagCheck instanceof Function&&nt.tagCheck(Y))&&!k[Y]){const ct=Av(_,Y,z);return ct===!1&&Rn(gt.afterSanitizeElements,_,null),ct}if((S?S(_):_.nodeType)===on.element&&!_v(_)||(Y==="noscript"||Y==="noembed"||Y==="noframes")&&xe(I_,_.innerHTML))return Bi(_),!0;if(vt&&_.nodeType===on.text){const ct=Lr(_.textContent);_.textContent!==ct&&(Co(e.removed,{element:_.cloneNode()}),_.textContent=ct)}return Rn(gt.afterSanitizeElements,_,null),!1},Ud=function(_,z,Y){if(st[z]||wt&&z==="patchsrc"||wt&&z==="for"&&_!=="label"&&_!=="output"||$&&(z==="id"||z==="name")&&(Y in n||Y in mv))return!1;const ct=K[z]||nt.attributeCheck instanceof Function&&nt.attributeCheck(z,_);if(!(mt&&xe(Et,z))&&!(tt&&xe(ne,z))){if(ct){if(!Bl[z]&&!xe(C,cs(Y,mn,""))&&!((z==="src"||z==="xlink:href"||z==="href")&&_!=="script"&&Dh(Y,"data:")===0&&Td[_])&&!(ut&&!xe(nn,cs(Y,mn,"")))&&Y)return!1}else if(!(Vd(_)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,_)||B.tagNameCheck instanceof Function&&B.tagNameCheck(_))&&(B.attributeNameCheck instanceof RegExp&&xe(B.attributeNameCheck,z)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(z,_))||z==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,Y)||B.tagNameCheck instanceof Function&&B.tagNameCheck(Y))))return!1}return!0},Sv=Ht({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Vd=function(_){return!Sv[As(_)]&&xe(vn,_)},Cv=function(_,z,Y,ct){if(U&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Y)switch(d.getAttributeType(_,z)){case"TrustedHTML":return F(ct);case"TrustedScriptURL":return Q(ct)}return ct},Tv=function(_,z,Y,ct){try{Y?_.setAttributeNS(Y,z,ct):_.setAttribute(z,ct),Dr(_)?Bi(_):Ph(e.removed)}catch{Fi(z,_)}},Id=function(_){Rn(gt.beforeSanitizeAttributes,_,null);const z=_.attributes;if(!z||Dr(_))return;K=Fd(gt.uponSanitizeAttribute,K,X,ae);const Y={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:K,forceKeepAttr:void 0};let ct=z.length;const St=ue(_.nodeName);for(;ct--;){const Bt=z[ct],Ft=Bt.name,Pn=Bt.namespaceURI,gi=Bt.value,Pe=ue(Ft),yn=gi;let ze=Ft==="value"?yn:E_(yn);if(Y.attrName=Pe,Y.attrValue=ze,Y.keepAttr=!0,Y.forceKeepAttr=void 0,Rn(gt.uponSanitizeAttribute,_,Y),ze=Y.attrValue,G&&(Pe==="id"||Pe==="name")&&Dh(ze,at)!==0&&(Fi(Ft,_),ze=at+ze),wt&&xe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,ze)){Fi(Ft,_);continue}if(Pe==="attributename"&&Lh(ze,"href")){Fi(Ft,_);continue}if(!Y.forceKeepAttr){if(!Y.keepAttr){Fi(Ft,_);continue}if(!yt&&xe(z_,ze)){Fi(Ft,_);continue}if(vt&&(ze=Lr(ze)),!Ud(St,Pe,ze)){Fi(Ft,_);continue}ze=Cv(St,Pe,Pn,ze),ze!==yn&&Tv(_,Ft,Pn,ze)}}Rn(gt.afterSanitizeAttributes,_,null)},Nr=function(_){let z=null;const Y=Bd(_);for(Rn(gt.beforeSanitizeShadowDOM,_,null);z=Y.nextNode();)if(Rn(gt.uponSanitizeShadowNode,z,null),jd(z,_),Id(z),Eo(z.content)&&Nr(z.content),(S?S(z):z.nodeType)===on.element){const ct=A(z);Eo(ct)&&(Hl(ct),Nr(ct))}Rn(gt.afterSanitizeShadowDOM,_,null)},Hl=function(_){const z=[{node:_,shadow:null}];for(;z.length>0;){const Y=z.pop();if(Y.shadow){Nr(Y.shadow);continue}const ct=Y.node,St=(S?S(ct):ct.nodeType)===on.element,Bt=x(ct);if(Bt)for(let Ft=Bt.length-1;Ft>=0;--Ft)z.push({node:Bt[Ft],shadow:null});if(St){const Ft=N?N(ct):null;if(typeof Ft=="string"&&ue(Ft)==="template"){const Pn=ct.content;Eo(Pn)&&z.push({node:Pn,shadow:null})}}if(St){const Ft=A(ct);Eo(Ft)&&z.push({node:null,shadow:Ft},{node:Ft,shadow:null})}}};return e.sanitize=function(_){let z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=null,ct=null,St=null,Bt=null;if(Fl=!_,Fl&&(_=""),typeof _!="string"&&!os(_)&&(_=k_(_),typeof _!="string"))throw zi("dirty is not a string, aborting");if(!e.isSupported)return _;Jt?(k=It,K=ae):Il(z),(gt.uponSanitizeElement.length>0||gt.uponSanitizeAttribute.length>0)&&(k=De(k)),gt.uponSanitizeAttribute.length>0&&(K=De(K)),e.removed=[];const Ft=he&&typeof _!="string"&&os(_);if(Ft){xv(_);const Pe=N?N(_):_.nodeName;if(typeof Pe=="string"){const yn=ue(Pe);if(!k[yn]||it[yn])throw Pr(_),zi("root node is forbidden and cannot be sanitized in-place")}if(Dr(_))throw Pr(_),zi("root node is clobbered and cannot be sanitized in-place");try{Hl(_)}catch(yn){throw Pr(_),yn}}else if(os(_))Y=$d(""),ct=Y.ownerDocument.importNode(_,!0),ct.nodeType===on.element&&ct.nodeName==="BODY"||ct.nodeName==="HTML"?Y=ct:Y.appendChild(ct),Hl(ct);else{if(!g&&!vt&&!Lt&&_.indexOf("<")===-1)return U&&P?F(_):_;if(Y=$d(_),!Y)return g?null:P?H:""}Y&&h&&Bi(Y.firstChild);const Pn=Ft?_:Y;try{const Pe=Bd(Pn);for(;St=Pe.nextNode();)jd(St,Pn),Id(St),Eo(St.content)&&Nr(St.content)}catch(Pe){throw Ft&&(Pr(_),So(e.removed,yn=>{yn.element&&is(yn.element)})),Pe}if(Ft)return So(e.removed,Pe=>{Pe.element&&is(Pe.element)}),vt&&zl(_),_;if(g){if(vt&&zl(Y),v)for(Bt=ft.call(Y.ownerDocument);Y.firstChild;)Bt.appendChild(Y.firstChild);else Bt=Y;return(K.shadowroot||K.shadowrootmode)&&(Bt=xt.call(i,Bt,!0)),Bt}let gi=Lt?Y.outerHTML:Y.innerHTML;return Lt&&k["!doctype"]&&Y.ownerDocument&&Y.ownerDocument.doctype&&Y.ownerDocument.doctype.name&&xe(U_,Y.ownerDocument.doctype.name)&&(gi=" -`+gi),vt&&(gi=Lr(gi)),U&&P?F(gi):gi},e.setConfig=function(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Il(_),Jt=!0,It=k,ae=K},e.clearConfig=function(){xo=null,Jt=!1,It=null,ae=null,U=q,H=""},e.isValidAttribute=function(_,z,Y){xo||Il({});const ct=ue(_),St=ue(z);return Ud(ct,St,Y)},e.addHook=function(_,z){typeof z=="function"&&Ee(gt,_)&&Co(gt[_],z)},e.removeHook=function(_,z){if(Ee(gt,_)){if(z!==void 0){const Y=w_(gt[_],z);return Y===-1?void 0:x_(gt[_],Y,1)[0]}return Ph(gt[_])}},e.removeHooks=function(_){Ee(gt,_)&&(gt[_]=[])},e.removeAllHooks=function(){gt=zh()},e}var Qg=Zg();function Wc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ru,Hh;function W_(){if(Hh)return ru;Hh=1;var t=/["'&<>]/;ru=e;function e(n){var i=""+n,o=t.exec(i);if(!o)return i;var s,r="",a=0,l=0;for(a=o.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function I(t,e,n,i,o){const s=typeof n=="object"?n:void 0,r=typeof i=="number"?i:typeof n=="number"?n:void 0,a={escape:!0,sanitize:!0,...typeof o=="object"?o:typeof i=="object"?i:{}},l=y=>y,c=(a.sanitize?Qg.sanitize:l)||l,u=a.escape?Jh:l,d=y=>typeof y=="string"||typeof y=="number",f=(y,m,x)=>y.replace(/%n/g,""+x).replace(/{([^{}]*)}/g,(b,A)=>{if(m===void 0||!(A in m))return u(b);const R=m[A];return d(R)?u(`${R}`):typeof R=="object"&&d(R.value)?(R.escape!==!1?Jh:l)(`${R.value}`):u(b)});let p=(o?.bundle??tm(t)).translations[e]||e;return p=Array.isArray(p)?p[0]:p,c(typeof s=="object"||r!==void 0?f(p,s,r):p)}function ic(t,e,n,i,o,s){const r="_"+e+"_::_"+n+"_",a=s?.bundle??tm(t),l=a.translations[r];if(typeof l<"u"){const c=l;if(Array.isArray(c)){const u=a.pluralFunction(i);return I(t,c[u],o,i,s)}}return i===1?I(t,e,o,i,s):I(t,n,o,i,s)}function X_(t,e=uo()){switch(e==="pt-BR"&&(e="xbr"),e.length>3&&(e=e.substring(0,e.lastIndexOf("-"))),e){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return t===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return t===0||t===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"ga":return t===1?0:t===2?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mk":return t%10===1?0:1;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":return t===0?0:t%10===1&&t%100!==11?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":return t===1?0:t===2?1:t===8||t===11?2:3;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function Y_(t=Date.now(),e={}){const n={ignoreSeconds:!1,language:uo(),relativeTime:"long",...e},i=new Date(t),o=new Intl.RelativeTimeFormat([n.language,uo()],{numeric:"auto",style:n.relativeTime}),s=(i.getTime()-Date.now())/1e3;if(Math.abs(s)<59.5)return n.ignoreSeconds||o.format(Math.round(s),"second");const r=s/60;if(Math.abs(r)<=59)return o.format(Math.round(r),"minute");const a=r/60;if(Math.abs(a)<23.5)return o.format(Math.round(a),"hour");const l=a/24;if(Math.abs(l)<6.5)return o.format(Math.round(l),"day");if(Math.abs(l)<27.5){const d=l/7;return o.format(Math.round(d),"week")}const c=l/30,u=Math.abs(c)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,uo()],u).format(i)}const Qt=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},Z_={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Q_=["aria-hidden","aria-label"],M_=["fill","width","height"],tw={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"},ew={key:0};function nw(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",tw,[n.title?(O(),J("title",ew,L(n.title),1)):_t("",!0)])],8,M_))],16,Q_)}const iw=Qt(Z_,[["render",nw]]),ow={class:"section-heading"},sw=Rt({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,n)=>(O(),J("h2",ow,[(O(),Ct(_l(t.icon),{class:"icon",size:20})),Dt(" "+L(t.title),1)]))}}),Xe=Qt(sw,[["__scopeId","data-v-0eb9e63c"]]),rw={class:"section network-infos"},aw={class:"infobox"},lw={class:"interface-wrapper active-users-wrapper"},uw={key:0,class:"active-users-box"},cw={class:"info"},dw={key:1,class:"active-users-box"},hw={class:"info"},fw={key:2,class:"active-users-box"},pw={class:"info"},gw={key:3,class:"active-users-box"},mw={class:"info"},vw=Rt({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function n(i){const o=e.numUsers===0?0:Math.round(i*1e3/e.numUsers)/10;return I("serverinfo","{0}% of all users",[String(o)])}return(i,o)=>(O(),J("div",rw,[ot(Xe,{icon:iw,title:E(I)("serverinfo","Active users")},null,8,["title"]),w("div",aw,[w("div",lw,[t.activeUsers.last1hour>0?(O(),J("div",uw,[Dt(L(E(I)("serverinfo","Last hour")),1),o[0]||(o[0]=w("br",null,null,-1)),w("span",cw,L(t.activeUsers.last1hour),1),o[1]||(o[1]=w("br",null,null,-1)),w("em",null,L(n(t.activeUsers.last1hour)),1)])):_t("",!0),t.activeUsers.last24hours>0?(O(),J("div",dw,[Dt(L(E(I)("serverinfo","Last 24 Hours")),1),o[2]||(o[2]=w("br",null,null,-1)),w("span",hw,L(t.activeUsers.last24hours),1),o[3]||(o[3]=w("br",null,null,-1)),w("em",null,L(n(t.activeUsers.last24hours)),1)])):_t("",!0),t.activeUsers.last7days>0?(O(),J("div",fw,[Dt(L(E(I)("serverinfo","Last 7 Days")),1),o[4]||(o[4]=w("br",null,null,-1)),w("span",pw,L(t.activeUsers.last7days),1),o[5]||(o[5]=w("br",null,null,-1)),w("em",null,L(n(t.activeUsers.last7days)),1)])):_t("",!0),t.activeUsers.last1month>0?(O(),J("div",gw,[Dt(L(E(I)("serverinfo","Last 30 Days")),1),o[6]||(o[6]=w("br",null,null,-1)),w("span",mw,L(t.activeUsers.last1month),1),o[7]||(o[7]=w("br",null,null,-1)),w("em",null,L(n(t.activeUsers.last1month)),1)])):_t("",!0)])])]))}});class yw{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const n=Object.values(e.translations[""]??{}).map(({msgid:i,msgid_plural:o,msgstr:s})=>o!==void 0?[`_${i}_::_${o}_`,s]:[i,s[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(e,n={}){return I("",e,n,void 0,{bundle:this.bundle})}ngettext(e,n,i,o={}){return ic("",e,n,i,o,{bundle:this.bundle})}}class bw{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(uo().replace("-","_"))}addTranslation(e,n){return this.translations[e]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new yw(n=>X_(n,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function _w(){return new bw}const em=_w().detectLanguage().build(),We=(...t)=>em.gettext(...t);function wr(...t){for(const e of t)if(!e.registered){for(const{l:n,t:i}of e){if(n!==uo()||!i)continue;const o=Object.fromEntries(Object.entries(i).map(([s,r])=>[s,{msgid:s,msgid_plural:r.p,msgstr:r.v}]));em.addTranslations({translations:{"":o}})}e.registered=!0}}const ww=[{l:"ar",t:{"a few seconds ago":{v:["منذ عدة ثوانٍ"]},"sec. ago":{v:["ثانية مضت"]},"seconds ago":{v:["ثوانٍ مضت"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα δευτερόλεπτα"]},"sec. ago":{v:["δευτ. πριν"]},"seconds ago":{v:["δευτερόλεπτα πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrás"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mõni sekund tagasi"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند ثانیه پیش"]},"sec. ago":{v:["چند ثانیه پیش"]},"seconds ago":{v:["چند ثانیه پیش"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני מספר שניות"]},"sec. ago":{v:["לפני מספר שניות"]},"seconds ago":{v:["לפני מס׳ שניות"]}}},{l:"hr",t:{"a few seconds ago":{v:["prije nekoliko sekundi"]},"sec. ago":{v:["prije nek. sek."]},"seconds ago":{v:["prije nek. sek."]}}},{l:"hu",t:{"a few seconds ago":{v:["néhány másodperce"]},"sec. ago":{v:["másodperce"]},"seconds ago":{v:["másodperce"]}}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir örfáum sekúndum síðan"]},"sec. ago":{v:["sek. síðan"]},"seconds ago":{v:["sekúndum síðan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 전"]},"sec. ago":{v:["몇 초 전"]},"seconds ago":{v:["초 전"]}}},{l:"lo",t:{"a few seconds ago":{v:["ສອງສາມວິນາທີກ່ອນ"]},"sec. ago":{v:["ວິ. ກ່ອນ"]},"seconds ago":{v:["ວິນາທີກ່ອນ"]}}},{l:"lt-LT",t:{"a few seconds ago":{v:["prieš keletą sekundžių"]},"sec. ago":{v:["prieš sek."]},"seconds ago":{v:["prieš sekundes"]}}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["пред неколку секунди"]},"sec. ago":{v:["секунда"]},"seconds ago":{v:["секунди"]}}},{l:"mn",t:{"a few seconds ago":{v:["хэдхэн секундын өмнө"]},"sec. ago":{v:["сек. өмнө"]},"seconds ago":{v:["секундын өмнө"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen få sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum câteva secunde"]},"sec. ago":{v:["sec. în urmă"]},"seconds ago":{v:["secunde în urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунд назад"]},"sec. ago":{v:["сек. назад"]},"seconds ago":{v:["секунд назад"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pár sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунди"]},"sec. ago":{v:["сек. раније"]},"seconds ago":{v:["секунди раније"]}}},{l:"sv",t:{"a few seconds ago":{v:["några sekunder sedan"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"sec. ago":{v:["sn. önce"]},"seconds ago":{v:["saniye önce"]}}},{l:"uk",t:{"a few seconds ago":{v:["декілька секунд тому"]},"sec. ago":{v:["с тому"]},"seconds ago":{v:["с тому"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["几秒前"]},"sec. ago":{v:["几秒前"]},"seconds ago":{v:["几秒前"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}}],xw=[{l:"ar",t:{Actions:{v:["إجراءات"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["کنش‌ها"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["Gníomhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["פעולות"]}}},{l:"hr",t:{Actions:{v:["Radnje"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aðgerðir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["操作"]}}},{l:"ja-JP",t:{Actions:{v:["操作"]}}},{l:"ko",t:{Actions:{v:["동작"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"mn",t:{Actions:{v:["Үйлдлүүд"]}}},{l:"my",t:{Actions:{v:["လုပ်ဆောင်ချက်များ"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["Ações"]}}},{l:"pt-PT",t:{Actions:{v:["Ações"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Действия "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["Радње"]}}},{l:"sv",t:{Actions:{v:["Åtgärder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["行为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],Ew=[{l:"ar",t:{Close:{v:["إغلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["Serriñ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["Dún"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["סגירה"]}}},{l:"hr",t:{Close:{v:["Zatvori"]}}},{l:"hu",t:{Close:{v:["Bezárás"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉じる"]}}},{l:"ja-JP",t:{Close:{v:["閉じる"]}}},{l:"ko",t:{Close:{v:["닫기"]}}},{l:"lo",t:{Close:{v:["ປິດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"mn",t:{Close:{v:["Хаах"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Închideți"]}}},{l:"ru",t:{Close:{v:["Закрыть"]}}},{l:"sk",t:{Close:{v:["Zavrieť"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["Stäng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],Aw=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["Zkopírováno"]},"Copy to clipboard":{v:["Zkopírovat do schránky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{Copied:{v:["Kopieret"]},"Copy to clipboard":{v:["Kopiér til udklipsholderen"]}}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lõikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{Copied:{v:["Copié"]},"Copy to clipboard":{v:["Copier dans le presse-papiers"]}}},{l:"ga",t:{Copied:{v:["Cóipeáilte"]},"Copy to clipboard":{v:["Cóipeáil chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hr",t:{Copied:{v:["Kopirano"]},"Copy to clipboard":{v:["Kopiraj u međuspremnik"]}}},{l:"hu",t:{Copied:{v:["Másolva"]},"Copy to clipboard":{v:["Vágólapra másolás"]}}},{l:"id",t:{Copied:{v:["Disalin"]},"Copy to clipboard":{v:["Salin ke clipboard"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["コピーされました"]},"Copy to clipboard":{v:["クリップボードにコピー"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{Copied:{v:["복사됨"]},"Copy to clipboard":{v:["클립보드로 복사"]}}},{l:"lo",t:{Copied:{v:["ສຳເນົາແລ້ວ"]},"Copy to clipboard":{v:["ສຳເນົາໃສ່ຄລິບບອດ"]}}},{l:"lt-LT",t:{Copied:{v:["Nukopijuota"]},"Copy to clipboard":{v:["Kopijuoti į iškarpinę"]}}},{l:"lv",t:{}},{l:"mk",t:{Copied:{v:["Копирано"]},"Copy to clipboard":{v:["Копирај во клипбоард"]}}},{l:"mn",t:{Copied:{v:["Хуулагдлаа"]},"Copy to clipboard":{v:["Санах ой руу хуулах"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{Copied:{v:["Gekopieerd"]},"Copy to clipboard":{v:["Kopieer naar klembord"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a área de transferência"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{Copied:{v:["Скопировано"]},"Copy to clipboard":{v:["Скопировать в буфер"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{Copied:{v:["Kopierad"]},"Copy to clipboard":{v:["Kopiera till urklipp"]}}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{Copied:{v:["Nusxalandi"]},"Copy to clipboard":{v:["Buferga nusxalash"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}},{l:"zh-TW",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}}],Sw=[{l:"ar",t:{"Loading …":{v:["التحميل جارٍ ..."]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Loading …":{v:["Načítání …"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Loading …":{v:["Indlæser ..."]}}},{l:"de",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"de-DE",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"el",t:{"Loading …":{v:["Φόρτωση  …"]}}},{l:"en-GB",t:{"Loading …":{v:["Loading …"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Loading …":{v:["Laadin…"]}}},{l:"eu",t:{}},{l:"fa",t:{"Loading …":{v:["در حال بارگذاری ..."]}}},{l:"fi",t:{"Loading …":{v:["Ladataan ..."]}}},{l:"fr",t:{"Loading …":{v:["Chargement..."]}}},{l:"ga",t:{"Loading …":{v:["Ag lódáil …"]}}},{l:"gl",t:{"Loading …":{v:["Cargando…"]}}},{l:"he",t:{}},{l:"hr",t:{"Loading …":{v:["Učitavanje …"]}}},{l:"hu",t:{"Loading …":{v:["Betöltés…"]}}},{l:"id",t:{"Loading …":{v:["Memuat …"]}}},{l:"is",t:{"Loading …":{v:["Hleð inn …"]}}},{l:"it",t:{}},{l:"ja",t:{"Loading …":{v:["読み込み中 …"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Loading …":{v:["로딩 중 ..."]}}},{l:"lo",t:{"Loading …":{v:["ກຳລັງໂຫຼດ…"]}}},{l:"lt-LT",t:{"Loading …":{v:["Įkeliama …"]}}},{l:"lv",t:{}},{l:"mk",t:{"Loading …":{v:["Вчитување …"]}}},{l:"mn",t:{"Loading …":{v:["Ачаалж байна …"]}}},{l:"my",t:{}},{l:"nb",t:{"Loading …":{v:["Laster inn..."]}}},{l:"nl",t:{"Loading …":{v:["Laden …"]}}},{l:"oc",t:{}},{l:"pl",t:{"Loading …":{v:["Wczytywanie…"]}}},{l:"pt-BR",t:{"Loading …":{v:["Carregando …"]}}},{l:"pt-PT",t:{"Loading …":{v:["A carregar..."]}}},{l:"ro",t:{}},{l:"ru",t:{"Loading …":{v:["Загрузка …"]}}},{l:"sk",t:{"Loading …":{v:["Nahrávam ..."]}}},{l:"sl",t:{}},{l:"sr",t:{"Loading …":{v:["Учитава се…"]}}},{l:"sv",t:{"Loading …":{v:["Laddar …"]}}},{l:"tr",t:{"Loading …":{v:["Yükleniyor…"]}}},{l:"uk",t:{"Loading …":{v:["Завантаження …"]}}},{l:"uz",t:{"Loading …":{v:["Yuklanmoqda..."]}}},{l:"zh-CN",t:{"Loading …":{v:["加载中..."]}}},{l:"zh-HK",t:{"Loading …":{v:["加載中 …"]}}},{l:"zh-TW",t:{"Loading …":{v:["載入中......"]}}}],Cw=[{l:"ar",t:{Next:{v:["التالي"]},"Pause slideshow":{v:["تجميد عرض الشرائح"]},Previous:{v:["السابق"]},"Start slideshow":{v:["إبدإ العرض"]}}},{l:"ast",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Posar la presentación de diapositives"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Aniciar la presentación de diapositives"]}}},{l:"br",t:{Next:{v:["Da heul"]},"Pause slideshow":{v:["Arsav an diaporama"]},Previous:{v:["A-raok"]},"Start slideshow":{v:["Kregiñ an diaporama"]}}},{l:"ca",t:{Next:{v:["Següent"]},"Pause slideshow":{v:["Atura la presentació"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Inicia la presentació"]}}},{l:"cs",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"cs-CZ",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"da",t:{Next:{v:["Videre"]},"Pause slideshow":{v:["Suspender fremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start fremvisning"]}}},{l:"de",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"de-DE",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"el",t:{Next:{v:["Επόμενο"]},"Pause slideshow":{v:["Παύση προβολής διαφανειών"]},Previous:{v:["Προηγούμενο"]},"Start slideshow":{v:["Έναρξη προβολής διαφανειών"]}}},{l:"en-GB",t:{Next:{v:["Next"]},"Pause slideshow":{v:["Pause slideshow"]},Previous:{v:["Previous"]},"Start slideshow":{v:["Start slideshow"]}}},{l:"eo",t:{Next:{v:["Sekva"]},"Pause slideshow":{v:["Payzi bildprezenton"]},Previous:{v:["Antaŭa"]},"Start slideshow":{v:["Komenci bildprezenton"]}}},{l:"es",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-AR",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-EC",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"es-MX",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"et-EE",t:{Next:{v:["Edasi"]},"Pause slideshow":{v:["Slaidiesitluse paus"]},Previous:{v:["Eelmine"]},"Start slideshow":{v:["Alusta slaidiesitust"]}}},{l:"eu",t:{Next:{v:["Hurrengoa"]},"Pause slideshow":{v:["Pausatu diaporama"]},Previous:{v:["Aurrekoa"]},"Start slideshow":{v:["Hasi diaporama"]}}},{l:"fa",t:{Next:{v:["بعدی"]},"Pause slideshow":{v:["توقف نمایش اسلاید"]},Previous:{v:["قبلی"]},"Start slideshow":{v:["شروع نمایش اسلاید"]}}},{l:"fi",t:{Next:{v:["Seuraava"]},"Pause slideshow":{v:["Keskeytä diaesitys"]},Previous:{v:["Edellinen"]},"Start slideshow":{v:["Aloita diaesitys"]}}},{l:"fr",t:{Next:{v:["Suivant"]},"Pause slideshow":{v:["Mettre le diaporama en pause"]},Previous:{v:["Précédent"]},"Start slideshow":{v:["Démarrer le diaporama"]}}},{l:"ga",t:{Next:{v:["Ar aghaidh"]},"Pause slideshow":{v:["Cuir taispeántas sleamhnán ar sos"]},Previous:{v:["Roimhe Seo"]},"Start slideshow":{v:["Tosaigh taispeántas sleamhnán"]}}},{l:"gl",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar o diaporama"]},Previous:{v:["Anterir"]},"Start slideshow":{v:["Iniciar o diaporama"]}}},{l:"he",t:{Next:{v:["הבא"]},"Pause slideshow":{v:["השהיית מצגת"]},Previous:{v:["הקודם"]},"Start slideshow":{v:["התחלת המצגת"]}}},{l:"hr",t:{Next:{v:["Sljedeće"]},"Pause slideshow":{v:["Pauziraj dijaprojekciju"]},Previous:{v:["Prethodno"]},"Start slideshow":{v:["Pokreni dijaprojekciju"]}}},{l:"hu",t:{Next:{v:["Következő"]},"Pause slideshow":{v:["Diavetítés szüneteltetése"]},Previous:{v:["Előző"]},"Start slideshow":{v:["Diavetítés indítása"]}}},{l:"id",t:{Next:{v:["Selanjutnya"]},"Pause slideshow":{v:["Jeda tayangan slide"]},Previous:{v:["Sebelumnya"]},"Start slideshow":{v:["Mulai salindia"]}}},{l:"is",t:{Next:{v:["Næsta"]},"Pause slideshow":{v:["Gera hlé á skyggnusýningu"]},Previous:{v:["Fyrri"]},"Start slideshow":{v:["Byrja skyggnusýningu"]}}},{l:"it",t:{Next:{v:["Successivo"]},"Pause slideshow":{v:["Presentazione in pausa"]},Previous:{v:["Precedente"]},"Start slideshow":{v:["Avvia presentazione"]}}},{l:"ja",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ja-JP",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ko",t:{Next:{v:["다음"]},"Pause slideshow":{v:["슬라이드쇼 일시정지"]},Previous:{v:["이전"]},"Start slideshow":{v:["슬라이드쇼 시작"]}}},{l:"lo",t:{Next:{v:["ຕໍ່ໄປ"]},"Pause slideshow":{v:["ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ"]},Previous:{v:["ກ່ອນໜ້າ"]},"Start slideshow":{v:["ເລີ່ມສະໄລ້ໂຊ"]}}},{l:"lt-LT",t:{Next:{v:["Kitas"]},"Pause slideshow":{v:["Pristabdyti skaidrių rodymą"]},Previous:{v:["Ankstesnis"]},"Start slideshow":{v:["Pradėti skaidrių rodymą"]}}},{l:"lv",t:{Next:{v:["Nākamais"]},"Pause slideshow":{v:["Pauzēt slaidrādi"]},Previous:{v:["Iepriekšējais"]},"Start slideshow":{v:["Sākt slaidrādi"]}}},{l:"mk",t:{Next:{v:["Следно"]},"Pause slideshow":{v:["Пузирај слајдшоу"]},Previous:{v:["Предходно"]},"Start slideshow":{v:["Стартувај слајдшоу"]}}},{l:"mn",t:{Next:{v:["Дараах"]},"Pause slideshow":{v:["Слайд шоуг түр зогсоох"]},Previous:{v:["Өмнөх"]},"Start slideshow":{v:["Слайд шоуг эхлүүлэх"]}}},{l:"my",t:{Next:{v:["နောက်သို့ဆက်ရန်"]},"Pause slideshow":{v:["စလိုက်ရှိုး ခေတ္တရပ်ရန်"]},Previous:{v:["ယခင်"]},"Start slideshow":{v:["စလိုက်ရှိုးအား စတင်ရန်"]}}},{l:"nb",t:{Next:{v:["Neste"]},"Pause slideshow":{v:["Pause lysbildefremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start lysbildefremvisning"]}}},{l:"nl",t:{Next:{v:["Volgende"]},"Pause slideshow":{v:["Diavoorstelling pauzeren"]},Previous:{v:["Vorige"]},"Start slideshow":{v:["Diavoorstelling starten"]}}},{l:"oc",t:{Next:{v:["Seguent"]},"Pause slideshow":{v:["Metre en pausa lo diaporama"]},Previous:{v:["Precedent"]},"Start slideshow":{v:["Lançar lo diaporama"]}}},{l:"pl",t:{Next:{v:["Następny"]},"Pause slideshow":{v:["Wstrzymaj pokaz slajdów"]},Previous:{v:["Poprzedni"]},"Start slideshow":{v:["Rozpocznij pokaz slajdów"]}}},{l:"pt-BR",t:{Next:{v:["Próximo"]},"Pause slideshow":{v:["Pausar apresentação de slides"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar apresentação de slides"]}}},{l:"pt-PT",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar diaporama"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar diaporama"]}}},{l:"ro",t:{Next:{v:["Următorul"]},"Pause slideshow":{v:["Pauză prezentare de diapozitive"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Începeți prezentarea de diapozitive"]}}},{l:"ru",t:{Next:{v:["Следующее"]},"Pause slideshow":{v:["Приостановить показ слйдов"]},Previous:{v:["Предыдущее"]},"Start slideshow":{v:["Начать показ слайдов"]}}},{l:"sk",t:{Next:{v:["Ďalej"]},"Pause slideshow":{v:["Pozastaviť prezentáciu"]},Previous:{v:["Predchádzajúce"]},"Start slideshow":{v:["Začať prezentáciu"]}}},{l:"sl",t:{Next:{v:["Naslednji"]},"Pause slideshow":{v:["Ustavi predstavitev"]},Previous:{v:["Predhodni"]},"Start slideshow":{v:["Začni predstavitev"]}}},{l:"sr",t:{Next:{v:["Следеће"]},"Pause slideshow":{v:["Паузирај слајд шоу"]},Previous:{v:["Претходно"]},"Start slideshow":{v:["Покрени слајд шоу"]}}},{l:"sv",t:{Next:{v:["Nästa"]},"Pause slideshow":{v:["Pausa bildspelet"]},Previous:{v:["Föregående"]},"Start slideshow":{v:["Starta bildspelet"]}}},{l:"tr",t:{Next:{v:["Sonraki"]},"Pause slideshow":{v:["Slayt sunumunu duraklat"]},Previous:{v:["Önceki"]},"Start slideshow":{v:["Slayt sunumunu başlat"]}}},{l:"uk",t:{Next:{v:["Вперед"]},"Pause slideshow":{v:["Пауза у показі слайдів"]},Previous:{v:["Назад"]},"Start slideshow":{v:["Почати показ слайдів"]}}},{l:"uz",t:{Next:{v:["Keyingi"]},"Pause slideshow":{v:["Slayd-shouni to'xtatib turish"]},Previous:{v:["Oldingi"]},"Start slideshow":{v:["Slayd-shouni boshlash"]}}},{l:"zh-CN",t:{Next:{v:["下一个"]},"Pause slideshow":{v:["暂停幻灯片"]},Previous:{v:["上一个"]},"Start slideshow":{v:["开始幻灯片"]}}},{l:"zh-HK",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}},{l:"zh-TW",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}}];wr(ww);const Tw={long:We("a few seconds ago"),short:We("seconds ago"),narrow:We("sec. ago")};function kw(t=Date.now(),e={}){let n;const i=ht(()=>new Date(Fe(t))),o=ht(()=>{const{language:a,relativeTime:l,ignoreSeconds:c}=Fe(e);return{...a&&{language:a},...l&&{relativeTime:l},ignoreSeconds:c?Tw[l||"long"]:!1}}),s=ge("");ig(()=>r());function r(){if(s.value=Y_(i.value,o.value),Fe(e).update!==!1){const a=Math.abs(Date.now()-new Date(Fe(t)).getTime()),l=a>12e4||o.value.ignoreSeconds?Math.min(a/60,18e5):1e3;n=window.setTimeout(r,l)}}return Wn(()=>n&&window.clearTimeout(n)),wa(s)}function Rw(t,e){const n=ht(()=>({locale:Mg(),format:{dateStyle:"short",timeStyle:"medium"},...Fe(e)})),i=ht(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return ht(()=>i.value.format(Fe(t)))}const Pw=["data-timestamp","title","textContent"],Gc=Rt({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,n=ht(()=>({format:e.format})),i=ht(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),o=Rw(to(()=>e.timestamp),n),s=kw(to(()=>e.timestamp),i),r=ht(()=>e.relativeTime?s.value:o.value);return(a,l)=>(O(),J("span",{class:"nc-datetime",dir:"auto","data-timestamp":t.timestamp,title:E(o),textContent:L(r.value)},null,8,Pw))}});var Lw="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Dw="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",Nw="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",Ow="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",$w="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Bw="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",Fw="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Wh="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",jw="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",Uw="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",Vw="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",Iw="M14,19H18V5H14M6,19H10V5H6V19Z",zw="M8,5.14V19.14L19,12.14L8,5.14Z";const[Hw]=window.OC?.config?.version?.split(".")??[],nm=Number.parseInt(Hw??"34"),qc=nm<32,Jw=nm<34,Ie=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},Ww=["aria-hidden","aria-label"],Gw={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},qw=["d"],Kw=["innerHTML"],Xw=Rt({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){Al(o=>({fb515064:n.value}));const e=t,n=ht(()=>typeof e.size=="number"?`${e.size}px`:e.size),i=ht(()=>{if(!e.svg||e.path)return;const o=Qg.sanitize(e.svg),s=new DOMParser().parseFromString(o,"image/svg+xml");return s.querySelector("parsererror")?"":(s.documentElement.id&&s.documentElement.removeAttribute("id"),s.documentElement.outerHTML)});return(o,s)=>(O(),J("span",{"aria-hidden":t.name?void 0:"true","aria-label":t.name||void 0,class:Yt(["icon-vue",{"icon-vue--directional":t.directional,"icon-vue--inline":t.inline}]),role:"img"},[i.value?(O(),J("span",{key:1,innerHTML:i.value},null,8,Kw)):(O(),J("svg",Gw,[w("path",{d:t.path},null,8,qw)]))],10,Ww))}}),Vn=Ie(Xw,[["__scopeId","data-v-aaedb1c3"]]),Yw=["role"],Zw={key:0,class:"notecard__heading"},Qw={class:"notecard__text"},Mw=Rt({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(t){const e=t,n=ht(()=>e.showAlert||e.type==="error"),i=ht(()=>{switch(e.type){case"error":return Dw;case"success":return $w;case"info":return Uw;default:return Lw}});return(o,s)=>(O(),J("div",{class:Yt(["notecard",{[`notecard--${t.type}`]:t.type,"notecard--legacy":E(qc)}]),role:n.value?"alert":"note"},[Zt(o.$slots,"icon",{},()=>[ot(E(Vn),{path:i.value,class:Yt(["notecard__icon",{"notecard__icon--heading":t.heading}]),inline:""},null,8,["path","class"])],!0),w("div",null,[t.heading?(O(),J("p",Zw,L(t.heading),1)):_t("",!0),Zt(o.$slots,"default",{},()=>[w("p",Qw,L(t.text),1)],!0)])],10,Yw))}}),au=Ie(Mw,[["__scopeId","data-v-6be9fa31"]]),tx={name:"UpdateIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ex=["aria-hidden","aria-label"],nx=["fill","width","height"],ix={d:"M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z"},ox={key:0};function sx(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon update-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",ix,[n.title?(O(),J("title",ox,L(n.title),1)):_t("",!0)])],8,nx))],16,ex)}const rx=Qt(tx,[["render",sx]]);function oc(t,e){return D0()?(Hv(t,e),!0):!1}const sc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ax=Object.prototype.toString,lx=t=>ax.call(t)==="[object Object]";function la(t){return Array.isArray(t)?t:[t]}function ux(t){return Gn()}function cx(t,e=!0,n){ux()?Oi(t,n):e?t():yr(t)}function dx(t,e=1e3,n={}){const{immediate:i=!0,immediateCallback:o=!1}=n;let s=null;const r=Jn(!1);function a(){s&&(clearInterval(s),s=null)}function l(){r.value=!1,a()}function c(){const u=Fe(e);u<=0||(r.value=!0,o&&t(),a(),r.value&&(s=setInterval(t,u)))}return i&&sc&&c(),(ve(e)||typeof e=="function")&&oc(Ke(e,()=>{r.value&&sc&&c()})),oc(l),{isActive:uy(r),pause:l,resume:c}}function hx(t,e,n){return Ke(t,e,{...n,immediate:!0})}function fx(t,e,n){return Ke(t,(i,o,s)=>{i&&e(i,o,s)},{...n,once:!1})}const Sl=sc?window:void 0;function eo(t){var e;const n=Fe(t);return(e=n?.$el)!==null&&e!==void 0?e:n}function ua(...t){const e=(i,o,s,r)=>(i.addEventListener(o,s,r),()=>i.removeEventListener(o,s,r)),n=ht(()=>{const i=la(Fe(t[0])).filter(o=>o!=null);return i.every(o=>typeof o!="string")?i:void 0});return hx(()=>{var i,o;return[(i=(o=n.value)===null||o===void 0?void 0:o.map(s=>eo(s)))!==null&&i!==void 0?i:[Sl].filter(s=>s!=null),la(Fe(n.value?t[1]:t[0])),la(E(n.value?t[2]:t[1])),Fe(n.value?t[3]:t[2])]},([i,o,s,r],a,l)=>{if(!i?.length||!o?.length||!s?.length)return;const c=lx(r)?{...r}:r,u=i.flatMap(d=>o.flatMap(f=>s.map(p=>e(d,f,p,c))));l(()=>{u.forEach(d=>d())})},{flush:"post"})}function px(){const t=Jn(!1),e=Gn();return e&&Oi(()=>{t.value=!0},e),t}function gx(t){const e=px();return ht(()=>(e.value,!!t()))}function mx(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Gh(...t){let e,n,i={};t.length===3?(e=t[0],n=t[1],i=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],i=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:o=Sl,eventName:s="keydown",passive:r=!1,dedupe:a=!1}=i,l=mx(e);return ua(o,s,c=>{c.repeat&&Fe(a)||l(c)&&n(c)},r)}function vx(t,e,n={}){const{window:i=Sl,...o}=n;let s;const r=gx(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Ke(ht(()=>{const u=Fe(t);return Array.isArray(u)?u.map(d=>eo(d)):[eo(u)]}),u=>{if(a(),r.value&&i){s=new ResizeObserver(e);for(const d of u)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),c=()=>{a(),l()};return oc(c),{isSupported:r,stop:c}}function yx(t,e={width:0,height:0},n={}){const{window:i=Sl,box:o="content-box"}=n,s=ht(()=>{var d;return(d=eo(t))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=Jn(e.width),a=Jn(e.height),{stop:l}=vx(t,([d])=>{const f=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(i&&s.value){const p=eo(t);if(p){const y=p.getBoundingClientRect();r.value=y.width,a.value=y.height}}else if(f){const p=la(f);r.value=p.reduce((y,{inlineSize:m})=>y+m,0),a.value=p.reduce((y,{blockSize:m})=>y+m,0)}else r.value=d.contentRect.width,a.value=d.contentRect.height},n);cx(()=>{const d=eo(t);if(d&&"offsetWidth"in d)if(o==="content-box"&&i){const f=i.getComputedStyle(d),p=Number.parseFloat(f.paddingLeft)+Number.parseFloat(f.paddingRight),y=Number.parseFloat(f.paddingTop)+Number.parseFloat(f.paddingBottom),m=Number.parseFloat(f.borderLeftWidth)+Number.parseFloat(f.borderRightWidth),x=Number.parseFloat(f.borderTopWidth)+Number.parseFloat(f.borderBottomWidth);r.value=d.offsetWidth-p-m,a.value=d.offsetHeight-y-x}else r.value=d.offsetWidth,a.value=d.offsetHeight;else d&&(r.value=e.width,a.value=e.height)});const c=Ke(()=>eo(t),d=>{r.value=d?e.width:0,a.value=d?e.height:0});function u(){l(),c()}return{width:r,height:a,stop:u}}function bx(t,e={}){const{threshold:n=50,onSwipe:i,onSwipeEnd:o,onSwipeStart:s,passive:r=!0}=e,a=Jo({x:0,y:0}),l=Jo({x:0,y:0}),c=ht(()=>a.x-l.x),u=ht(()=>a.y-l.y),{max:d,abs:f}=Math,p=ht(()=>d(f(c.value),f(u.value))>=n),y=Jn(!1),m=ht(()=>p.value?f(c.value)>f(u.value)?c.value>0?"left":"right":u.value>0?"up":"down":"none"),x=j=>[j.touches[0].clientX,j.touches[0].clientY],b=(j,U)=>{a.x=j,a.y=U},A=(j,U)=>{l.x=j,l.y=U},R={passive:r,capture:!r},S=j=>{y.value&&o?.(j,m.value),y.value=!1},N=[ua(t,"touchstart",j=>{if(j.touches.length!==1)return;const[U,H]=x(j);b(U,H),A(U,H),s?.(j)},R),ua(t,"touchmove",j=>{if(j.touches.length!==1)return;const[U,H]=x(j);A(U,H),R.capture&&!R.passive&&Math.abs(c.value)>Math.abs(u.value)&&j.preventDefault(),!y.value&&p.value&&(y.value=!0),y.value&&i?.(j)},R),ua(t,["touchend","touchcancel"],S,R)];return{isSwiping:y,direction:m,coordsStart:a,coordsEnd:l,lengthX:c,lengthY:u,stop:()=>N.forEach(j=>j())}}window._nc_vue_element_id=window._nc_vue_element_id??0;function Qo(){return`nc-vue-${window._nc_vue_element_id++}`}const im=Symbol("");var om={},ca={};ca.byteLength=xx,ca.toByteArray=Ax,ca.fromByteArray=Tx;for(var In=[],hn=[],_x=typeof Uint8Array<"u"?Uint8Array:Array,lu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",To=0,wx=lu.length;To0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function xx(t){var e=sm(t),n=e[0],i=e[1];return(n+i)*3/4-i}function Ex(t,e,n){return(e+n)*3/4-n}function Ax(t){var e,n=sm(t),i=n[0],o=n[1],s=new _x(Ex(t,i,o)),r=0,a=o>0?i-4:i,l;for(l=0;l>16&255,s[r++]=e>>8&255,s[r++]=e&255;return o===2&&(e=hn[t.charCodeAt(l)]<<2|hn[t.charCodeAt(l+1)]>>4,s[r++]=e&255),o===1&&(e=hn[t.charCodeAt(l)]<<10|hn[t.charCodeAt(l+1)]<<4|hn[t.charCodeAt(l+2)]>>2,s[r++]=e>>8&255,s[r++]=e&255),s}function Sx(t){return In[t>>18&63]+In[t>>12&63]+In[t>>6&63]+In[t&63]}function Cx(t,e,n){for(var i,o=[],s=e;sa?a:r+s));return i===1?(e=t[n-1],o.push(In[e>>2]+In[e<<4&63]+"==")):i===2&&(e=(t[n-2]<<8)+t[n-1],o.push(In[e>>10]+In[e>>4&63]+In[e<<2&63]+"=")),o.join("")}var rc={};rc.read=function(t,e,n,i,o){var s,r,a=o*8-i-1,l=(1<>1,u=-7,d=n?o-1:0,f=n?-1:1,p=t[e+d];for(d+=f,s=p&(1<<-u)-1,p>>=-u,u+=a;u>0;s=s*256+t[e+d],d+=f,u-=8);for(r=s&(1<<-u)-1,s>>=-u,u+=i;u>0;r=r*256+t[e+d],d+=f,u-=8);if(s===0)s=1-c;else{if(s===l)return r?NaN:(p?-1:1)*(1/0);r=r+Math.pow(2,i),s=s-c}return(p?-1:1)*r*Math.pow(2,s-i)},rc.write=function(t,e,n,i,o,s){var r,a,l,c=s*8-o-1,u=(1<>1,f=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:s-1,y=i?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=u):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),r+d>=1?e+=f/l:e+=f*Math.pow(2,1-d),e*l>=2&&(r++,l/=2),r+d>=u?(a=0,r=u):r+d>=1?(a=(e*l-1)*Math.pow(2,o),r=r+d):(a=e*Math.pow(2,d-1)*Math.pow(2,o),r=0));o>=8;t[n+p]=a&255,p+=y,a/=256,o-=8);for(r=r<0;t[n+p]=r&255,p+=y,r/=256,c-=8);t[n+p-y]|=m*128};(function(t){const e=ca,n=rc,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=N,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o;const{Uint8Array:s,ArrayBuffer:r,SharedArrayBuffer:a}=globalThis;u.TYPED_ARRAY_SUPPORT=l(),!u.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new s(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,s.prototype),Object.setPrototypeOf(h,g),h.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function c(h){if(h>o)throw new RangeError('The value "'+h+'" is invalid for option "size"');const g=new s(h);return Object.setPrototypeOf(g,u.prototype),g}function u(h,g,v){if(typeof h=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(h)}return d(h,g,v)}u.poolSize=8192;function d(h,g,v){if(typeof h=="string")return m(h,g);if(r.isView(h))return b(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(wt(h,r)||h&&wt(h.buffer,r)||typeof a<"u"&&(wt(h,a)||h&&wt(h.buffer,a)))return A(h,g,v);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const P=h.valueOf&&h.valueOf();if(P!=null&&P!==h)return u.from(P,g,v);const $=R(h);if($)return $;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return u.from(h[Symbol.toPrimitive]("string"),g,v);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}u.from=function(h,g,v){return d(h,g,v)},Object.setPrototypeOf(u.prototype,s.prototype),Object.setPrototypeOf(u,s);function f(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function p(h,g,v){return f(h),h<=0?c(h):g!==void 0?typeof v=="string"?c(h).fill(g,v):c(h).fill(g):c(h)}u.alloc=function(h,g,v){return p(h,g,v)};function y(h){return f(h),c(h<0?0:S(h)|0)}u.allocUnsafe=function(h){return y(h)},u.allocUnsafeSlow=function(h){return y(h)};function m(h,g){if((typeof g!="string"||g==="")&&(g="utf8"),!u.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const v=j(h,g)|0;let P=c(v);const $=P.write(h,g);return $!==v&&(P=P.slice(0,$)),P}function x(h){const g=h.length<0?0:S(h.length)|0,v=c(g);for(let P=0;P=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return h|0}function N(h){return+h!=h&&(h=0),u.alloc(+h)}u.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==u.prototype},u.compare=function(h,g){if(wt(h,s)&&(h=u.from(h,h.offset,h.byteLength)),wt(g,s)&&(g=u.from(g,g.offset,g.byteLength)),!u.isBuffer(h)||!u.isBuffer(g))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===g)return 0;let v=h.length,P=g.length;for(let $=0,G=Math.min(v,P);$P.length?(u.isBuffer(G)||(G=u.from(G)),G.copy(P,$)):s.prototype.set.call(P,G,$);else if(u.isBuffer(G))G.copy(P,$);else throw new TypeError('"list" argument must be an Array of Buffers');$+=G.length}return P};function j(h,g){if(u.isBuffer(h))return h.length;if(r.isView(h)||wt(h,r))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const v=h.length,P=arguments.length>2&&arguments[2]===!0;if(!P&&v===0)return 0;let $=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return v;case"utf8":case"utf-8":return tt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v*2;case"hex":return v>>>1;case"base64":return yt(h).length;default:if($)return P?-1:tt(h).length;g=(""+g).toLowerCase(),$=!0}}u.byteLength=j;function U(h,g,v){let P=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((v===void 0||v>this.length)&&(v=this.length),v<=0)||(v>>>=0,g>>>=0,v<=g))return"";for(h||(h="utf8");;)switch(h){case"hex":return gt(this,g,v);case"utf8":case"utf-8":return rt(this,g,v);case"ascii":return pt(this,g,v);case"latin1":case"binary":return xt(this,g,v);case"base64":return Z(this,g,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Gt(this,g,v);default:if(P)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),P=!0}}u.prototype._isBuffer=!0;function H(h,g,v){const P=h[g];h[g]=h[v],h[v]=P}u.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let g=0;gg&&(h+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(h,g,v,P,$){if(wt(h,s)&&(h=u.from(h,h.offset,h.byteLength)),!u.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(g===void 0&&(g=0),v===void 0&&(v=h?h.length:0),P===void 0&&(P=0),$===void 0&&($=this.length),g<0||v>h.length||P<0||$>this.length)throw new RangeError("out of range index");if(P>=$&&g>=v)return 0;if(P>=$)return-1;if(g>=v)return 1;if(g>>>=0,v>>>=0,P>>>=0,$>>>=0,this===h)return 0;let G=$-P,at=v-g;const Wt=Math.min(G,at),he=this.slice(P,$),qt=h.slice(g,v);for(let Nt=0;Nt2147483647?v=2147483647:v<-2147483648&&(v=-2147483648),v=+v,Lt(v)&&(v=$?0:h.length-1),v<0&&(v=h.length+v),v>=h.length){if($)return-1;v=h.length-1}else if(v<0)if($)v=0;else return-1;if(typeof g=="string"&&(g=u.from(g,P)),u.isBuffer(g))return g.length===0?-1:V(h,g,v,P,$);if(typeof g=="number")return g=g&255,typeof s.prototype.indexOf=="function"?$?s.prototype.indexOf.call(h,g,v):s.prototype.lastIndexOf.call(h,g,v):V(h,[g],v,P,$);throw new TypeError("val must be string, number or Buffer")}function V(h,g,v,P,$){let G=1,at=h.length,Wt=g.length;if(P!==void 0&&(P=String(P).toLowerCase(),P==="ucs2"||P==="ucs-2"||P==="utf16le"||P==="utf-16le")){if(h.length<2||g.length<2)return-1;G=2,at/=2,Wt/=2,v/=2}function he(Nt,le){return G===1?Nt[le]:Nt.readUInt16BE(le*G)}let qt;if($){let Nt=-1;for(qt=v;qtat&&(v=at-Wt),qt=v;qt>=0;qt--){let Nt=!0;for(let le=0;le$&&(P=$)):P=$;const G=g.length;P>G/2&&(P=G/2);let at;for(at=0;at>>0,isFinite(v)?(v=v>>>0,P===void 0&&(P="utf8")):(P=v,v=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const $=this.length-g;if((v===void 0||v>$)&&(v=$),h.length>0&&(v<0||g<0)||g>this.length)throw new RangeError("Attempt to write outside buffer bounds");P||(P="utf8");let G=!1;for(;;)switch(P){case"hex":return et(this,h,g,v);case"utf8":case"utf-8":return T(this,h,g,v);case"ascii":case"latin1":case"binary":return F(this,h,g,v);case"base64":return Q(this,h,g,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,h,g,v);default:if(G)throw new TypeError("Unknown encoding: "+P);P=(""+P).toLowerCase(),G=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Z(h,g,v){return g===0&&v===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(g,v))}function rt(h,g,v){v=Math.min(h.length,v);const P=[];let $=g;for(;$239?4:G>223?3:G>191?2:1;if($+Wt<=v){let he,qt,Nt,le;switch(Wt){case 1:G<128&&(at=G);break;case 2:he=h[$+1],(he&192)===128&&(le=(G&31)<<6|he&63,le>127&&(at=le));break;case 3:he=h[$+1],qt=h[$+2],(he&192)===128&&(qt&192)===128&&(le=(G&15)<<12|(he&63)<<6|qt&63,le>2047&&(le<55296||le>57343)&&(at=le));break;case 4:he=h[$+1],qt=h[$+2],Nt=h[$+3],(he&192)===128&&(qt&192)===128&&(Nt&192)===128&&(le=(G&15)<<18|(he&63)<<12|(qt&63)<<6|Nt&63,le>65535&&le<1114112&&(at=le))}}at===null?(at=65533,Wt=1):at>65535&&(at-=65536,P.push(at>>>10&1023|55296),at=56320|at&1023),P.push(at),$+=Wt}return ft(P)}const lt=4096;function ft(h){const g=h.length;if(g<=lt)return String.fromCharCode.apply(String,h);let v="",P=0;for(;PP)&&(v=P);let $="";for(let G=g;Gv&&(h=v),g<0?(g+=v,g<0&&(g=0)):g>v&&(g=v),gv)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUintLE=u.prototype.readUIntLE=function(h,g,v){h=h>>>0,g=g>>>0,v||Pt(h,g,this.length);let P=this[h],$=1,G=0;for(;++G>>0,g=g>>>0,v||Pt(h,g,this.length);let P=this[h+--g],$=1;for(;g>0&&($*=256);)P+=this[h+--g]*$;return P},u.prototype.readUint8=u.prototype.readUInt8=function(h,g){return h=h>>>0,g||Pt(h,1,this.length),this[h]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(h,g){return h=h>>>0,g||Pt(h,2,this.length),this[h]|this[h+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(h,g){return h=h>>>0,g||Pt(h,2,this.length),this[h]<<8|this[h+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(h,g){return h=h>>>0,g||Pt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(h,g){return h=h>>>0,g||Pt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},u.prototype.readBigUInt64LE=It(function(h){h=h>>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&it(h,this.length-8);const P=g+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,$=this[++h]+this[++h]*2**8+this[++h]*2**16+v*2**24;return BigInt(P)+(BigInt($)<>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&it(h,this.length-8);const P=g*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],$=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+v;return(BigInt(P)<>>0,g=g>>>0,v||Pt(h,g,this.length);let P=this[h],$=1,G=0;for(;++G=$&&(P-=Math.pow(2,8*g)),P},u.prototype.readIntBE=function(h,g,v){h=h>>>0,g=g>>>0,v||Pt(h,g,this.length);let P=g,$=1,G=this[h+--P];for(;P>0&&($*=256);)G+=this[h+--P]*$;return $*=128,G>=$&&(G-=Math.pow(2,8*g)),G},u.prototype.readInt8=function(h,g){return h=h>>>0,g||Pt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},u.prototype.readInt16LE=function(h,g){h=h>>>0,g||Pt(h,2,this.length);const v=this[h]|this[h+1]<<8;return v&32768?v|4294901760:v},u.prototype.readInt16BE=function(h,g){h=h>>>0,g||Pt(h,2,this.length);const v=this[h+1]|this[h]<<8;return v&32768?v|4294901760:v},u.prototype.readInt32LE=function(h,g){return h=h>>>0,g||Pt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},u.prototype.readInt32BE=function(h,g){return h=h>>>0,g||Pt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},u.prototype.readBigInt64LE=It(function(h){h=h>>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&it(h,this.length-8);const P=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(v<<24);return(BigInt(P)<>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&it(h,this.length-8);const P=(g<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(P)<>>0,g||Pt(h,4,this.length),n.read(this,h,!0,23,4)},u.prototype.readFloatBE=function(h,g){return h=h>>>0,g||Pt(h,4,this.length),n.read(this,h,!1,23,4)},u.prototype.readDoubleLE=function(h,g){return h=h>>>0,g||Pt(h,8,this.length),n.read(this,h,!0,52,8)},u.prototype.readDoubleBE=function(h,g){return h=h>>>0,g||Pt(h,8,this.length),n.read(this,h,!1,52,8)};function $t(h,g,v,P,$,G){if(!u.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>$||gh.length)throw new RangeError("Index out of range")}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(h,g,v,P){if(h=+h,g=g>>>0,v=v>>>0,!P){const at=Math.pow(2,8*v)-1;$t(this,h,g,v,at,0)}let $=1,G=0;for(this[g]=h&255;++G>>0,v=v>>>0,!P){const at=Math.pow(2,8*v)-1;$t(this,h,g,v,at,0)}let $=v-1,G=1;for(this[g+$]=h&255;--$>=0&&(G*=256);)this[g+$]=h/G&255;return g+v},u.prototype.writeUint8=u.prototype.writeUInt8=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,1,255,0),this[g]=h&255,g+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,65535,0),this[g]=h&255,this[g+1]=h>>>8,g+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,65535,0),this[g]=h>>>8,this[g+1]=h&255,g+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,4294967295,0),this[g+3]=h>>>24,this[g+2]=h>>>16,this[g+1]=h>>>8,this[g]=h&255,g+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,4294967295,0),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4};function Et(h,g,v,P,$){X(g,P,$,h,v,7);let G=Number(g&BigInt(4294967295));h[v++]=G,G=G>>8,h[v++]=G,G=G>>8,h[v++]=G,G=G>>8,h[v++]=G;let at=Number(g>>BigInt(32)&BigInt(4294967295));return h[v++]=at,at=at>>8,h[v++]=at,at=at>>8,h[v++]=at,at=at>>8,h[v++]=at,v}function ne(h,g,v,P,$){X(g,P,$,h,v,7);let G=Number(g&BigInt(4294967295));h[v+7]=G,G=G>>8,h[v+6]=G,G=G>>8,h[v+5]=G,G=G>>8,h[v+4]=G;let at=Number(g>>BigInt(32)&BigInt(4294967295));return h[v+3]=at,at=at>>8,h[v+2]=at,at=at>>8,h[v+1]=at,at=at>>8,h[v]=at,v+8}u.prototype.writeBigUInt64LE=It(function(h,g=0){return Et(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=It(function(h,g=0){return ne(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(h,g,v,P){if(h=+h,g=g>>>0,!P){const Wt=Math.pow(2,8*v-1);$t(this,h,g,v,Wt-1,-Wt)}let $=0,G=1,at=0;for(this[g]=h&255;++$>0)-at&255;return g+v},u.prototype.writeIntBE=function(h,g,v,P){if(h=+h,g=g>>>0,!P){const Wt=Math.pow(2,8*v-1);$t(this,h,g,v,Wt-1,-Wt)}let $=v-1,G=1,at=0;for(this[g+$]=h&255;--$>=0&&(G*=256);)h<0&&at===0&&this[g+$+1]!==0&&(at=1),this[g+$]=(h/G>>0)-at&255;return g+v},u.prototype.writeInt8=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,1,127,-128),h<0&&(h=255+h+1),this[g]=h&255,g+1},u.prototype.writeInt16LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,32767,-32768),this[g]=h&255,this[g+1]=h>>>8,g+2},u.prototype.writeInt16BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,32767,-32768),this[g]=h>>>8,this[g+1]=h&255,g+2},u.prototype.writeInt32LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,2147483647,-2147483648),this[g]=h&255,this[g+1]=h>>>8,this[g+2]=h>>>16,this[g+3]=h>>>24,g+4},u.prototype.writeInt32BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4},u.prototype.writeBigInt64LE=It(function(h,g=0){return Et(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=It(function(h,g=0){return ne(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function nn(h,g,v,P,$,G){if(v+P>h.length)throw new RangeError("Index out of range");if(v<0)throw new RangeError("Index out of range")}function mn(h,g,v,P,$){return g=+g,v=v>>>0,$||nn(h,g,v,4),n.write(h,g,v,P,23,4),v+4}u.prototype.writeFloatLE=function(h,g,v){return mn(this,h,g,!0,v)},u.prototype.writeFloatBE=function(h,g,v){return mn(this,h,g,!1,v)};function vn(h,g,v,P,$){return g=+g,v=v>>>0,$||nn(h,g,v,8),n.write(h,g,v,P,52,8),v+8}u.prototype.writeDoubleLE=function(h,g,v){return vn(this,h,g,!0,v)},u.prototype.writeDoubleBE=function(h,g,v){return vn(this,h,g,!1,v)},u.prototype.copy=function(h,g,v,P){if(!u.isBuffer(h))throw new TypeError("argument should be a Buffer");if(v||(v=0),!P&&P!==0&&(P=this.length),g>=h.length&&(g=h.length),g||(g=0),P>0&&P=this.length)throw new RangeError("Index out of range");if(P<0)throw new RangeError("sourceEnd out of bounds");P>this.length&&(P=this.length),h.length-g>>0,v=v===void 0?this.length:v>>>0,h||(h=0);let $;if(typeof h=="number")for($=g;$2**32?$=W(String(v)):typeof v=="bigint"&&($=String(v),(v>BigInt(2)**BigInt(32)||v<-(BigInt(2)**BigInt(32)))&&($=W($)),$+="n"),P+=` It must be ${g}. Received ${$}`,P},RangeError);function W(h){let g="",v=h.length;const P=h[0]==="-"?1:0;for(;v>=P+4;v-=3)g=`_${h.slice(v-3,v)}${g}`;return`${h.slice(0,v)}${g}`}function K(h,g,v){B(g,"offset"),(h[g]===void 0||h[g+v]===void 0)&&it(g,h.length-(v+1))}function X(h,g,v,P,$,G){if(h>v||h= 0${at} and < 2${at} ** ${(G+1)*8}${at}`:Wt=`>= -(2${at} ** ${(G+1)*8-1}${at}) and < 2 ** ${(G+1)*8-1}${at}`,new C.ERR_OUT_OF_RANGE("value",Wt,h)}K(P,$,G)}function B(h,g){if(typeof h!="number")throw new C.ERR_INVALID_ARG_TYPE(g,"number",h)}function it(h,g,v){throw Math.floor(h)!==h?(B(h,v),new C.ERR_OUT_OF_RANGE("offset","an integer",h)):g<0?new C.ERR_BUFFER_OUT_OF_BOUNDS:new C.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${g}`,h)}const st=/[^+/0-9A-Za-z-_]/g;function nt(h){if(h=h.split("=")[0],h=h.trim().replace(st,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function tt(h,g){g=g||1/0;let v;const P=h.length;let $=null;const G=[];for(let at=0;at55295&&v<57344){if(!$){if(v>56319){(g-=3)>-1&&G.push(239,191,189);continue}else if(at+1===P){(g-=3)>-1&&G.push(239,191,189);continue}$=v;continue}if(v<56320){(g-=3)>-1&&G.push(239,191,189),$=v;continue}v=($-55296<<10|v-56320)+65536}else $&&(g-=3)>-1&&G.push(239,191,189);if($=null,v<128){if((g-=1)<0)break;G.push(v)}else if(v<2048){if((g-=2)<0)break;G.push(v>>6|192,v&63|128)}else if(v<65536){if((g-=3)<0)break;G.push(v>>12|224,v>>6&63|128,v&63|128)}else if(v<1114112){if((g-=4)<0)break;G.push(v>>18|240,v>>12&63|128,v>>6&63|128,v&63|128)}else throw new Error("Invalid code point")}return G}function mt(h){const g=[];for(let v=0;v>8,$=v%256,G.push($),G.push(P);return G}function yt(h){return e.toByteArray(nt(h))}function vt(h,g,v,P){let $;for($=0;$=g.length||$>=h.length);++$)g[$+v]=h[$];return $}function wt(h,g){return h instanceof g||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===g.name}function Lt(h){return h!==h}const Jt=(function(){const h="0123456789abcdef",g=new Array(256);for(let v=0;v<16;++v){const P=v*16;for(let $=0;$<16;++$)g[P+$]=h[v]+h[$]}return g})();function It(h){return typeof BigInt>"u"?ae:h}function ae(){throw new Error("BigInt not supported")}})(om);const qh=om.Buffer,rm=Symbol.for("NcFormBox:context");function am(){return Ci(rm,{isInFormBox:!1,formBoxItemClass:void 0})}const kx={class:"button-vue__wrapper"},Rx={class:"button-vue__icon"},Px={class:"button-vue__text"},Lx=Rt({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(t,{emit:e}){const n=t,i=e,{formBoxItemClass:o}=am(),s=Ci(im,null)!==null,r=ht(()=>s&&n.to?"RouterLink":n.href?"a":"button"),a=ht(()=>r.value==="button"&&typeof n.pressed=="boolean"),l=ht(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),c=ht(()=>l.value.startsWith("tertiary")),u=ht(()=>n.alignment.split("-")[0]),d=ht(()=>n.alignment.includes("-")),f=Ci("NcPopover:trigger:attrs",()=>({}),!1),p=ht(()=>f()),y=ht(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...p.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function m(x){a.value&&i("update:pressed",!n.pressed),i("click",x)}return(x,b)=>(O(),Ct(_l(r.value),ee({class:["button-vue",[`button-vue--size-${t.size}`,{[`button-vue--${l.value}`]:l.value,"button-vue--tertiary":c.value,"button-vue--wide":t.wide,[`button-vue--${u.value}`]:u.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":E(qc),"button-vue--legacy34":E(Jw)},E(o)]],"aria-label":t.ariaLabel},y.value,{onClick:m}),{default:kt(()=>[w("span",kx,[w("span",Rx,[Zt(x.$slots,"icon",{},void 0,!0)]),w("span",Px,[Zt(x.$slots,"default",{},()=>[Dt(L(t.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),si=Ie(Lx,[["__scopeId","data-v-00a99684"]]),Dx=["aria-label"],Nx=["width","height"],Ox=["fill"],$x=["fill"],Bx={key:0},Fx=Rt({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(t){const e=t,n=ht(()=>{const i=["#777","#CCC"];return e.appearance==="light"?i:e.appearance==="dark"?i.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(i,o)=>(O(),J("span",{"aria-label":t.name,role:"img",class:"material-design-icon loading-icon"},[(O(),J("svg",{width:t.size,height:t.size,viewBox:"0 0 24 24"},[w("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,Ox),w("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[t.name?(O(),J("title",Bx,L(t.name),1)):_t("",!0)],8,$x)],8,Nx))],8,Dx))}}),jx=Ie(Fx,[["__scopeId","data-v-cf399190"]]);wr(Sw);const Ux=Rt({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(t,{emit:e}){const n=t,i=e,o=ge(!1);async function s(r){if(!o.value){o.value=!0;try{const a=n.type==="reset"?!1:void 0,l=await n.callback?.()??a;l!==!1&&i("click",r,l)}finally{o.value=!1}}}return(r,a)=>(O(),Ct(E(si),{"aria-label":t.label,disabled:t.disabled,type:t.type,variant:t.variant,onClick:s},{icon:kt(()=>[Zt(r.$slots,"icon",{},()=>[o.value?(O(),Ct(E(jx),{key:0,name:E(We)("Loading …")},null,8,["name"])):t.icon!==void 0?(O(),Ct(E(Vn),{key:1,svg:t.icon},null,8,["svg"])):_t("",!0)])]),default:kt(()=>[Dt(L(t.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var lm=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Na=lm.join(","),um=typeof Element>"u",fo=um?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Oa=!um&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t?.ownerDocument},$a=function(t,e){var n;e===void 0&&(e=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",s=o||e&&t&&(typeof t.closest=="function"?t.closest("[inert]"):$a(t.parentNode));return s},Vx=function(t){var e,n=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return n===""||n==="true"},cm=function(t,e,n){if($a(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(Na));return e&&fo.call(t,Na)&&i.unshift(t),i=i.filter(n),i},Ba=function(t,e,n){for(var i=[],o=Array.from(t);o.length;){var s=o.shift();if(!$a(s,!1))if(s.tagName==="SLOT"){var r=s.assignedElements(),a=r.length?r:s.children,l=Ba(a,!0,n);n.flatten?i.push.apply(i,l):i.push({scopeParent:s,candidates:l})}else{var c=fo.call(s,Na);c&&n.filter(s)&&(e||!t.includes(s))&&i.push(s);var u=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),d=!$a(u,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(s));if(u&&d){var f=Ba(u===!0?s.children:u.children,!0,n);n.flatten?i.push.apply(i,f):i.push({scopeParent:s,candidates:f})}else o.unshift.apply(o,s.children)}}return i},dm=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Qi=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||Vx(t))&&!dm(t)?0:t.tabIndex},Ix=function(t,e){var n=Qi(t);return n<0&&e&&!dm(t)?0:n},zx=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},hm=function(t){return t.tagName==="INPUT"},Hx=function(t){return hm(t)&&t.type==="hidden"},Jx=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return e},Wx=function(t,e){for(var n=0;nsummary:first-of-type"),l=a?t.parentElement:t;if(fo.call(l,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var c=t;t;){var u=t.parentElement,d=Oa(t);if(u&&!u.shadowRoot&&i(u)===!0)return Kh(t);t.assignedSlot?t=t.assignedSlot:!u&&d!==t.ownerDocument?t=d.host:t=u}t=c}if(Xx(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Kh(t);return!1},Zx=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var n=0;n=0)},fm=function(t){var e=[],n=[];return t.forEach(function(i,o){var s=!!i.scopeParent,r=s?i.scopeParent:i,a=Ix(r,s),l=s?fm(i.candidates):r;a===0?s?e.push.apply(e,l):e.push(r):n.push({documentOrder:o,tabIndex:a,item:i,isScope:s,content:l})}),n.sort(zx).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(e)},Mx=function(t,e){e=e||{};var n;return e.getShadowRoot?n=Ba([t],e.includeContainer,{filter:ac.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:Qx}):n=cm(t,e.includeContainer,ac.bind(null,e)),fm(n)},t2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=Ba([t],e.includeContainer,{filter:Fa.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):n=cm(t,e.includeContainer,Fa.bind(null,e)),n},ko=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return fo.call(t,Na)===!1?!1:ac(e,t)},e2=lm.concat("iframe:not([inert]):not([inert] *)").join(","),uu=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return fo.call(t,e2)===!1?!1:Fa(e,t)};function lc(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,r=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return r=l.done,l},e:function(l){a=!0,s=l},f:function(){try{r||n.return==null||n.return()}finally{if(a)throw s}}}}function i2(t,e,n){return(e=l2(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o2(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function s2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function Zh(t){for(var e=1;e0?t[t.length-1]:null},activateTrap:function(t,e){var n=oi.getActiveTrap(t);e!==n&&oi.pauseTrap(t);var i=t.indexOf(e);i===-1||t.splice(i,1),t.push(e)},deactivateTrap:function(t,e){var n=t.indexOf(e);n!==-1&&t.splice(n,1),oi.unpauseTrap(t)},pauseTrap:function(t){var e=oi.getActiveTrap(t);e?._setPausedState(!0)},unpauseTrap:function(t){var e=oi.getActiveTrap(t);e&&!e._isManuallyPaused()&&e._setPausedState(!1)}},u2=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},c2=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},Os=function(t){return t?.key==="Tab"||t?.keyCode===9},d2=function(t){return Os(t)&&!t.shiftKey},h2=function(t){return Os(t)&&t.shiftKey},Qh=function(t){return setTimeout(t,0)},hs=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:{},Q=F.hasFallback,M=Q===void 0?!1:Q,Z=F.params,rt=Z===void 0?[]:Z,lt=o[T];if(typeof lt=="function"&&(lt=lt.apply(void 0,r2(rt))),lt===!0&&(lt=void 0),!lt){if(lt===void 0||lt===!1)return lt;throw new Error("`".concat(T,"` was specified but was not a node, or did not return a node"))}var ft=lt;if(typeof lt=="string"){try{ft=n.querySelector(lt)}catch(pt){throw new Error("`".concat(T,'` appears to be an invalid selector; error="').concat(pt.message,'"'))}if(!ft&&!M)throw new Error("`".concat(T,"` as selector refers to no known node"))}return ft},u=function(T){var F=T.activeElement;return F?F.shadowRoot&&F.shadowRoot.activeElement!==null?u(F.shadowRoot):F:null},d=function(){var T=c("initialFocus",{hasFallback:!0});if(T===!1)return!1;if(T===void 0||T&&!uu(T,o.tabbableOptions)){var F=u(n);if(l(F)>=0)T=F;else{var Q=s.tabbableGroups[0],M=Q&&Q.firstTabbableNode;T=M||c("fallbackFocus")}}else T===null&&(T=c("fallbackFocus"));if(!T)throw new Error("Your focus-trap needs to have at least one focusable element");return T},f=function(){if(s.containerGroups=s.containers.map(function(T){var F=Mx(T,o.tabbableOptions),Q=t2(T,o.tabbableOptions),M=F.length>0?F[0]:void 0,Z=F.length>0?F[F.length-1]:void 0,rt=Q.find(function(pt){return ko(pt)}),lt=Q.slice().reverse().find(function(pt){return ko(pt)}),ft=!!F.find(function(pt){return Qi(pt)>0});return{container:T,tabbableNodes:F,focusableNodes:Q,posTabIndexesFound:ft,firstTabbableNode:M,lastTabbableNode:Z,firstDomTabbableNode:rt,lastDomTabbableNode:lt,nextTabbableNode:function(pt){var xt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,gt=F.indexOf(pt);return gt<0?xt?Q.slice(Q.indexOf(pt)+1).find(function(Gt){return ko(Gt)}):Q.slice(0,Q.indexOf(pt)).reverse().find(function(Gt){return ko(Gt)}):F[gt+(xt?1:-1)]}}}),s.tabbableGroups=s.containerGroups.filter(function(T){return T.tabbableNodes.length>0}),s.tabbableGroups.length<=0&&!c("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(s.containerGroups.find(function(T){return T.posTabIndexesFound})&&s.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.")},p=function(T){if(T!==!1&&T!==u(document)){if(!T||!T.focus){p(d());return}T.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=T,u2(T)&&T.select()}},y=function(T){var F=c("setReturnFocus",{params:[T]});return F||(F===!1?!1:T)},m=function(T){var F=T.target,Q=T.event,M=T.isBackward,Z=M===void 0?!1:M;F=F||Vr(Q),f();var rt=null;if(s.tabbableGroups.length>0){var lt=l(F,Q),ft=lt>=0?s.containerGroups[lt]:void 0;if(lt<0)Z?rt=s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:rt=s.tabbableGroups[0].firstTabbableNode;else if(Z){var pt=s.tabbableGroups.findIndex(function(Et){var ne=Et.firstTabbableNode;return F===ne});if(pt<0&&(ft.container===F||uu(F,o.tabbableOptions)&&!ko(F,o.tabbableOptions)&&!ft.nextTabbableNode(F,!1))&&(pt=lt),pt>=0){var xt=pt===0?s.tabbableGroups.length-1:pt-1,gt=s.tabbableGroups[xt];rt=Qi(F)>=0?gt.lastTabbableNode:gt.lastDomTabbableNode}else Os(Q)||(rt=ft.nextTabbableNode(F,!1))}else{var Gt=s.tabbableGroups.findIndex(function(Et){var ne=Et.lastTabbableNode;return F===ne});if(Gt<0&&(ft.container===F||uu(F,o.tabbableOptions)&&!ko(F,o.tabbableOptions)&&!ft.nextTabbableNode(F))&&(Gt=lt),Gt>=0){var Pt=Gt===s.tabbableGroups.length-1?0:Gt+1,$t=s.tabbableGroups[Pt];rt=Qi(F)>=0?$t.firstTabbableNode:$t.firstDomTabbableNode}else Os(Q)||(rt=ft.nextTabbableNode(F))}}else rt=c("fallbackFocus");return rt},x=function(T){var F=Vr(T);if(!(l(F,T)>=0)){if(hs(o.clickOutsideDeactivates,T)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}hs(o.allowOutsideClick,T)||T.preventDefault()}},b=function(T){var F=Vr(T),Q=l(F,T)>=0;if(Q||F instanceof Document)Q&&(s.mostRecentlyFocusedNode=F);else{T.stopImmediatePropagation();var M,Z=!0;if(s.mostRecentlyFocusedNode)if(Qi(s.mostRecentlyFocusedNode)>0){var rt=l(s.mostRecentlyFocusedNode),lt=s.containerGroups[rt].tabbableNodes;if(lt.length>0){var ft=lt.findIndex(function(pt){return pt===s.mostRecentlyFocusedNode});ft>=0&&(o.isKeyForward(s.recentNavEvent)?ft+1=0&&(M=lt[ft-1],Z=!1))}}else s.containerGroups.some(function(pt){return pt.tabbableNodes.some(function(xt){return Qi(xt)>0})})||(Z=!1);else Z=!1;Z&&(M=m({target:s.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(s.recentNavEvent)})),p(M||s.mostRecentlyFocusedNode||d())}s.recentNavEvent=void 0},A=function(T){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;s.recentNavEvent=T;var Q=m({event:T,isBackward:F});Q&&(Os(T)&&T.preventDefault(),p(Q))},R=function(T){(o.isKeyForward(T)||o.isKeyBackward(T))&&A(T,o.isKeyBackward(T))},S=function(T){c2(T)&&hs(o.escapeDeactivates,T)!==!1&&(T.preventDefault(),r.deactivate())},N=function(T){var F=Vr(T);l(F,T)>=0||hs(o.clickOutsideDeactivates,T)||hs(o.allowOutsideClick,T)||(T.preventDefault(),T.stopImmediatePropagation())},j=function(){if(s.active){oi.activateTrap(i,r);var T;return o.delayInitialFocus?T=new Promise(function(F){s.delayInitialFocusTimer=Qh(function(){p(d()),F()})}):p(d()),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",x,{capture:!0,passive:!1}),n.addEventListener("touchstart",x,{capture:!0,passive:!1}),n.addEventListener("click",N,{capture:!0,passive:!1}),n.addEventListener("keydown",R,{capture:!0,passive:!1}),n.addEventListener("keydown",S),T}},U=function(T){s.active&&!s.paused&&r._setSubtreeIsolation(!1),s.adjacentElements.clear(),s.alreadySilent.clear();var F=new Set,Q=new Set,M=Xh(T),Z;try{for(M.s();!(Z=M.n()).done;){var rt=Z.value;F.add(rt);for(var lt=typeof ShadowRoot<"u"&&rt.getRootNode()instanceof ShadowRoot,ft=rt;ft;){F.add(ft);var pt=ft.parentElement,xt=[];pt?xt=pt.children:!pt&<&&(xt=ft.getRootNode().children,pt=ft.getRootNode().host,lt=typeof ShadowRoot<"u"&&pt.getRootNode()instanceof ShadowRoot);var gt=Xh(xt),Gt;try{for(gt.s();!(Gt=gt.n()).done;){var Pt=Gt.value;Q.add(Pt)}}catch($t){gt.e($t)}finally{gt.f()}ft=pt}}}catch($t){M.e($t)}finally{M.f()}F.forEach(function($t){Q.delete($t)}),s.adjacentElements=Q},H=function(){if(s.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",x,!0),n.removeEventListener("touchstart",x,!0),n.removeEventListener("click",N,!0),n.removeEventListener("keydown",R,!0),n.removeEventListener("keydown",S),r},q=function(T){var F=s.mostRecentlyFocusedNode;if(F){var Q=T.some(function(Z){var rt=Array.from(Z.removedNodes);return rt.some(function(lt){return lt===F||typeof lt.contains=="function"&<.contains(F)})});if(Q&&s.containers.some(function(Z){return Z?.isConnected})){f();var M=d();p(M)}}},V=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(q):void 0,et=function(){V&&(V.disconnect(),s.active&&!s.paused&&s.containers.map(function(T){V.observe(T,{subtree:!0,childList:!0})}))};return r={get active(){return s.active},get paused(){return s.paused},activate:function(T){if(s.active)return this;var F=a(T,"onActivate"),Q=a(T,"onPostActivate"),M=a(T,"checkCanFocusTrap"),Z=oi.getActiveTrap(i),rt=!1;if(Z&&!Z.paused){var lt;(lt=Z._setSubtreeIsolation)===null||lt===void 0||lt.call(Z,!1),rt=!0}try{M||f(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=u(n),F?.({trap:r});var ft=function(){M&&f();var xt=function(){r._setSubtreeIsolation(!0),et(),Q?.({trap:r})},gt=j();gt?gt.then(xt):xt()};if(M)return M(s.containers.concat()).then(ft,ft),this;ft()}catch(xt){if(Z===oi.getActiveTrap(i)&&rt){var pt;(pt=Z._setSubtreeIsolation)===null||pt===void 0||pt.call(Z,!0)}throw xt}return this},deactivate:function(T){if(!s.active)return this;var F=Zh({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},T);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,s.paused||r._setSubtreeIsolation(!1),s.alreadySilent.clear(),H(),s.active=!1,s.paused=!1,et(),oi.deactivateTrap(i,r);var Q=a(F,"onDeactivate"),M=a(F,"onPostDeactivate"),Z=a(F,"checkCanReturnFocus"),rt=a(F,"delayReturnFocus"),lt=a(F,"returnFocus","returnFocusOnDeactivate");Q?.({trap:r});var ft=function(){lt&&p(y(s.nodeFocusedBeforeActivation)),M?.({trap:r})},pt=function(){rt&<?Qh(ft):ft()};return lt&&Z?(Z(y(s.nodeFocusedBeforeActivation)).then(pt,pt),this):(pt(),this)},pause:function(T){return s.active?(s.manuallyPaused=!0,this._setPausedState(!0,T)):this},unpause:function(T){return s.active?(s.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,T)):this},updateContainerElements:function(T){var F=[].concat(T).filter(Boolean);return s.containers=F.map(function(Q){return typeof Q=="string"?n.querySelector(Q):Q}),o.isolateSubtrees&&U(s.containers),s.active&&(f(),s.paused||r._setSubtreeIsolation(!0)),et(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return s.manuallyPaused}},_setPausedState:{value:function(T,F){if(s.paused===T)return this;if(s.paused=T,T){var Q=a(F,"onPause"),M=a(F,"onPostPause");Q?.({trap:r}),H(),r._setSubtreeIsolation(!1),et(),M?.({trap:r})}else{var Z=a(F,"onUnpause"),rt=a(F,"onPostUnpause");Z?.({trap:r});var lt=function(){f();var ft=function(){r._setSubtreeIsolation(!0),et(),rt?.({trap:r})},pt=j();pt?pt.then(ft):ft()};lt()}return this}},_setSubtreeIsolation:{value:function(T){o.isolateSubtrees&&s.adjacentElements.forEach(function(F){var Q;T?o.isolateSubtrees==="aria-hidden"?((F.ariaHidden==="true"||((Q=F.getAttribute("aria-hidden"))===null||Q===void 0?void 0:Q.toLowerCase())==="true")&&s.alreadySilent.add(F),F.setAttribute("aria-hidden","true")):((F.inert||F.hasAttribute("inert"))&&s.alreadySilent.add(F),F.setAttribute("inert",!0)):s.alreadySilent.has(F)||(o.isolateSubtrees==="aria-hidden"?F.removeAttribute("aria-hidden"):F.removeAttribute("inert"))})}}}),r.updateContainerElements(t),r};function er(){return window._nc_focus_trap??=[],window._nc_focus_trap}function p2(){let t=[];return{pause(){t=[...er()];for(const e of t)e.pause()},unpause(){if(t.length===er().length)for(const e of t)e.unpause();t=[]}}}function g2(t,e={}){const n=p2();Ke(t,()=>{Fe(e.disabled)||(Fe(t)?n.pause():n.unpause())}),Wn(()=>{n.unpause()})}const m2=["top","right","bottom","left"],Mh=["start","end"],tf=m2.reduce((t,e)=>t.concat(e,e+"-"+Mh[0],e+"-"+Mh[1]),[]),nr=Math.min,uc=Math.max,v2={left:"right",right:"left",bottom:"top",top:"bottom"};function mm(t,e,n){return uc(t,nr(e,n))}function yo(t,e){return typeof t=="function"?t(e):t}function hi(t){return t.split("-")[0]}function An(t){return t.split("-")[1]}function vm(t){return t==="x"?"y":"x"}function Kc(t){return t==="y"?"height":"width"}function ri(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function Xc(t){return vm(ri(t))}function ym(t,e,n){n===void 0&&(n=!1);const i=An(t),o=Xc(t),s=Kc(o);let r=o==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(r=Ua(r)),[r,Ua(r)]}function y2(t){const e=Ua(t);return[ja(t),e,ja(e)]}function ja(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const ef=["left","right"],nf=["right","left"],b2=["top","bottom"],_2=["bottom","top"];function w2(t,e,n){switch(t){case"top":case"bottom":return n?e?nf:ef:e?ef:nf;case"left":case"right":return e?b2:_2;default:return[]}}function x2(t,e,n,i){const o=An(t);let s=w2(hi(t),n==="start",i);return o&&(s=s.map(r=>r+"-"+o),e&&(s=s.concat(s.map(ja)))),s}function Ua(t){const e=hi(t);return v2[e]+t.slice(e.length)}function E2(t){var e,n,i,o;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(i=t.bottom)!=null?i:0,left:(o=t.left)!=null?o:0}}function bm(t){return typeof t!="number"?E2(t):{top:t,right:t,bottom:t,left:t}}function $s(t){const{x:e,y:n,width:i,height:o}=t;return{width:i,height:o,top:n,left:e,right:e+i,bottom:n+o,x:e,y:n}}function of(t,e,n){let{reference:i,floating:o}=t;const s=ri(e),r=Xc(e),a=Kc(r),l=hi(e),c=s==="y",u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,f=i[a]/2-o[a]/2;let p;switch(l){case"top":p={x:u,y:i.y-o.height};break;case"bottom":p={x:u,y:i.y+i.height};break;case"right":p={x:i.x+i.width,y:d};break;case"left":p={x:i.x-o.width,y:d};break;default:p={x:i.x,y:i.y}}const y=An(e);return y&&(p[r]+=f*(y==="end"?1:-1)*(n&&c?-1:1)),p}async function A2(t,e){var n;e===void 0&&(e={});const{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=yo(e,t),y=bm(p),m=a[f?d==="floating"?"reference":"floating":d],x=$s(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(m)))==null||n?m:m.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),b=d==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,A=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),R=await(s.isElement==null?void 0:s.isElement(A))&&await(s.getScale==null?void 0:s.getScale(A))||{x:1,y:1},S=$s(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:b,offsetParent:A,strategy:l}):b);return{top:(x.top-S.top+y.top)/R.y,bottom:(S.bottom-x.bottom+y.bottom)/R.y,left:(x.left-S.left+y.left)/R.x,right:(S.right-x.right+y.right)/R.x}}const S2=50,C2=async(t,e,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=n,a=r.detectOverflow?r:{...r,detectOverflow:A2},l=await(r.isRTL==null?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:o}),{x:u,y:d}=of(c,i,l),f=i,p=0;const y={};for(let m=0;m({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:o,rects:s,platform:r,elements:a,middlewareData:l}=e,{element:c,padding:u=0}=yo(t,e)||{};if(c==null)return{};const d=bm(u),f={x:n,y:i},p=Xc(o),y=Kc(p),m=await r.getDimensions(c),x=p==="y",b=x?"top":"left",A=x?"bottom":"right",R=x?"clientHeight":"clientWidth",S=s.reference[y]+s.reference[p]-f[p]-s.floating[y],N=f[p]-s.reference[p],j=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let U=j?j[R]:0;(!U||!await(r.isElement==null?void 0:r.isElement(j)))&&(U=a.floating[R]||s.floating[y]);const H=S/2-N/2,q=U/2-m[y]/2-1,V=nr(d[b],q),et=nr(d[A],q),T=U-m[y]-et,F=U/2-m[y]/2+H,Q=mm(V,F,T),M=!l.arrow&&An(o)!=null&&F!==Q&&s.reference[y]/2-(FAn(i)===t),...n.filter(i=>An(i)!==t)]:n.filter(i=>hi(i)===i)).filter(i=>t?An(i)===t||(e?ja(i)!==i:!1):!0)}const R2=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,i,o;const{rects:s,middlewareData:r,placement:a,platform:l,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:f=tf,autoAlignment:p=!0,...y}=yo(t,e),m=d!==void 0||f===tf?k2(d||null,p,f):f,x=((n=r.autoPlacement)==null?void 0:n.index)||0,b=m[x];if(b==null)return{};if(a!==b)return{reset:{placement:m[0]}};const A=await l.detectOverflow(e,y),R=ym(b,s,await(l.isRTL==null?void 0:l.isRTL(c.floating))),S=[A[hi(b)],A[R[0]],A[R[1]]],N=[...((i=r.autoPlacement)==null?void 0:i.overflows)||[],{placement:b,overflows:S}],j=m[x+1];if(j)return{data:{index:x+1,overflows:N},reset:{placement:j}};const U=N.map(q=>{const V=An(q.placement);return[q.placement,V&&u?q.overflows.slice(0,2).reduce((et,T)=>et+T,0):q.overflows[0],q.overflows]}).sort((q,V)=>q[1]-V[1]),H=((o=U.filter(q=>q[2].slice(0,An(q[0])?2:3).every(V=>V<=0))[0])==null?void 0:o[0])||U[0][0];return H!==a?{data:{index:x+1,overflows:N},reset:{placement:H}}:{}}}},P2=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:m=!0,...x}=yo(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const b=hi(o),A=ri(a),R=hi(a)===a,S=await(l.isRTL==null?void 0:l.isRTL(c.floating)),N=f||(R||!m?[Ua(a)]:y2(a)),j=y!=="none";!f&&j&&N.push(...x2(a,m,y,S));const U=[a,...N],H=await l.detectOverflow(e,x),q=[];let V=((i=s.flip)==null?void 0:i.overflows)||[];if(u&&q.push(H[b]),d){const Q=ym(o,r,S);q.push(H[Q[0]],H[Q[1]])}if(V=[...V,{placement:o,overflows:q}],!q.every(Q=>Q<=0)){var et,T;const Q=(((et=s.flip)==null?void 0:et.index)||0)+1,M=U[Q];if(M&&(!(d==="alignment"&&A!==ri(M))||V.every(rt=>ri(rt.placement)===A?rt.overflows[0]>0:!0)))return{data:{index:Q,overflows:V},reset:{placement:M}};let Z=(T=V.filter(rt=>rt.overflows[0]<=0).sort((rt,lt)=>rt.overflows[1]-lt.overflows[1])[0])==null?void 0:T.placement;if(!Z)switch(p){case"bestFit":{var F;const rt=(F=V.filter(lt=>{if(j){const ft=ri(lt.placement);return ft===A||ft==="y"}return!0}).map(lt=>[lt.placement,lt.overflows.filter(ft=>ft>0).reduce((ft,pt)=>ft+pt,0)]).sort((lt,ft)=>lt[1]-ft[1])[0])==null?void 0:F[0];rt&&(Z=rt);break}case"initialPlacement":Z=a;break}if(o!==Z)return{reset:{placement:Z}}}return{}}}},L2=new Set(["left","top"]);async function D2(t,e){const{placement:n,platform:i,elements:o}=t,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=hi(n),a=An(n),l=ri(n)==="y",c=L2.has(r)?-1:1,u=s&&l?-1:1,d=yo(e,t);let{mainAxis:f,crossAxis:p,alignmentAxis:y}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof y=="number"&&(p=a==="end"?y*-1:y),l?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const N2=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:o,y:s,placement:r,middlewareData:a}=e,l=await D2(e,t);return r===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},O2=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:o,platform:s}=e,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:A=>{let{x:R,y:S}=A;return{x:R,y:S}}},...c}=yo(t,e),u={x:n,y:i},d=await s.detectOverflow(e,c),f=ri(o),p=vm(f);let y=u[p],m=u[f];const x=(A,R)=>mm(R+d[A==="y"?"top":"left"],R,R-d[A==="y"?"bottom":"right"]);r&&(y=x(p,y)),a&&(m=x(f,m));const b=l.fn({...e,[p]:y,[f]:m});return{...b,data:{x:b.x-n,y:b.y-i,enabled:{[p]:r,[f]:a}}}}}},$2=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:n,rects:i,platform:o,elements:s}=e,{apply:r=()=>{},...a}=yo(t,e),l=await o.detectOverflow(e,a),c=hi(n),u=An(n),d=ri(n)==="y",{width:f,height:p}=i.floating;let y,m;c==="top"||c==="bottom"?(y=c,m=u===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(m=c,y=u==="end"?"top":"bottom");const x=p-l.top-l.bottom,b=f-l.left-l.right,A=nr(p-l[y],x),R=nr(f-l[m],b),S=e.middlewareData.shift,N=!S;let j=A,U=R;S!=null&&S.enabled.x&&(U=b),S!=null&&S.enabled.y&&(j=x),N&&!u&&(d?U=f-2*uc(l.left,l.right):j=p-2*uc(l.top,l.bottom)),await r({...e,availableWidth:U,availableHeight:j});const H=await o.getDimensions(s.floating);return f!==H.width||p!==H.height?{reset:{rects:!0}}:{}}}};function pn(t){var e;return((e=t.ownerDocument)==null?void 0:e.defaultView)||window}function zn(t){return pn(t).getComputedStyle(t)}const sf=Math.min,Bs=Math.max,Va=Math.round;function _m(t){const e=zn(t);let n=parseFloat(e.width),i=parseFloat(e.height);const o=t.offsetWidth,s=t.offsetHeight,r=Va(n)!==o||Va(i)!==s;return r&&(n=o,i=s),{width:n,height:i,fallback:r}}function Di(t){return xm(t)?(t.nodeName||"").toLowerCase():""}let Ir;function wm(){if(Ir)return Ir;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(Ir=t.brands.map((e=>e.brand+"/"+e.version)).join(" "),Ir):navigator.userAgent}function Hn(t){return t instanceof pn(t).HTMLElement}function Ti(t){return t instanceof pn(t).Element}function xm(t){return t instanceof pn(t).Node}function rf(t){return typeof ShadowRoot>"u"?!1:t instanceof pn(t).ShadowRoot||t instanceof ShadowRoot}function Cl(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=zn(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(o)}function B2(t){return["table","td","th"].includes(Di(t))}function cc(t){const e=/firefox/i.test(wm()),n=zn(t),i=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!i&&i!=="none"||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((o=>n.willChange.includes(o)))||["paint","layout","strict","content"].some((o=>{const s=n.contain;return s!=null&&s.includes(o)}))}function Em(){return!/^((?!chrome|android).)*safari/i.test(wm())}function Yc(t){return["html","body","#document"].includes(Di(t))}function Am(t){return Ti(t)?t:t.contextElement}const Sm={x:1,y:1};function Io(t){const e=Am(t);if(!Hn(e))return Sm;const n=e.getBoundingClientRect(),{width:i,height:o,fallback:s}=_m(e);let r=(s?Va(n.width):n.width)/i,a=(s?Va(n.height):n.height)/o;return r&&Number.isFinite(r)||(r=1),a&&Number.isFinite(a)||(a=1),{x:r,y:a}}function ir(t,e,n,i){var o,s;e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=Am(t);let l=Sm;e&&(i?Ti(i)&&(l=Io(i)):l=Io(t));const c=a?pn(a):window,u=!Em()&&n;let d=(r.left+(u&&((o=c.visualViewport)==null?void 0:o.offsetLeft)||0))/l.x,f=(r.top+(u&&((s=c.visualViewport)==null?void 0:s.offsetTop)||0))/l.y,p=r.width/l.x,y=r.height/l.y;if(a){const m=pn(a),x=i&&Ti(i)?pn(i):i;let b=m.frameElement;for(;b&&i&&x!==m;){const A=Io(b),R=b.getBoundingClientRect(),S=getComputedStyle(b);R.x+=(b.clientLeft+parseFloat(S.paddingLeft))*A.x,R.y+=(b.clientTop+parseFloat(S.paddingTop))*A.y,d*=A.x,f*=A.y,p*=A.x,y*=A.y,d+=R.x,f+=R.y,b=pn(b).frameElement}}return{width:p,height:y,top:f,right:d+p,bottom:f+y,left:d,x:d,y:f}}function ki(t){return((xm(t)?t.ownerDocument:t.document)||window.document).documentElement}function Tl(t){return Ti(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Cm(t){return ir(ki(t)).left+Tl(t).scrollLeft}function or(t){if(Di(t)==="html")return t;const e=t.assignedSlot||t.parentNode||rf(t)&&t.host||ki(t);return rf(e)?e.host:e}function Tm(t){const e=or(t);return Yc(e)?e.ownerDocument.body:Hn(e)&&Cl(e)?e:Tm(e)}function Ia(t,e){var n;e===void 0&&(e=[]);const i=Tm(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=pn(i);return o?e.concat(s,s.visualViewport||[],Cl(i)?i:[]):e.concat(i,Ia(i))}function af(t,e,n){return e==="viewport"?$s((function(i,o){const s=pn(i),r=ki(i),a=s.visualViewport;let l=r.clientWidth,c=r.clientHeight,u=0,d=0;if(a){l=a.width,c=a.height;const f=Em();(f||!f&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}return{width:l,height:c,x:u,y:d}})(t,n)):Ti(e)?$s((function(i,o){const s=ir(i,!0,o==="fixed"),r=s.top+i.clientTop,a=s.left+i.clientLeft,l=Hn(i)?Io(i):{x:1,y:1};return{width:i.clientWidth*l.x,height:i.clientHeight*l.y,x:a*l.x,y:r*l.y}})(e,n)):$s((function(i){const o=ki(i),s=Tl(i),r=i.ownerDocument.body,a=Bs(o.scrollWidth,o.clientWidth,r.scrollWidth,r.clientWidth),l=Bs(o.scrollHeight,o.clientHeight,r.scrollHeight,r.clientHeight);let c=-s.scrollLeft+Cm(i);const u=-s.scrollTop;return zn(r).direction==="rtl"&&(c+=Bs(o.clientWidth,r.clientWidth)-a),{width:a,height:l,x:c,y:u}})(ki(t)))}function lf(t){return Hn(t)&&zn(t).position!=="fixed"?t.offsetParent:null}function uf(t){const e=pn(t);let n=lf(t);for(;n&&B2(n)&&zn(n).position==="static";)n=lf(n);return n&&(Di(n)==="html"||Di(n)==="body"&&zn(n).position==="static"&&!cc(n))?e:n||(function(i){let o=or(i);for(;Hn(o)&&!Yc(o);){if(cc(o))return o;o=or(o)}return null})(t)||e}function F2(t,e,n){const i=Hn(e),o=ki(e),s=ir(t,!0,n==="fixed",e);let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(i||!i&&n!=="fixed")if((Di(e)!=="body"||Cl(o))&&(r=Tl(e)),Hn(e)){const l=ir(e,!0);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else o&&(a.x=Cm(o));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}const j2={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=n==="clippingAncestors"?(function(c,u){const d=u.get(c);if(d)return d;let f=Ia(c).filter((x=>Ti(x)&&Di(x)!=="body")),p=null;const y=zn(c).position==="fixed";let m=y?or(c):c;for(;Ti(m)&&!Yc(m);){const x=zn(m),b=cc(m);(y?b||p:b||x.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=x:f=f.filter((A=>A!==m)),m=or(m)}return u.set(c,f),f})(e,this._c):[].concat(n),r=[...s,i],a=r[0],l=r.reduce(((c,u)=>{const d=af(e,u,o);return c.top=Bs(d.top,c.top),c.right=sf(d.right,c.right),c.bottom=sf(d.bottom,c.bottom),c.left=Bs(d.left,c.left),c}),af(e,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:i}=t;const o=Hn(n),s=ki(n);if(n===s)return e;let r={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((o||!o&&i!=="fixed")&&((Di(n)!=="body"||Cl(s))&&(r=Tl(n)),Hn(n))){const c=ir(n);a=Io(n),l.x=c.x+n.clientLeft,l.y=c.y+n.clientTop}return{width:e.width*a.x,height:e.height*a.y,x:e.x*a.x-r.scrollLeft*a.x+l.x,y:e.y*a.y-r.scrollTop*a.y+l.y}},isElement:Ti,getDimensions:function(t){return Hn(t)?_m(t):t.getBoundingClientRect()},getOffsetParent:uf,getDocumentElement:ki,getScale:Io,async getElementRects(t){let{reference:e,floating:n,strategy:i}=t;const o=this.getOffsetParent||uf,s=this.getDimensions;return{reference:F2(e,await o(n),i),floating:{x:0,y:0,...await s(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>zn(t).direction==="rtl"},U2=(t,e,n)=>{const i=new Map,o={platform:j2,...n},s={...o.platform,_c:i};return C2(t,e,{...o,platform:s})},Ri={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:t=>[...t,"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"],delay:{show:0,hide:400}}}};function V2(t,e){let n=Ri.themes[t]||{},i;do i=n[e],typeof i>"u"?n.$extend?n=Ri.themes[n.$extend]||{}:(n=null,i=Ri[e]):n=null;while(n);return i}function I2(t){const e=[t];let n=Ri.themes[t]||{};do n.$extend&&!n.$resetCss?(e.push(n.$extend),n=Ri.themes[n.$extend]||{}):n=null;while(n);return e.map(i=>`v-popper--theme-${i}`)}function cf(t){const e=[t];let n=Ri.themes[t]||{};do n.$extend?(e.push(n.$extend),n=Ri.themes[n.$extend]||{}):n=null;while(n);return e}let sr=!1;if(typeof window<"u"){sr=!1;try{const t=Object.defineProperty({},"passive",{get(){sr=!0}});window.addEventListener("test",null,t)}catch{}}let km=!1;typeof window<"u"&&typeof navigator<"u"&&(km=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const z2=["auto","top","bottom","left","right"].reduce((t,e)=>t.concat([e,`${e}-start`,`${e}-end`]),[]),df={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},hf={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function ff(t,e){const n=t.indexOf(e);n!==-1&&t.splice(n,1)}function cu(){return new Promise(t=>requestAnimationFrame(()=>{requestAnimationFrame(t)}))}const wn=[];let Hi=null;const pf={};function gf(t){let e=pf[t];return e||(e=pf[t]=[]),e}let dc=function(){};typeof window<"u"&&(dc=window.Element);function zt(t){return function(e){return V2(e.theme,t)}}const du="__floating-vue__popper",Rm=()=>Rt({name:"VPopper",provide(){return{[du]:{parentPopper:this}}},inject:{[du]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:zt("disabled")},positioningDisabled:{type:Boolean,default:zt("positioningDisabled")},placement:{type:String,default:zt("placement"),validator:t=>z2.includes(t)},delay:{type:[String,Number,Object],default:zt("delay")},distance:{type:[Number,String],default:zt("distance")},skidding:{type:[Number,String],default:zt("skidding")},triggers:{type:Array,default:zt("triggers")},showTriggers:{type:[Array,Function],default:zt("showTriggers")},hideTriggers:{type:[Array,Function],default:zt("hideTriggers")},popperTriggers:{type:Array,default:zt("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:zt("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:zt("popperHideTriggers")},container:{type:[String,Object,dc,Boolean],default:zt("container")},boundary:{type:[String,dc],default:zt("boundary")},strategy:{type:String,validator:t=>["absolute","fixed"].includes(t),default:zt("strategy")},autoHide:{type:[Boolean,Function],default:zt("autoHide")},handleResize:{type:Boolean,default:zt("handleResize")},instantMove:{type:Boolean,default:zt("instantMove")},eagerMount:{type:Boolean,default:zt("eagerMount")},popperClass:{type:[String,Array,Object],default:zt("popperClass")},computeTransformOrigin:{type:Boolean,default:zt("computeTransformOrigin")},autoMinSize:{type:Boolean,default:zt("autoMinSize")},autoSize:{type:[Boolean,String],default:zt("autoSize")},autoMaxSize:{type:Boolean,default:zt("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:zt("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:zt("preventOverflow")},overflowPadding:{type:[Number,String],default:zt("overflowPadding")},arrowPadding:{type:[Number,String],default:zt("arrowPadding")},arrowOverflow:{type:Boolean,default:zt("arrowOverflow")},flip:{type:Boolean,default:zt("flip")},shift:{type:Boolean,default:zt("shift")},shiftCrossAxis:{type:Boolean,default:zt("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:zt("noAutoFocus")},disposeTimeout:{type:Number,default:zt("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},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},randomId:`popper_${[Math.random(),Date.now()].map(t=>t.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?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:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var t;return(t=this[du])==null?void 0:t.parentPopper},hasPopperShowTriggerHover(){var t,e;return((t=this.popperTriggers)==null?void 0:t.includes("hover"))||((e=this.popperShowTriggers)==null?void 0:e.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(t){t?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((t,e)=>(t[e]="$_computePosition",t),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:t=null,skipDelay:e=!1,force:n=!1}={}){var i,o;(i=this.parentPopper)!=null&&i.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(t,e),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:t=null,skipDelay:e=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(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:e}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(t,e),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((t=this.referenceNode)==null?void 0:t.call(this))??this.$el,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"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push(N2({mainAxis:this.distance,crossAxis:this.skidding}));const e=this.placement.startsWith("auto");if(e?t.middleware.push(R2({alignment:this.placement.split("-")[1]??""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(O2({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!e&&this.flip&&t.middleware.push(P2({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(T2({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:o,middlewareData:s})=>{let r;const{centerOffset:a}=s.arrow;return i.startsWith("top")||i.startsWith("bottom")?r=Math.abs(a)>o.reference.width/2:r=Math.abs(a)>o.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:o,placement:s,middlewareData:r})=>{var a;if((a=r.autoSize)!=null&&a.skip)return{};let l,c;return s.startsWith("top")||s.startsWith("bottom")?l=o.reference.width:c=o.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=c!=null?`${c}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($2({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:i,availableHeight:o})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=o!=null?`${o}px`:null}})));const n=await U2(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(t,e=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Hi&&this.instantMove&&Hi.instantMove&&Hi!==this.parentPopper){Hi.$_applyHide(!0),this.$_applyShow(!0);return}e?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(t,e=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Hi=this),e?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(t){const e=this.delay;return parseInt(e&&e[t]||e||0)},async $_applyShow(t=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=t,!this.isShown&&(this.$_ensureTeleport(),await cu(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...Ia(this.$_referenceNode),...Ia(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),i=n.parentNode.getBoundingClientRect(),o=e.x+e.width/2-(i.left+n.offsetLeft),s=e.y+e.height/2-(i.top+n.offsetTop);this.result.transformOrigin=`${o}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const t=this.showGroup;if(t){let e;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=t,ff(wn,this),wn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of cf(this.theme)){const i=gf(n);ff(i,this),i.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}Hi===this&&(Hi=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const e=this.disposeTimeout;e!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},e)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await cu(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const t=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,df,this.triggers,this.showTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],df,this.popperTriggers,this.popperShowTriggers,t);const e=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,hf,this.triggers,this.hideTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],hf,this.popperTriggers,this.popperHideTriggers,e)},$_registerEventListeners(t,e,n){this.$_events.push({targetNodes:t,eventType:e,handler:n}),t.forEach(i=>i.addEventListener(e,n,sr?{passive:!0}:void 0))},$_registerTriggerListeners(t,e,n,i,o){let s=n;i!=null&&(s=typeof i=="function"?i(s):i),s.forEach(r=>{const a=e[r];a&&this.$_registerEventListeners(t,a,o)})},$_removeEventListeners(t){const e=[];this.$_events.forEach(n=>{const{targetNodes:i,eventType:o,handler:s}=n;!t||t===o?i.forEach(r=>r.removeEventListener(o,s)):e.push(n)}),this.$_events=e},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(t,e=!1){this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),e&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(t,e){for(const n of this.$_targetNodes){const i=n.getAttribute(t);i&&(n.removeAttribute(t),n.setAttribute(e,i))}},$_applyAttrsToTarget(t){for(const e of this.$_targetNodes)for(const n in t){const i=t[n];i==null?e.removeAttribute(n):e.setAttribute(n,i)}},$_updateParentShownChildren(t){let e=this.parentPopper;for(;e;)t?e.shownChildren.add(this.randomId):(e.shownChildren.delete(this.randomId),e.pendingHide&&e.hide()),e=e.parentPopper},$_isAimingPopper(){const t=this.$_referenceNode.getBoundingClientRect();if(Fs>=t.left&&Fs<=t.right&&js>=t.top&&js<=t.bottom){const e=this.$_popperNode.getBoundingClientRect(),n=Fs-bi,i=js-_i,o=e.left+e.width/2-bi+(e.top+e.height/2)-_i+e.width+e.height,s=bi+n*o,r=_i+i*o;return zr(bi,_i,s,r,e.left,e.top,e.left,e.bottom)||zr(bi,_i,s,r,e.left,e.top,e.right,e.top)||zr(bi,_i,s,r,e.right,e.top,e.right,e.bottom)||zr(bi,_i,s,r,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(km){const t=sr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",e=>mf(e),t),document.addEventListener("touchend",e=>vf(e,!0),t)}else window.addEventListener("mousedown",t=>mf(t),!0),window.addEventListener("click",t=>vf(t,!1),!0);window.addEventListener("resize",W2)}function mf(t,e){for(let n=0;n=0;i--){const o=wn[i];try{const s=o.containsGlobalTarget=o.mouseDownContains||o.popperNode().contains(t.target);o.pendingHide=!1,requestAnimationFrame(()=>{if(o.pendingHide=!1,!n[o.randomId]&&yf(o,s,t)){if(o.$_handleGlobalClose(t,e),!t.closeAllPopover&&t.closePopover&&s){let a=o.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=o.parentPopper;for(;r&&yf(r,r.containsGlobalTarget,t);)r.$_handleGlobalClose(t,e),r=r.parentPopper}})}catch{}}}function yf(t,e,n){return n.closeAllPopover||n.closePopover&&e||J2(t,n)&&!e}function J2(t,e){if(typeof t.autoHide=="function"){const n=t.autoHide(e);return t.lastAutoHide=n,n}return t.autoHide}function W2(){for(let t=0;t{bi=Fs,_i=js,Fs=t.clientX,js=t.clientY},sr?{passive:!0}:void 0);function zr(t,e,n,i,o,s,r,a){const l=((r-o)*(e-s)-(a-s)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e)),c=((n-t)*(e-s)-(i-e)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e));return l>=0&&l<=1&&c>=0&&c<=1}const G2={extends:Rm()},Zc=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n};function q2(t,e,n,i,o,s){return O(),J("div",{ref:"reference",class:Yt(["v-popper",{"v-popper--shown":t.slotData.isShown}])},[Zt(t.$slots,"default",Vu(Ra(t.slotData)))],2)}const K2=Zc(G2,[["render",q2]]);function X2(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let da;function hc(){hc.init||(hc.init=!0,da=X2()!==-1)}var ha={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){hc(),yr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",da&&this.$el.appendChild(t),t.data="about:blank",da||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!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(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!da&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const Y2=Cy();Ay("data-v-b329ee4c");const Z2={class:"resize-observer",tabindex:"-1"};Sy();const Q2=Y2((t,e,n,i,o,s)=>(O(),Ct("div",Z2)));ha.render=Q2,ha.__scopeId="data-v-b329ee4c",ha.__file="src/components/ResizeObserver.vue";const Pm=(t="theme")=>({computed:{themeClass(){return I2(this[t])}}}),M2=Rt({name:"VPopperContent",components:{ResizeObserver:ha},mixins:[Pm()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(t){return t!=null&&!isNaN(t)?`${t}px`:null}}}),tE=["id","aria-hidden","tabindex","data-popper-placement"],eE={ref:"inner",class:"v-popper__inner"},nE=w("div",{class:"v-popper__arrow-outer"},null,-1),iE=w("div",{class:"v-popper__arrow-inner"},null,-1),oE=[nE,iE];function sE(t,e,n,i,o,s){const r=Ys("ResizeObserver");return O(),J("div",{id:t.popperId,ref:"popover",class:Yt(["v-popper__popper",[t.themeClass,t.classes.popperClass,{"v-popper__popper--shown":t.shown,"v-popper__popper--hidden":!t.shown,"v-popper__popper--show-from":t.classes.showFrom,"v-popper__popper--show-to":t.classes.showTo,"v-popper__popper--hide-from":t.classes.hideFrom,"v-popper__popper--hide-to":t.classes.hideTo,"v-popper__popper--skip-transition":t.skipTransition,"v-popper__popper--arrow-overflow":t.result&&t.result.arrow.overflow,"v-popper__popper--no-positioning":!t.result}]]),style:ro(t.result?{position:t.result.strategy,transform:`translate3d(${Math.round(t.result.x)}px,${Math.round(t.result.y)}px,0)`}:void 0),"aria-hidden":t.shown?"false":"true",tabindex:t.autoHide?0:void 0,"data-popper-placement":t.result?t.result.placement:void 0,onKeyup:e[2]||(e[2]=r_(a=>t.autoHide&&t.$emit("hide"),["esc"]))},[w("div",{class:"v-popper__backdrop",onClick:e[0]||(e[0]=a=>t.autoHide&&t.$emit("hide"))}),w("div",{class:"v-popper__wrapper",style:ro(t.result?{transformOrigin:t.result.transformOrigin}:void 0)},[w("div",eE,[t.mounted?(O(),J(At,{key:0},[w("div",null,[Zt(t.$slots,"default")]),t.handleResize?(O(),Ct(r,{key:0,onNotify:e[1]||(e[1]=a=>t.$emit("resize",a))})):_t("",!0)],64)):_t("",!0)],512),w("div",{ref:"arrow",class:"v-popper__arrow-container",style:ro(t.result?{left:t.toPx(t.result.arrow.x),top:t.toPx(t.result.arrow.y)}:void 0)},oE,4)],4)],46,tE)}const rE=Zc(M2,[["render",sE]]),aE={methods:{show(...t){return this.$refs.popper.show(...t)},hide(...t){return this.$refs.popper.hide(...t)},dispose(...t){return this.$refs.popper.dispose(...t)},onResize(...t){return this.$refs.popper.onResize(...t)}}};let fc=function(){};typeof window<"u"&&(fc=window.Element);const lE=Rt({name:"VPopperWrapper",components:{Popper:K2,PopperContent:rE},mixins:[aE,Pm("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,fc,Boolean],default:void 0},boundary:{type:[String,fc],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(t=>t!==this.$refs.popperContent.$el)}}});function uE(t,e,n,i,o,s){const r=Ys("PopperContent"),a=Ys("Popper");return O(),Ct(a,ee({ref:"popper"},t.$props,{theme:t.finalTheme,"target-nodes":t.getTargetNodes,"popper-node":()=>t.$refs.popperContent.$el,class:[t.themeClass],onShow:e[0]||(e[0]=()=>t.$emit("show")),onHide:e[1]||(e[1]=()=>t.$emit("hide")),"onUpdate:shown":e[2]||(e[2]=l=>t.$emit("update:shown",l)),onApplyShow:e[3]||(e[3]=()=>t.$emit("apply-show")),onApplyHide:e[4]||(e[4]=()=>t.$emit("apply-hide")),onCloseGroup:e[5]||(e[5]=()=>t.$emit("close-group")),onCloseDirective:e[6]||(e[6]=()=>t.$emit("close-directive")),onAutoHide:e[7]||(e[7]=()=>t.$emit("auto-hide")),onResize:e[8]||(e[8]=()=>t.$emit("resize"))}),{default:kt(({popperId:l,isShown:c,shouldMountContent:u,skipTransition:d,autoHide:f,show:p,hide:y,handleResize:m,onResize:x,classes:b,result:A})=>[Zt(t.$slots,"default",{shown:c,show:p,hide:y}),ot(r,{ref:"popperContent","popper-id":l,theme:t.finalTheme,shown:c,mounted:u,"skip-transition":d,"auto-hide":f,"handle-resize":m,classes:b,result:A,onHide:y,onResize:x},{default:kt(()=>[Zt(t.$slots,"popper",{shown:c,hide:y})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const pc=Zc(lE,[["render",uE]]),cE={...pc,name:"VDropdown",vPopperTheme:"dropdown"};({...pc},{...pc}),Rm();const bf=Ri,dE=cE;function hE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Lm={exports:{}},fe=Lm.exports={},Bn,Fn;function gc(){throw new Error("setTimeout has not been defined")}function mc(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Bn=setTimeout:Bn=gc}catch{Bn=gc}try{typeof clearTimeout=="function"?Fn=clearTimeout:Fn=mc}catch{Fn=mc}})();function Dm(t){if(Bn===setTimeout)return setTimeout(t,0);if((Bn===gc||!Bn)&&setTimeout)return Bn=setTimeout,setTimeout(t,0);try{return Bn(t,0)}catch{try{return Bn.call(null,t,0)}catch{return Bn.call(this,t,0)}}}function fE(t){if(Fn===clearTimeout)return clearTimeout(t);if((Fn===mc||!Fn)&&clearTimeout)return Fn=clearTimeout,clearTimeout(t);try{return Fn(t)}catch{try{return Fn.call(null,t)}catch{return Fn.call(this,t)}}}var ai=[],zo=!1,no,fa=-1;function pE(){!zo||!no||(zo=!1,no.length?ai=no.concat(ai):fa=-1,ai.length&&Nm())}function Nm(){if(!zo){var t=Dm(pE);zo=!0;for(var e=ai.length;e;){for(no=ai,ai=[];++fa1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},hu}var fu,wf;function Bm(){if(wf)return fu;wf=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,o=e-6;return fu={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},fu}var pu={exports:{}},xf;function mE(){return xf||(xf=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:o}=Bm(),s=$m();e=t.exports={};const r=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],u=e.t={};let d=0;const f="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",o],[f,i]],y=x=>{for(const[b,A]of p)x=x.split(`${b}*`).join(`${b}{0,${A}}`).split(`${b}+`).join(`${b}{1,${A}}`);return x},m=(x,b,A)=>{const R=y(b),S=d++;s(x,S,b),u[x]=S,l[S]=b,c[S]=R,r[S]=new RegExp(b,A?"g":void 0),a[S]=new RegExp(R,A?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),m("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${f}+`),m("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),m("FULL",`^${l[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),m("LOOSE",`^${l[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),m("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",l[u.COERCE],!0),m("COERCERTLFULL",l[u.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",m("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",m("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(pu,pu.exports)),pu.exports}var gu,Ef;function vE(){if(Ef)return gu;Ef=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return gu=n=>n?typeof n!="object"?t:n:e,gu}var mu,Af;function yE(){if(Af)return mu;Af=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},mu}var vu,Sf;function Fm(){if(Sf)return vu;Sf=1;const t=$m(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=Bm(),{safeRe:i,t:o}=mE(),s=vE(),{compareIdentifiers:r}=yE();class a{constructor(c,u){if(u=s(u),c instanceof a){if(c.loose===!!u.loose&&c.includePrerelease===!!u.includePrerelease)return c;c=c.version}else if(typeof c!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof c}".`);if(c.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",c,u),this.options=u,this.loose=!!u.loose,this.includePrerelease=!!u.includePrerelease;const d=c.trim().match(u.loose?i[o.LOOSE]:i[o.FULL]);if(!d)throw new TypeError(`Invalid Version: ${c}`);if(this.raw=c,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const p=+f;if(p>=0&&pc.major?1:this.minorc.minor?1:this.patchc.patch?1:0}comparePre(c){if(c instanceof a||(c=new a(c,this.options)),this.prerelease.length&&!c.prerelease.length)return-1;if(!this.prerelease.length&&c.prerelease.length)return 1;if(!this.prerelease.length&&!c.prerelease.length)return 0;let u=0;do{const d=this.prerelease[u],f=c.prerelease[u];if(t("prerelease compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}compareBuild(c){c instanceof a||(c=new a(c,this.options));let u=0;do{const d=this.build[u],f=c.build[u];if(t("build compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}inc(c,u,d){if(c.startsWith("pre")){if(!u&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(u){const f=`-${u}`.match(this.options.loose?i[o.PRERELEASELOOSE]:i[o.PRERELEASE]);if(!f||f[1]!==u)throw new Error(`invalid identifier: ${u}`)}}switch(c){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",u,d);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",u,d);break;case"prepatch":this.prerelease.length=0,this.inc("patch",u,d),this.inc("pre",u,d);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",u,d),this.inc("pre",u,d);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const f=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let p=this.prerelease.length;for(;--p>=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);if(p===-1){if(u===this.prerelease.join(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(u){let p=[u,f];d===!1&&(p=[u]),r(this.prerelease[0],u)===0?isNaN(this.prerelease[1])&&(this.prerelease=p):this.prerelease=p}break}default:throw new Error(`invalid increment argument: ${c}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return vu=a,vu}var yu,Cf;function bE(){if(Cf)return yu;Cf=1;const t=Fm();return yu=(e,n)=>new t(e,n).major,yu}var _E=bE();const Tf=Wc(_E);var bu,kf;function wE(){if(kf)return bu;kf=1;const t=Fm();return bu=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(o){if(!i)return null;throw o}},bu}var _u,Rf;function xE(){if(Rf)return _u;Rf=1;const t=wE();return _u=(e,n)=>{const i=t(e,n);return i?i.version:null},_u}var EE=xE();const AE=Wc(EE);class SE{bus;constructor(e){typeof e.getVersion!="function"||!AE(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):Tf(e.getVersion())!==Tf(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class CE{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(o){console.error("could not invoke event listener",o)}})}}let fs=null;function Qc(){return fs!==null?fs:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?fs=new SE(window._nc_event_bus):fs=window._nc_event_bus=new CE,fs)}function jm(t,e){Qc().subscribe(t,e)}function TE(t,e){Qc().unsubscribe(t,e)}function kE(t,...e){Qc().emit(t,...e)}class za{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?za.GLOBAL_SCOPE_PERSISTENT:za.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}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))}}class RE{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new za(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function PE(t){return new RE(t)}OE();function LE(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Um(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),kE("csrf-token-update",{token:t,_internal:!0}))}async function DE(){const t=Jc("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return Um(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function NE(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return jm("csrf-token-update",e),()=>TE("csrf-token-update",e)}function OE(){jm("csrf-token-update",({token:t,_internal:e})=>{e||Um(t)})}PE("public").persist().build();let Ro;function Pf(t,e){return t?t.getAttribute(e):null}function $E(){if(Ro!==void 0)return Ro;const t=document?.getElementsByTagName("head")[0];if(!t)return null;const e=Pf(t,"data-user");return e===null?(Ro=null,Ro):(Ro={uid:e,displayName:Pf(t,"data-user-displayname"),isAdmin:!!window._oc_isadmin},Ro)}var me=(t=>(t[t.Debug=0]="Debug",t[t.Info=1]="Info",t[t.Warn=2]="Warn",t[t.Error=3]="Error",t[t.Fatal=4]="Fatal",t))(me||{});class BE{context;constructor(e){this.context=e||{}}formatMessage(e,n,i){let o="["+me[n].toUpperCase()+"] ";return i&&i.app&&(o+=i.app+": "),typeof e=="string"?o+e:(o+=`Unexpected ${e.name}`,e.message&&(o+=` "${e.message}"`),n===me.Debug&&e.stack&&(o+=` +const Ws=globalThis||void 0||self;function Nc(t){const e=Object.create(null);for(const n of t.split(","))e[n]=1;return n=>n in e}const Ut={},Fo=[],En=()=>{},E0=()=>!1,rl=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),al=t=>t.startsWith("onUpdate:"),ye=Object.assign,Oc=(t,e)=>{const n=t.indexOf(e);n>-1&&t.splice(n,1)},Rv=Object.prototype.hasOwnProperty,Zt=(t,e)=>Rv.call(t,e),_t=Array.isArray,jo=t=>gr(t)==="[object Map]",ll=t=>gr(t)==="[object Set]",zd=t=>gr(t)==="[object Date]",kt=t=>typeof t=="function",se=t=>typeof t=="string",un=t=>typeof t=="symbol",Yt=t=>t!==null&&typeof t=="object",S0=t=>(Yt(t)||kt(t))&&kt(t.then)&&kt(t.catch),A0=Object.prototype.toString,gr=t=>A0.call(t),Lv=t=>gr(t).slice(8,-1),C0=t=>gr(t)==="[object Object]",ul=t=>se(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Ps=Nc(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cl=t=>{const e=Object.create(null);return(n=>e[n]||(e[n]=t(n)))},Dv=/-\w/g,Ue=cl(t=>t.replace(Dv,e=>e.slice(1).toUpperCase())),Nv=/\B([A-Z])/g,pi=cl(t=>t.replace(Nv,"-$1").toLowerCase()),dl=cl(t=>t.charAt(0).toUpperCase()+t.slice(1)),oa=cl(t=>t?`on${dl(t)}`:""),$e=(t,e)=>!Object.is(t,e),sa=(t,...e)=>{for(let n=0;n{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:i,value:n})},Ov=t=>{const e=parseFloat(t);return isNaN(e)?t:e},$v=t=>{const e=se(t)?Number(t):NaN;return isNaN(e)?t:e};let Hd;const _a=()=>Hd||(Hd=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ws<"u"?Ws:{});function ao(t){if(_t(t)){const e={};for(let n=0;n{if(n){const i=n.split(Fv);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Xt(t){let e="";if(se(t))e=t;else if(_t(t))for(let n=0;nmr(n,e))}const R0=t=>!!(t&&t.__v_isRef===!0),L=t=>se(t)?t:t==null?"":_t(t)||Yt(t)&&(t.toString===A0||!kt(t.toString))?R0(t)?L(t.value):JSON.stringify(t,L0,2):String(t),L0=(t,e)=>R0(e)?L0(t,e.value):jo(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((n,[i,o],s)=>(n[Gl(i,s)+" =>"]=o,n),{})}:ll(e)?{[`Set(${e.size})`]:[...e.values()].map(n=>Gl(n))}:un(e)?Gl(e):Yt(e)&&!_t(e)&&!C0(e)?String(e):e,Gl=(t,e="")=>{var n;return un(t)?`Symbol(${(n=t.description)!=null?n:e})`:t};function Hv(t){return t==null?"initial":typeof t=="string"?t===""?" ":t:String(t)}let _e;class Jv{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&_e&&(_e.active?(this.parent=_e,this.index=(_e.scopes||(_e.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,n;if(this.scopes)for(e=0,n=this.scopes.length;e0&&--this._on===0){if(_e===this)_e=this.prevScope;else{let e=_e;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(Ls){let e=Ls;for(Ls=void 0;e;){const n=e.next;e.next=void 0,e.flags&=-9,e=n}}let t;for(;Rs;){let e=Rs;for(Rs=void 0;e;){const n=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){t||(t=i)}e=n}}if(t)throw t}function B0(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function F0(t){let e,n=t.depsTail,i=n;for(;i;){const o=i.prevDep;i.version===-1?(i===n&&(n=o),Fc(i),Gv(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}t.deps=e,t.depsTail=n}function zu(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(j0(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function j0(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===Gs)||(t.globalVersion=Gs,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!zu(t))))return;t.flags|=2;const e=t.dep,n=ie,i=Sn;ie=t,Sn=!0;try{B0(t);const o=t.fn(t._value);(e.version===0||$e(o,t._value))&&(t.flags|=128,t._value=o,e.version++)}catch(o){throw e.version++,o}finally{ie=n,Sn=i,F0(t),t.flags&=-3}}function Fc(t,e=!1){const{dep:n,prevSub:i,nextSub:o}=t;if(i&&(i.nextSub=o,t.prevSub=void 0),o&&(o.prevSub=i,t.nextSub=void 0),n.subs===t&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Fc(s,!0)}!e&&!--n.sc&&n.map&&n.map.delete(n.key)}function Gv(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=void 0),n&&(n.prevDep=e,t.nextDep=void 0)}let Sn=!0;const U0=[];function ci(){U0.push(Sn),Sn=!1}function di(){const t=U0.pop();Sn=t===void 0?!0:t}function Jd(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const n=ie;ie=void 0;try{e()}finally{ie=n}}}let Gs=0;class qv{constructor(e,n){this.sub=e,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class hl{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!ie||!Sn||ie===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ie)n=this.activeLink=new qv(ie,this),ie.deps?(n.prevDep=ie.depsTail,ie.depsTail.nextDep=n,ie.depsTail=n):ie.deps=ie.depsTail=n,V0(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=ie.depsTail,n.nextDep=void 0,ie.depsTail.nextDep=n,ie.depsTail=n,ie.deps===n&&(ie.deps=i)}return n}trigger(e){this.version++,Gs++,this.notify(e)}notify(e){$c();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Bc()}}}function V0(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)V0(i)}const n=t.dep.subs;n!==t&&(t.prevSub=n,n&&(n.nextSub=t)),t.dep.subs=t}}const wa=new WeakMap,lo=Symbol(""),Hu=Symbol(""),qs=Symbol("");function Be(t,e,n){if(Sn&&ie){let i=wa.get(t);i||wa.set(t,i=new Map);let o=i.get(n);o||(i.set(n,o=new hl),o.map=i,o.key=n),o.track()}}function oi(t,e,n,i,o,s){const r=wa.get(t);if(!r){Gs++;return}const a=l=>{l&&l.trigger()};if($c(),e==="clear")r.forEach(a);else{const l=_t(t),c=l&&ul(n);if(l&&n==="length"){const u=Number(i);r.forEach((d,f)=>{(f==="length"||f===qs||!un(f)&&f>=u)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),c&&a(r.get(qs)),e){case"add":l?c&&a(r.get("length")):(a(r.get(lo)),jo(t)&&a(r.get(Hu)));break;case"delete":l||(a(r.get(lo)),jo(t)&&a(r.get(Hu)));break;case"set":jo(t)&&a(r.get(lo));break}}Bc()}function Kv(t,e){const n=wa.get(t);return n&&n.get(e)}function Ao(t){const e=jt(t);return e===t?e:(Be(e,"iterate",qs),ln(t)?e:e.map(Cn))}function fl(t){return Be(t=jt(t),"iterate",qs),t}function Un(t,e){return hi(t)?Ks(uo(t)?Cn(e):e):Cn(e)}const Xv={__proto__:null,[Symbol.iterator](){return Kl(this,Symbol.iterator,t=>Un(this,t))},concat(...t){return Ao(this).concat(...t.map(e=>_t(e)?Ao(e):e))},entries(){return Kl(this,"entries",t=>(t[1]=Un(this,t[1]),t))},every(t,e){return Xn(this,"every",t,e,void 0,arguments)},filter(t,e){return Xn(this,"filter",t,e,n=>n.map(i=>Un(this,i)),arguments)},find(t,e){return Xn(this,"find",t,e,n=>Un(this,n),arguments)},findIndex(t,e){return Xn(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return Xn(this,"findLast",t,e,n=>Un(this,n),arguments)},findLastIndex(t,e){return Xn(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return Xn(this,"forEach",t,e,void 0,arguments)},includes(...t){return Xl(this,"includes",t)},indexOf(...t){return Xl(this,"indexOf",t)},join(t){return Ao(this).join(t)},lastIndexOf(...t){return Xl(this,"lastIndexOf",t)},map(t,e){return Xn(this,"map",t,e,void 0,arguments)},pop(){return rs(this,"pop")},push(...t){return rs(this,"push",t)},reduce(t,...e){return Wd(this,"reduce",t,e)},reduceRight(t,...e){return Wd(this,"reduceRight",t,e)},shift(){return rs(this,"shift")},some(t,e){return Xn(this,"some",t,e,void 0,arguments)},splice(...t){return rs(this,"splice",t)},toReversed(){return Ao(this).toReversed()},toSorted(t){return Ao(this).toSorted(t)},toSpliced(...t){return Ao(this).toSpliced(...t)},unshift(...t){return rs(this,"unshift",t)},values(){return Kl(this,"values",t=>Un(this,t))}};function Kl(t,e,n){const i=fl(t),o=i[e]();return i!==t&&!ln(t)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.done||(s.value=n(s.value)),s}),o}const Yv=Array.prototype;function Xn(t,e,n,i,o,s){const r=fl(t),a=r!==t&&!ln(t),l=r[e];if(l!==Yv[e]){const d=l.apply(t,s);return a?Cn(d):d}let c=n;r!==t&&(a?c=function(d,f){return n.call(this,Un(t,d),f,t)}:n.length>2&&(c=function(d,f){return n.call(this,d,f,t)}));const u=l.call(r,c,i);return a&&o?o(u):u}function Wd(t,e,n,i){const o=fl(t),s=o!==t&&!ln(t);let r=n,a=!1;o!==t&&(s?(a=i.length===0,r=function(c,u,d){return a&&(a=!1,c=Un(t,c)),n.call(this,c,Un(t,u),d,t)}):n.length>3&&(r=function(c,u,d){return n.call(this,c,u,d,t)}));const l=o[e](r,...i);return a?Un(t,l):l}function Xl(t,e,n){const i=jt(t);Be(i,"iterate",qs);const o=i[e](...n);return(o===-1||o===!1)&&Qo(n[0])?(n[0]=jt(n[0]),i[e](...n)):o}function rs(t,e,n=[]){ci(),$c();const i=jt(t)[e].apply(t,n);return Bc(),di(),i}const Zv=Nc("__proto__,__v_isRef,__isVue"),I0=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(un));function Qv(t){un(t)||(t=String(t));const e=jt(this);return Be(e,"has",t),e.hasOwnProperty(t)}class z0{constructor(e=!1,n=!1){this._isReadonly=e,this._isShallow=n}get(e,n,i){if(n==="__v_skip")return e.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return i===(o?s?K0:q0:s?G0:W0).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const r=_t(e);if(!o){let l;if(r&&(l=Xv[n]))return l;if(n==="hasOwnProperty")return Qv}const a=Reflect.get(e,n,ve(e)?e:i);if((un(n)?I0.has(n):Zv(n))||(o||Be(e,"get",n),s))return a;if(ve(a)){const l=r&&ul(n)?a:a.value;return o&&Yt(l)?xa(l):l}return Yt(a)?o?xa(a):Wo(a):a}}class H0 extends z0{constructor(e=!1){super(!1,e)}set(e,n,i,o){let s=e[n];const r=_t(e)&&ul(n);if(!this._isShallow){const c=hi(s);if(!ln(i)&&!hi(i)&&(s=jt(s),i=jt(i)),!r&&ve(s)&&!ve(i))return c||(s.value=i),!0}const a=r?Number(n)t,Or=t=>Reflect.getPrototypeOf(t);function iy(t,e,n){return function(...i){const o=this.__v_raw,s=jt(o),r=jo(s),a=t==="entries"||t===Symbol.iterator&&r,l=t==="keys"&&r,c=o[t](...i),u=n?Ju:e?Ks:Cn;return!e&&Be(s,"iterate",l?Hu:lo),ye(Object.create(c),{next(){const{value:d,done:f}=c.next();return f?{value:d,done:f}:{value:a?[u(d[0]),u(d[1])]:u(d),done:f}}})}}function $r(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function oy(t,e){const n={get(i){const o=this.__v_raw,s=jt(o),r=jt(i);t||($e(i,r)&&Be(s,"get",i),Be(s,"get",r));const{has:a}=Or(s),l=e?Ju:t?Ks:Cn;if(a.call(s,i))return l(o.get(i));if(a.call(s,r))return l(o.get(r));o!==s&&o.get(i)},get size(){const i=this.__v_raw;return!t&&Be(jt(i),"iterate",lo),i.size},has(i){const o=this.__v_raw,s=jt(o),r=jt(i);return t||($e(i,r)&&Be(s,"has",i),Be(s,"has",r)),i===r?o.has(i):o.has(i)||o.has(r)},forEach(i,o){const s=this,r=s.__v_raw,a=jt(r),l=e?Ju:t?Ks:Cn;return!t&&Be(a,"iterate",lo),r.forEach((c,u)=>i.call(o,l(c),l(u),s))}};return ye(n,t?{add:$r("add"),set:$r("set"),delete:$r("delete"),clear:$r("clear")}:{add(i){const o=jt(this),s=Or(o),r=jt(i),a=!e&&!ln(i)&&!hi(i)?r:i;return s.has.call(o,a)||$e(i,a)&&s.has.call(o,i)||$e(r,a)&&s.has.call(o,r)||(o.add(a),oi(o,"add",a,a)),this},set(i,o){!e&&!ln(o)&&!hi(o)&&(o=jt(o));const s=jt(this),{has:r,get:a}=Or(s);let l=r.call(s,i);l||(i=jt(i),l=r.call(s,i));const c=a.call(s,i);return s.set(i,o),l?$e(o,c)&&oi(s,"set",i,o):oi(s,"add",i,o),this},delete(i){const o=jt(this),{has:s,get:r}=Or(o);let a=s.call(o,i);a||(i=jt(i),a=s.call(o,i)),r&&r.call(o,i);const l=o.delete(i);return a&&oi(o,"delete",i,void 0),l},clear(){const i=jt(this),o=i.size!==0,s=i.clear();return o&&oi(i,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=iy(i,t,e)}),n}function pl(t,e){const n=oy(t,e);return(i,o,s)=>o==="__v_isReactive"?!t:o==="__v_isReadonly"?t:o==="__v_raw"?i:Reflect.get(Zt(n,o)&&o in i?n:i,o,s)}const sy={get:pl(!1,!1)},ry={get:pl(!1,!0)},ay={get:pl(!0,!1)},ly={get:pl(!0,!0)},W0=new WeakMap,G0=new WeakMap,q0=new WeakMap,K0=new WeakMap;function uy(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wo(t){return hi(t)?t:gl(t,!1,Mv,sy,W0)}function cy(t){return gl(t,!1,ey,ry,G0)}function xa(t){return gl(t,!0,ty,ay,q0)}function dy(t){return gl(t,!0,ny,ly,K0)}function gl(t,e,n,i,o){if(!Yt(t)||t.__v_raw&&!(e&&t.__v_isReactive)||t.__v_skip||!Object.isExtensible(t))return t;const s=o.get(t);if(s)return s;const r=uy(Lv(t));if(r===0)return t;const a=new Proxy(t,r===2?i:n);return o.set(t,a),a}function uo(t){return hi(t)?uo(t.__v_raw):!!(t&&t.__v_isReactive)}function hi(t){return!!(t&&t.__v_isReadonly)}function ln(t){return!!(t&&t.__v_isShallow)}function Qo(t){return t?!!t.__v_raw:!1}function jt(t){const e=t&&t.__v_raw;return e?jt(e):t}function hy(t){return!Zt(t,"__v_skip")&&Object.isExtensible(t)&&T0(t,"__v_skip",!0),t}const Cn=t=>Yt(t)?Wo(t):t,Ks=t=>Yt(t)?xa(t):t;function ve(t){return t?t.__v_isRef===!0:!1}function fe(t){return X0(t,!1)}function Gn(t){return X0(t,!0)}function X0(t,e){return ve(t)?t:new fy(t,e)}class fy{constructor(e,n){this.dep=new hl,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?e:jt(e),this._value=n?e:Cn(e),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(e){const n=this._rawValue,i=this.__v_isShallow||ln(e)||hi(e);e=i?e:jt(e),$e(e,n)&&(this._rawValue=e,this._value=i?e:Cn(e),this.dep.trigger())}}function E(t){return ve(t)?t.value:t}function je(t){return kt(t)?t():E(t)}const py={get:(t,e,n)=>e==="__v_raw"?t:E(Reflect.get(t,e,n)),set:(t,e,n,i)=>{const o=t[e];return ve(o)&&!ve(n)?(o.value=n,!0):Reflect.set(t,e,n,i)}};function Y0(t){return uo(t)?t:new Proxy(t,py)}class gy{constructor(e){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new hl,{get:i,set:o}=e(n.track.bind(n),n.trigger.bind(n));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(e){this._set(e)}}function my(t){return new gy(t)}class vy{constructor(e,n,i){this._object=e,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=un(n)?n:String(n),this._raw=jt(e);let o=!0,s=e;if(!_t(e)||un(this._key)||!ul(this._key))do o=!Qo(s)||ln(s);while(o&&(s=s.__v_raw));this._shallow=o}get value(){let e=this._object[this._key];return this._shallow&&(e=E(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=e;return}}this._object[this._key]=e}get dep(){return Kv(this._raw,this._key)}}class yy{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function eo(t,e,n){return ve(t)?t:kt(t)?new yy(t):Yt(t)&&arguments.length>1?by(t,e,n):fe(t)}function by(t,e,n){return new vy(t,e,n)}class _y{constructor(e,n,i){this.fn=e,this.setter=n,this._value=void 0,this.dep=new hl(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Gs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&ie!==this)return $0(this,!0),!0}get value(){const e=this.dep.track();return j0(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function wy(t,e,n=!1){let i,o;return kt(t)?i=t:(i=t.get,o=t.set),new _y(i,o,n)}const Br={},Ea=new WeakMap;let Ki;function xy(t,e=!1,n=Ki){if(n){let i=Ea.get(n);i||Ea.set(n,i=[]),i.push(t)}}function Ey(t,e,n=Ut){const{immediate:i,deep:o,once:s,scheduler:r,augmentJob:a,call:l}=n,c=A=>o?A:ln(A)||o===!1||o===0?si(A,1):si(A);let u,d,f,p,y=!1,m=!1;if(ve(t)?(d=()=>t.value,y=ln(t)):uo(t)?(d=()=>c(t),y=!0):_t(t)?(m=!0,y=t.some(A=>uo(A)||ln(A)),d=()=>t.map(A=>{if(ve(A))return A.value;if(uo(A))return c(A);if(kt(A))return l?l(A,2):A()})):kt(t)?e?d=l?()=>l(t,2):t:d=()=>{if(f){ci();try{f()}finally{di()}}const A=Ki;Ki=u;try{return l?l(t,3,[p]):t(p)}finally{Ki=A}}:d=En,e&&o){const A=d,O=o===!0?1/0:o;d=()=>si(A(),O)}const x=D0(),_=()=>{u.stop(),x&&x.active&&Oc(x.effects,u)};if(s&&e){const A=e;e=(...O)=>{A(...O),_()}}let S=m?new Array(t.length).fill(Br):Br;const P=A=>{if(!(!(u.flags&1)||!u.dirty&&!A))if(e){const O=u.run();if(o||y||(m?O.some((U,V)=>$e(U,S[V])):$e(O,S))){f&&f();const U=Ki;Ki=u;try{const V=[O,S===Br?void 0:m&&S[0]===Br?[]:S,p];S=O,l?l(e,3,V):e(...V)}finally{Ki=U}}}else u.run()};return a&&a(P),u=new N0(d),u.scheduler=r?()=>r(P,!1):P,p=A=>xy(A,!1,u),f=u.onStop=()=>{const A=Ea.get(u);if(A){if(l)l(A,4);else for(const O of A)O();Ea.delete(u)}},e?i?P(!0):S=u.run():r?r(P.bind(null,!0),!0):u.run(),_.pause=u.pause.bind(u),_.resume=u.resume.bind(u),_.stop=_,_}function si(t,e=1/0,n){if(e<=0||!Yt(t)||t.__v_skip||(n=n||new Map,(n.get(t)||0)>=e))return t;if(n.set(t,e),e--,ve(t))si(t.value,e,n);else if(_t(t))for(let i=0;i{si(i,e,n)});else if(C0(t)){for(const i in t)si(t[i],e,n);for(const i of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,i)&&si(t[i],e,n)}return t}function vr(t,e,n,i){try{return i?t(...i):t()}catch(o){ml(o,e,n)}}function mn(t,e,n,i){if(kt(t)){const o=vr(t,e,n,i);return o&&S0(o)&&o.catch(s=>{ml(s,e,n)}),o}if(_t(t)){const o=[];for(let s=0;s>>1,o=qe[i],s=Xs(o);s=Xs(n)?qe.push(t):qe.splice(Ay(e),0,t),t.flags|=1,Q0()}}function Q0(){Sa||(Sa=Z0.then(eg))}function M0(t){_t(t)?Uo.push(...t):Ei&&t.id===-1?Ei.splice($o+1,0,t):t.flags&1||(Uo.push(t),t.flags|=1),Q0()}function Gd(t,e,n=$n+1){for(;nXs(n)-Xs(i));if(Uo.length=0,Ei){Ei.push(...e);return}for(Ei=e,$o=0;$ot.id==null?t.flags&2?-1:1/0:t.id;function eg(t){try{for($n=0;$nTt;function Tt(t,e=ke,n){if(!e||t._n)return t;const i=(...o)=>{i._d&&Pa(-1);const s=Aa(e);let r;try{r=t(...o)}finally{Aa(s),i._d&&Pa(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function ws(t,e){if(ke===null)return t;const n=Sl(ke),i=t.dirs||(t.dirs=[]);for(let o=0;o1)return n&&kt(e)?e.call(i&&i.proxy):e}}const Py=Symbol.for("v-scx"),Ry=()=>ki(Py);function ig(t,e){return yl(t,null,e)}function Ly(t,e){return yl(t,null,{flush:"sync"})}function Xe(t,e,n){return yl(t,e,n)}function yl(t,e,n=Ut){const{immediate:i,deep:o,flush:s,once:r}=n,a=ye({},n),l=e&&i||!e&&s!=="post";let c;if(tr){if(s==="sync"){const p=Ry();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!l){const p=()=>{};return p.stop=En,p.resume=En,p.pause=En,p}}const u=Fe;a.call=(p,y,m)=>mn(p,u,y,m);let d=!1;s==="post"?a.scheduler=p=>{We(p,u&&u.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(p,y)=>{y?p():jc(p)}),a.augmentJob=p=>{e&&(p.flags|=4),d&&(p.flags|=2,u&&(p.id=u.uid,p.i=u))};const f=Ey(t,e,a);return tr&&(c?c.push(f):l&&f()),f}function Dy(t,e,n){const i=this.proxy,o=se(t)?t.includes(".")?og(i,t):()=>i[t]:t.bind(i,i);let s;kt(e)?s=e:(s=e.handler,n=e);const r=_r(this),a=yl(o,s.bind(i),n);return r(),a}function og(t,e){const n=e.split(".");return()=>{let i=t;for(let o=0;ot.__isTeleport,Zi=t=>t&&(t.disabled||t.disabled===""),Ny=t=>t&&(t.defer||t.defer===""),qd=t=>typeof SVGElement<"u"&&t instanceof SVGElement,Kd=t=>typeof MathMLElement=="function"&&t instanceof MathMLElement,Wu=(t,e)=>{const n=t&&t.to;return se(n)?e?e(n):null:n},Oy={name:"Teleport",__isTeleport:!0,process(t,e,n,i,o,s,r,a,l,c){const{mc:u,pc:d,pbc:f,o:{insert:p,querySelector:y,createText:m,createComment:x,parentNode:_}}=c,S=Zi(e.props);let{dynamicChildren:P}=e;const A=(V,J,q)=>{V.shapeFlag&16&&u(V.children,J,q,o,s,r,a,l)},O=(V=e)=>{const J=Zi(V.props),q=V.target=Wu(V.props,y),I=Gu(q,V,m,p);q&&(r!=="svg"&&qd(q)?r="svg":r!=="mathml"&&Kd(q)&&(r="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(q),J||(A(V,q,I),xs(V,!1)))},U=V=>{const J=()=>{if(_i.get(V)===J){if(_i.delete(V),Zi(V.props)){const q=_(V.el)||n;A(V,q,V.anchor),xs(V,!0)}O(V)}};_i.set(V,J),We(J,s)};if(t==null){const V=e.el=m(""),J=e.anchor=m("");if(p(V,n,i),p(J,n,i),Ny(e.props)||s&&s.pendingBranch){U(e);return}S&&(A(e,n,J),xs(e,!0)),O()}else{e.el=t.el;const V=e.anchor=t.anchor,J=_i.get(t);if(J){J.flags|=8,_i.delete(t),U(e);return}e.targetStart=t.targetStart;const q=e.target=t.target,I=e.targetAnchor=t.targetAnchor,et=Zi(t.props),T=et?n:q,j=et?V:I;if(r==="svg"||qd(q)?r="svg":(r==="mathml"||Kd(q))&&(r="mathml"),P?(f(t.dynamicChildren,P,T,o,s,r,a),Hc(t,e,!0)):l||d(t,e,T,j,o,s,r,a,!1),S)et?e.props&&t.props&&e.props.to!==t.props.to&&(e.props.to=t.props.to):Fr(e,n,V,c,1);else if((e.props&&e.props.to)!==(t.props&&t.props.to)){const Q=e.target=Wu(e.props,y);Q&&Fr(e,Q,null,c,0)}else et&&Fr(e,q,I,c,1);xs(e,S)}},remove(t,e,n,{um:i,o:{remove:o}},s){const{shapeFlag:r,children:a,anchor:l,targetStart:c,targetAnchor:u,target:d,props:f}=t,p=s||!Zi(f),y=_i.get(t);if(y&&(y.flags|=8,_i.delete(t)),d&&(o(c),o(u)),s&&o(l),!y&&r&16)for(let m=0;m{t.isMounted=!0}),gg(()=>{t.isUnmounting=!0}),t}const cn=[Function,Array],ag={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:cn,onEnter:cn,onAfterEnter:cn,onEnterCancelled:cn,onBeforeLeave:cn,onLeave:cn,onAfterLeave:cn,onLeaveCancelled:cn,onBeforeAppear:cn,onAppear:cn,onAfterAppear:cn,onAppearCancelled:cn},lg=t=>{const e=t.subTree;return e.component?lg(e.component):e},jy={name:"BaseTransition",props:ag,setup(t,{slots:e}){const n=Kn(),i=Fy();return()=>{const o=e.default&&dg(e.default(),!0),s=o&&o.length?ug(o):n.subTree?bt():void 0;if(!s)return;const r=jt(t),{mode:a}=r;if(i.isLeaving)return Yl(s);const l=Xd(s);if(!l)return Yl(s);let c=qu(l,r,i,n,d=>c=d);l.type!==Ce&&Ys(l,c);let u=n.subTree&&Xd(n.subTree);if(u&&u.type!==Ce&&!Qi(u,l)&&lg(n).type!==Ce){let d=qu(u,r,i,n);if(Ys(u,d),a==="out-in"&&l.type!==Ce)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},Yl(s);a==="in-out"&&l.type!==Ce?d.delayLeave=(f,p,y)=>{const m=cg(i,u);m[String(u.key)]=u,f[fn]=()=>{p(),f[fn]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{y(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function ug(t){let e=t[0];if(t.length>1){for(const n of t)if(n.type!==Ce){e=n;break}}return e}const Uy=jy;function cg(t,e){const{leavingVNodes:n}=t;let i=n.get(e.type);return i||(i=Object.create(null),n.set(e.type,i)),i}function qu(t,e,n,i,o){const{appear:s,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:y,onLeaveCancelled:m,onBeforeAppear:x,onAppear:_,onAfterAppear:S,onAppearCancelled:P}=e,A=String(t.key),O=cg(n,t),U=(q,I)=>{q&&mn(q,i,9,I)},V=(q,I)=>{const et=I[1];U(q,I),_t(q)?q.every(T=>T.length<=1)&&et():q.length<=1&&et()},J={mode:r,persisted:a,beforeEnter(q){let I=l;if(!n.isMounted)if(s)I=x||l;else return;q[fn]&&q[fn](!0);const et=O[A];et&&Qi(t,et)&&et.el[fn]&&et.el[fn](),U(I,[q])},enter(q){if(O[A]===t)return;let I=c,et=u,T=d;if(!n.isMounted)if(s)I=_||c,et=S||u,T=P||d;else return;let j=!1;q[as]=M=>{j||(j=!0,M?U(T,[q]):U(et,[q]),J.delayedLeave&&J.delayedLeave(),q[as]=void 0)};const Q=q[as].bind(null,!1);I?V(I,[q,Q]):Q()},leave(q,I){const et=String(t.key);if(q[as]&&q[as](!0),n.isUnmounting)return I();U(f,[q]);let T=!1;q[fn]=Q=>{T||(T=!0,I(),Q?U(m,[q]):U(y,[q]),q[fn]=void 0,O[et]===t&&delete O[et])};const j=q[fn].bind(null,!1);O[et]=t,p?V(p,[q,j]):j()},clone(q){const I=qu(q,e,n,i,o);return o&&o(I),I}};return J}function Yl(t){if(bl(t))return t=Ni(t),t.children=null,t}function Xd(t){if(!bl(t))return rg(t.type)&&t.children?ug(t.children):t;if(t.component)return t.component.subTree;const{shapeFlag:e,children:n}=t;if(n){if(e&16)return n[0];if(e&32&&kt(n.default))return n.default()}}function Ys(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Ys(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function dg(t,e=!1,n){let i=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:o=>n.value=o})}return n}function Yd(t,e){let n;return!!((n=Object.getOwnPropertyDescriptor(t,e))&&!n.configurable)}const Ca=new WeakMap;function Ds(t,e,n,i,o=!1){if(_t(t)){t.forEach((m,x)=>Ds(m,e&&(_t(e)?e[x]:e),n,i,o));return}if(Vo(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Ds(t,e,n,i.component.subTree);return}const s=i.shapeFlag&4?Sl(i.component):i.el,r=o?null:s,{i:a,r:l}=t,c=e&&e.r,u=a.refs===Ut?a.refs={}:a.refs,d=a.setupState,f=jt(d),p=d===Ut?E0:m=>Yd(u,m)?!1:Zt(f,m),y=(m,x)=>!(x&&Yd(u,x));if(c!=null&&c!==l){if(Zd(e),se(c))u[c]=null,p(c)&&(d[c]=null);else if(ve(c)){const m=e;y(c,m.k)&&(c.value=null),m.k&&(u[m.k]=null)}}if(kt(l))vr(l,a,12,[r,u]);else{const m=se(l),x=ve(l);if(m||x){const _=()=>{if(t.f){const S=m?p(l)?d[l]:u[l]:y()||!t.k?l.value:u[t.k];if(o)_t(S)&&Oc(S,s);else if(_t(S))S.includes(s)||S.push(s);else if(m)u[l]=[s],p(l)&&(d[l]=u[l]);else{const P=[s];y(l,t.k)&&(l.value=P),t.k&&(u[t.k]=P)}}else m?(u[l]=r,p(l)&&(d[l]=r)):x&&(y(l,t.k)&&(l.value=r),t.k&&(u[t.k]=r))};if(r){const S=()=>{_(),Ca.delete(t)};S.id=-1,Ca.set(t,S),We(S,n)}else Zd(t),_()}}}function Zd(t){const e=Ca.get(t);e&&(e.flags|=8,Ca.delete(t))}_a().requestIdleCallback,_a().cancelIdleCallback;const Vo=t=>!!t.type.__asyncLoader,bl=t=>t.type.__isKeepAlive;function Vy(t,e){fg(t,"a",e)}function Iy(t,e){fg(t,"da",e)}function fg(t,e,n=Fe){const i=t.__wdc||(t.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return t()});if(_l(e,i,n),n){let o=n.parent;for(;o&&o.parent;)bl(o.parent.vnode)&&zy(i,e,n,o),o=o.parent}}function zy(t,e,n,i){const o=_l(e,t,i,!0);qn(()=>{Oc(i[e],o)},n)}function _l(t,e,n=Fe,i=!1){if(n){const o=n[t]||(n[t]=[]),s=e.__weh||(e.__weh=(...r)=>{ci();const a=_r(n),l=mn(e,n,t,r);return a(),di(),l});return i?o.unshift(s):o.push(s),s}}const gi=t=>(e,n=Fe)=>{(!tr||t==="sp")&&_l(t,(...i)=>e(...i),n)},Hy=gi("bm"),Bi=gi("m"),pg=gi("bu"),Jy=gi("u"),gg=gi("bum"),qn=gi("um"),Wy=gi("sp"),Gy=gi("rtg"),qy=gi("rtc");function Ky(t,e=Fe){_l("ec",t,e)}const mg="components";function Zs(t,e){return yg(mg,t,!0,e)||t}const vg=Symbol.for("v-ndc");function wl(t){return se(t)?yg(mg,t,!1)||t:t||vg}function yg(t,e,n=!0,i=!1){const o=ke||Fe;if(o){const s=o.type;{const a=Rb(s,!1);if(a&&(a===e||a===Ue(e)||a===dl(Ue(e))))return s}const r=Qd(o[t]||s[t],e)||Qd(o.appContext[t],e);return!r&&i?s:r}}function Qd(t,e){return t&&(t[e]||t[Ue(e)]||t[dl(Ue(e))])}function mi(t,e,n,i){let o;const s=n,r=_t(t);if(r||se(t)){const a=r&&uo(t);let l=!1,c=!1;a&&(l=!ln(t),c=hi(t),t=fl(t)),o=new Array(t.length);for(let u=0,d=t.length;ue(a,l,void 0,s));else{const a=Object.keys(t);o=new Array(a.length);for(let l=0,c=a.length;l{const s=i.fn(...o);return s&&(s.key=i.key),s}:i.fn)}return t}function Qt(t,e,n={},i,o){if(ke.ce||ke.parent&&Vo(ke.parent)&&ke.parent.ce){const c=Object.keys(n).length>0;return e!=="default"&&(n.name=e),D(),xt(Et,null,[nt("slot",n,i&&i())],c?-2:64)}let s=t[e];s&&s._c&&(s._d=!1),D();const r=s&&bg(s(n)),a=n.key||r&&r.key,l=xt(Et,{key:(a&&!un(a)?a:`_${e}`)+(!r&&i?"_fb":"")},r||(i?i():[]),r&&t._===1?64:-2);return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function bg(t){return t.some(e=>Ms(e)?!(e.type===Ce||e.type===Et&&!bg(e.children)):!0)?t:null}function Xy(t,e){const n={};for(const i in t)n[oa(i)]=t[i];return n}const Xu=t=>t?Ug(t)?Sl(t):Xu(t.parent):null,Ns=ye(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Xu(t.parent),$root:t=>Xu(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>wg(t),$forceUpdate:t=>t.f||(t.f=()=>{jc(t.update)}),$nextTick:t=>t.n||(t.n=yr.bind(t.proxy)),$watch:t=>Dy.bind(t)}),Zl=(t,e)=>t!==Ut&&!t.__isScriptSetup&&Zt(t,e),Yy={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:n,setupState:i,data:o,props:s,accessCache:r,type:a,appContext:l}=t;if(e[0]!=="$"){const f=r[e];if(f!==void 0)switch(f){case 1:return i[e];case 2:return o[e];case 4:return n[e];case 3:return s[e]}else{if(Zl(i,e))return r[e]=1,i[e];if(o!==Ut&&Zt(o,e))return r[e]=2,o[e];if(Zt(s,e))return r[e]=3,s[e];if(n!==Ut&&Zt(n,e))return r[e]=4,n[e];Yu&&(r[e]=0)}}const c=Ns[e];let u,d;if(c)return e==="$attrs"&&Be(t.attrs,"get",""),c(t);if((u=a.__cssModules)&&(u=u[e]))return u;if(n!==Ut&&Zt(n,e))return r[e]=4,n[e];if(d=l.config.globalProperties,Zt(d,e))return d[e]},set({_:t},e,n){const{data:i,setupState:o,ctx:s}=t;return Zl(o,e)?(o[e]=n,!0):i!==Ut&&Zt(i,e)?(i[e]=n,!0):Zt(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=n,!0)},has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:o,props:s,type:r}},a){let l;return!!(n[a]||t!==Ut&&a[0]!=="$"&&Zt(t,a)||Zl(e,a)||Zt(s,a)||Zt(i,a)||Zt(Ns,a)||Zt(o.config.globalProperties,a)||(l=r.__cssModules)&&l[a])},defineProperty(t,e,n){return n.get!=null?t._.accessCache[e]=0:Zt(n,"value")&&this.set(t,e,n.value,null),Reflect.defineProperty(t,e,n)}};function xl(){return Zy().slots}function Zy(t){const e=Kn();return e.setupContext||(e.setupContext=Ig(e))}function Ta(t){return _t(t)?t.reduce((e,n)=>(e[n]=null,e),{}):t}function Go(t,e){return!t||!e?t||e:_t(t)&&_t(e)?t.concat(e):ye({},Ta(t),Ta(e))}let Yu=!0;function Qy(t){const e=wg(t),n=t.proxy,i=t.ctx;Yu=!1,e.beforeCreate&&Md(e.beforeCreate,t,"bc");const{data:o,computed:s,methods:r,watch:a,provide:l,inject:c,created:u,beforeMount:d,mounted:f,beforeUpdate:p,updated:y,activated:m,deactivated:x,beforeDestroy:_,beforeUnmount:S,destroyed:P,unmounted:A,render:O,renderTracked:U,renderTriggered:V,errorCaptured:J,serverPrefetch:q,expose:I,inheritAttrs:et,components:T,directives:j,filters:Q}=e;if(c&&My(c,i,null),r)for(const Z in r){const rt=r[Z];kt(rt)&&(i[Z]=rt.bind(n))}if(o){const Z=o.call(n,n);Yt(Z)&&(t.data=Wo(Z))}if(Yu=!0,s)for(const Z in s){const rt=s[Z],lt=kt(rt)?rt.bind(n,n):kt(rt.get)?rt.get.bind(n,n):En,ft=!kt(rt)&&kt(rt.set)?rt.set.bind(n):En,pt=ct({get:lt,set:ft});Object.defineProperty(i,Z,{enumerable:!0,configurable:!0,get:()=>pt.value,set:St=>pt.value=St})}if(a)for(const Z in a)_g(a[Z],i,n,Z);if(l){const Z=kt(l)?l.call(n):l;Reflect.ownKeys(Z).forEach(rt=>{ng(rt,Z[rt])})}u&&Md(u,t,"c");function M(Z,rt){_t(rt)?rt.forEach(lt=>Z(lt.bind(n))):rt&&Z(rt.bind(n))}if(M(Hy,d),M(Bi,f),M(pg,p),M(Jy,y),M(Vy,m),M(Iy,x),M(Ky,J),M(qy,U),M(Gy,V),M(gg,S),M(qn,A),M(Wy,q),_t(I))if(I.length){const Z=t.exposed||(t.exposed={});I.forEach(rt=>{Object.defineProperty(Z,rt,{get:()=>n[rt],set:lt=>n[rt]=lt,enumerable:!0})})}else t.exposed||(t.exposed={});O&&t.render===En&&(t.render=O),et!=null&&(t.inheritAttrs=et),T&&(t.components=T),j&&(t.directives=j),q&&hg(t)}function My(t,e,n=En){_t(t)&&(t=Zu(t));for(const i in t){const o=t[i];let s;Yt(o)?"default"in o?s=ki(o.from||i,o.default,!0):s=ki(o.from||i):s=ki(o),ve(s)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):e[i]=s}}function Md(t,e,n){mn(_t(t)?t.map(i=>i.bind(e.proxy)):t.bind(e.proxy),e,n)}function _g(t,e,n,i){let o=i.includes(".")?og(n,i):()=>n[i];if(se(t)){const s=e[t];kt(s)&&Xe(o,s)}else if(kt(t))Xe(o,t.bind(n));else if(Yt(t))if(_t(t))t.forEach(s=>_g(s,e,n,i));else{const s=kt(t.handler)?t.handler.bind(n):e[t.handler];kt(s)&&Xe(o,s,t)}}function wg(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:o,optionsCache:s,config:{optionMergeStrategies:r}}=t.appContext,a=s.get(e);let l;return a?l=a:!o.length&&!n&&!i?l=e:(l={},o.length&&o.forEach(c=>ka(l,c,r,!0)),ka(l,e,r)),Yt(e)&&s.set(e,l),l}function ka(t,e,n,i=!1){const{mixins:o,extends:s}=e;s&&ka(t,s,n,!0),o&&o.forEach(r=>ka(t,r,n,!0));for(const r in e)if(!(i&&r==="expose")){const a=tb[r]||n&&n[r];t[r]=a?a(t[r],e[r]):e[r]}return t}const tb={data:th,props:eh,emits:eh,methods:Es,computed:Es,beforeCreate:Je,created:Je,beforeMount:Je,mounted:Je,beforeUpdate:Je,updated:Je,beforeDestroy:Je,beforeUnmount:Je,destroyed:Je,unmounted:Je,activated:Je,deactivated:Je,errorCaptured:Je,serverPrefetch:Je,components:Es,directives:Es,watch:nb,provide:th,inject:eb};function th(t,e){return e?t?function(){return ye(kt(t)?t.call(this,this):t,kt(e)?e.call(this,this):e)}:e:t}function eb(t,e){return Es(Zu(t),Zu(e))}function Zu(t){if(_t(t)){const e={};for(let n=0;n{let u,d=Ut,f;return Ly(()=>{const p=t[o];$e(u,p)&&(u=p,c())}),{get(){return l(),n.get?n.get(u):u},set(p){const y=n.set?n.set(p):p;if(!$e(y,u)&&!(d!==Ut&&$e(p,d)))return;const m=i.vnode.props;m&&(e in m||o in m||s in m)&&(`onUpdate:${e}`in m||`onUpdate:${o}`in m||`onUpdate:${s}`in m)||(u=p,c()),i.emit(`update:${e}`,y),$e(p,y)&&$e(p,d)&&!$e(y,f)&&c(),d=p,f=y}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||Ut:a,done:!1}:{done:!0}}}},a}const Eg=(t,e)=>e==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Ue(e)}Modifiers`]||t[`${pi(e)}Modifiers`];function sb(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||Ut;let o=n;const s=e.startsWith("update:"),r=s&&Eg(i,e.slice(7));r&&(r.trim&&(o=n.map(u=>se(u)?u.trim():u)),r.number&&(o=n.map(Ov)));let a,l=i[a=oa(e)]||i[a=oa(Ue(e))];!l&&s&&(l=i[a=oa(pi(e))]),l&&mn(l,t,6,o);const c=i[a+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[a])return;t.emitted[a]=!0,mn(c,t,6,o)}}const rb=new WeakMap;function Sg(t,e,n=!1){const i=n?rb:e.emitsCache,o=i.get(t);if(o!==void 0)return o;const s=t.emits;let r={},a=!1;if(!kt(t)){const l=c=>{const u=Sg(c,e,!0);u&&(a=!0,ye(r,u))};!n&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!a?(Yt(t)&&i.set(t,null),null):(_t(s)?s.forEach(l=>r[l]=null):ye(r,s),Yt(t)&&i.set(t,r),r)}function El(t,e){return!t||!rl(e)?!1:(e=e.slice(2).replace(/Once$/,""),Zt(t,e[0].toLowerCase()+e.slice(1))||Zt(t,pi(e))||Zt(t,e))}function nh(t){const{type:e,vnode:n,proxy:i,withProxy:o,propsOptions:[s],slots:r,attrs:a,emit:l,render:c,renderCache:u,props:d,data:f,setupState:p,ctx:y,inheritAttrs:m}=t,x=Aa(t);let _,S;try{if(n.shapeFlag&4){const A=o||i,O=A;_=Vn(c.call(O,A,u,d,p,f,y)),S=a}else{const A=e;_=Vn(A.length>1?A(d,{attrs:a,slots:r,emit:l}):A(d,null)),S=e.props?a:ab(a)}}catch(A){Os.length=0,ml(A,t,1),_=nt(Ce)}let P=_;if(S&&m!==!1){const A=Object.keys(S),{shapeFlag:O}=P;A.length&&O&7&&(s&&A.some(al)&&(S=lb(S,s)),P=Ni(P,S,!1,!0))}return n.dirs&&(P=Ni(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition&&Ys(P,n.transition),_=P,Aa(x),_}const ab=t=>{let e;for(const n in t)(n==="class"||n==="style"||rl(n))&&((e||(e={}))[n]=t[n]);return e},lb=(t,e)=>{const n={};for(const i in t)(!al(i)||!(i.slice(9)in e))&&(n[i]=t[i]);return n};function ub(t,e,n){const{props:i,children:o,component:s}=t,{props:r,children:a,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?ih(i,r,c):!!r;if(l&8){const u=e.dynamicProps;for(let d=0;dObject.create(Cg),kg=t=>Object.getPrototypeOf(t)===Cg;function db(t,e,n,i=!1){const o={},s=Tg();t.propsDefaults=Object.create(null),Pg(t,e,o,s);for(const r in t.propsOptions[0])r in o||(o[r]=void 0);n?t.props=i?o:cy(o):t.type.props?t.props=o:t.props=s,t.attrs=s}function hb(t,e,n,i){const{props:o,attrs:s,vnode:{patchFlag:r}}=t,a=jt(o),[l]=t.propsOptions;let c=!1;if((i||r>0)&&!(r&16)){if(r&8){const u=t.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,p]=Rg(d,e,!0);ye(r,f),p&&a.push(...p)};!n&&e.mixins.length&&e.mixins.forEach(u),t.extends&&u(t.extends),t.mixins&&t.mixins.forEach(u)}if(!s&&!l)return Yt(t)&&i.set(t,Fo),Fo;if(_t(s))for(let u=0;ut==="_"||t==="_ctx"||t==="$stable",zc=t=>_t(t)?t.map(Vn):[Vn(t)],pb=(t,e,n)=>{if(e._n)return e;const i=Tt((...o)=>zc(e(...o)),n);return i._c=!1,i},Lg=(t,e,n)=>{const i=t._ctx;for(const o in t){if(Ic(o))continue;const s=t[o];if(kt(s))e[o]=pb(o,s,i);else if(s!=null){const r=zc(s);e[o]=()=>r}}},Dg=(t,e)=>{const n=zc(e);t.slots.default=()=>n},Ng=(t,e,n)=>{for(const i in e)(n||!Ic(i))&&(t[i]=e[i])},gb=(t,e,n)=>{const i=t.slots=Tg();if(t.vnode.shapeFlag&32){const o=e._;o?(Ng(i,e,n),n&&T0(i,"_",o,!0)):Lg(e,i)}else e&&Dg(t,e)},mb=(t,e,n)=>{const{vnode:i,slots:o}=t;let s=!0,r=Ut;if(i.shapeFlag&32){const a=e._;a?n&&a===1?s=!1:Ng(o,e,n):(s=!e.$stable,Lg(e,o)),r=e}else e&&(Dg(t,e),r={default:1});if(s)for(const a in o)!Ic(a)&&r[a]==null&&delete o[a]},We=wb;function vb(t){return yb(t)}function yb(t,e){const n=_a();n.__VUE__=!0;const{insert:i,remove:o,patchProp:s,createElement:r,createText:a,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:f,setScopeId:p=En,insertStaticContent:y}=t,m=(C,k,W,K=null,X=null,B=null,ot=void 0,st=null,it=!!k.dynamicChildren)=>{if(C===k)return;C&&!Qi(C,k)&&(K=ne(C),gt(C,X,B,!0),C=null),k.patchFlag===-2&&(it=!1,k.dynamicChildren=null);const{type:tt,ref:mt,shapeFlag:ut}=k;switch(tt){case br:x(C,k,W,K);break;case Ce:_(C,k,W,K);break;case ra:C==null&&S(k,W,K,ot);break;case Et:T(C,k,W,K,X,B,ot,st,it);break;default:ut&1?O(C,k,W,K,X,B,ot,st,it):ut&6?j(C,k,W,K,X,B,ot,st,it):(ut&64||ut&128)&&tt.process(C,k,W,K,X,B,ot,st,it,yn)}mt!=null&&X?Ds(mt,C&&C.ref,B,k||C,!k):mt==null&&C&&C.ref!=null&&Ds(C.ref,null,B,C,!0)},x=(C,k,W,K)=>{if(C==null)i(k.el=a(k.children),W,K);else{const X=k.el=C.el;k.children!==C.children&&c(X,k.children)}},_=(C,k,W,K)=>{C==null?i(k.el=l(k.children||""),W,K):k.el=C.el},S=(C,k,W,K)=>{[C.el,C.anchor]=y(C.children,k,W,K,C.el,C.anchor)},P=({el:C,anchor:k},W,K)=>{let X;for(;C&&C!==k;)X=f(C),i(C,W,K),C=X;i(k,W,K)},A=({el:C,anchor:k})=>{let W;for(;C&&C!==k;)W=f(C),o(C),C=W;o(k)},O=(C,k,W,K,X,B,ot,st,it)=>{if(k.type==="svg"?ot="svg":k.type==="math"&&(ot="mathml"),C==null)U(k,W,K,X,B,ot,st,it);else{const tt=C.el&&C.el._isVueCE?C.el:null;try{tt&&tt._beginPatch(),q(C,k,X,B,ot,st,it)}finally{tt&&tt._endPatch()}}},U=(C,k,W,K,X,B,ot,st)=>{let it,tt;const{props:mt,shapeFlag:ut,transition:yt,dirs:vt}=C;if(it=C.el=r(C.type,B,mt&&mt.is,mt),ut&8?u(it,C.children):ut&16&&J(C.children,it,null,K,X,Ql(C,B),ot,st),vt&&Ui(C,null,K,"created"),V(it,C,C.scopeId,ot,K),mt){for(const Dt in mt)Dt!=="value"&&!Ps(Dt)&&s(it,Dt,null,mt[Dt],B,K);"value"in mt&&s(it,"value",null,mt.value,B),(tt=mt.onVnodeBeforeMount)&&Dn(tt,K,C)}vt&&Ui(C,null,K,"beforeMount");const wt=bb(X,yt);wt&&yt.beforeEnter(it),i(it,k,W),((tt=mt&&mt.onVnodeMounted)||wt||vt)&&We(()=>{tt&&Dn(tt,K,C),wt&&yt.enter(it),vt&&Ui(C,null,K,"mounted")},X)},V=(C,k,W,K,X)=>{if(W&&p(C,W),K)for(let B=0;B{for(let tt=it;tt{const st=k.el=C.el;let{patchFlag:it,dynamicChildren:tt,dirs:mt}=k;it|=C.patchFlag&16;const ut=C.props||Ut,yt=k.props||Ut;let vt;if(W&&Vi(W,!1),(vt=yt.onVnodeBeforeUpdate)&&Dn(vt,W,k,C),mt&&Ui(k,C,W,"beforeUpdate"),W&&Vi(W,!0),(ut.innerHTML&&yt.innerHTML==null||ut.textContent&&yt.textContent==null)&&u(st,""),tt?I(C.dynamicChildren,tt,st,W,K,Ql(k,X),B):ot||lt(C,k,st,null,W,K,Ql(k,X),B,!1),it>0){if(it&16)et(st,ut,yt,W,X);else if(it&2&&ut.class!==yt.class&&s(st,"class",null,yt.class,X),it&4&&s(st,"style",ut.style,yt.style,X),it&8){const wt=k.dynamicProps;for(let Dt=0;Dt{vt&&Dn(vt,W,k,C),mt&&Ui(k,C,W,"updated")},K)},I=(C,k,W,K,X,B,ot)=>{for(let st=0;st{if(k!==W){if(k!==Ut)for(const B in k)!Ps(B)&&!(B in W)&&s(C,B,k[B],null,X,K);for(const B in W){if(Ps(B))continue;const ot=W[B],st=k[B];ot!==st&&B!=="value"&&s(C,B,st,ot,X,K)}"value"in W&&s(C,"value",k.value,W.value,X)}},T=(C,k,W,K,X,B,ot,st,it)=>{const tt=k.el=C?C.el:a(""),mt=k.anchor=C?C.anchor:a("");let{patchFlag:ut,dynamicChildren:yt,slotScopeIds:vt}=k;vt&&(st=st?st.concat(vt):vt),C==null?(i(tt,W,K),i(mt,W,K),J(k.children||[],W,mt,X,B,ot,st,it)):ut>0&&ut&64&&yt&&C.dynamicChildren&&C.dynamicChildren.length===yt.length?(I(C.dynamicChildren,yt,W,X,B,ot,st),(k.key!=null||X&&k===X.subTree)&&Hc(C,k,!0)):lt(C,k,W,mt,X,B,ot,st,it)},j=(C,k,W,K,X,B,ot,st,it)=>{k.slotScopeIds=st,C==null?k.shapeFlag&512?X.ctx.activate(k,W,K,ot,it):Q(k,W,K,X,B,ot,it):M(C,k,it)},Q=(C,k,W,K,X,B,ot)=>{const st=C.component=Cb(C,K,X);if(bl(C)&&(st.ctx.renderer=yn),Tb(st,!1,ot),st.asyncDep){if(X&&X.registerDep(st,Z,ot),!C.el){const it=st.subTree=nt(Ce);_(null,it,k,W),C.placeholder=it.el}}else Z(st,C,k,W,X,B,ot)},M=(C,k,W)=>{const K=k.component=C.component;if(ub(C,k,W))if(K.asyncDep&&!K.asyncResolved){rt(K,k,W);return}else K.next=k,K.update();else k.el=C.el,K.vnode=k},Z=(C,k,W,K,X,B,ot)=>{const st=()=>{if(C.isMounted){let{next:ut,bu:yt,u:vt,parent:wt,vnode:Dt}=C;{const g=Og(C);if(g){ut&&(ut.el=Dt.el,rt(C,ut,ot)),g.asyncDep.then(()=>{We(()=>{C.isUnmounted||tt()},X)});return}}let Wt=ut,It;Vi(C,!1),ut?(ut.el=Dt.el,rt(C,ut,ot)):ut=Dt,yt&&sa(yt),(It=ut.props&&ut.props.onVnodeBeforeUpdate)&&Dn(It,wt,ut,Dt),Vi(C,!0);const ae=nh(C),h=C.subTree;C.subTree=ae,m(h,ae,d(h.el),ne(h),C,X,B),ut.el=ae.el,Wt===null&&cb(C,ae.el),vt&&We(vt,X),(It=ut.props&&ut.props.onVnodeUpdated)&&We(()=>Dn(It,wt,ut,Dt),X)}else{let ut;const{el:yt,props:vt}=k,{bm:wt,m:Dt,parent:Wt,root:It,type:ae}=C,h=Vo(k);Vi(C,!1),wt&&sa(wt),!h&&(ut=vt&&vt.onVnodeBeforeMount)&&Dn(ut,Wt,k),Vi(C,!0);{It.ce&&It.ce._hasShadowRoot()&&It.ce._injectChildStyle(ae,C.parent?C.parent.type:void 0);const g=C.subTree=nh(C);m(null,g,W,K,C,X,B),k.el=g.el}if(Dt&&We(Dt,X),!h&&(ut=vt&&vt.onVnodeMounted)){const g=k;We(()=>Dn(ut,Wt,g),X)}(k.shapeFlag&256||Wt&&Vo(Wt.vnode)&&Wt.vnode.shapeFlag&256)&&C.a&&We(C.a,X),C.isMounted=!0,k=W=K=null}};C.scope.on();const it=C.effect=new N0(st);C.scope.off();const tt=C.update=it.run.bind(it),mt=C.job=it.runIfDirty.bind(it);mt.i=C,mt.id=C.uid,it.scheduler=()=>jc(mt),Vi(C,!0),tt()},rt=(C,k,W)=>{k.component=C;const K=C.vnode.props;C.vnode=k,C.next=null,hb(C,k.props,K,W),mb(C,k.children,W),ci(),Gd(C),di()},lt=(C,k,W,K,X,B,ot,st,it=!1)=>{const tt=C&&C.children,mt=C?C.shapeFlag:0,ut=k.children,{patchFlag:yt,shapeFlag:vt}=k;if(yt>0){if(yt&128){pt(tt,ut,W,K,X,B,ot,st,it);return}else if(yt&256){ft(tt,ut,W,K,X,B,ot,st,it);return}}vt&8?(mt&16&&At(tt,X,B),ut!==tt&&u(W,ut)):mt&16?vt&16?pt(tt,ut,W,K,X,B,ot,st,it):At(tt,X,B,!0):(mt&8&&u(W,""),vt&16&&J(ut,W,K,X,B,ot,st,it))},ft=(C,k,W,K,X,B,ot,st,it)=>{C=C||Fo,k=k||Fo;const tt=C.length,mt=k.length,ut=Math.min(tt,mt);let yt;for(yt=0;ytmt?At(C,X,B,!0,!1,ut):J(k,W,K,X,B,ot,st,it,ut)},pt=(C,k,W,K,X,B,ot,st,it)=>{let tt=0;const mt=k.length;let ut=C.length-1,yt=mt-1;for(;tt<=ut&&tt<=yt;){const vt=C[tt],wt=k[tt]=it?ni(k[tt]):Vn(k[tt]);if(Qi(vt,wt))m(vt,wt,W,null,X,B,ot,st,it);else break;tt++}for(;tt<=ut&&tt<=yt;){const vt=C[ut],wt=k[yt]=it?ni(k[yt]):Vn(k[yt]);if(Qi(vt,wt))m(vt,wt,W,null,X,B,ot,st,it);else break;ut--,yt--}if(tt>ut){if(tt<=yt){const vt=yt+1,wt=vtyt)for(;tt<=ut;)gt(C[tt],X,B,!0),tt++;else{const vt=tt,wt=tt,Dt=new Map;for(tt=wt;tt<=yt;tt++){const $=k[tt]=it?ni(k[tt]):Vn(k[tt]);$.key!=null&&Dt.set($.key,tt)}let Wt,It=0;const ae=yt-wt+1;let h=!1,g=0;const v=new Array(ae);for(tt=0;tt=ae){gt($,X,B,!0);continue}let G;if($.key!=null)G=Dt.get($.key);else for(Wt=wt;Wt<=yt;Wt++)if(v[Wt-wt]===0&&Qi($,k[Wt])){G=Wt;break}G===void 0?gt($,X,B,!0):(v[G-wt]=tt+1,G>=g?g=G:h=!0,m($,k[G],W,null,X,B,ot,st,it),It++)}const R=h?_b(v):Fo;for(Wt=R.length-1,tt=ae-1;tt>=0;tt--){const $=wt+tt,G=k[$],at=k[$+1],Gt=$+1{const{el:B,type:ot,transition:st,children:it,shapeFlag:tt}=C;if(tt&6){St(C.component.subTree,k,W,K);return}if(tt&128){C.suspense.move(k,W,K);return}if(tt&64){ot.move(C,k,W,yn);return}if(ot===Et){i(B,k,W);for(let mt=0;mtst.enter(B),X));else{const{leave:mt,delayLeave:ut,afterLeave:yt}=st,vt=()=>{C.ctx.isUnmounted?o(B):i(B,k,W)},wt=()=>{const Dt=B._isLeaving||!!B[fn];B._isLeaving&&B[fn](!0),st.persisted&&!Dt?vt():mt(B,()=>{vt(),yt&&yt()})};ut?ut(B,vt,wt):wt()}else i(B,k,W)},gt=(C,k,W,K=!1,X=!1)=>{const{type:B,props:ot,ref:st,children:it,dynamicChildren:tt,shapeFlag:mt,patchFlag:ut,dirs:yt,cacheIndex:vt,memo:wt}=C;if(ut===-2&&(X=!1),st!=null&&(ci(),Ds(st,null,W,C,!0),di()),vt!=null&&(k.renderCache[vt]=void 0),mt&256){k.ctx.deactivate(C);return}const Dt=mt&1&&yt,Wt=!Vo(C);let It;if(Wt&&(It=ot&&ot.onVnodeBeforeUnmount)&&Dn(It,k,C),mt&6)$t(C.component,W,K);else{if(mt&128){C.suspense.unmount(W,K);return}Dt&&Ui(C,null,k,"beforeUnmount"),mt&64?C.type.remove(C,k,W,yn,K):tt&&!tt.hasOnce&&(B!==Et||ut>0&&ut&64)?At(tt,k,W,!1,!0):(B===Et&&ut&384||!X&&mt&16)&&At(it,k,W),K&&qt(C)}const ae=wt!=null&&vt==null;(Wt&&(It=ot&&ot.onVnodeUnmounted)||Dt||ae)&&We(()=>{It&&Dn(It,k,C),Dt&&Ui(C,null,k,"unmounted"),ae&&(C.el=null)},W)},qt=C=>{const{type:k,el:W,anchor:K,transition:X}=C;if(k===Et){Lt(W,K);return}if(k===ra){A(C);return}const B=()=>{o(W),X&&!X.persisted&&X.afterLeave&&X.afterLeave()};if(C.shapeFlag&1&&X&&!X.persisted){const{leave:ot,delayLeave:st}=X,it=()=>ot(W,B);st?st(C.el,B,it):it()}else B()},Lt=(C,k)=>{let W;for(;C!==k;)W=f(C),o(C),C=W;o(k)},$t=(C,k,W)=>{const{bum:K,scope:X,job:B,subTree:ot,um:st,m:it,a:tt}=C;sh(it),sh(tt),K&&sa(K),X.stop(),B&&(B.flags|=8,gt(ot,C,k,W)),st&&We(st,k),We(()=>{C.isUnmounted=!0},k)},At=(C,k,W,K=!1,X=!1,B=0)=>{for(let ot=B;ot{if(C.shapeFlag&6)return ne(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();const k=f(C.anchor||C.el),W=k&&k[sg];return W?f(W):k};let nn=!1;const vn=(C,k,W)=>{let K;C==null?k._vnode&&(gt(k._vnode,null,null,!0),K=k._vnode.component):m(k._vnode||null,C,k,null,null,null,W),k._vnode=C,nn||(nn=!0,Gd(K),tg(),nn=!1)},yn={p:m,um:gt,m:St,r:qt,mt:Q,mc:J,pc:lt,pbc:I,n:ne,o:t};return{render:vn,hydrate:void 0,createApp:ob(vn)}}function Ql({type:t,props:e},n){return n==="svg"&&t==="foreignObject"||n==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:n}function Vi({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function bb(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function Hc(t,e,n=!1){const i=t.children,o=e.children;if(_t(i)&&_t(o))for(let s=0;s>1,t[n[a]]0&&(e[i]=n[s-1]),n[s]=i)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=e[r];return n}function Og(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Og(e)}function sh(t){if(t)for(let e=0;et.__isSuspense;function wb(t,e){e&&e.pendingBranch?_t(t)?e.effects.push(...t):e.effects.push(t):M0(t)}const Et=Symbol.for("v-fgt"),br=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),ra=Symbol.for("v-stc"),Os=[];let an=null;function D(t=!1){Os.push(an=t?null:[])}function xb(){Os.pop(),an=Os[Os.length-1]||null}let Qs=1;function Pa(t,e=!1){Qs+=t,t<0&&an&&e&&(an.hasOnce=!0)}function Fg(t){return t.dynamicChildren=Qs>0?an||Fo:null,xb(),Qs>0&&an&&an.push(t),t}function z(t,e,n,i,o,s){return Fg(b(t,e,n,i,o,s,!0))}function xt(t,e,n,i,o){return Fg(nt(t,e,n,i,o,!0))}function Ms(t){return t?t.__v_isVNode===!0:!1}function Qi(t,e){return t.type===e.type&&t.key===e.key}const jg=({key:t})=>t??null,aa=({ref:t,ref_key:e,ref_for:n})=>(typeof t=="number"&&(t=""+t),t!=null?se(t)||ve(t)||kt(t)?{i:ke,r:t,k:e,f:!!n}:t:null);function b(t,e=null,n=null,i=0,o=null,s=t===Et?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&jg(e),ref:e&&aa(e),scopeId:vl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ke};return a?(Jc(l,n),s&128&&t.normalize(l)):n&&(l.shapeFlag|=se(n)?8:16),Qs>0&&!r&&an&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&an.push(l),l}const nt=Eb;function Eb(t,e=null,n=null,i=0,o=null,s=!1){if((!t||t===vg)&&(t=Ce),Ms(t)){const a=Ni(t,e,!0);return n&&Jc(a,n),Qs>0&&!s&&an&&(a.shapeFlag&6?an[an.indexOf(t)]=a:an.push(a)),a.patchFlag=-2,a}if(Lb(t)&&(t=t.__vccOpts),e){e=Ra(e);let{class:a,style:l}=e;a&&!se(a)&&(e.class=Xt(a)),Yt(l)&&(Qo(l)&&!_t(l)&&(l=ye({},l)),e.style=ao(l))}const r=se(t)?1:Bg(t)?128:rg(t)?64:Yt(t)?4:kt(t)?2:0;return b(t,e,n,i,o,r,s,!0)}function Ra(t){return t?Qo(t)||kg(t)?ye({},t):t:null}function Ni(t,e,n=!1,i=!1){const{props:o,ref:s,patchFlag:r,children:a,transition:l}=t,c=e?te(o||{},e):o,u={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&jg(c),ref:e&&e.ref?n&&s?_t(s)?s.concat(aa(e)):[s,aa(e)]:aa(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:a,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==Et?r===-1?16:r|16:r,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&Ni(t.ssContent),ssFallback:t.ssFallback&&Ni(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&i&&Ys(u,l.clone(u)),u}function Rt(t=" ",e=0){return nt(br,null,t,e)}function bt(t="",e=!1){return e?(D(),xt(Ce,null,t)):nt(Ce,null,t)}function Vn(t){return t==null||typeof t=="boolean"?nt(Ce):_t(t)?nt(Et,null,t.slice()):Ms(t)?ni(t):nt(br,null,String(t))}function ni(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:Ni(t)}function Jc(t,e){let n=0;const{shapeFlag:i}=t;if(e==null)e=null;else if(_t(e))n=16;else if(typeof e=="object")if(i&65){const o=e.default;o&&(o._c&&(o._d=!1),Jc(t,o()),o._c&&(o._d=!0));return}else{n=32;const o=e._;!o&&!kg(e)?e._ctx=ke:o===3&&ke&&(ke.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else kt(e)?(e={default:e,_ctx:ke},n=32):(e=String(e),i&64?(n=16,e=[Rt(e)]):n=8);t.children=e,t.shapeFlag|=n}function te(...t){const e={};for(let n=0;nFe||ke;let La,Mu;{const t=_a(),e=(n,i)=>{let o;return(o=t[n])||(o=t[n]=[]),o.push(i),s=>{o.length>1?o.forEach(r=>r(s)):o[0](s)}};La=e("__VUE_INSTANCE_SETTERS__",n=>Fe=n),Mu=e("__VUE_SSR_SETTERS__",n=>tr=n)}const _r=t=>{const e=Fe;return La(t),t.scope.on(),()=>{t.scope.off(),La(e)}},rh=()=>{Fe&&Fe.scope.off(),La(null)};function Ug(t){return t.vnode.shapeFlag&4}let tr=!1;function Tb(t,e=!1,n=!1){e&&Mu(e);const{props:i,children:o}=t.vnode,s=Ug(t);db(t,i,s,e),gb(t,o,n||e);const r=s?kb(t,e):void 0;return e&&Mu(!1),r}function kb(t,e){const n=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Yy);const{setup:i}=n;if(i){ci();const o=t.setupContext=i.length>1?Ig(t):null,s=_r(t),r=vr(i,t,0,[t.props,o]),a=S0(r);if(di(),s(),(a||t.sp)&&!Vo(t)&&hg(t),a){if(r.then(rh,rh),e)return r.then(l=>{ah(t,l)}).catch(l=>{ml(l,t,0)});t.asyncDep=r}else ah(t,r)}else Vg(t)}function ah(t,e,n){kt(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:Yt(e)&&(t.setupState=Y0(e)),Vg(t)}function Vg(t,e,n){const i=t.type;t.render||(t.render=i.render||En);{const o=_r(t);ci();try{Qy(t)}finally{di(),o()}}}const Pb={get(t,e){return Be(t,"get",""),t[e]}};function Ig(t){const e=n=>{t.exposed=n||{}};return{attrs:new Proxy(t.attrs,Pb),slots:t.slots,emit:t.emit,expose:e}}function Sl(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(Y0(hy(t.exposed)),{get(e,n){if(n in e)return e[n];if(n in Ns)return Ns[n](t)},has(e,n){return n in e||n in Ns}})):t.proxy}function Rb(t,e=!0){return kt(t)?t.displayName||t.name:t.name||e&&t.__name}function Lb(t){return kt(t)&&"__vccOpts"in t}const ct=(t,e)=>wy(t,e,tr);function Oe(t,e,n){try{Pa(-1);const i=arguments.length;return i===2?Yt(e)&&!_t(e)?Ms(e)?nt(t,null,[e]):nt(t,e):nt(t,null,e):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&Ms(n)&&(n=[n]),nt(t,e,n))}finally{Pa(1)}}const zg="3.5.35";let tc;const lh=typeof window<"u"&&window.trustedTypes;if(lh)try{tc=lh.createPolicy("vue",{createHTML:t=>t})}catch{}const Hg=tc?t=>tc.createHTML(t):t=>t,Db="http://www.w3.org/2000/svg",Nb="http://www.w3.org/1998/Math/MathML",ei=typeof document<"u"?document:null,uh=ei&&ei.createElement("template"),Ob={insert:(t,e,n)=>{e.insertBefore(t,n||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,n,i)=>{const o=e==="svg"?ei.createElementNS(Db,t):e==="mathml"?ei.createElementNS(Nb,t):n?ei.createElement(t,{is:n}):ei.createElement(t);return t==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:t=>ei.createTextNode(t),createComment:t=>ei.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>ei.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,n,i,o,s){const r=n?n.previousSibling:e.lastChild;if(o&&(o===s||o.nextSibling))for(;e.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{uh.innerHTML=Hg(i==="svg"?`${t}`:i==="mathml"?`${t}`:t);const a=uh.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}e.insertBefore(a,n)}return[r?r.nextSibling:e.firstChild,n?n.previousSibling:e.lastChild]}},yi="transition",ls="animation",er=Symbol("_vtc"),Jg={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},$b=ye({},ag,Jg),Bb=t=>(t.displayName="Transition",t.props=$b,t),us=Bb((t,{slots:e})=>Oe(Uy,Fb(t),e)),Ii=(t,e=[])=>{_t(t)?t.forEach(n=>n(...e)):t&&t(...e)},ch=t=>t?_t(t)?t.some(e=>e.length>1):t.length>1:!1;function Fb(t){const e={};for(const T in t)T in Jg||(e[T]=t[T]);if(t.css===!1)return e;const{name:n="v",type:i,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=t,y=jb(o),m=y&&y[0],x=y&&y[1],{onBeforeEnter:_,onEnter:S,onEnterCancelled:P,onLeave:A,onLeaveCancelled:O,onBeforeAppear:U=_,onAppear:V=S,onAppearCancelled:J=P}=e,q=(T,j,Q,M)=>{T._enterCancelled=M,zi(T,j?u:a),zi(T,j?c:r),Q&&Q()},I=(T,j)=>{T._isLeaving=!1,zi(T,d),zi(T,p),zi(T,f),j&&j()},et=T=>(j,Q)=>{const M=T?V:S,Z=()=>q(j,T,Q);Ii(M,[j,Z]),dh(()=>{zi(j,T?l:s),Yn(j,T?u:a),ch(M)||hh(j,i,m,Z)})};return ye(e,{onBeforeEnter(T){Ii(_,[T]),Yn(T,s),Yn(T,r)},onBeforeAppear(T){Ii(U,[T]),Yn(T,l),Yn(T,c)},onEnter:et(!1),onAppear:et(!0),onLeave(T,j){T._isLeaving=!0;const Q=()=>I(T,j);Yn(T,d),T._enterCancelled?(Yn(T,f),gh(T)):(gh(T),Yn(T,f)),dh(()=>{T._isLeaving&&(zi(T,d),Yn(T,p),ch(A)||hh(T,i,x,Q))}),Ii(A,[T,Q])},onEnterCancelled(T){q(T,!1,void 0,!0),Ii(P,[T])},onAppearCancelled(T){q(T,!0,void 0,!0),Ii(J,[T])},onLeaveCancelled(T){I(T),Ii(O,[T])}})}function jb(t){if(t==null)return null;if(Yt(t))return[Ml(t.enter),Ml(t.leave)];{const e=Ml(t);return[e,e]}}function Ml(t){return $v(t)}function Yn(t,e){e.split(/\s+/).forEach(n=>n&&t.classList.add(n)),(t[er]||(t[er]=new Set)).add(e)}function zi(t,e){e.split(/\s+/).forEach(i=>i&&t.classList.remove(i));const n=t[er];n&&(n.delete(e),n.size||(t[er]=void 0))}function dh(t){requestAnimationFrame(()=>{requestAnimationFrame(t)})}let Ub=0;function hh(t,e,n,i){const o=t._endId=++Ub,s=()=>{o===t._endId&&i()};if(n!=null)return setTimeout(s,n);const{type:r,timeout:a,propCount:l}=Vb(t,e);if(!r)return i();const c=r+"end";let u=0;const d=()=>{t.removeEventListener(c,f),s()},f=p=>{p.target===t&&++u>=l&&d()};setTimeout(()=>{u(n[y]||"").split(", "),o=i(`${yi}Delay`),s=i(`${yi}Duration`),r=fh(o,s),a=i(`${ls}Delay`),l=i(`${ls}Duration`),c=fh(a,l);let u=null,d=0,f=0;e===yi?r>0&&(u=yi,d=r,f=s.length):e===ls?c>0&&(u=ls,d=c,f=l.length):(d=Math.max(r,c),u=d>0?r>c?yi:ls:null,f=u?u===yi?s.length:l.length:0);const p=u===yi&&/\b(?:transform|all)(?:,|$)/.test(i(`${yi}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function fh(t,e){for(;t.lengthph(n)+ph(t[i])))}function ph(t){return t==="auto"?0:Number(t.slice(0,-1).replace(",","."))*1e3}function gh(t){return(t?t.ownerDocument:document).body.offsetHeight}function Ib(t,e,n){const i=t[er];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?t.removeAttribute("class"):n?t.setAttribute("class",e):t.className=e}const Da=Symbol("_vod"),Wg=Symbol("_vsh"),jr={name:"show",beforeMount(t,{value:e},{transition:n}){t[Da]=t.style.display==="none"?"":t.style.display,n&&e?n.beforeEnter(t):cs(t,e)},mounted(t,{value:e},{transition:n}){n&&e&&n.enter(t)},updated(t,{value:e,oldValue:n},{transition:i}){!e!=!n&&(i?e?(i.beforeEnter(t),cs(t,!0),i.enter(t)):i.leave(t,()=>{cs(t,!1)}):cs(t,e))},beforeUnmount(t,{value:e}){cs(t,e)}};function cs(t,e){t.style.display=e?t[Da]:"none",t[Wg]=!e}const Gg=Symbol("");function Al(t){const e=Kn();if(!e)return;const n=e.ut=(o=t(e.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${e.uid}"]`)).forEach(s=>Na(s,o))},i=()=>{const o=t(e.proxy);e.ce?Na(e.ce,o):ec(e.subTree,o),n(o)};pg(()=>{M0(i)}),Bi(()=>{Xe(i,En,{flush:"post"});const o=new MutationObserver(i);o.observe(e.subTree.el.parentNode,{childList:!0}),qn(()=>o.disconnect())})}function ec(t,e){if(t.shapeFlag&128){const n=t.suspense;t=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{ec(n.activeBranch,e)})}for(;t.component;)t=t.component.subTree;if(t.shapeFlag&1&&t.el)Na(t.el,e);else if(t.type===Et)t.children.forEach(n=>ec(n,e));else if(t.type===ra){let{el:n,anchor:i}=t;for(;n&&(Na(n,e),n!==i);)n=n.nextSibling}}function Na(t,e){if(t.nodeType===1){const n=t.style;let i="";for(const o in e){const s=Hv(e[o]);n.setProperty(`--${o}`,s),i+=`--${o}: ${s};`}n[Gg]=i}}const zb=/(?:^|;)\s*display\s*:/;function Hb(t,e,n){const i=t.style,o=se(n);let s=!1;if(n&&!o){if(e)if(se(e))for(const r of e.split(";")){const a=r.slice(0,r.indexOf(":")).trim();n[a]==null&&Ss(i,a,"")}else for(const r in e)n[r]==null&&Ss(i,r,"");for(const r in n){r==="display"&&(s=!0);const a=n[r];a!=null?Wb(t,r,!se(e)&&e?e[r]:void 0,a)||Ss(i,r,a):Ss(i,r,"")}}else if(o){if(e!==n){const r=i[Gg];r&&(n+=";"+r),i.cssText=n,s=zb.test(n)}}else e&&t.removeAttribute("style");Da in t&&(t[Da]=s?i.display:"",t[Wg]&&(i.display="none"))}const mh=/\s*!important$/;function Ss(t,e,n){if(_t(n))n.forEach(i=>Ss(t,e,i));else if(n==null&&(n=""),e.startsWith("--"))t.setProperty(e,n);else{const i=Jb(t,e);mh.test(n)?t.setProperty(pi(i),n.replace(mh,""),"important"):t[i]=n}}const vh=["Webkit","Moz","ms"],tu={};function Jb(t,e){const n=tu[e];if(n)return n;let i=Ue(e);if(i!=="filter"&&i in t)return tu[e]=i;i=dl(i);for(let o=0;oeu||(Xb.then(()=>eu=0),eu=Date.now());function Zb(t,e){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const o=n.value;if(_t(o)){const s=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{s.call(i),i._stopped=!0};const r=o.slice(),a=[i];for(let l=0;lt.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Qb=(t,e,n,i,o,s)=>{const r=o==="svg";e==="class"?Ib(t,i,r):e==="style"?Hb(t,n,i):rl(e)?al(e)||qb(t,e,n,i,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Mb(t,e,i,r))?(_h(t,e,i),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&bh(t,e,i,r,s,e!=="value")):t._isVueCE&&(t_(t,e)||t._def.__asyncLoader&&(/[A-Z]/.test(e)||!se(i)))?_h(t,Ue(e),i,s,e):(e==="true-value"?t._trueValue=i:e==="false-value"&&(t._falseValue=i),bh(t,e,i,r))};function Mb(t,e,n,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in t&&Eh(e)&&kt(n));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&t.tagName==="IFRAME"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const o=t.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Eh(e)&&se(n)?!1:e in t}function t_(t,e){const n=t._def.props;if(!n)return!1;const i=Ue(e);return Array.isArray(n)?n.some(o=>Ue(o)===i):Object.keys(n).some(o=>Ue(o)===i)}function e_(t="$style"){{const e=Kn();if(!e)return Ut;const n=e.type.__cssModules;return n&&n[t]||Ut}}const Sh=t=>{const e=t.props["onUpdate:modelValue"]||!1;return _t(e)?n=>sa(e,n):e},nu=Symbol("_assign"),n_={deep:!0,created(t,e,n){t[nu]=Sh(n),qg(t,"change",()=>{const i=t._modelValue,o=i_(t),s=t.checked,r=t[nu];if(_t(i)){const a=P0(i,o),l=a!==-1;if(s&&!l)r(i.concat(o));else if(!s&&l){const c=[...i];c.splice(a,1),r(c)}}else if(ll(i)){const a=new Set(i);s?a.add(o):a.delete(o),r(a)}else r(Kg(t,s))})},mounted:Ah,beforeUpdate(t,e,n){t[nu]=Sh(n),Ah(t,e,n)}};function Ah(t,{value:e,oldValue:n},i){t._modelValue=e;let o;if(_t(e))o=P0(e,i.props.value)>-1;else if(ll(e))o=e.has(i.props.value);else{if(e===n)return;o=mr(e,Kg(t,!0))}t.checked!==o&&(t.checked=o)}function i_(t){return"_value"in t?t._value:t.value}function Kg(t,e){const n=e?"_trueValue":"_falseValue";return n in t?t[n]:e}const o_=["ctrl","shift","alt","meta"],s_={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>o_.some(n=>t[`${n}Key`]&&!e.includes(n))},r_=(t,e)=>{if(!t)return t;const n=t._withMods||(t._withMods={}),i=e.join(".");return n[i]||(n[i]=((o,...s)=>{for(let r=0;r{const n=t._withKeys||(t._withKeys={}),i=e.join(".");return n[i]||(n[i]=(o=>{if(!("key"in o))return;const s=pi(o.key);if(e.some(r=>r===s||a_[r]===s))return t(o)}))},u_=ye({patchProp:Qb},Ob);let Ch;function c_(){return Ch||(Ch=vb(u_))}const d_=((...t)=>{const e=c_().createApp(...t),{mount:n}=e;return e.mount=i=>{const o=f_(i);if(!o)return;const s=e._component;!kt(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=n(o,!1,h_(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},e});function h_(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function f_(t){return se(t)?document.querySelector(t):t}const Th=(t,e,n)=>{const i=Object.assign({escape:!0},{}),o=function(s,r){return r=r||{},s.replace(/{([^{}]*)}/g,function(a,l){const c=r[l];return i.escape?encodeURIComponent(typeof c=="string"||typeof c=="number"?c.toString():a):typeof c=="string"||typeof c=="number"?c.toString():a})};return t.charAt(0)!=="/"&&(t="/"+t),o(t,{})},Wc=(t,e,n)=>{const i=Object.assign({noRewrite:!1},{}),o=p_();return window?.OC?.config?.modRewriteWorking===!0&&!i.noRewrite?o+Th(t):o+"/index.php"+Th(t)};function p_(){let t=window._oc_webroot;if(typeof t>"u"){t=location.pathname;const e=t.indexOf("/index.php/");if(e!==-1)t=t.slice(0,e);else{const n=t.indexOf("/",1);t=t.slice(0,n>0?n:void 0)}}return t}function kh(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n2?n-2:0),o=2;o1?e-1:0),i=1;i"u"?null:be(BigInt.prototype.toString),Oh=typeof Symbol>"u"?null:be(Symbol.prototype.toString),Ee=be(Object.prototype.hasOwnProperty),hs=be(Object.prototype.toString),xe=be(RegExp.prototype.test),Hi=k_(TypeError);function be(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:As;if(Ph&&Ph(t,null),!Si(e))return t;let i=e.length;for(;i--;){let o=e[i];if(typeof o=="string"){const s=n(o);s!==o&&(__(e)||(e[i]=s),o=s)}t[o]=!0}return t}function P_(t){for(let e=0;e/g),B_=Re(/\${[\w\W]*/g),F_=Re(/^data-[\-\w.\u00B7-\uFFFF]+$/),j_=Re(/^aria-[\-\w]+$/),Uh=Re(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),U_=Re(/^(?:\w+script|data):/i),V_=Re(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),I_=Re(/^html$/i),z_=Re(/^[a-z][.\w]*(-[.\w]+)+$/i),Vh=Re(/<[/\w!]/g),Ih=Re(/<[/\w]/g),H_=Re(/<\/no(script|embed|frames)/i),J_=Re(/\/>/i),on={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},W_=function(){return typeof window>"u"?null:window},G_=function(t,e){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let n=null;const i="data-tt-policy-suffix";e&&e.hasAttribute(i)&&(n=e.getAttribute(i));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},zh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},bi=function(t,e,n,i){return Ee(t,e)&&Si(t[e])?Ht(i.base?Ne(i.base):{},t[e],i.transform):n};function Zg(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:W_();const e=w=>Zg(w);if(e.version="3.4.13",e.removed=[],!t||!t.document||t.document.nodeType!==on.document||!t.Element)return e.isSupported=!1,e;let n=t.document;const i=n,o=i.currentScript;t.DocumentFragment;const s=t.HTMLTemplateElement,r=t.Node,a=t.Element,l=t.NodeFilter;t.NamedNodeMap===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;const u=t.DOMParser,d=t.trustedTypes,f=a.prototype,p=_n(f,"cloneNode"),y=_n(f,"remove"),m=_n(f,"nextSibling"),x=_n(f,"childNodes"),_=_n(f,"parentNode"),S=_n(f,"shadowRoot"),P=_n(f,"attributes"),A=r&&r.prototype?_n(r.prototype,"nodeType"):null,O=r&&r.prototype?_n(r.prototype,"nodeName"):null,U=r&&r.prototype?_n(r.prototype,"ownerDocument"):null;if(typeof s=="function"){const w=n.createElement("template");w.content&&w.content.ownerDocument&&(n=w.content.ownerDocument)}let V,J="",q,I=!1,et=0;const T=function(){if(et>0)throw Hi('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},j=function(w){T(),et++;try{return V.createHTML(w)}finally{et--}},Q=function(w){T(),et++;try{return V.createScriptURL(w)}finally{et--}},M=function(){return I||(q=G_(d,o),I=!0),q},Z=n,rt=Z.implementation,lt=Z.createNodeIterator,ft=Z.createDocumentFragment,pt=Z.getElementsByTagName,St=i.importNode;let gt=zh();e.isSupported=typeof Xg=="function"&&typeof _=="function"&&rt&&rt.createHTMLDocument!==void 0;const qt=O_,Lt=$_,$t=B_,At=F_,ne=j_,nn=U_,vn=V_,yn=z_;let C=Uh,k=null;const W=Ht({},[...$h,...ou,...su,...ru,...Bh]);let K=null;const X=Ht({},[...Fh,...au,...jh,...Ur]);let B=Object.seal(Bo(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}})),ot=null,st=null;const it=Object.seal(Bo(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let tt=!0,mt=!0,ut=!1,yt=!0,vt=!1,wt=!0,Dt=!1,Wt=!1,It=null,ae=null,h=!1,g=!1,v=!1,R=!1,$=!0,G=!1;const at="user-content-";let Gt=!0,he=!1,Kt={},Nt=null;const le=Ht({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let Td=null;const kd=Ht({},["audio","video","img","source","image","track"]);let jl=null;const Pd=Ht({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),kr="http://www.w3.org/1998/Math/MathML",Pr="http://www.w3.org/2000/svg",Pn="http://www.w3.org/1999/xhtml";let xo=Pn,Ul=!1,Vl=null;const pv=Ht({},[kr,Pr,Pn],iu),Rd=Pe(["mi","mo","mn","ms","mtext"]);let Il=Ht({},Rd);const Ld=Pe(["annotation-xml"]);let zl=Ht({},Ld);const gv=Ht({},["title","style","font","a","script"]);let is=null;const mv=["application/xhtml+xml","text/html"],vv="text/html";let ue=null,Eo=null;const yv=n.createElement("form"),Dd=function(w){return w instanceof RegExp||w instanceof Function},Hl=function(){let w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Eo&&Eo===w)return;(!w||typeof w!="object")&&(w={}),w=Ne(w),is=mv.indexOf(w.PARSER_MEDIA_TYPE)===-1?vv:w.PARSER_MEDIA_TYPE,ue=is==="application/xhtml+xml"?iu:As,k=bi(w,"ALLOWED_TAGS",W,{transform:ue}),K=bi(w,"ALLOWED_ATTR",X,{transform:ue}),Vl=bi(w,"ALLOWED_NAMESPACES",pv,{transform:iu}),jl=bi(w,"ADD_URI_SAFE_ATTR",Pd,{transform:ue,base:Pd}),Td=bi(w,"ADD_DATA_URI_TAGS",kd,{transform:ue,base:kd}),Nt=bi(w,"FORBID_CONTENTS",le,{transform:ue}),ot=bi(w,"FORBID_TAGS",Ne({}),{transform:ue}),st=bi(w,"FORBID_ATTR",Ne({}),{transform:ue}),Kt=Ee(w,"USE_PROFILES")?w.USE_PROFILES&&typeof w.USE_PROFILES=="object"?Ne(w.USE_PROFILES):w.USE_PROFILES:!1,tt=w.ALLOW_ARIA_ATTR!==!1,mt=w.ALLOW_DATA_ATTR!==!1,ut=w.ALLOW_UNKNOWN_PROTOCOLS||!1,yt=w.ALLOW_SELF_CLOSE_IN_ATTR!==!1,vt=w.SAFE_FOR_TEMPLATES||!1,wt=w.SAFE_FOR_XML!==!1,Dt=w.WHOLE_DOCUMENT||!1,g=w.RETURN_DOM||!1,v=w.RETURN_DOM_FRAGMENT||!1,R=w.RETURN_TRUSTED_TYPE||!1,h=w.FORCE_BODY||!1,$=w.SANITIZE_DOM!==!1,G=w.SANITIZE_NAMED_PROPS||!1,Gt=w.KEEP_CONTENT!==!1,he=w.IN_PLACE||!1,C=L_(w.ALLOWED_URI_REGEXP)?w.ALLOWED_URI_REGEXP:Uh,xo=typeof w.NAMESPACE=="string"?w.NAMESPACE:Pn,Il=Ee(w,"MATHML_TEXT_INTEGRATION_POINTS")&&w.MATHML_TEXT_INTEGRATION_POINTS&&typeof w.MATHML_TEXT_INTEGRATION_POINTS=="object"?Ne(w.MATHML_TEXT_INTEGRATION_POINTS):Ht({},Rd),zl=Ee(w,"HTML_INTEGRATION_POINTS")&&w.HTML_INTEGRATION_POINTS&&typeof w.HTML_INTEGRATION_POINTS=="object"?Ne(w.HTML_INTEGRATION_POINTS):Ht({},Ld);const H=Ee(w,"CUSTOM_ELEMENT_HANDLING")&&w.CUSTOM_ELEMENT_HANDLING&&typeof w.CUSTOM_ELEMENT_HANDLING=="object"?Ne(w.CUSTOM_ELEMENT_HANDLING):Bo(null);if(B=Bo(null),Ee(H,"tagNameCheck")&&Dd(H.tagNameCheck)&&(B.tagNameCheck=H.tagNameCheck),Ee(H,"attributeNameCheck")&&Dd(H.attributeNameCheck)&&(B.attributeNameCheck=H.attributeNameCheck),Ee(H,"allowCustomizedBuiltInElements")&&typeof H.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=H.allowCustomizedBuiltInElements),Re(B),vt&&(mt=!1),v&&(g=!0),Kt&&(k=Ht({},Bh),K=Bo(null),Kt.html===!0&&(Ht(k,$h),Ht(K,Fh)),Kt.svg===!0&&(Ht(k,ou),Ht(K,au),Ht(K,Ur)),Kt.svgFilters===!0&&(Ht(k,su),Ht(K,au),Ht(K,Ur)),Kt.mathMl===!0&&(Ht(k,ru),Ht(K,jh),Ht(K,Ur))),it.tagCheck=null,it.attributeCheck=null,Ee(w,"ADD_TAGS")&&(typeof w.ADD_TAGS=="function"?it.tagCheck=w.ADD_TAGS:Si(w.ADD_TAGS)&&(k===W&&(k=Ne(k)),Ht(k,w.ADD_TAGS,ue))),Ee(w,"ADD_ATTR")&&(typeof w.ADD_ATTR=="function"?it.attributeCheck=w.ADD_ATTR:Si(w.ADD_ATTR)&&(K===X&&(K=Ne(K)),Ht(K,w.ADD_ATTR,ue))),Ee(w,"ADD_URI_SAFE_ATTR")&&Si(w.ADD_URI_SAFE_ATTR)&&Ht(jl,w.ADD_URI_SAFE_ATTR,ue),Ee(w,"FORBID_CONTENTS")&&Si(w.FORBID_CONTENTS)&&(Nt===le&&(Nt=Ne(Nt)),Ht(Nt,w.FORBID_CONTENTS,ue)),Ee(w,"ADD_FORBID_CONTENTS")&&Si(w.ADD_FORBID_CONTENTS)&&(Nt===le&&(Nt=Ne(Nt)),Ht(Nt,w.ADD_FORBID_CONTENTS,ue)),Gt&&(k["#text"]=!0),Dt&&Ht(k,["html","head","body"]),k.table&&(Ht(k,["tbody"]),delete ot.tbody),w.TRUSTED_TYPES_POLICY){if(typeof w.TRUSTED_TYPES_POLICY.createHTML!="function")throw Hi('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof w.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Hi('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Y=V;V=w.TRUSTED_TYPES_POLICY;try{J=j("")}catch(dt){throw V=Y,dt}}else w.TRUSTED_TYPES_POLICY===null?(V=void 0,J=""):(V===void 0&&(V=M()),V&&typeof J=="string"&&(J=j("")));Pe&&Pe(w),Eo=w},Nd=Ht({},[...ou,...su,...D_]),Od=Ht({},[...ru,...N_]),bv=function(w,H,Y){return H.namespaceURI===Pn?w==="svg":H.namespaceURI===kr?w==="svg"&&(Y==="annotation-xml"||Il[Y]):!!Nd[w]},_v=function(w,H,Y){return H.namespaceURI===Pn?w==="math":H.namespaceURI===Pr?w==="math"&&zl[Y]:!!Od[w]},wv=function(w,H,Y){return H.namespaceURI===Pr&&!zl[Y]||H.namespaceURI===kr&&!Il[Y]?!1:!Od[w]&&(gv[w]||!Nd[w])},xv=function(w){let H=_(w);(!H||!H.tagName)&&(H={namespaceURI:xo,tagName:"template"});const Y=As(w.tagName),dt=As(H.tagName);return Vl[w.namespaceURI]?w.namespaceURI===Pr?bv(Y,H,dt):w.namespaceURI===kr?_v(Y,H,dt):w.namespaceURI===Pn?wv(Y,H,dt):!!(is==="application/xhtml+xml"&&Vl[w.namespaceURI]):!1},Fi=function(w){To(e.removed,{element:w});try{_(w).removeChild(w)}catch{if(y(w),!_(w))throw Hi("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Rr=function(w){os(w);const H=x(w);if(H){const dt=[];Co(H,Ct=>{To(dt,Ct)}),Co(dt,Ct=>{try{y(Ct)}catch{}})}const Y=P(w);if(Y)for(let dt=Y.length-1;dt>=0;--dt){const Ct=Y[dt],Bt=Ct&&Ct.name;if(typeof Bt=="string")try{w.removeAttribute(Bt)}catch{}}},ji=function(w,H){try{To(e.removed,{attribute:H.getAttributeNode(w),from:H})}catch{To(e.removed,{attribute:null,from:H})}if(H.removeAttribute(w),w==="is")if(g||v)try{Fi(H)}catch{}else try{H.setAttribute(w,"")}catch{}},Ev=function(w){const H=P(w);if(H)for(let Y=H.length-1;Y>=0;--Y){const dt=H[Y],Ct=dt&&dt.name;if(!(typeof Ct!="string"||K[ue(Ct)]))try{w.removeAttribute(Ct)}catch{}}},os=function(w){const H=[w];for(;H.length>0;){const Y=H.pop();(A?A(Y):Y.nodeType)===on.element&&Ev(Y);const dt=x(Y);if(dt)for(let Ct=dt.length-1;Ct>=0;--Ct)H.push(dt[Ct])}},Sv=function(w){if(!wt)return;const H=[w];for(;H.length>0;){const Y=H.pop(),dt=A?A(Y):Y.nodeType;if(dt===on.processingInstruction||dt===on.comment&&xe(Ih,Y.data)){try{y(Y)}catch{}continue}if(dt===on.element){const Bt=Y,Ft=ue(O?O(Y):Y.nodeName);try{Bt.hasAttribute&&Bt.hasAttribute("patchsrc")&&Bt.removeAttribute("patchsrc"),Bt.hasAttribute&&Bt.hasAttribute("for")&&Ft!=="label"&&Ft!=="output"&&Bt.removeAttribute("for")}catch{}}const Ct=x(Y);if(Ct)for(let Bt=Ct.length-1;Bt>=0;--Bt)H.push(Ct[Bt])}},$d=function(w){let H=null,Y=null;if(h)w=""+w;else{const Bt=Lh(w,/^[\r\n\t ]+/);Y=Bt&&Bt[0]}is==="application/xhtml+xml"&&xo===Pn&&(w=''+w+"");const dt=V?j(w):w;if(xo===Pn)try{H=new u().parseFromString(dt,is)}catch{}if(!H||!H.documentElement){H=rt.createDocument(xo,"template",null);try{H.documentElement.innerHTML=Ul?J:dt}catch{}}const Ct=H.body||H.documentElement;return w&&Y&&Ct.insertBefore(n.createTextNode(Y),Ct.childNodes[0]||null),xo===Pn?pt.call(H,Dt?"html":"body")[0]:Dt?H.documentElement:Ct},Bd=function(w){const H=U?U(w):w.ownerDocument;return lt.call(H||w,w,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Lr=function(w){return w=ds(w,qt," "),w=ds(w,Lt," "),w=ds(w,$t," "),w},Jl=function(w){var H;w.normalize();const Y=U?U(w):w.ownerDocument,dt=lt.call(Y||w,w,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null);let Ct=dt.nextNode();for(;Ct;)Ct.data=Lr(Ct.data),Ct=dt.nextNode();const Bt=(H=w.querySelectorAll)===null||H===void 0?void 0:H.call(w,"template");Bt&&Co(Bt,Ft=>{So(Ft.content)&&Jl(Ft.content)})},Dr=function(w){const H=O?O(w):null;return typeof H!="string"||ue(H)!=="form"?!1:typeof w.nodeName!="string"||typeof w.textContent!="string"||typeof w.removeChild!="function"||w.attributes!==P(w)||typeof w.removeAttribute!="function"||typeof w.setAttribute!="function"||typeof w.namespaceURI!="string"||typeof w.insertBefore!="function"||typeof w.hasChildNodes!="function"||w.nodeType!==A(w)||w.childNodes!==x(w)},So=function(w){if(!A||typeof w!="object"||w===null)return!1;try{return A(w)===on.documentFragment}catch{return!1}},ss=function(w){if(!A||typeof w!="object"||w===null)return!1;try{return typeof A(w)=="number"}catch{return!1}};function Rn(w,H,Y){w.length!==0&&Co(w,dt=>{dt.call(e,H,Y,Eo)})}const Av=function(w,H){return!!(wt&&w.hasChildNodes()&&!ss(w.firstElementChild)&&xe(Vh,w.textContent)&&xe(Vh,w.innerHTML)||wt&&w.namespaceURI===Pn&&H==="style"&&ss(w.firstElementChild)||w.nodeType===on.processingInstruction||wt&&w.nodeType===on.comment&&xe(Ih,w.data))},Cv=function(w,H,Y){if(!ot[H]&&Vd(H)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,H)||B.tagNameCheck instanceof Function&&B.tagNameCheck(H)))return!1;if(Gt&&!Nt[H]){const dt=_(w),Ct=x(w);if(Ct&&dt){const Bt=Ct.length;for(let Ft=Bt-1;Ft>=0;--Ft){const Ln=w===Y?p(Ct[Ft],!0):Ct[Ft];dt.insertBefore(Ln,m(w))}}}return Fi(w),!0},Fd=function(w,H,Y,dt){return w.length===0?H:H===Y||H===dt?Ne(H):H},jd=function(w,H){if(Rn(gt.beforeSanitizeElements,w,null),w!==H&&_(w)===null)return he&&os(w),!0;if(Dr(w))return Fi(w),!0;const Y=ue(O?O(w):w.nodeName);if(k=Fd(gt.uponSanitizeElement,k,W,It),Rn(gt.uponSanitizeElement,w,{tagName:Y,allowedTags:k}),w!==H&&_(w)===null)return he&&os(w),!0;if(Av(w,Y))return Fi(w),!0;if(ot[Y]||!(it.tagCheck instanceof Function&&it.tagCheck(Y))&&!k[Y]){const dt=Cv(w,Y,H);return dt===!1&&Rn(gt.afterSanitizeElements,w,null),dt}if((A?A(w):w.nodeType)===on.element&&!xv(w)||(Y==="noscript"||Y==="noembed"||Y==="noframes")&&xe(H_,w.innerHTML))return Fi(w),!0;if(vt&&w.nodeType===on.text){const dt=Lr(w.textContent);w.textContent!==dt&&(To(e.removed,{element:w.cloneNode()}),w.textContent=dt)}return Rn(gt.afterSanitizeElements,w,null),!1},Ud=function(w,H,Y){if(st[H]||wt&&H==="patchsrc"||wt&&H==="for"&&w!=="label"&&w!=="output"||$&&(H==="id"||H==="name")&&(Y in n||Y in yv))return!1;const dt=K[H]||it.attributeCheck instanceof Function&&it.attributeCheck(H,w);if(!(mt&&xe(At,H))&&!(tt&&xe(ne,H))){if(dt){if(!jl[H]&&!xe(C,ds(Y,vn,""))&&!((H==="src"||H==="xlink:href"||H==="href")&&w!=="script"&&Dh(Y,"data:")===0&&Td[w])&&!(ut&&!xe(nn,ds(Y,vn,"")))&&Y)return!1}else if(!(Vd(w)&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,w)||B.tagNameCheck instanceof Function&&B.tagNameCheck(w))&&(B.attributeNameCheck instanceof RegExp&&xe(B.attributeNameCheck,H)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(H,w))||H==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&xe(B.tagNameCheck,Y)||B.tagNameCheck instanceof Function&&B.tagNameCheck(Y))))return!1}return!0},Tv=Ht({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Vd=function(w){return!Tv[As(w)]&&xe(yn,w)},kv=function(w,H,Y,dt){if(V&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!Y)switch(d.getAttributeType(w,H)){case"TrustedHTML":return j(dt);case"TrustedScriptURL":return Q(dt)}return dt},Pv=function(w,H,Y,dt){try{Y?w.setAttributeNS(Y,H,dt):w.setAttribute(H,dt),Dr(w)?Fi(w):Rh(e.removed)}catch{ji(H,w)}},Id=function(w){Rn(gt.beforeSanitizeAttributes,w,null);const H=w.attributes;if(!H||Dr(w))return;K=Fd(gt.uponSanitizeAttribute,K,X,ae);const Y={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:K,forceKeepAttr:void 0};let dt=H.length;const Ct=ue(w.nodeName);for(;dt--;){const Bt=H[dt],Ft=Bt.name,Ln=Bt.namespaceURI,vi=Bt.value,Le=ue(Ft),bn=vi;let He=Ft==="value"?bn:A_(bn);if(Y.attrName=Le,Y.attrValue=He,Y.keepAttr=!0,Y.forceKeepAttr=void 0,Rn(gt.uponSanitizeAttribute,w,Y),He=Y.attrValue,G&&(Le==="id"||Le==="name")&&Dh(He,at)!==0&&(ji(Ft,w),He=at+He),wt&&xe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,He)){ji(Ft,w);continue}if(Le==="attributename"&&Lh(He,"href")){ji(Ft,w);continue}if(!Y.forceKeepAttr){if(!Y.keepAttr){ji(Ft,w);continue}if(!yt&&xe(J_,He)){ji(Ft,w);continue}if(vt&&(He=Lr(He)),!Ud(Ct,Le,He)){ji(Ft,w);continue}He=kv(Ct,Le,Ln,He),He!==bn&&Pv(w,Ft,Ln,He)}}Rn(gt.afterSanitizeAttributes,w,null)},Nr=function(w){let H=null;const Y=Bd(w);for(Rn(gt.beforeSanitizeShadowDOM,w,null);H=Y.nextNode();)if(Rn(gt.uponSanitizeShadowNode,H,null),jd(H,w),Id(H),So(H.content)&&Nr(H.content),(A?A(H):H.nodeType)===on.element){const dt=S(H);So(dt)&&(Wl(dt),Nr(dt))}Rn(gt.afterSanitizeShadowDOM,w,null)},Wl=function(w){const H=[{node:w,shadow:null}];for(;H.length>0;){const Y=H.pop();if(Y.shadow){Nr(Y.shadow);continue}const dt=Y.node,Ct=(A?A(dt):dt.nodeType)===on.element,Bt=x(dt);if(Bt)for(let Ft=Bt.length-1;Ft>=0;--Ft)H.push({node:Bt[Ft],shadow:null});if(Ct){const Ft=O?O(dt):null;if(typeof Ft=="string"&&ue(Ft)==="template"){const Ln=dt.content;So(Ln)&&H.push({node:Ln,shadow:null})}}if(Ct){const Ft=S(dt);So(Ft)&&H.push({node:null,shadow:Ft},{node:Ft,shadow:null})}}};return e.sanitize=function(w){let H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Y=null,dt=null,Ct=null,Bt=null;if(Ul=!w,Ul&&(w=""),typeof w!="string"&&!ss(w)&&(w=R_(w),typeof w!="string"))throw Hi("dirty is not a string, aborting");if(!e.isSupported)return w;Wt?(k=It,K=ae):Hl(H),(gt.uponSanitizeElement.length>0||gt.uponSanitizeAttribute.length>0)&&(k=Ne(k)),gt.uponSanitizeAttribute.length>0&&(K=Ne(K)),e.removed=[];const Ft=he&&typeof w!="string"&&ss(w);if(Ft){Sv(w);const Le=O?O(w):w.nodeName;if(typeof Le=="string"){const bn=ue(Le);if(!k[bn]||ot[bn])throw Rr(w),Hi("root node is forbidden and cannot be sanitized in-place")}if(Dr(w))throw Rr(w),Hi("root node is clobbered and cannot be sanitized in-place");try{Wl(w)}catch(bn){throw Rr(w),bn}}else if(ss(w))Y=$d(""),dt=Y.ownerDocument.importNode(w,!0),dt.nodeType===on.element&&dt.nodeName==="BODY"||dt.nodeName==="HTML"?Y=dt:Y.appendChild(dt),Wl(dt);else{if(!g&&!vt&&!Dt&&w.indexOf("<")===-1)return V&&R?j(w):w;if(Y=$d(w),!Y)return g?null:R?J:""}Y&&h&&Fi(Y.firstChild);const Ln=Ft?w:Y;try{const Le=Bd(Ln);for(;Ct=Le.nextNode();)jd(Ct,Ln),Id(Ct),So(Ct.content)&&Nr(Ct.content)}catch(Le){throw Ft&&(Rr(w),Co(e.removed,bn=>{bn.element&&os(bn.element)})),Le}if(Ft)return Co(e.removed,Le=>{Le.element&&os(Le.element)}),vt&&Jl(w),w;if(g){if(vt&&Jl(Y),v)for(Bt=ft.call(Y.ownerDocument);Y.firstChild;)Bt.appendChild(Y.firstChild);else Bt=Y;return(K.shadowroot||K.shadowrootmode)&&(Bt=St.call(i,Bt,!0)),Bt}let vi=Dt?Y.outerHTML:Y.innerHTML;return Dt&&k["!doctype"]&&Y.ownerDocument&&Y.ownerDocument.doctype&&Y.ownerDocument.doctype.name&&xe(I_,Y.ownerDocument.doctype.name)&&(vi=" +`+vi),vt&&(vi=Lr(vi)),V&&R?j(vi):vi},e.setConfig=function(){let w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Hl(w),Wt=!0,It=k,ae=K},e.clearConfig=function(){Eo=null,Wt=!1,It=null,ae=null,V=q,J=""},e.isValidAttribute=function(w,H,Y){Eo||Hl({});const dt=ue(w),Ct=ue(H);return Ud(dt,Ct,Y)},e.addHook=function(w,H){typeof H=="function"&&Ee(gt,w)&&To(gt[w],H)},e.removeHook=function(w,H){if(Ee(gt,w)){if(H!==void 0){const Y=E_(gt[w],H);return Y===-1?void 0:S_(gt[w],Y,1)[0]}return Rh(gt[w])}},e.removeHooks=function(w){Ee(gt,w)&&(gt[w]=[])},e.removeAllHooks=function(){gt=zh()},e}var Qg=Zg();function Gc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var lu,Hh;function q_(){if(Hh)return lu;Hh=1;var t=/["'&<>]/;lu=e;function e(n){var i=""+n,o=t.exec(i);if(!o)return i;var s,r="",a=0,l=0;for(a=o.index;ae)}}globalThis._oc_l10n_registry_translations??={},globalThis._oc_l10n_registry_plural_functions??={};function F(t,e,n,i,o){const s=typeof n=="object"?n:void 0,r=typeof i=="number"?i:typeof n=="number"?n:void 0,a={escape:!0,sanitize:!0,...typeof o=="object"?o:typeof i=="object"?i:{}},l=y=>y,c=(a.sanitize?Qg.sanitize:l)||l,u=a.escape?Jh:l,d=y=>typeof y=="string"||typeof y=="number",f=(y,m,x)=>y.replace(/%n/g,""+x).replace(/{([^{}]*)}/g,(_,S)=>{if(m===void 0||!(S in m))return u(_);const P=m[S];return d(P)?u(`${P}`):typeof P=="object"&&d(P.value)?(P.escape!==!1?Jh:l)(`${P.value}`):u(_)});let p=(o?.bundle??tm(t)).translations[e]||e;return p=Array.isArray(p)?p[0]:p,c(typeof s=="object"||r!==void 0?f(p,s,r):p)}function oc(t,e,n,i,o,s){const r="_"+e+"_::_"+n+"_",a=s?.bundle??tm(t),l=a.translations[r];if(typeof l<"u"){const c=l;if(Array.isArray(c)){const u=a.pluralFunction(i);return F(t,c[u],o,i,s)}}return i===1?F(t,e,o,i,s):F(t,n,o,i,s)}function Z_(t,e=co()){switch(e==="pt-BR"&&(e="xbr"),e.length>3&&(e=e.substring(0,e.lastIndexOf("-"))),e){case"az":case"bo":case"dz":case"id":case"ja":case"jv":case"ka":case"km":case"kn":case"ko":case"ms":case"th":case"tr":case"vi":case"zh":return 0;case"af":case"bn":case"bg":case"ca":case"da":case"de":case"el":case"en":case"eo":case"es":case"et":case"eu":case"fa":case"fi":case"fo":case"fur":case"fy":case"gl":case"gu":case"ha":case"he":case"hu":case"is":case"it":case"ku":case"lb":case"ml":case"mn":case"mr":case"nah":case"nb":case"ne":case"nl":case"nn":case"no":case"oc":case"om":case"or":case"pa":case"pap":case"ps":case"pt":case"so":case"sq":case"sv":case"sw":case"ta":case"te":case"tk":case"ur":case"zu":return t===1?0:1;case"am":case"bh":case"fil":case"fr":case"gun":case"hi":case"hy":case"ln":case"mg":case"nso":case"xbr":case"ti":case"wa":return t===0||t===1?0:1;case"be":case"bs":case"hr":case"ru":case"sh":case"sr":case"uk":return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"sk":return t===1?0:t>=2&&t<=4?1:2;case"ga":return t===1?0:t===2?1:2;case"lt":return t%10===1&&t%100!==11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":return t%100===1?0:t%100===2?1:t%100===3||t%100===4?2:3;case"mk":return t%10===1?0:1;case"mt":return t===1?0:t===0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":return t===0?0:t%10===1&&t%100!==11?1:2;case"pl":return t===1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":return t===1?0:t===2?1:t===8||t===11?2:3;case"ro":return t===1?0:t===0||t%100>0&&t%100<20?1:2;case"ar":return t===0?0:t===1?1:t===2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function Q_(t=Date.now(),e={}){const n={ignoreSeconds:!1,language:co(),relativeTime:"long",...e},i=new Date(t),o=new Intl.RelativeTimeFormat([n.language,co()],{numeric:"auto",style:n.relativeTime}),s=(i.getTime()-Date.now())/1e3;if(Math.abs(s)<59.5)return n.ignoreSeconds||o.format(Math.round(s),"second");const r=s/60;if(Math.abs(r)<=59)return o.format(Math.round(r),"minute");const a=r/60;if(Math.abs(a)<23.5)return o.format(Math.round(a),"hour");const l=a/24;if(Math.abs(l)<6.5)return o.format(Math.round(l),"day");if(Math.abs(l)<27.5){const d=l/7;return o.format(Math.round(d),"week")}const c=l/30,u=Math.abs(c)<11?{month:n.relativeTime,day:"numeric"}:{year:n.relativeTime==="narrow"?"2-digit":"numeric",month:n.relativeTime};return new Intl.DateTimeFormat([n.language,co()],u).format(i)}const Jt=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},M_={name:"AccountGroupIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},tw=["aria-hidden","aria-label"],ew=["fill","width","height"],nw={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"},iw={key:0};function ow(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon account-group-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",nw,[n.title?(D(),z("title",iw,L(n.title),1)):bt("",!0)])],8,ew))],16,tw)}const sw=Jt(M_,[["render",ow]]),rw={class:"section-heading"},aw=Pt({__name:"SectionHeading",props:{icon:{},title:{}},setup(t){return(e,n)=>(D(),z("h2",rw,[(D(),xt(wl(t.icon),{class:"icon",size:20})),Rt(" "+L(t.title),1)]))}}),Ye=Jt(aw,[["__scopeId","data-v-0eb9e63c"]]),lw={class:"section network-infos"},uw={class:"infobox"},cw={class:"interface-wrapper active-users-wrapper"},dw={key:0,class:"active-users-box"},hw={class:"info"},fw={key:1,class:"active-users-box"},pw={class:"info"},gw={key:2,class:"active-users-box"},mw={class:"info"},vw={key:3,class:"active-users-box"},yw={class:"info"},bw=Pt({__name:"ActiveUsersSection",props:{activeUsers:{},numUsers:{}},setup(t){const e=t;function n(i){const o=e.numUsers===0?0:Math.round(i*1e3/e.numUsers)/10;return F("serverinfo","{0}% of all users",[String(o)])}return(i,o)=>(D(),z("div",lw,[nt(Ye,{icon:sw,title:E(F)("serverinfo","Active users")},null,8,["title"]),b("div",uw,[b("div",cw,[t.activeUsers.last1hour>0?(D(),z("div",dw,[Rt(L(E(F)("serverinfo","Last hour")),1),o[0]||(o[0]=b("br",null,null,-1)),b("span",hw,L(t.activeUsers.last1hour),1),o[1]||(o[1]=b("br",null,null,-1)),b("em",null,L(n(t.activeUsers.last1hour)),1)])):bt("",!0),t.activeUsers.last24hours>0?(D(),z("div",fw,[Rt(L(E(F)("serverinfo","Last 24 Hours")),1),o[2]||(o[2]=b("br",null,null,-1)),b("span",pw,L(t.activeUsers.last24hours),1),o[3]||(o[3]=b("br",null,null,-1)),b("em",null,L(n(t.activeUsers.last24hours)),1)])):bt("",!0),t.activeUsers.last7days>0?(D(),z("div",gw,[Rt(L(E(F)("serverinfo","Last 7 Days")),1),o[4]||(o[4]=b("br",null,null,-1)),b("span",mw,L(t.activeUsers.last7days),1),o[5]||(o[5]=b("br",null,null,-1)),b("em",null,L(n(t.activeUsers.last7days)),1)])):bt("",!0),t.activeUsers.last1month>0?(D(),z("div",vw,[Rt(L(E(F)("serverinfo","Last 30 Days")),1),o[6]||(o[6]=b("br",null,null,-1)),b("span",yw,L(t.activeUsers.last1month),1),o[7]||(o[7]=b("br",null,null,-1)),b("em",null,L(n(t.activeUsers.last1month)),1)])):bt("",!0)])])]))}});class _w{bundle;constructor(e){this.bundle={pluralFunction:e,translations:{}}}addTranslations(e){const n=Object.values(e.translations[""]??{}).map(({msgid:i,msgid_plural:o,msgstr:s})=>o!==void 0?[`_${i}_::_${o}_`,s]:[i,s[0]]);this.bundle.translations={...this.bundle.translations,...Object.fromEntries(n)}}gettext(e,n={}){return F("",e,n,void 0,{bundle:this.bundle})}ngettext(e,n,i,o={}){return oc("",e,n,i,o,{bundle:this.bundle})}}class ww{debug=!1;language="en";translations={};setLanguage(e){return this.language=e,this}detectLocale(){return this.detectLanguage()}detectLanguage(){return this.setLanguage(co().replace("-","_"))}addTranslation(e,n){return this.translations[e]=n,this}enableDebugMode(){return this.debug=!0,this}build(){this.debug&&console.debug(`Creating gettext instance for language ${this.language}`);const e=new _w(n=>Z_(n,this.language));return this.language in this.translations&&e.addTranslations(this.translations[this.language]),e}}function xw(){return new ww}const em=xw().detectLanguage().build(),Ge=(...t)=>em.gettext(...t);function wr(...t){for(const e of t)if(!e.registered){for(const{l:n,t:i}of e){if(n!==co()||!i)continue;const o=Object.fromEntries(Object.entries(i).map(([s,r])=>[s,{msgid:s,msgid_plural:r.p,msgstr:r.v}]));em.addTranslations({translations:{"":o}})}e.registered=!0}}const Ew=[{l:"ar",t:{"a few seconds ago":{v:["منذ عدة ثوانٍ"]},"sec. ago":{v:["ثانية مضت"]},"seconds ago":{v:["ثوانٍ مضت"]}}},{l:"ast",t:{"a few seconds ago":{v:["hai unos segundos"]},"sec. ago":{v:["hai segs"]},"seconds ago":{v:["hai segundos"]}}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"cs-CZ",t:{"a few seconds ago":{v:["před několika sekundami"]},"sec. ago":{v:["sek. před"]},"seconds ago":{v:["sekund předtím"]}}},{l:"da",t:{"a few seconds ago":{v:["et par sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"de",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"de-DE",t:{"a few seconds ago":{v:["vor ein paar Sekunden"]},"sec. ago":{v:["Sek. zuvor"]},"seconds ago":{v:["Sekunden zuvor"]}}},{l:"el",t:{"a few seconds ago":{v:["πριν λίγα δευτερόλεπτα"]},"sec. ago":{v:["δευτ. πριν"]},"seconds ago":{v:["δευτερόλεπτα πριν"]}}},{l:"en-GB",t:{"a few seconds ago":{v:["a few seconds ago"]},"sec. ago":{v:["sec. ago"]},"seconds ago":{v:["seconds ago"]}}},{l:"eo",t:{}},{l:"es",t:{"a few seconds ago":{v:["hace unos pocos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-AR",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"es-EC",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["hace segundos"]},"seconds ago":{v:["Segundos atrás"]}}},{l:"es-MX",t:{"a few seconds ago":{v:["hace unos segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"et-EE",t:{"a few seconds ago":{v:["mõni sekund tagasi"]},"sec. ago":{v:["sek. tagasi"]},"seconds ago":{v:["sekundit tagasi"]}}},{l:"eu",t:{"a few seconds ago":{v:["duela segundo batzuk"]},"sec. ago":{v:["duela seg."]},"seconds ago":{v:["duela segundo"]}}},{l:"fa",t:{"a few seconds ago":{v:["چند ثانیه پیش"]},"sec. ago":{v:["چند ثانیه پیش"]},"seconds ago":{v:["چند ثانیه پیش"]}}},{l:"fi",t:{"a few seconds ago":{v:["muutamia sekunteja sitten"]},"sec. ago":{v:["sek. sitten"]},"seconds ago":{v:["sekunteja sitten"]}}},{l:"fr",t:{"a few seconds ago":{v:["il y a quelques instants"]},"sec. ago":{v:["il y a qq. sec."]},"seconds ago":{v:["il y a quelques secondes"]}}},{l:"ga",t:{"a few seconds ago":{v:["cúpla soicind ó shin"]},"sec. ago":{v:["soic. ó shin"]},"seconds ago":{v:["soicind ó shin"]}}},{l:"gl",t:{"a few seconds ago":{v:["hai uns segundos"]},"sec. ago":{v:["segs. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"he",t:{"a few seconds ago":{v:["לפני מספר שניות"]},"sec. ago":{v:["לפני מספר שניות"]},"seconds ago":{v:["לפני מס׳ שניות"]}}},{l:"hr",t:{"a few seconds ago":{v:["prije nekoliko sekundi"]},"sec. ago":{v:["prije nek. sek."]},"seconds ago":{v:["prije nek. sek."]}}},{l:"hu",t:{"a few seconds ago":{v:["néhány másodperce"]},"sec. ago":{v:["másodperce"]},"seconds ago":{v:["másodperce"]}}},{l:"id",t:{"a few seconds ago":{v:["beberapa detik yang lalu"]},"sec. ago":{v:["dtk. yang lalu"]},"seconds ago":{v:["beberapa detik lalu"]}}},{l:"is",t:{"a few seconds ago":{v:["fyrir örfáum sekúndum síðan"]},"sec. ago":{v:["sek. síðan"]},"seconds ago":{v:["sekúndum síðan"]}}},{l:"it",t:{"a few seconds ago":{v:["pochi secondi fa"]},"sec. ago":{v:["sec. fa"]},"seconds ago":{v:["secondi fa"]}}},{l:"ja",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ja-JP",t:{"a few seconds ago":{v:["数秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["数秒前"]}}},{l:"ko",t:{"a few seconds ago":{v:["방금 전"]},"sec. ago":{v:["몇 초 전"]},"seconds ago":{v:["초 전"]}}},{l:"lo",t:{"a few seconds ago":{v:["ສອງສາມວິນາທີກ່ອນ"]},"sec. ago":{v:["ວິ. ກ່ອນ"]},"seconds ago":{v:["ວິນາທີກ່ອນ"]}}},{l:"lt-LT",t:{"a few seconds ago":{v:["prieš keletą sekundžių"]},"sec. ago":{v:["prieš sek."]},"seconds ago":{v:["prieš sekundes"]}}},{l:"lv",t:{}},{l:"mk",t:{"a few seconds ago":{v:["пред неколку секунди"]},"sec. ago":{v:["секунда"]},"seconds ago":{v:["секунди"]}}},{l:"mn",t:{"a few seconds ago":{v:["хэдхэн секундын өмнө"]},"sec. ago":{v:["сек. өмнө"]},"seconds ago":{v:["секундын өмнө"]}}},{l:"my",t:{}},{l:"nb",t:{"a few seconds ago":{v:["noen få sekunder siden"]},"sec. ago":{v:["sek. siden"]},"seconds ago":{v:["sekunder siden"]}}},{l:"nl",t:{"a few seconds ago":{v:["enkele seconden geleden"]},"sec. ago":{v:["sec. geleden"]},"seconds ago":{v:["seconden geleden"]}}},{l:"oc",t:{}},{l:"pl",t:{"a few seconds ago":{v:["kilka sekund temu"]},"sec. ago":{v:["sek. temu"]},"seconds ago":{v:["sekund temu"]}}},{l:"pt-BR",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"pt-PT",t:{"a few seconds ago":{v:["há alguns segundos"]},"sec. ago":{v:["seg. atrás"]},"seconds ago":{v:["segundos atrás"]}}},{l:"ro",t:{"a few seconds ago":{v:["acum câteva secunde"]},"sec. ago":{v:["sec. în urmă"]},"seconds ago":{v:["secunde în urmă"]}}},{l:"ru",t:{"a few seconds ago":{v:["несколько секунд назад"]},"sec. ago":{v:["сек. назад"]},"seconds ago":{v:["секунд назад"]}}},{l:"sk",t:{"a few seconds ago":{v:["pred chvíľou"]},"sec. ago":{v:["pred pár sekundami"]},"seconds ago":{v:["pred sekundami"]}}},{l:"sl",t:{}},{l:"sr",t:{"a few seconds ago":{v:["пре неколико секунди"]},"sec. ago":{v:["сек. раније"]},"seconds ago":{v:["секунди раније"]}}},{l:"sv",t:{"a few seconds ago":{v:["några sekunder sedan"]},"sec. ago":{v:["sek. sedan"]},"seconds ago":{v:["sekunder sedan"]}}},{l:"tr",t:{"a few seconds ago":{v:["birkaç saniye önce"]},"sec. ago":{v:["sn. önce"]},"seconds ago":{v:["saniye önce"]}}},{l:"uk",t:{"a few seconds ago":{v:["декілька секунд тому"]},"sec. ago":{v:["с тому"]},"seconds ago":{v:["с тому"]}}},{l:"uz",t:{"a few seconds ago":{v:["bir necha soniya oldin"]},"sec. ago":{v:["sek. oldin"]},"seconds ago":{v:["soniyalar oldin"]}}},{l:"zh-CN",t:{"a few seconds ago":{v:["几秒前"]},"sec. ago":{v:["几秒前"]},"seconds ago":{v:["几秒前"]}}},{l:"zh-HK",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}},{l:"zh-TW",t:{"a few seconds ago":{v:["幾秒前"]},"sec. ago":{v:["秒前"]},"seconds ago":{v:["秒前"]}}}],Sw=[{l:"ar",t:{Actions:{v:["إجراءات"]}}},{l:"ast",t:{Actions:{v:["Aiciones"]}}},{l:"br",t:{Actions:{v:["Oberioù"]}}},{l:"ca",t:{Actions:{v:["Accions"]}}},{l:"cs",t:{Actions:{v:["Akce"]}}},{l:"cs-CZ",t:{Actions:{v:["Akce"]}}},{l:"da",t:{Actions:{v:["Handlinger"]}}},{l:"de",t:{Actions:{v:["Aktionen"]}}},{l:"de-DE",t:{Actions:{v:["Aktionen"]}}},{l:"el",t:{Actions:{v:["Ενέργειες"]}}},{l:"en-GB",t:{Actions:{v:["Actions"]}}},{l:"eo",t:{Actions:{v:["Agoj"]}}},{l:"es",t:{Actions:{v:["Acciones"]}}},{l:"es-AR",t:{Actions:{v:["Acciones"]}}},{l:"es-EC",t:{Actions:{v:["Acciones"]}}},{l:"es-MX",t:{Actions:{v:["Acciones"]}}},{l:"et-EE",t:{Actions:{v:["Tegevus"]}}},{l:"eu",t:{Actions:{v:["Ekintzak"]}}},{l:"fa",t:{Actions:{v:["کنش‌ها"]}}},{l:"fi",t:{Actions:{v:["Toiminnot"]}}},{l:"fr",t:{Actions:{v:["Actions"]}}},{l:"ga",t:{Actions:{v:["Gníomhartha"]}}},{l:"gl",t:{Actions:{v:["Accións"]}}},{l:"he",t:{Actions:{v:["פעולות"]}}},{l:"hr",t:{Actions:{v:["Radnje"]}}},{l:"hu",t:{Actions:{v:["Műveletek"]}}},{l:"id",t:{Actions:{v:["Tindakan"]}}},{l:"is",t:{Actions:{v:["Aðgerðir"]}}},{l:"it",t:{Actions:{v:["Azioni"]}}},{l:"ja",t:{Actions:{v:["操作"]}}},{l:"ja-JP",t:{Actions:{v:["操作"]}}},{l:"ko",t:{Actions:{v:["동작"]}}},{l:"lo",t:{Actions:{v:["ການກະທຳ"]}}},{l:"lt-LT",t:{Actions:{v:["Veiksmai"]}}},{l:"lv",t:{}},{l:"mk",t:{Actions:{v:["Акции"]}}},{l:"mn",t:{Actions:{v:["Үйлдлүүд"]}}},{l:"my",t:{Actions:{v:["လုပ်ဆောင်ချက်များ"]}}},{l:"nb",t:{Actions:{v:["Handlinger"]}}},{l:"nl",t:{Actions:{v:["Acties"]}}},{l:"oc",t:{Actions:{v:["Accions"]}}},{l:"pl",t:{Actions:{v:["Działania"]}}},{l:"pt-BR",t:{Actions:{v:["Ações"]}}},{l:"pt-PT",t:{Actions:{v:["Ações"]}}},{l:"ro",t:{Actions:{v:["Acțiuni"]}}},{l:"ru",t:{Actions:{v:["Действия "]}}},{l:"sk",t:{Actions:{v:["Akcie"]}}},{l:"sl",t:{Actions:{v:["Dejanja"]}}},{l:"sr",t:{Actions:{v:["Радње"]}}},{l:"sv",t:{Actions:{v:["Åtgärder"]}}},{l:"tr",t:{Actions:{v:["İşlemler"]}}},{l:"uk",t:{Actions:{v:["Дії"]}}},{l:"uz",t:{Actions:{v:["Harakatlar"]}}},{l:"zh-CN",t:{Actions:{v:["行为"]}}},{l:"zh-HK",t:{Actions:{v:["動作"]}}},{l:"zh-TW",t:{Actions:{v:["動作"]}}}],Aw=[{l:"ar",t:{Close:{v:["إغلاق"]}}},{l:"ast",t:{Close:{v:["Zarrar"]}}},{l:"br",t:{Close:{v:["Serriñ"]}}},{l:"ca",t:{Close:{v:["Tanca"]}}},{l:"cs",t:{Close:{v:["Zavřít"]}}},{l:"cs-CZ",t:{Close:{v:["Zavřít"]}}},{l:"da",t:{Close:{v:["Luk"]}}},{l:"de",t:{Close:{v:["Schließen"]}}},{l:"de-DE",t:{Close:{v:["Schließen"]}}},{l:"el",t:{Close:{v:["Κλείσιμο"]}}},{l:"en-GB",t:{Close:{v:["Close"]}}},{l:"eo",t:{Close:{v:["Fermu"]}}},{l:"es",t:{Close:{v:["Cerrar"]}}},{l:"es-AR",t:{Close:{v:["Cerrar"]}}},{l:"es-EC",t:{Close:{v:["Cerrar"]}}},{l:"es-MX",t:{Close:{v:["Cerrar"]}}},{l:"et-EE",t:{Close:{v:["Sulge"]}}},{l:"eu",t:{Close:{v:["Itxi"]}}},{l:"fa",t:{Close:{v:["بستن"]}}},{l:"fi",t:{Close:{v:["Sulje"]}}},{l:"fr",t:{Close:{v:["Fermer"]}}},{l:"ga",t:{Close:{v:["Dún"]}}},{l:"gl",t:{Close:{v:["Pechar"]}}},{l:"he",t:{Close:{v:["סגירה"]}}},{l:"hr",t:{Close:{v:["Zatvori"]}}},{l:"hu",t:{Close:{v:["Bezárás"]}}},{l:"id",t:{Close:{v:["Tutup"]}}},{l:"is",t:{Close:{v:["Loka"]}}},{l:"it",t:{Close:{v:["Chiudi"]}}},{l:"ja",t:{Close:{v:["閉じる"]}}},{l:"ja-JP",t:{Close:{v:["閉じる"]}}},{l:"ko",t:{Close:{v:["닫기"]}}},{l:"lo",t:{Close:{v:["ປິດ"]}}},{l:"lt-LT",t:{Close:{v:["Užverti"]}}},{l:"lv",t:{Close:{v:["Aizvērt"]}}},{l:"mk",t:{Close:{v:["Затвори"]}}},{l:"mn",t:{Close:{v:["Хаах"]}}},{l:"my",t:{Close:{v:["ပိတ်ရန်"]}}},{l:"nb",t:{Close:{v:["Lukk"]}}},{l:"nl",t:{Close:{v:["Sluiten"]}}},{l:"oc",t:{Close:{v:["Tampar"]}}},{l:"pl",t:{Close:{v:["Zamknij"]}}},{l:"pt-BR",t:{Close:{v:["Fechar"]}}},{l:"pt-PT",t:{Close:{v:["Fechar"]}}},{l:"ro",t:{Close:{v:["Închideți"]}}},{l:"ru",t:{Close:{v:["Закрыть"]}}},{l:"sk",t:{Close:{v:["Zavrieť"]}}},{l:"sl",t:{Close:{v:["Zapri"]}}},{l:"sr",t:{Close:{v:["Затвори"]}}},{l:"sv",t:{Close:{v:["Stäng"]}}},{l:"tr",t:{Close:{v:["Kapat"]}}},{l:"uk",t:{Close:{v:["Закрити"]}}},{l:"uz",t:{Close:{v:["Yopish"]}}},{l:"zh-CN",t:{Close:{v:["关闭"]}}},{l:"zh-HK",t:{Close:{v:["關閉"]}}},{l:"zh-TW",t:{Close:{v:["關閉"]}}}],Cw=[{l:"ar",t:{}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{Copied:{v:["Zkopírováno"]},"Copy to clipboard":{v:["Zkopírovat do schránky"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{Copied:{v:["Kopieret"]},"Copy to clipboard":{v:["Kopiér til udklipsholderen"]}}},{l:"de",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"de-DE",t:{Copied:{v:["Kopiert"]},"Copy to clipboard":{v:["In die Zwischenablage kopieren"]}}},{l:"el",t:{}},{l:"en-GB",t:{Copied:{v:["Copied"]},"Copy to clipboard":{v:["Copy to clipboard"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{Copied:{v:["Kopeeritud"]},"Copy to clipboard":{v:["Kopeeri lõikelauale"]}}},{l:"eu",t:{}},{l:"fa",t:{}},{l:"fi",t:{}},{l:"fr",t:{Copied:{v:["Copié"]},"Copy to clipboard":{v:["Copier dans le presse-papiers"]}}},{l:"ga",t:{Copied:{v:["Cóipeáilte"]},"Copy to clipboard":{v:["Cóipeáil chuig an ghearrthaisce"]}}},{l:"gl",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar ao portapapeis"]}}},{l:"he",t:{}},{l:"hr",t:{Copied:{v:["Kopirano"]},"Copy to clipboard":{v:["Kopiraj u međuspremnik"]}}},{l:"hu",t:{Copied:{v:["Másolva"]},"Copy to clipboard":{v:["Vágólapra másolás"]}}},{l:"id",t:{Copied:{v:["Disalin"]},"Copy to clipboard":{v:["Salin ke clipboard"]}}},{l:"is",t:{}},{l:"it",t:{}},{l:"ja",t:{Copied:{v:["コピーされました"]},"Copy to clipboard":{v:["クリップボードにコピー"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{Copied:{v:["복사됨"]},"Copy to clipboard":{v:["클립보드로 복사"]}}},{l:"lo",t:{Copied:{v:["ສຳເນົາແລ້ວ"]},"Copy to clipboard":{v:["ສຳເນົາໃສ່ຄລິບບອດ"]}}},{l:"lt-LT",t:{Copied:{v:["Nukopijuota"]},"Copy to clipboard":{v:["Kopijuoti į iškarpinę"]}}},{l:"lv",t:{}},{l:"mk",t:{Copied:{v:["Копирано"]},"Copy to clipboard":{v:["Копирај во клипбоард"]}}},{l:"mn",t:{Copied:{v:["Хуулагдлаа"]},"Copy to clipboard":{v:["Санах ой руу хуулах"]}}},{l:"my",t:{}},{l:"nb",t:{}},{l:"nl",t:{Copied:{v:["Gekopieerd"]},"Copy to clipboard":{v:["Kopieer naar klembord"]}}},{l:"oc",t:{}},{l:"pl",t:{}},{l:"pt-BR",t:{Copied:{v:["Copiado"]},"Copy to clipboard":{v:["Copiar para a área de transferência"]}}},{l:"pt-PT",t:{}},{l:"ro",t:{}},{l:"ru",t:{Copied:{v:["Скопировано"]},"Copy to clipboard":{v:["Скопировать в буфер"]}}},{l:"sk",t:{}},{l:"sl",t:{}},{l:"sr",t:{}},{l:"sv",t:{Copied:{v:["Kopierad"]},"Copy to clipboard":{v:["Kopiera till urklipp"]}}},{l:"tr",t:{Copied:{v:["Kopyalandı"]},"Copy to clipboard":{v:["Panoya kopyalandı"]}}},{l:"uk",t:{}},{l:"uz",t:{Copied:{v:["Nusxalandi"]},"Copy to clipboard":{v:["Buferga nusxalash"]}}},{l:"zh-CN",t:{}},{l:"zh-HK",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}},{l:"zh-TW",t:{Copied:{v:["已被複製"]},"Copy to clipboard":{v:["複製到剪貼簿"]}}}],Tw=[{l:"ar",t:{"Loading …":{v:["التحميل جارٍ ..."]}}},{l:"ast",t:{}},{l:"br",t:{}},{l:"ca",t:{}},{l:"cs",t:{"Loading …":{v:["Načítání …"]}}},{l:"cs-CZ",t:{}},{l:"da",t:{"Loading …":{v:["Indlæser ..."]}}},{l:"de",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"de-DE",t:{"Loading …":{v:["Wird geladen …"]}}},{l:"el",t:{"Loading …":{v:["Φόρτωση  …"]}}},{l:"en-GB",t:{"Loading …":{v:["Loading …"]}}},{l:"eo",t:{}},{l:"es",t:{}},{l:"es-AR",t:{}},{l:"es-EC",t:{}},{l:"es-MX",t:{}},{l:"et-EE",t:{"Loading …":{v:["Laadin…"]}}},{l:"eu",t:{}},{l:"fa",t:{"Loading …":{v:["در حال بارگذاری ..."]}}},{l:"fi",t:{"Loading …":{v:["Ladataan ..."]}}},{l:"fr",t:{"Loading …":{v:["Chargement..."]}}},{l:"ga",t:{"Loading …":{v:["Ag lódáil …"]}}},{l:"gl",t:{"Loading …":{v:["Cargando…"]}}},{l:"he",t:{}},{l:"hr",t:{"Loading …":{v:["Učitavanje …"]}}},{l:"hu",t:{"Loading …":{v:["Betöltés…"]}}},{l:"id",t:{"Loading …":{v:["Memuat …"]}}},{l:"is",t:{"Loading …":{v:["Hleð inn …"]}}},{l:"it",t:{}},{l:"ja",t:{"Loading …":{v:["読み込み中 …"]}}},{l:"ja-JP",t:{}},{l:"ko",t:{"Loading …":{v:["로딩 중 ..."]}}},{l:"lo",t:{"Loading …":{v:["ກຳລັງໂຫຼດ…"]}}},{l:"lt-LT",t:{"Loading …":{v:["Įkeliama …"]}}},{l:"lv",t:{}},{l:"mk",t:{"Loading …":{v:["Вчитување …"]}}},{l:"mn",t:{"Loading …":{v:["Ачаалж байна …"]}}},{l:"my",t:{}},{l:"nb",t:{"Loading …":{v:["Laster inn..."]}}},{l:"nl",t:{"Loading …":{v:["Laden …"]}}},{l:"oc",t:{}},{l:"pl",t:{"Loading …":{v:["Wczytywanie…"]}}},{l:"pt-BR",t:{"Loading …":{v:["Carregando …"]}}},{l:"pt-PT",t:{"Loading …":{v:["A carregar..."]}}},{l:"ro",t:{}},{l:"ru",t:{"Loading …":{v:["Загрузка …"]}}},{l:"sk",t:{"Loading …":{v:["Nahrávam ..."]}}},{l:"sl",t:{}},{l:"sr",t:{"Loading …":{v:["Учитава се…"]}}},{l:"sv",t:{"Loading …":{v:["Laddar …"]}}},{l:"tr",t:{"Loading …":{v:["Yükleniyor…"]}}},{l:"uk",t:{"Loading …":{v:["Завантаження …"]}}},{l:"uz",t:{"Loading …":{v:["Yuklanmoqda..."]}}},{l:"zh-CN",t:{"Loading …":{v:["加载中..."]}}},{l:"zh-HK",t:{"Loading …":{v:["加載中 …"]}}},{l:"zh-TW",t:{"Loading …":{v:["載入中......"]}}}],kw=[{l:"ar",t:{Next:{v:["التالي"]},"Pause slideshow":{v:["تجميد عرض الشرائح"]},Previous:{v:["السابق"]},"Start slideshow":{v:["إبدإ العرض"]}}},{l:"ast",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Posar la presentación de diapositives"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Aniciar la presentación de diapositives"]}}},{l:"br",t:{Next:{v:["Da heul"]},"Pause slideshow":{v:["Arsav an diaporama"]},Previous:{v:["A-raok"]},"Start slideshow":{v:["Kregiñ an diaporama"]}}},{l:"ca",t:{Next:{v:["Següent"]},"Pause slideshow":{v:["Atura la presentació"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Inicia la presentació"]}}},{l:"cs",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"cs-CZ",t:{Next:{v:["Následující"]},"Pause slideshow":{v:["Pozastavit prezentaci"]},Previous:{v:["Předchozí"]},"Start slideshow":{v:["Spustit prezentaci"]}}},{l:"da",t:{Next:{v:["Videre"]},"Pause slideshow":{v:["Suspender fremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start fremvisning"]}}},{l:"de",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"de-DE",t:{Next:{v:["Weiter"]},"Pause slideshow":{v:["Diashow pausieren"]},Previous:{v:["Vorherige"]},"Start slideshow":{v:["Diashow starten"]}}},{l:"el",t:{Next:{v:["Επόμενο"]},"Pause slideshow":{v:["Παύση προβολής διαφανειών"]},Previous:{v:["Προηγούμενο"]},"Start slideshow":{v:["Έναρξη προβολής διαφανειών"]}}},{l:"en-GB",t:{Next:{v:["Next"]},"Pause slideshow":{v:["Pause slideshow"]},Previous:{v:["Previous"]},"Start slideshow":{v:["Start slideshow"]}}},{l:"eo",t:{Next:{v:["Sekva"]},"Pause slideshow":{v:["Payzi bildprezenton"]},Previous:{v:["Antaŭa"]},"Start slideshow":{v:["Komenci bildprezenton"]}}},{l:"es",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-AR",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar la presentación "]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar la presentación"]}}},{l:"es-EC",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"es-MX",t:{Next:{v:["Siguiente"]},"Pause slideshow":{v:["Pausar presentación de diapositivas"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar presentación de diapositivas"]}}},{l:"et-EE",t:{Next:{v:["Edasi"]},"Pause slideshow":{v:["Slaidiesitluse paus"]},Previous:{v:["Eelmine"]},"Start slideshow":{v:["Alusta slaidiesitust"]}}},{l:"eu",t:{Next:{v:["Hurrengoa"]},"Pause slideshow":{v:["Pausatu diaporama"]},Previous:{v:["Aurrekoa"]},"Start slideshow":{v:["Hasi diaporama"]}}},{l:"fa",t:{Next:{v:["بعدی"]},"Pause slideshow":{v:["توقف نمایش اسلاید"]},Previous:{v:["قبلی"]},"Start slideshow":{v:["شروع نمایش اسلاید"]}}},{l:"fi",t:{Next:{v:["Seuraava"]},"Pause slideshow":{v:["Keskeytä diaesitys"]},Previous:{v:["Edellinen"]},"Start slideshow":{v:["Aloita diaesitys"]}}},{l:"fr",t:{Next:{v:["Suivant"]},"Pause slideshow":{v:["Mettre le diaporama en pause"]},Previous:{v:["Précédent"]},"Start slideshow":{v:["Démarrer le diaporama"]}}},{l:"ga",t:{Next:{v:["Ar aghaidh"]},"Pause slideshow":{v:["Cuir taispeántas sleamhnán ar sos"]},Previous:{v:["Roimhe Seo"]},"Start slideshow":{v:["Tosaigh taispeántas sleamhnán"]}}},{l:"gl",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar o diaporama"]},Previous:{v:["Anterir"]},"Start slideshow":{v:["Iniciar o diaporama"]}}},{l:"he",t:{Next:{v:["הבא"]},"Pause slideshow":{v:["השהיית מצגת"]},Previous:{v:["הקודם"]},"Start slideshow":{v:["התחלת המצגת"]}}},{l:"hr",t:{Next:{v:["Sljedeće"]},"Pause slideshow":{v:["Pauziraj dijaprojekciju"]},Previous:{v:["Prethodno"]},"Start slideshow":{v:["Pokreni dijaprojekciju"]}}},{l:"hu",t:{Next:{v:["Következő"]},"Pause slideshow":{v:["Diavetítés szüneteltetése"]},Previous:{v:["Előző"]},"Start slideshow":{v:["Diavetítés indítása"]}}},{l:"id",t:{Next:{v:["Selanjutnya"]},"Pause slideshow":{v:["Jeda tayangan slide"]},Previous:{v:["Sebelumnya"]},"Start slideshow":{v:["Mulai salindia"]}}},{l:"is",t:{Next:{v:["Næsta"]},"Pause slideshow":{v:["Gera hlé á skyggnusýningu"]},Previous:{v:["Fyrri"]},"Start slideshow":{v:["Byrja skyggnusýningu"]}}},{l:"it",t:{Next:{v:["Successivo"]},"Pause slideshow":{v:["Presentazione in pausa"]},Previous:{v:["Precedente"]},"Start slideshow":{v:["Avvia presentazione"]}}},{l:"ja",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ja-JP",t:{Next:{v:["次"]},"Pause slideshow":{v:["スライドショーを一時停止"]},Previous:{v:["前"]},"Start slideshow":{v:["スライドショーを開始"]}}},{l:"ko",t:{Next:{v:["다음"]},"Pause slideshow":{v:["슬라이드쇼 일시정지"]},Previous:{v:["이전"]},"Start slideshow":{v:["슬라이드쇼 시작"]}}},{l:"lo",t:{Next:{v:["ຕໍ່ໄປ"]},"Pause slideshow":{v:["ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ"]},Previous:{v:["ກ່ອນໜ້າ"]},"Start slideshow":{v:["ເລີ່ມສະໄລ້ໂຊ"]}}},{l:"lt-LT",t:{Next:{v:["Kitas"]},"Pause slideshow":{v:["Pristabdyti skaidrių rodymą"]},Previous:{v:["Ankstesnis"]},"Start slideshow":{v:["Pradėti skaidrių rodymą"]}}},{l:"lv",t:{Next:{v:["Nākamais"]},"Pause slideshow":{v:["Pauzēt slaidrādi"]},Previous:{v:["Iepriekšējais"]},"Start slideshow":{v:["Sākt slaidrādi"]}}},{l:"mk",t:{Next:{v:["Следно"]},"Pause slideshow":{v:["Пузирај слајдшоу"]},Previous:{v:["Предходно"]},"Start slideshow":{v:["Стартувај слајдшоу"]}}},{l:"mn",t:{Next:{v:["Дараах"]},"Pause slideshow":{v:["Слайд шоуг түр зогсоох"]},Previous:{v:["Өмнөх"]},"Start slideshow":{v:["Слайд шоуг эхлүүлэх"]}}},{l:"my",t:{Next:{v:["နောက်သို့ဆက်ရန်"]},"Pause slideshow":{v:["စလိုက်ရှိုး ခေတ္တရပ်ရန်"]},Previous:{v:["ယခင်"]},"Start slideshow":{v:["စလိုက်ရှိုးအား စတင်ရန်"]}}},{l:"nb",t:{Next:{v:["Neste"]},"Pause slideshow":{v:["Pause lysbildefremvisning"]},Previous:{v:["Forrige"]},"Start slideshow":{v:["Start lysbildefremvisning"]}}},{l:"nl",t:{Next:{v:["Volgende"]},"Pause slideshow":{v:["Diavoorstelling pauzeren"]},Previous:{v:["Vorige"]},"Start slideshow":{v:["Diavoorstelling starten"]}}},{l:"oc",t:{Next:{v:["Seguent"]},"Pause slideshow":{v:["Metre en pausa lo diaporama"]},Previous:{v:["Precedent"]},"Start slideshow":{v:["Lançar lo diaporama"]}}},{l:"pl",t:{Next:{v:["Następny"]},"Pause slideshow":{v:["Wstrzymaj pokaz slajdów"]},Previous:{v:["Poprzedni"]},"Start slideshow":{v:["Rozpocznij pokaz slajdów"]}}},{l:"pt-BR",t:{Next:{v:["Próximo"]},"Pause slideshow":{v:["Pausar apresentação de slides"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar apresentação de slides"]}}},{l:"pt-PT",t:{Next:{v:["Seguinte"]},"Pause slideshow":{v:["Pausar diaporama"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Iniciar diaporama"]}}},{l:"ro",t:{Next:{v:["Următorul"]},"Pause slideshow":{v:["Pauză prezentare de diapozitive"]},Previous:{v:["Anterior"]},"Start slideshow":{v:["Începeți prezentarea de diapozitive"]}}},{l:"ru",t:{Next:{v:["Следующее"]},"Pause slideshow":{v:["Приостановить показ слйдов"]},Previous:{v:["Предыдущее"]},"Start slideshow":{v:["Начать показ слайдов"]}}},{l:"sk",t:{Next:{v:["Ďalej"]},"Pause slideshow":{v:["Pozastaviť prezentáciu"]},Previous:{v:["Predchádzajúce"]},"Start slideshow":{v:["Začať prezentáciu"]}}},{l:"sl",t:{Next:{v:["Naslednji"]},"Pause slideshow":{v:["Ustavi predstavitev"]},Previous:{v:["Predhodni"]},"Start slideshow":{v:["Začni predstavitev"]}}},{l:"sr",t:{Next:{v:["Следеће"]},"Pause slideshow":{v:["Паузирај слајд шоу"]},Previous:{v:["Претходно"]},"Start slideshow":{v:["Покрени слајд шоу"]}}},{l:"sv",t:{Next:{v:["Nästa"]},"Pause slideshow":{v:["Pausa bildspelet"]},Previous:{v:["Föregående"]},"Start slideshow":{v:["Starta bildspelet"]}}},{l:"tr",t:{Next:{v:["Sonraki"]},"Pause slideshow":{v:["Slayt sunumunu duraklat"]},Previous:{v:["Önceki"]},"Start slideshow":{v:["Slayt sunumunu başlat"]}}},{l:"uk",t:{Next:{v:["Вперед"]},"Pause slideshow":{v:["Пауза у показі слайдів"]},Previous:{v:["Назад"]},"Start slideshow":{v:["Почати показ слайдів"]}}},{l:"uz",t:{Next:{v:["Keyingi"]},"Pause slideshow":{v:["Slayd-shouni to'xtatib turish"]},Previous:{v:["Oldingi"]},"Start slideshow":{v:["Slayd-shouni boshlash"]}}},{l:"zh-CN",t:{Next:{v:["下一个"]},"Pause slideshow":{v:["暂停幻灯片"]},Previous:{v:["上一个"]},"Start slideshow":{v:["开始幻灯片"]}}},{l:"zh-HK",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}},{l:"zh-TW",t:{Next:{v:["下一個"]},"Pause slideshow":{v:["暫停幻燈片"]},Previous:{v:["上一個"]},"Start slideshow":{v:["開始幻燈片"]}}}];wr(Ew);const Pw={long:Ge("a few seconds ago"),short:Ge("seconds ago"),narrow:Ge("sec. ago")};function Rw(t=Date.now(),e={}){let n;const i=ct(()=>new Date(je(t))),o=ct(()=>{const{language:a,relativeTime:l,ignoreSeconds:c}=je(e);return{...a&&{language:a},...l&&{relativeTime:l},ignoreSeconds:c?Pw[l||"long"]:!1}}),s=fe("");ig(()=>r());function r(){if(s.value=Q_(i.value,o.value),je(e).update!==!1){const a=Math.abs(Date.now()-new Date(je(t)).getTime()),l=a>12e4||o.value.ignoreSeconds?Math.min(a/60,18e5):1e3;n=window.setTimeout(r,l)}}return qn(()=>n&&window.clearTimeout(n)),xa(s)}function Lw(t,e){const n=ct(()=>({locale:Mg(),format:{dateStyle:"short",timeStyle:"medium"},...je(e)})),i=ct(()=>new Intl.DateTimeFormat(n.value.locale,n.value.format));return ct(()=>i.value.format(je(t)))}const Dw=["data-timestamp","title","textContent"],Cl=Pt({__name:"NcDateTime",props:{timestamp:{},format:{default:()=>({timeStyle:"medium",dateStyle:"short"})},relativeTime:{type:[Boolean,String],default:"long"},ignoreSeconds:{type:Boolean}},setup(t){const e=t,n=ct(()=>({format:e.format})),i=ct(()=>({ignoreSeconds:e.ignoreSeconds,relativeTime:e.relativeTime||"long",update:e.relativeTime!==!1})),o=Lw(eo(()=>e.timestamp),n),s=Rw(eo(()=>e.timestamp),i),r=ct(()=>e.relativeTime?s.value:o.value);return(a,l)=>(D(),z("span",{class:"nc-datetime",dir:"auto","data-timestamp":t.timestamp,title:E(o),textContent:L(r.value)},null,8,Dw))}});var Nw="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",Ow="M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z",$w="M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z",Bw="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",Fw="M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",jw="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",Uw="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Wh="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",Vw="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",Iw="M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",zw="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z",Hw="M14,19H18V5H14M6,19H10V5H6V19Z",Jw="M8,5.14V19.14L19,12.14L8,5.14Z";const[Ww]=window.OC?.config?.version?.split(".")??[],nm=Number.parseInt(Ww??"34"),qc=nm<32,Gw=nm<34,ze=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n},qw=["aria-hidden","aria-label"],Kw={key:0,viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Xw=["d"],Yw=["innerHTML"],Zw=Pt({__name:"NcIconSvgWrapper",props:{directional:{type:Boolean},inline:{type:Boolean},svg:{default:""},name:{default:void 0},path:{default:""},size:{default:20}},setup(t){Al(o=>({fb515064:n.value}));const e=t,n=ct(()=>typeof e.size=="number"?`${e.size}px`:e.size),i=ct(()=>{if(!e.svg||e.path)return;const o=Qg.sanitize(e.svg),s=new DOMParser().parseFromString(o,"image/svg+xml");return s.querySelector("parsererror")?"":(s.documentElement.id&&s.documentElement.removeAttribute("id"),s.documentElement.outerHTML)});return(o,s)=>(D(),z("span",{"aria-hidden":t.name?void 0:"true","aria-label":t.name||void 0,class:Xt(["icon-vue",{"icon-vue--directional":t.directional,"icon-vue--inline":t.inline}]),role:"img"},[i.value?(D(),z("span",{key:1,innerHTML:i.value},null,8,Yw)):(D(),z("svg",Kw,[b("path",{d:t.path},null,8,Xw)]))],10,qw))}}),In=ze(Zw,[["__scopeId","data-v-aaedb1c3"]]),Qw=["role"],Mw={key:0,class:"notecard__heading"},tx={class:"notecard__text"},ex=Pt({__name:"NcNoteCard",props:{heading:{default:void 0},showAlert:{type:Boolean},text:{default:void 0},type:{default:"warning"}},setup(t){const e=t,n=ct(()=>e.showAlert||e.type==="error"),i=ct(()=>{switch(e.type){case"error":return Ow;case"success":return Fw;case"info":return Iw;default:return Nw}});return(o,s)=>(D(),z("div",{class:Xt(["notecard",{[`notecard--${t.type}`]:t.type,"notecard--legacy":E(qc)}]),role:n.value?"alert":"note"},[Qt(o.$slots,"icon",{},()=>[nt(E(In),{path:i.value,class:Xt(["notecard__icon",{"notecard__icon--heading":t.heading}]),inline:""},null,8,["path","class"])],!0),b("div",null,[t.heading?(D(),z("p",Mw,L(t.heading),1)):bt("",!0),Qt(o.$slots,"default",{},()=>[b("p",tx,L(t.text),1)],!0)])],10,Qw))}}),la=ze(ex,[["__scopeId","data-v-6be9fa31"]]),nx={name:"UpdateIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},ix=["aria-hidden","aria-label"],ox=["fill","width","height"],sx={d:"M21,10.12H14.22L16.96,7.3C14.23,4.6 9.81,4.5 7.08,7.2C4.35,9.91 4.35,14.28 7.08,17C9.81,19.7 14.23,19.7 16.96,17C18.32,15.65 19,14.08 19,12.1H21C21,14.08 20.12,16.65 18.36,18.39C14.85,21.87 9.15,21.87 5.64,18.39C2.14,14.92 2.11,9.28 5.62,5.81C9.13,2.34 14.76,2.34 18.27,5.81L21,3V10.12M12.5,8V12.25L16,14.33L15.28,15.54L11,13V8H12.5Z"},rx={key:0};function ax(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon update-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",sx,[n.title?(D(),z("title",rx,L(n.title),1)):bt("",!0)])],8,ox))],16,ix)}const lx=Jt(nx,[["render",ax]]);function sc(t,e){return D0()?(Wv(t,e),!0):!1}const rc=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ux=Object.prototype.toString,cx=t=>ux.call(t)==="[object Object]";function ua(t){return Array.isArray(t)?t:[t]}function dx(t){return Kn()}function hx(t,e=!0,n){dx()?Bi(t,n):e?t():yr(t)}function fx(t,e=1e3,n={}){const{immediate:i=!0,immediateCallback:o=!1}=n;let s=null;const r=Gn(!1);function a(){s&&(clearInterval(s),s=null)}function l(){r.value=!1,a()}function c(){const u=je(e);u<=0||(r.value=!0,o&&t(),a(),r.value&&(s=setInterval(t,u)))}return i&&rc&&c(),(ve(e)||typeof e=="function")&&sc(Xe(e,()=>{r.value&&rc&&c()})),sc(l),{isActive:dy(r),pause:l,resume:c}}function px(t,e,n){return Xe(t,e,{...n,immediate:!0})}function gx(t,e,n){return Xe(t,(i,o,s)=>{i&&e(i,o,s)},{...n,once:!1})}const Tl=rc?window:void 0;function no(t){var e;const n=je(t);return(e=n?.$el)!==null&&e!==void 0?e:n}function ca(...t){const e=(i,o,s,r)=>(i.addEventListener(o,s,r),()=>i.removeEventListener(o,s,r)),n=ct(()=>{const i=ua(je(t[0])).filter(o=>o!=null);return i.every(o=>typeof o!="string")?i:void 0});return px(()=>{var i,o;return[(i=(o=n.value)===null||o===void 0?void 0:o.map(s=>no(s)))!==null&&i!==void 0?i:[Tl].filter(s=>s!=null),ua(je(n.value?t[1]:t[0])),ua(E(n.value?t[2]:t[1])),je(n.value?t[3]:t[2])]},([i,o,s,r],a,l)=>{if(!i?.length||!o?.length||!s?.length)return;const c=cx(r)?{...r}:r,u=i.flatMap(d=>o.flatMap(f=>s.map(p=>e(d,f,p,c))));l(()=>{u.forEach(d=>d())})},{flush:"post"})}function mx(){const t=Gn(!1),e=Kn();return e&&Bi(()=>{t.value=!0},e),t}function vx(t){const e=mx();return ct(()=>(e.value,!!t()))}function yx(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Gh(...t){let e,n,i={};t.length===3?(e=t[0],n=t[1],i=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],i=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:o=Tl,eventName:s="keydown",passive:r=!1,dedupe:a=!1}=i,l=yx(e);return ca(o,s,c=>{c.repeat&&je(a)||l(c)&&n(c)},r)}function bx(t,e,n={}){const{window:i=Tl,...o}=n;let s;const r=vx(()=>i&&"ResizeObserver"in i),a=()=>{s&&(s.disconnect(),s=void 0)},l=Xe(ct(()=>{const u=je(t);return Array.isArray(u)?u.map(d=>no(d)):[no(u)]}),u=>{if(a(),r.value&&i){s=new ResizeObserver(e);for(const d of u)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),c=()=>{a(),l()};return sc(c),{isSupported:r,stop:c}}function _x(t,e={width:0,height:0},n={}){const{window:i=Tl,box:o="content-box"}=n,s=ct(()=>{var d;return(d=no(t))===null||d===void 0||(d=d.namespaceURI)===null||d===void 0?void 0:d.includes("svg")}),r=Gn(e.width),a=Gn(e.height),{stop:l}=bx(t,([d])=>{const f=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(i&&s.value){const p=no(t);if(p){const y=p.getBoundingClientRect();r.value=y.width,a.value=y.height}}else if(f){const p=ua(f);r.value=p.reduce((y,{inlineSize:m})=>y+m,0),a.value=p.reduce((y,{blockSize:m})=>y+m,0)}else r.value=d.contentRect.width,a.value=d.contentRect.height},n);hx(()=>{const d=no(t);if(d&&"offsetWidth"in d)if(o==="content-box"&&i){const f=i.getComputedStyle(d),p=Number.parseFloat(f.paddingLeft)+Number.parseFloat(f.paddingRight),y=Number.parseFloat(f.paddingTop)+Number.parseFloat(f.paddingBottom),m=Number.parseFloat(f.borderLeftWidth)+Number.parseFloat(f.borderRightWidth),x=Number.parseFloat(f.borderTopWidth)+Number.parseFloat(f.borderBottomWidth);r.value=d.offsetWidth-p-m,a.value=d.offsetHeight-y-x}else r.value=d.offsetWidth,a.value=d.offsetHeight;else d&&(r.value=e.width,a.value=e.height)});const c=Xe(()=>no(t),d=>{r.value=d?e.width:0,a.value=d?e.height:0});function u(){l(),c()}return{width:r,height:a,stop:u}}function wx(t,e={}){const{threshold:n=50,onSwipe:i,onSwipeEnd:o,onSwipeStart:s,passive:r=!0}=e,a=Wo({x:0,y:0}),l=Wo({x:0,y:0}),c=ct(()=>a.x-l.x),u=ct(()=>a.y-l.y),{max:d,abs:f}=Math,p=ct(()=>d(f(c.value),f(u.value))>=n),y=Gn(!1),m=ct(()=>p.value?f(c.value)>f(u.value)?c.value>0?"left":"right":u.value>0?"up":"down":"none"),x=U=>[U.touches[0].clientX,U.touches[0].clientY],_=(U,V)=>{a.x=U,a.y=V},S=(U,V)=>{l.x=U,l.y=V},P={passive:r,capture:!r},A=U=>{y.value&&o?.(U,m.value),y.value=!1},O=[ca(t,"touchstart",U=>{if(U.touches.length!==1)return;const[V,J]=x(U);_(V,J),S(V,J),s?.(U)},P),ca(t,"touchmove",U=>{if(U.touches.length!==1)return;const[V,J]=x(U);S(V,J),P.capture&&!P.passive&&Math.abs(c.value)>Math.abs(u.value)&&U.preventDefault(),!y.value&&p.value&&(y.value=!0),y.value&&i?.(U)},P),ca(t,["touchend","touchcancel"],A,P)];return{isSwiping:y,direction:m,coordsStart:a,coordsEnd:l,lengthX:c,lengthY:u,stop:()=>O.forEach(U=>U())}}window._nc_vue_element_id=window._nc_vue_element_id??0;function Mo(){return`nc-vue-${window._nc_vue_element_id++}`}const im=Symbol("");var om={},da={};da.byteLength=Sx,da.toByteArray=Cx,da.fromByteArray=Px;for(var zn=[],hn=[],xx=typeof Uint8Array<"u"?Uint8Array:Array,uu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ko=0,Ex=uu.length;ko0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var i=n===e?0:4-n%4;return[n,i]}function Sx(t){var e=sm(t),n=e[0],i=e[1];return(n+i)*3/4-i}function Ax(t,e,n){return(e+n)*3/4-n}function Cx(t){var e,n=sm(t),i=n[0],o=n[1],s=new xx(Ax(t,i,o)),r=0,a=o>0?i-4:i,l;for(l=0;l>16&255,s[r++]=e>>8&255,s[r++]=e&255;return o===2&&(e=hn[t.charCodeAt(l)]<<2|hn[t.charCodeAt(l+1)]>>4,s[r++]=e&255),o===1&&(e=hn[t.charCodeAt(l)]<<10|hn[t.charCodeAt(l+1)]<<4|hn[t.charCodeAt(l+2)]>>2,s[r++]=e>>8&255,s[r++]=e&255),s}function Tx(t){return zn[t>>18&63]+zn[t>>12&63]+zn[t>>6&63]+zn[t&63]}function kx(t,e,n){for(var i,o=[],s=e;sa?a:r+s));return i===1?(e=t[n-1],o.push(zn[e>>2]+zn[e<<4&63]+"==")):i===2&&(e=(t[n-2]<<8)+t[n-1],o.push(zn[e>>10]+zn[e>>4&63]+zn[e<<2&63]+"=")),o.join("")}var ac={};ac.read=function(t,e,n,i,o){var s,r,a=o*8-i-1,l=(1<>1,u=-7,d=n?o-1:0,f=n?-1:1,p=t[e+d];for(d+=f,s=p&(1<<-u)-1,p>>=-u,u+=a;u>0;s=s*256+t[e+d],d+=f,u-=8);for(r=s&(1<<-u)-1,s>>=-u,u+=i;u>0;r=r*256+t[e+d],d+=f,u-=8);if(s===0)s=1-c;else{if(s===l)return r?NaN:(p?-1:1)*(1/0);r=r+Math.pow(2,i),s=s-c}return(p?-1:1)*r*Math.pow(2,s-i)},ac.write=function(t,e,n,i,o,s){var r,a,l,c=s*8-o-1,u=(1<>1,f=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=i?0:s-1,y=i?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,r=u):(r=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-r))<1&&(r--,l*=2),r+d>=1?e+=f/l:e+=f*Math.pow(2,1-d),e*l>=2&&(r++,l/=2),r+d>=u?(a=0,r=u):r+d>=1?(a=(e*l-1)*Math.pow(2,o),r=r+d):(a=e*Math.pow(2,d-1)*Math.pow(2,o),r=0));o>=8;t[n+p]=a&255,p+=y,a/=256,o-=8);for(r=r<0;t[n+p]=r&255,p+=y,r/=256,c-=8);t[n+p-y]|=m*128};(function(t){const e=da,n=ac,i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=O,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o;const{Uint8Array:s,ArrayBuffer:r,SharedArrayBuffer:a}=globalThis;u.TYPED_ARRAY_SUPPORT=l(),!u.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function l(){try{const h=new s(1),g={foo:function(){return 42}};return Object.setPrototypeOf(g,s.prototype),Object.setPrototypeOf(h,g),h.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function c(h){if(h>o)throw new RangeError('The value "'+h+'" is invalid for option "size"');const g=new s(h);return Object.setPrototypeOf(g,u.prototype),g}function u(h,g,v){if(typeof h=="number"){if(typeof g=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(h)}return d(h,g,v)}u.poolSize=8192;function d(h,g,v){if(typeof h=="string")return m(h,g);if(r.isView(h))return _(h);if(h==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h);if(wt(h,r)||h&&wt(h.buffer,r)||typeof a<"u"&&(wt(h,a)||h&&wt(h.buffer,a)))return S(h,g,v);if(typeof h=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const R=h.valueOf&&h.valueOf();if(R!=null&&R!==h)return u.from(R,g,v);const $=P(h);if($)return $;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof h[Symbol.toPrimitive]=="function")return u.from(h[Symbol.toPrimitive]("string"),g,v);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof h)}u.from=function(h,g,v){return d(h,g,v)},Object.setPrototypeOf(u.prototype,s.prototype),Object.setPrototypeOf(u,s);function f(h){if(typeof h!="number")throw new TypeError('"size" argument must be of type number');if(h<0)throw new RangeError('The value "'+h+'" is invalid for option "size"')}function p(h,g,v){return f(h),h<=0?c(h):g!==void 0?typeof v=="string"?c(h).fill(g,v):c(h).fill(g):c(h)}u.alloc=function(h,g,v){return p(h,g,v)};function y(h){return f(h),c(h<0?0:A(h)|0)}u.allocUnsafe=function(h){return y(h)},u.allocUnsafeSlow=function(h){return y(h)};function m(h,g){if((typeof g!="string"||g==="")&&(g="utf8"),!u.isEncoding(g))throw new TypeError("Unknown encoding: "+g);const v=U(h,g)|0;let R=c(v);const $=R.write(h,g);return $!==v&&(R=R.slice(0,$)),R}function x(h){const g=h.length<0?0:A(h.length)|0,v=c(g);for(let R=0;R=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return h|0}function O(h){return+h!=h&&(h=0),u.alloc(+h)}u.isBuffer=function(h){return h!=null&&h._isBuffer===!0&&h!==u.prototype},u.compare=function(h,g){if(wt(h,s)&&(h=u.from(h,h.offset,h.byteLength)),wt(g,s)&&(g=u.from(g,g.offset,g.byteLength)),!u.isBuffer(h)||!u.isBuffer(g))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(h===g)return 0;let v=h.length,R=g.length;for(let $=0,G=Math.min(v,R);$R.length?(u.isBuffer(G)||(G=u.from(G)),G.copy(R,$)):s.prototype.set.call(R,G,$);else if(u.isBuffer(G))G.copy(R,$);else throw new TypeError('"list" argument must be an Array of Buffers');$+=G.length}return R};function U(h,g){if(u.isBuffer(h))return h.length;if(r.isView(h)||wt(h,r))return h.byteLength;if(typeof h!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof h);const v=h.length,R=arguments.length>2&&arguments[2]===!0;if(!R&&v===0)return 0;let $=!1;for(;;)switch(g){case"ascii":case"latin1":case"binary":return v;case"utf8":case"utf-8":return tt(h).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v*2;case"hex":return v>>>1;case"base64":return yt(h).length;default:if($)return R?-1:tt(h).length;g=(""+g).toLowerCase(),$=!0}}u.byteLength=U;function V(h,g,v){let R=!1;if((g===void 0||g<0)&&(g=0),g>this.length||((v===void 0||v>this.length)&&(v=this.length),v<=0)||(v>>>=0,g>>>=0,v<=g))return"";for(h||(h="utf8");;)switch(h){case"hex":return gt(this,g,v);case"utf8":case"utf-8":return rt(this,g,v);case"ascii":return pt(this,g,v);case"latin1":case"binary":return St(this,g,v);case"base64":return Z(this,g,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return qt(this,g,v);default:if(R)throw new TypeError("Unknown encoding: "+h);h=(h+"").toLowerCase(),R=!0}}u.prototype._isBuffer=!0;function J(h,g,v){const R=h[g];h[g]=h[v],h[v]=R}u.prototype.swap16=function(){const h=this.length;if(h%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let g=0;gg&&(h+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(h,g,v,R,$){if(wt(h,s)&&(h=u.from(h,h.offset,h.byteLength)),!u.isBuffer(h))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof h);if(g===void 0&&(g=0),v===void 0&&(v=h?h.length:0),R===void 0&&(R=0),$===void 0&&($=this.length),g<0||v>h.length||R<0||$>this.length)throw new RangeError("out of range index");if(R>=$&&g>=v)return 0;if(R>=$)return-1;if(g>=v)return 1;if(g>>>=0,v>>>=0,R>>>=0,$>>>=0,this===h)return 0;let G=$-R,at=v-g;const Gt=Math.min(G,at),he=this.slice(R,$),Kt=h.slice(g,v);for(let Nt=0;Nt2147483647?v=2147483647:v<-2147483648&&(v=-2147483648),v=+v,Dt(v)&&(v=$?0:h.length-1),v<0&&(v=h.length+v),v>=h.length){if($)return-1;v=h.length-1}else if(v<0)if($)v=0;else return-1;if(typeof g=="string"&&(g=u.from(g,R)),u.isBuffer(g))return g.length===0?-1:I(h,g,v,R,$);if(typeof g=="number")return g=g&255,typeof s.prototype.indexOf=="function"?$?s.prototype.indexOf.call(h,g,v):s.prototype.lastIndexOf.call(h,g,v):I(h,[g],v,R,$);throw new TypeError("val must be string, number or Buffer")}function I(h,g,v,R,$){let G=1,at=h.length,Gt=g.length;if(R!==void 0&&(R=String(R).toLowerCase(),R==="ucs2"||R==="ucs-2"||R==="utf16le"||R==="utf-16le")){if(h.length<2||g.length<2)return-1;G=2,at/=2,Gt/=2,v/=2}function he(Nt,le){return G===1?Nt[le]:Nt.readUInt16BE(le*G)}let Kt;if($){let Nt=-1;for(Kt=v;Ktat&&(v=at-Gt),Kt=v;Kt>=0;Kt--){let Nt=!0;for(let le=0;le$&&(R=$)):R=$;const G=g.length;R>G/2&&(R=G/2);let at;for(at=0;at>>0,isFinite(v)?(v=v>>>0,R===void 0&&(R="utf8")):(R=v,v=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const $=this.length-g;if((v===void 0||v>$)&&(v=$),h.length>0&&(v<0||g<0)||g>this.length)throw new RangeError("Attempt to write outside buffer bounds");R||(R="utf8");let G=!1;for(;;)switch(R){case"hex":return et(this,h,g,v);case"utf8":case"utf-8":return T(this,h,g,v);case"ascii":case"latin1":case"binary":return j(this,h,g,v);case"base64":return Q(this,h,g,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,h,g,v);default:if(G)throw new TypeError("Unknown encoding: "+R);R=(""+R).toLowerCase(),G=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Z(h,g,v){return g===0&&v===h.length?e.fromByteArray(h):e.fromByteArray(h.slice(g,v))}function rt(h,g,v){v=Math.min(h.length,v);const R=[];let $=g;for(;$239?4:G>223?3:G>191?2:1;if($+Gt<=v){let he,Kt,Nt,le;switch(Gt){case 1:G<128&&(at=G);break;case 2:he=h[$+1],(he&192)===128&&(le=(G&31)<<6|he&63,le>127&&(at=le));break;case 3:he=h[$+1],Kt=h[$+2],(he&192)===128&&(Kt&192)===128&&(le=(G&15)<<12|(he&63)<<6|Kt&63,le>2047&&(le<55296||le>57343)&&(at=le));break;case 4:he=h[$+1],Kt=h[$+2],Nt=h[$+3],(he&192)===128&&(Kt&192)===128&&(Nt&192)===128&&(le=(G&15)<<18|(he&63)<<12|(Kt&63)<<6|Nt&63,le>65535&&le<1114112&&(at=le))}}at===null?(at=65533,Gt=1):at>65535&&(at-=65536,R.push(at>>>10&1023|55296),at=56320|at&1023),R.push(at),$+=Gt}return ft(R)}const lt=4096;function ft(h){const g=h.length;if(g<=lt)return String.fromCharCode.apply(String,h);let v="",R=0;for(;RR)&&(v=R);let $="";for(let G=g;Gv&&(h=v),g<0?(g+=v,g<0&&(g=0)):g>v&&(g=v),gv)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUintLE=u.prototype.readUIntLE=function(h,g,v){h=h>>>0,g=g>>>0,v||Lt(h,g,this.length);let R=this[h],$=1,G=0;for(;++G>>0,g=g>>>0,v||Lt(h,g,this.length);let R=this[h+--g],$=1;for(;g>0&&($*=256);)R+=this[h+--g]*$;return R},u.prototype.readUint8=u.prototype.readUInt8=function(h,g){return h=h>>>0,g||Lt(h,1,this.length),this[h]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(h,g){return h=h>>>0,g||Lt(h,2,this.length),this[h]|this[h+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(h,g){return h=h>>>0,g||Lt(h,2,this.length),this[h]<<8|this[h+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(h,g){return h=h>>>0,g||Lt(h,4,this.length),(this[h]|this[h+1]<<8|this[h+2]<<16)+this[h+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(h,g){return h=h>>>0,g||Lt(h,4,this.length),this[h]*16777216+(this[h+1]<<16|this[h+2]<<8|this[h+3])},u.prototype.readBigUInt64LE=It(function(h){h=h>>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&ot(h,this.length-8);const R=g+this[++h]*2**8+this[++h]*2**16+this[++h]*2**24,$=this[++h]+this[++h]*2**8+this[++h]*2**16+v*2**24;return BigInt(R)+(BigInt($)<>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&ot(h,this.length-8);const R=g*2**24+this[++h]*2**16+this[++h]*2**8+this[++h],$=this[++h]*2**24+this[++h]*2**16+this[++h]*2**8+v;return(BigInt(R)<>>0,g=g>>>0,v||Lt(h,g,this.length);let R=this[h],$=1,G=0;for(;++G=$&&(R-=Math.pow(2,8*g)),R},u.prototype.readIntBE=function(h,g,v){h=h>>>0,g=g>>>0,v||Lt(h,g,this.length);let R=g,$=1,G=this[h+--R];for(;R>0&&($*=256);)G+=this[h+--R]*$;return $*=128,G>=$&&(G-=Math.pow(2,8*g)),G},u.prototype.readInt8=function(h,g){return h=h>>>0,g||Lt(h,1,this.length),this[h]&128?(255-this[h]+1)*-1:this[h]},u.prototype.readInt16LE=function(h,g){h=h>>>0,g||Lt(h,2,this.length);const v=this[h]|this[h+1]<<8;return v&32768?v|4294901760:v},u.prototype.readInt16BE=function(h,g){h=h>>>0,g||Lt(h,2,this.length);const v=this[h+1]|this[h]<<8;return v&32768?v|4294901760:v},u.prototype.readInt32LE=function(h,g){return h=h>>>0,g||Lt(h,4,this.length),this[h]|this[h+1]<<8|this[h+2]<<16|this[h+3]<<24},u.prototype.readInt32BE=function(h,g){return h=h>>>0,g||Lt(h,4,this.length),this[h]<<24|this[h+1]<<16|this[h+2]<<8|this[h+3]},u.prototype.readBigInt64LE=It(function(h){h=h>>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&ot(h,this.length-8);const R=this[h+4]+this[h+5]*2**8+this[h+6]*2**16+(v<<24);return(BigInt(R)<>>0,B(h,"offset");const g=this[h],v=this[h+7];(g===void 0||v===void 0)&&ot(h,this.length-8);const R=(g<<24)+this[++h]*2**16+this[++h]*2**8+this[++h];return(BigInt(R)<>>0,g||Lt(h,4,this.length),n.read(this,h,!0,23,4)},u.prototype.readFloatBE=function(h,g){return h=h>>>0,g||Lt(h,4,this.length),n.read(this,h,!1,23,4)},u.prototype.readDoubleLE=function(h,g){return h=h>>>0,g||Lt(h,8,this.length),n.read(this,h,!0,52,8)},u.prototype.readDoubleBE=function(h,g){return h=h>>>0,g||Lt(h,8,this.length),n.read(this,h,!1,52,8)};function $t(h,g,v,R,$,G){if(!u.isBuffer(h))throw new TypeError('"buffer" argument must be a Buffer instance');if(g>$||gh.length)throw new RangeError("Index out of range")}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(h,g,v,R){if(h=+h,g=g>>>0,v=v>>>0,!R){const at=Math.pow(2,8*v)-1;$t(this,h,g,v,at,0)}let $=1,G=0;for(this[g]=h&255;++G>>0,v=v>>>0,!R){const at=Math.pow(2,8*v)-1;$t(this,h,g,v,at,0)}let $=v-1,G=1;for(this[g+$]=h&255;--$>=0&&(G*=256);)this[g+$]=h/G&255;return g+v},u.prototype.writeUint8=u.prototype.writeUInt8=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,1,255,0),this[g]=h&255,g+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,65535,0),this[g]=h&255,this[g+1]=h>>>8,g+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,65535,0),this[g]=h>>>8,this[g+1]=h&255,g+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,4294967295,0),this[g+3]=h>>>24,this[g+2]=h>>>16,this[g+1]=h>>>8,this[g]=h&255,g+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,4294967295,0),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4};function At(h,g,v,R,$){X(g,R,$,h,v,7);let G=Number(g&BigInt(4294967295));h[v++]=G,G=G>>8,h[v++]=G,G=G>>8,h[v++]=G,G=G>>8,h[v++]=G;let at=Number(g>>BigInt(32)&BigInt(4294967295));return h[v++]=at,at=at>>8,h[v++]=at,at=at>>8,h[v++]=at,at=at>>8,h[v++]=at,v}function ne(h,g,v,R,$){X(g,R,$,h,v,7);let G=Number(g&BigInt(4294967295));h[v+7]=G,G=G>>8,h[v+6]=G,G=G>>8,h[v+5]=G,G=G>>8,h[v+4]=G;let at=Number(g>>BigInt(32)&BigInt(4294967295));return h[v+3]=at,at=at>>8,h[v+2]=at,at=at>>8,h[v+1]=at,at=at>>8,h[v]=at,v+8}u.prototype.writeBigUInt64LE=It(function(h,g=0){return At(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=It(function(h,g=0){return ne(this,h,g,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(h,g,v,R){if(h=+h,g=g>>>0,!R){const Gt=Math.pow(2,8*v-1);$t(this,h,g,v,Gt-1,-Gt)}let $=0,G=1,at=0;for(this[g]=h&255;++$>0)-at&255;return g+v},u.prototype.writeIntBE=function(h,g,v,R){if(h=+h,g=g>>>0,!R){const Gt=Math.pow(2,8*v-1);$t(this,h,g,v,Gt-1,-Gt)}let $=v-1,G=1,at=0;for(this[g+$]=h&255;--$>=0&&(G*=256);)h<0&&at===0&&this[g+$+1]!==0&&(at=1),this[g+$]=(h/G>>0)-at&255;return g+v},u.prototype.writeInt8=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,1,127,-128),h<0&&(h=255+h+1),this[g]=h&255,g+1},u.prototype.writeInt16LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,32767,-32768),this[g]=h&255,this[g+1]=h>>>8,g+2},u.prototype.writeInt16BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,2,32767,-32768),this[g]=h>>>8,this[g+1]=h&255,g+2},u.prototype.writeInt32LE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,2147483647,-2147483648),this[g]=h&255,this[g+1]=h>>>8,this[g+2]=h>>>16,this[g+3]=h>>>24,g+4},u.prototype.writeInt32BE=function(h,g,v){return h=+h,g=g>>>0,v||$t(this,h,g,4,2147483647,-2147483648),h<0&&(h=4294967295+h+1),this[g]=h>>>24,this[g+1]=h>>>16,this[g+2]=h>>>8,this[g+3]=h&255,g+4},u.prototype.writeBigInt64LE=It(function(h,g=0){return At(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=It(function(h,g=0){return ne(this,h,g,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function nn(h,g,v,R,$,G){if(v+R>h.length)throw new RangeError("Index out of range");if(v<0)throw new RangeError("Index out of range")}function vn(h,g,v,R,$){return g=+g,v=v>>>0,$||nn(h,g,v,4),n.write(h,g,v,R,23,4),v+4}u.prototype.writeFloatLE=function(h,g,v){return vn(this,h,g,!0,v)},u.prototype.writeFloatBE=function(h,g,v){return vn(this,h,g,!1,v)};function yn(h,g,v,R,$){return g=+g,v=v>>>0,$||nn(h,g,v,8),n.write(h,g,v,R,52,8),v+8}u.prototype.writeDoubleLE=function(h,g,v){return yn(this,h,g,!0,v)},u.prototype.writeDoubleBE=function(h,g,v){return yn(this,h,g,!1,v)},u.prototype.copy=function(h,g,v,R){if(!u.isBuffer(h))throw new TypeError("argument should be a Buffer");if(v||(v=0),!R&&R!==0&&(R=this.length),g>=h.length&&(g=h.length),g||(g=0),R>0&&R=this.length)throw new RangeError("Index out of range");if(R<0)throw new RangeError("sourceEnd out of bounds");R>this.length&&(R=this.length),h.length-g>>0,v=v===void 0?this.length:v>>>0,h||(h=0);let $;if(typeof h=="number")for($=g;$2**32?$=W(String(v)):typeof v=="bigint"&&($=String(v),(v>BigInt(2)**BigInt(32)||v<-(BigInt(2)**BigInt(32)))&&($=W($)),$+="n"),R+=` It must be ${g}. Received ${$}`,R},RangeError);function W(h){let g="",v=h.length;const R=h[0]==="-"?1:0;for(;v>=R+4;v-=3)g=`_${h.slice(v-3,v)}${g}`;return`${h.slice(0,v)}${g}`}function K(h,g,v){B(g,"offset"),(h[g]===void 0||h[g+v]===void 0)&&ot(g,h.length-(v+1))}function X(h,g,v,R,$,G){if(h>v||h= 0${at} and < 2${at} ** ${(G+1)*8}${at}`:Gt=`>= -(2${at} ** ${(G+1)*8-1}${at}) and < 2 ** ${(G+1)*8-1}${at}`,new C.ERR_OUT_OF_RANGE("value",Gt,h)}K(R,$,G)}function B(h,g){if(typeof h!="number")throw new C.ERR_INVALID_ARG_TYPE(g,"number",h)}function ot(h,g,v){throw Math.floor(h)!==h?(B(h,v),new C.ERR_OUT_OF_RANGE("offset","an integer",h)):g<0?new C.ERR_BUFFER_OUT_OF_BOUNDS:new C.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${g}`,h)}const st=/[^+/0-9A-Za-z-_]/g;function it(h){if(h=h.split("=")[0],h=h.trim().replace(st,""),h.length<2)return"";for(;h.length%4!==0;)h=h+"=";return h}function tt(h,g){g=g||1/0;let v;const R=h.length;let $=null;const G=[];for(let at=0;at55295&&v<57344){if(!$){if(v>56319){(g-=3)>-1&&G.push(239,191,189);continue}else if(at+1===R){(g-=3)>-1&&G.push(239,191,189);continue}$=v;continue}if(v<56320){(g-=3)>-1&&G.push(239,191,189),$=v;continue}v=($-55296<<10|v-56320)+65536}else $&&(g-=3)>-1&&G.push(239,191,189);if($=null,v<128){if((g-=1)<0)break;G.push(v)}else if(v<2048){if((g-=2)<0)break;G.push(v>>6|192,v&63|128)}else if(v<65536){if((g-=3)<0)break;G.push(v>>12|224,v>>6&63|128,v&63|128)}else if(v<1114112){if((g-=4)<0)break;G.push(v>>18|240,v>>12&63|128,v>>6&63|128,v&63|128)}else throw new Error("Invalid code point")}return G}function mt(h){const g=[];for(let v=0;v>8,$=v%256,G.push($),G.push(R);return G}function yt(h){return e.toByteArray(it(h))}function vt(h,g,v,R){let $;for($=0;$=g.length||$>=h.length);++$)g[$+v]=h[$];return $}function wt(h,g){return h instanceof g||h!=null&&h.constructor!=null&&h.constructor.name!=null&&h.constructor.name===g.name}function Dt(h){return h!==h}const Wt=(function(){const h="0123456789abcdef",g=new Array(256);for(let v=0;v<16;++v){const R=v*16;for(let $=0;$<16;++$)g[R+$]=h[v]+h[$]}return g})();function It(h){return typeof BigInt>"u"?ae:h}function ae(){throw new Error("BigInt not supported")}})(om);const qh=om.Buffer,rm=Symbol.for("NcFormBox:context");function am(){return ki(rm,{isInFormBox:!1,formBoxItemClass:void 0})}const Rx={class:"button-vue__wrapper"},Lx={class:"button-vue__icon"},Dx={class:"button-vue__text"},Nx=Pt({__name:"NcButton",props:{alignment:{default:"center"},ariaLabel:{default:void 0},disabled:{type:Boolean},download:{type:[String,Boolean],default:void 0},href:{default:void 0},pressed:{type:Boolean,default:void 0},size:{default:"normal"},target:{default:"_self"},text:{default:void 0},to:{default:void 0},type:{default:"button"},variant:{default:"secondary"},wide:{type:Boolean}},emits:["click","update:pressed"],setup(t,{emit:e}){const n=t,i=e,{formBoxItemClass:o}=am(),s=ki(im,null)!==null,r=ct(()=>s&&n.to?"RouterLink":n.href?"a":"button"),a=ct(()=>r.value==="button"&&typeof n.pressed=="boolean"),l=ct(()=>n.pressed?"primary":n.pressed===!1&&n.variant==="primary"?"secondary":n.variant),c=ct(()=>l.value.startsWith("tertiary")),u=ct(()=>n.alignment.split("-")[0]),d=ct(()=>n.alignment.includes("-")),f=ki("NcPopover:trigger:attrs",()=>({}),!1),p=ct(()=>f()),y=ct(()=>{if(r.value==="RouterLink")return{to:n.to,activeClass:"active"};if(r.value==="a")return{href:n.href||"#",target:n.target,rel:"nofollow noreferrer noopener",download:n.download||void 0};if(r.value==="button")return{...p.value,"aria-pressed":n.pressed,type:n.type,disabled:n.disabled}});function m(x){a.value&&i("update:pressed",!n.pressed),i("click",x)}return(x,_)=>(D(),xt(wl(r.value),te({class:["button-vue",[`button-vue--size-${t.size}`,{[`button-vue--${l.value}`]:l.value,"button-vue--tertiary":c.value,"button-vue--wide":t.wide,[`button-vue--${u.value}`]:u.value!=="center","button-vue--reverse":d.value,"button-vue--legacy":E(qc),"button-vue--legacy34":E(Gw)},E(o)]],"aria-label":t.ariaLabel},y.value,{onClick:m}),{default:Tt(()=>[b("span",Rx,[b("span",Lx,[Qt(x.$slots,"icon",{},void 0,!0)]),b("span",Dx,[Qt(x.$slots,"default",{},()=>[Rt(L(t.text),1)],!0)])])]),_:3},16,["class","aria-label"]))}}),Hn=ze(Nx,[["__scopeId","data-v-00a99684"]]),Ox=["aria-label"],$x=["width","height"],Bx=["fill"],Fx=["fill"],jx={key:0},Ux=Pt({__name:"NcLoadingIcon",props:{appearance:{default:"auto"},name:{default:""},size:{default:20}},setup(t){const e=t,n=ct(()=>{const i=["#777","#CCC"];return e.appearance==="light"?i:e.appearance==="dark"?i.reverse():["var(--color-loading-light)","var(--color-loading-dark)"]});return(i,o)=>(D(),z("span",{"aria-label":t.name,role:"img",class:"material-design-icon loading-icon"},[(D(),z("svg",{width:t.size,height:t.size,viewBox:"0 0 24 24"},[b("path",{fill:n.value[0],d:"M12,4V2A10,10 0 1,0 22,12H20A8,8 0 1,1 12,4Z"},null,8,Bx),b("path",{fill:n.value[1],d:"M12,4V2A10,10 0 0,1 22,12H20A8,8 0 0,0 12,4Z"},[t.name?(D(),z("title",jx,L(t.name),1)):bt("",!0)],8,Fx)],8,$x))],8,Ox))}}),Vx=ze(Ux,[["__scopeId","data-v-cf399190"]]);wr(Tw);const Ix=Pt({__name:"NcDialogButton",props:{callback:{type:Function,default:()=>{}},disabled:{type:Boolean,default:!1},icon:{default:void 0},label:{},type:{default:"button"},variant:{default:"tertiary"}},emits:["click"],setup(t,{emit:e}){const n=t,i=e,o=fe(!1);async function s(r){if(!o.value){o.value=!0;try{const a=n.type==="reset"?!1:void 0,l=await n.callback?.()??a;l!==!1&&i("click",r,l)}finally{o.value=!1}}}return(r,a)=>(D(),xt(E(Hn),{"aria-label":t.label,disabled:t.disabled,type:t.type,variant:t.variant,onClick:s},{icon:Tt(()=>[Qt(r.$slots,"icon",{},()=>[o.value?(D(),xt(E(Vx),{key:0,name:E(Ge)("Loading …")},null,8,["name"])):t.icon!==void 0?(D(),xt(E(In),{key:1,svg:t.icon},null,8,["svg"])):bt("",!0)])]),default:Tt(()=>[Rt(L(t.label)+" ",1)]),_:3},8,["aria-label","disabled","type","variant"]))}});var lm=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Oa=lm.join(","),um=typeof Element>"u",po=um?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,$a=!um&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t?.ownerDocument},Ba=function(t,e){var n;e===void 0&&(e=!0);var i=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"inert"),o=i===""||i==="true",s=o||e&&t&&(typeof t.closest=="function"?t.closest("[inert]"):Ba(t.parentNode));return s},zx=function(t){var e,n=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return n===""||n==="true"},cm=function(t,e,n){if(Ba(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(Oa));return e&&po.call(t,Oa)&&i.unshift(t),i=i.filter(n),i},Fa=function(t,e,n){for(var i=[],o=Array.from(t);o.length;){var s=o.shift();if(!Ba(s,!1))if(s.tagName==="SLOT"){var r=s.assignedElements(),a=r.length?r:s.children,l=Fa(a,!0,n);n.flatten?i.push.apply(i,l):i.push({scopeParent:s,candidates:l})}else{var c=po.call(s,Oa);c&&n.filter(s)&&(e||!t.includes(s))&&i.push(s);var u=s.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(s),d=!Ba(u,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(s));if(u&&d){var f=Fa(u===!0?s.children:u.children,!0,n);n.flatten?i.push.apply(i,f):i.push({scopeParent:s,candidates:f})}else o.unshift.apply(o,s.children)}}return i},dm=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Mi=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||zx(t))&&!dm(t)?0:t.tabIndex},Hx=function(t,e){var n=Mi(t);return n<0&&e&&!dm(t)?0:n},Jx=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},hm=function(t){return t.tagName==="INPUT"},Wx=function(t){return hm(t)&&t.type==="hidden"},Gx=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(n){return n.tagName==="SUMMARY"});return e},qx=function(t,e){for(var n=0;nsummary:first-of-type"),l=a?t.parentElement:t;if(po.call(l,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="full-native"||n==="legacy-full"){if(typeof i=="function"){for(var c=t;t;){var u=t.parentElement,d=$a(t);if(u&&!u.shadowRoot&&i(u)===!0)return Kh(t);t.assignedSlot?t=t.assignedSlot:!u&&d!==t.ownerDocument?t=d.host:t=u}t=c}if(Zx(t))return!t.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return Kh(t);return!1},Mx=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var n=0;n=0)},fm=function(t){var e=[],n=[];return t.forEach(function(i,o){var s=!!i.scopeParent,r=s?i.scopeParent:i,a=Hx(r,s),l=s?fm(i.candidates):r;a===0?s?e.push.apply(e,l):e.push(r):n.push({documentOrder:o,tabIndex:a,item:i,isScope:s,content:l})}),n.sort(Jx).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(e)},e2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=Fa([t],e.includeContainer,{filter:lc.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:t2}):n=cm(t,e.includeContainer,lc.bind(null,e)),fm(n)},n2=function(t,e){e=e||{};var n;return e.getShadowRoot?n=Fa([t],e.includeContainer,{filter:ja.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):n=cm(t,e.includeContainer,ja.bind(null,e)),n},Po=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return po.call(t,Oa)===!1?!1:lc(e,t)},i2=lm.concat("iframe:not([inert]):not([inert] *)").join(","),cu=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return po.call(t,i2)===!1?!1:ja(e,t)};function uc(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=Array(e);n=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(l){throw l},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,r=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var l=n.next();return r=l.done,l},e:function(l){a=!0,s=l},f:function(){try{r||n.return==null||n.return()}finally{if(a)throw s}}}}function s2(t,e,n){return(e=c2(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r2(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function a2(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yh(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,i)}return n}function Zh(t){for(var e=1;e0?t[t.length-1]:null},activateTrap:function(t,e){var n=ri.getActiveTrap(t);e!==n&&ri.pauseTrap(t);var i=t.indexOf(e);i===-1||t.splice(i,1),t.push(e)},deactivateTrap:function(t,e){var n=t.indexOf(e);n!==-1&&t.splice(n,1),ri.unpauseTrap(t)},pauseTrap:function(t){var e=ri.getActiveTrap(t);e?._setPausedState(!0)},unpauseTrap:function(t){var e=ri.getActiveTrap(t);e&&!e._isManuallyPaused()&&e._setPausedState(!1)}},d2=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},h2=function(t){return t?.key==="Escape"||t?.key==="Esc"||t?.keyCode===27},$s=function(t){return t?.key==="Tab"||t?.keyCode===9},f2=function(t){return $s(t)&&!t.shiftKey},p2=function(t){return $s(t)&&t.shiftKey},Qh=function(t){return setTimeout(t,0)},fs=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i1&&arguments[1]!==void 0?arguments[1]:{},Q=j.hasFallback,M=Q===void 0?!1:Q,Z=j.params,rt=Z===void 0?[]:Z,lt=o[T];if(typeof lt=="function"&&(lt=lt.apply(void 0,l2(rt))),lt===!0&&(lt=void 0),!lt){if(lt===void 0||lt===!1)return lt;throw new Error("`".concat(T,"` was specified but was not a node, or did not return a node"))}var ft=lt;if(typeof lt=="string"){try{ft=n.querySelector(lt)}catch(pt){throw new Error("`".concat(T,'` appears to be an invalid selector; error="').concat(pt.message,'"'))}if(!ft&&!M)throw new Error("`".concat(T,"` as selector refers to no known node"))}return ft},u=function(T){var j=T.activeElement;return j?j.shadowRoot&&j.shadowRoot.activeElement!==null?u(j.shadowRoot):j:null},d=function(){var T=c("initialFocus",{hasFallback:!0});if(T===!1)return!1;if(T===void 0||T&&!cu(T,o.tabbableOptions)){var j=u(n);if(l(j)>=0)T=j;else{var Q=s.tabbableGroups[0],M=Q&&Q.firstTabbableNode;T=M||c("fallbackFocus")}}else T===null&&(T=c("fallbackFocus"));if(!T)throw new Error("Your focus-trap needs to have at least one focusable element");return T},f=function(){if(s.containerGroups=s.containers.map(function(T){var j=e2(T,o.tabbableOptions),Q=n2(T,o.tabbableOptions),M=j.length>0?j[0]:void 0,Z=j.length>0?j[j.length-1]:void 0,rt=Q.find(function(pt){return Po(pt)}),lt=Q.slice().reverse().find(function(pt){return Po(pt)}),ft=!!j.find(function(pt){return Mi(pt)>0});return{container:T,tabbableNodes:j,focusableNodes:Q,posTabIndexesFound:ft,firstTabbableNode:M,lastTabbableNode:Z,firstDomTabbableNode:rt,lastDomTabbableNode:lt,nextTabbableNode:function(pt){var St=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,gt=j.indexOf(pt);return gt<0?St?Q.slice(Q.indexOf(pt)+1).find(function(qt){return Po(qt)}):Q.slice(0,Q.indexOf(pt)).reverse().find(function(qt){return Po(qt)}):j[gt+(St?1:-1)]}}}),s.tabbableGroups=s.containerGroups.filter(function(T){return T.tabbableNodes.length>0}),s.tabbableGroups.length<=0&&!c("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(s.containerGroups.find(function(T){return T.posTabIndexesFound})&&s.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.")},p=function(T){if(T!==!1&&T!==u(document)){if(!T||!T.focus){p(d());return}T.focus({preventScroll:!!o.preventScroll}),s.mostRecentlyFocusedNode=T,d2(T)&&T.select()}},y=function(T){var j=c("setReturnFocus",{params:[T]});return j||(j===!1?!1:T)},m=function(T){var j=T.target,Q=T.event,M=T.isBackward,Z=M===void 0?!1:M;j=j||Vr(Q),f();var rt=null;if(s.tabbableGroups.length>0){var lt=l(j,Q),ft=lt>=0?s.containerGroups[lt]:void 0;if(lt<0)Z?rt=s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:rt=s.tabbableGroups[0].firstTabbableNode;else if(Z){var pt=s.tabbableGroups.findIndex(function(At){var ne=At.firstTabbableNode;return j===ne});if(pt<0&&(ft.container===j||cu(j,o.tabbableOptions)&&!Po(j,o.tabbableOptions)&&!ft.nextTabbableNode(j,!1))&&(pt=lt),pt>=0){var St=pt===0?s.tabbableGroups.length-1:pt-1,gt=s.tabbableGroups[St];rt=Mi(j)>=0?gt.lastTabbableNode:gt.lastDomTabbableNode}else $s(Q)||(rt=ft.nextTabbableNode(j,!1))}else{var qt=s.tabbableGroups.findIndex(function(At){var ne=At.lastTabbableNode;return j===ne});if(qt<0&&(ft.container===j||cu(j,o.tabbableOptions)&&!Po(j,o.tabbableOptions)&&!ft.nextTabbableNode(j))&&(qt=lt),qt>=0){var Lt=qt===s.tabbableGroups.length-1?0:qt+1,$t=s.tabbableGroups[Lt];rt=Mi(j)>=0?$t.firstTabbableNode:$t.firstDomTabbableNode}else $s(Q)||(rt=ft.nextTabbableNode(j))}}else rt=c("fallbackFocus");return rt},x=function(T){var j=Vr(T);if(!(l(j,T)>=0)){if(fs(o.clickOutsideDeactivates,T)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}fs(o.allowOutsideClick,T)||T.preventDefault()}},_=function(T){var j=Vr(T),Q=l(j,T)>=0;if(Q||j instanceof Document)Q&&(s.mostRecentlyFocusedNode=j);else{T.stopImmediatePropagation();var M,Z=!0;if(s.mostRecentlyFocusedNode)if(Mi(s.mostRecentlyFocusedNode)>0){var rt=l(s.mostRecentlyFocusedNode),lt=s.containerGroups[rt].tabbableNodes;if(lt.length>0){var ft=lt.findIndex(function(pt){return pt===s.mostRecentlyFocusedNode});ft>=0&&(o.isKeyForward(s.recentNavEvent)?ft+1=0&&(M=lt[ft-1],Z=!1))}}else s.containerGroups.some(function(pt){return pt.tabbableNodes.some(function(St){return Mi(St)>0})})||(Z=!1);else Z=!1;Z&&(M=m({target:s.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(s.recentNavEvent)})),p(M||s.mostRecentlyFocusedNode||d())}s.recentNavEvent=void 0},S=function(T){var j=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;s.recentNavEvent=T;var Q=m({event:T,isBackward:j});Q&&($s(T)&&T.preventDefault(),p(Q))},P=function(T){(o.isKeyForward(T)||o.isKeyBackward(T))&&S(T,o.isKeyBackward(T))},A=function(T){h2(T)&&fs(o.escapeDeactivates,T)!==!1&&(T.preventDefault(),r.deactivate())},O=function(T){var j=Vr(T);l(j,T)>=0||fs(o.clickOutsideDeactivates,T)||fs(o.allowOutsideClick,T)||(T.preventDefault(),T.stopImmediatePropagation())},U=function(){if(s.active){ri.activateTrap(i,r);var T;return o.delayInitialFocus?T=new Promise(function(j){s.delayInitialFocusTimer=Qh(function(){p(d()),j()})}):p(d()),n.addEventListener("focusin",_,!0),n.addEventListener("mousedown",x,{capture:!0,passive:!1}),n.addEventListener("touchstart",x,{capture:!0,passive:!1}),n.addEventListener("click",O,{capture:!0,passive:!1}),n.addEventListener("keydown",P,{capture:!0,passive:!1}),n.addEventListener("keydown",A),T}},V=function(T){s.active&&!s.paused&&r._setSubtreeIsolation(!1),s.adjacentElements.clear(),s.alreadySilent.clear();var j=new Set,Q=new Set,M=Xh(T),Z;try{for(M.s();!(Z=M.n()).done;){var rt=Z.value;j.add(rt);for(var lt=typeof ShadowRoot<"u"&&rt.getRootNode()instanceof ShadowRoot,ft=rt;ft;){j.add(ft);var pt=ft.parentElement,St=[];pt?St=pt.children:!pt&<&&(St=ft.getRootNode().children,pt=ft.getRootNode().host,lt=typeof ShadowRoot<"u"&&pt.getRootNode()instanceof ShadowRoot);var gt=Xh(St),qt;try{for(gt.s();!(qt=gt.n()).done;){var Lt=qt.value;Q.add(Lt)}}catch($t){gt.e($t)}finally{gt.f()}ft=pt}}}catch($t){M.e($t)}finally{M.f()}j.forEach(function($t){Q.delete($t)}),s.adjacentElements=Q},J=function(){if(s.active)return n.removeEventListener("focusin",_,!0),n.removeEventListener("mousedown",x,!0),n.removeEventListener("touchstart",x,!0),n.removeEventListener("click",O,!0),n.removeEventListener("keydown",P,!0),n.removeEventListener("keydown",A),r},q=function(T){var j=s.mostRecentlyFocusedNode;if(j){var Q=T.some(function(Z){var rt=Array.from(Z.removedNodes);return rt.some(function(lt){return lt===j||typeof lt.contains=="function"&<.contains(j)})});if(Q&&s.containers.some(function(Z){return Z?.isConnected})){f();var M=d();p(M)}}},I=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(q):void 0,et=function(){I&&(I.disconnect(),s.active&&!s.paused&&s.containers.map(function(T){I.observe(T,{subtree:!0,childList:!0})}))};return r={get active(){return s.active},get paused(){return s.paused},activate:function(T){if(s.active)return this;var j=a(T,"onActivate"),Q=a(T,"onPostActivate"),M=a(T,"checkCanFocusTrap"),Z=ri.getActiveTrap(i),rt=!1;if(Z&&!Z.paused){var lt;(lt=Z._setSubtreeIsolation)===null||lt===void 0||lt.call(Z,!1),rt=!0}try{M||f(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=u(n),j?.({trap:r});var ft=function(){M&&f();var St=function(){r._setSubtreeIsolation(!0),et(),Q?.({trap:r})},gt=U();gt?gt.then(St):St()};if(M)return M(s.containers.concat()).then(ft,ft),this;ft()}catch(St){if(Z===ri.getActiveTrap(i)&&rt){var pt;(pt=Z._setSubtreeIsolation)===null||pt===void 0||pt.call(Z,!0)}throw St}return this},deactivate:function(T){if(!s.active)return this;var j=Zh({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},T);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,s.paused||r._setSubtreeIsolation(!1),s.alreadySilent.clear(),J(),s.active=!1,s.paused=!1,et(),ri.deactivateTrap(i,r);var Q=a(j,"onDeactivate"),M=a(j,"onPostDeactivate"),Z=a(j,"checkCanReturnFocus"),rt=a(j,"delayReturnFocus"),lt=a(j,"returnFocus","returnFocusOnDeactivate");Q?.({trap:r});var ft=function(){lt&&p(y(s.nodeFocusedBeforeActivation)),M?.({trap:r})},pt=function(){rt&<?Qh(ft):ft()};return lt&&Z?(Z(y(s.nodeFocusedBeforeActivation)).then(pt,pt),this):(pt(),this)},pause:function(T){return s.active?(s.manuallyPaused=!0,this._setPausedState(!0,T)):this},unpause:function(T){return s.active?(s.manuallyPaused=!1,i[i.length-1]!==this?this:this._setPausedState(!1,T)):this},updateContainerElements:function(T){var j=[].concat(T).filter(Boolean);return s.containers=j.map(function(Q){return typeof Q=="string"?n.querySelector(Q):Q}),o.isolateSubtrees&&V(s.containers),s.active&&(f(),s.paused||r._setSubtreeIsolation(!0)),et(),this}},Object.defineProperties(r,{_isManuallyPaused:{value:function(){return s.manuallyPaused}},_setPausedState:{value:function(T,j){if(s.paused===T)return this;if(s.paused=T,T){var Q=a(j,"onPause"),M=a(j,"onPostPause");Q?.({trap:r}),J(),r._setSubtreeIsolation(!1),et(),M?.({trap:r})}else{var Z=a(j,"onUnpause"),rt=a(j,"onPostUnpause");Z?.({trap:r});var lt=function(){f();var ft=function(){r._setSubtreeIsolation(!0),et(),rt?.({trap:r})},pt=U();pt?pt.then(ft):ft()};lt()}return this}},_setSubtreeIsolation:{value:function(T){o.isolateSubtrees&&s.adjacentElements.forEach(function(j){var Q;T?o.isolateSubtrees==="aria-hidden"?((j.ariaHidden==="true"||((Q=j.getAttribute("aria-hidden"))===null||Q===void 0?void 0:Q.toLowerCase())==="true")&&s.alreadySilent.add(j),j.setAttribute("aria-hidden","true")):((j.inert||j.hasAttribute("inert"))&&s.alreadySilent.add(j),j.setAttribute("inert",!0)):s.alreadySilent.has(j)||(o.isolateSubtrees==="aria-hidden"?j.removeAttribute("aria-hidden"):j.removeAttribute("inert"))})}}}),r.updateContainerElements(t),r};function nr(){return window._nc_focus_trap??=[],window._nc_focus_trap}function m2(){let t=[];return{pause(){t=[...nr()];for(const e of t)e.pause()},unpause(){if(t.length===nr().length)for(const e of t)e.unpause();t=[]}}}function v2(t,e={}){const n=m2();Xe(t,()=>{je(e.disabled)||(je(t)?n.pause():n.unpause())}),qn(()=>{n.unpause()})}const y2=["top","right","bottom","left"],Mh=["start","end"],tf=y2.reduce((t,e)=>t.concat(e,e+"-"+Mh[0],e+"-"+Mh[1]),[]),ir=Math.min,cc=Math.max,b2={left:"right",right:"left",bottom:"top",top:"bottom"};function mm(t,e,n){return cc(t,ir(e,n))}function bo(t,e){return typeof t=="function"?t(e):t}function fi(t){return t.split("-")[0]}function An(t){return t.split("-")[1]}function vm(t){return t==="x"?"y":"x"}function Kc(t){return t==="y"?"height":"width"}function ai(t){const e=t[0];return e==="t"||e==="b"?"y":"x"}function Xc(t){return vm(ai(t))}function ym(t,e,n){n===void 0&&(n=!1);const i=An(t),o=Xc(t),s=Kc(o);let r=o==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(r=Va(r)),[r,Va(r)]}function _2(t){const e=Va(t);return[Ua(t),e,Ua(e)]}function Ua(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const ef=["left","right"],nf=["right","left"],w2=["top","bottom"],x2=["bottom","top"];function E2(t,e,n){switch(t){case"top":case"bottom":return n?e?nf:ef:e?ef:nf;case"left":case"right":return e?w2:x2;default:return[]}}function S2(t,e,n,i){const o=An(t);let s=E2(fi(t),n==="start",i);return o&&(s=s.map(r=>r+"-"+o),e&&(s=s.concat(s.map(Ua)))),s}function Va(t){const e=fi(t);return b2[e]+t.slice(e.length)}function A2(t){var e,n,i,o;return{top:(e=t.top)!=null?e:0,right:(n=t.right)!=null?n:0,bottom:(i=t.bottom)!=null?i:0,left:(o=t.left)!=null?o:0}}function bm(t){return typeof t!="number"?A2(t):{top:t,right:t,bottom:t,left:t}}function Bs(t){const{x:e,y:n,width:i,height:o}=t;return{width:i,height:o,top:n,left:e,right:e+i,bottom:n+o,x:e,y:n}}function of(t,e,n){let{reference:i,floating:o}=t;const s=ai(e),r=Xc(e),a=Kc(r),l=fi(e),c=s==="y",u=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,f=i[a]/2-o[a]/2;let p;switch(l){case"top":p={x:u,y:i.y-o.height};break;case"bottom":p={x:u,y:i.y+i.height};break;case"right":p={x:i.x+i.width,y:d};break;case"left":p={x:i.x-o.width,y:d};break;default:p={x:i.x,y:i.y}}const y=An(e);return y&&(p[r]+=f*(y==="end"?1:-1)*(n&&c?-1:1)),p}async function C2(t,e){var n;e===void 0&&(e={});const{x:i,y:o,platform:s,rects:r,elements:a,strategy:l}=t,{boundary:c="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=bo(e,t),y=bm(p),m=a[f?d==="floating"?"reference":"floating":d],x=Bs(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(m)))==null||n?m:m.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:c,rootBoundary:u,strategy:l})),_=d==="floating"?{x:i,y:o,width:r.floating.width,height:r.floating.height}:r.reference,S=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),P=await(s.isElement==null?void 0:s.isElement(S))&&await(s.getScale==null?void 0:s.getScale(S))||{x:1,y:1},A=Bs(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:_,offsetParent:S,strategy:l}):_);return{top:(x.top-A.top+y.top)/P.y,bottom:(A.bottom-x.bottom+y.bottom)/P.y,left:(x.left-A.left+y.left)/P.x,right:(A.right-x.right+y.right)/P.x}}const T2=50,k2=async(t,e,n)=>{const{placement:i="bottom",strategy:o="absolute",middleware:s=[],platform:r}=n,a=r.detectOverflow?r:{...r,detectOverflow:C2},l=await(r.isRTL==null?void 0:r.isRTL(e));let c=await r.getElementRects({reference:t,floating:e,strategy:o}),{x:u,y:d}=of(c,i,l),f=i,p=0;const y={};for(let m=0;m({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:o,rects:s,platform:r,elements:a,middlewareData:l}=e,{element:c,padding:u=0}=bo(t,e)||{};if(c==null)return{};const d=bm(u),f={x:n,y:i},p=Xc(o),y=Kc(p),m=await r.getDimensions(c),x=p==="y",_=x?"top":"left",S=x?"bottom":"right",P=x?"clientHeight":"clientWidth",A=s.reference[y]+s.reference[p]-f[p]-s.floating[y],O=f[p]-s.reference[p],U=await(r.getOffsetParent==null?void 0:r.getOffsetParent(c));let V=U?U[P]:0;(!V||!await(r.isElement==null?void 0:r.isElement(U)))&&(V=a.floating[P]||s.floating[y]);const J=A/2-O/2,q=V/2-m[y]/2-1,I=ir(d[_],q),et=ir(d[S],q),T=V-m[y]-et,j=V/2-m[y]/2+J,Q=mm(I,j,T),M=!l.arrow&&An(o)!=null&&j!==Q&&s.reference[y]/2-(jAn(i)===t),...n.filter(i=>An(i)!==t)]:n.filter(i=>fi(i)===i)).filter(i=>t?An(i)===t||(e?Ua(i)!==i:!1):!0)}const L2=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var n,i,o;const{rects:s,middlewareData:r,placement:a,platform:l,elements:c}=e,{crossAxis:u=!1,alignment:d,allowedPlacements:f=tf,autoAlignment:p=!0,...y}=bo(t,e),m=d!==void 0||f===tf?R2(d||null,p,f):f,x=((n=r.autoPlacement)==null?void 0:n.index)||0,_=m[x];if(_==null)return{};if(a!==_)return{reset:{placement:m[0]}};const S=await l.detectOverflow(e,y),P=ym(_,s,await(l.isRTL==null?void 0:l.isRTL(c.floating))),A=[S[fi(_)],S[P[0]],S[P[1]]],O=[...((i=r.autoPlacement)==null?void 0:i.overflows)||[],{placement:_,overflows:A}],U=m[x+1];if(U)return{data:{index:x+1,overflows:O},reset:{placement:U}};const V=O.map(q=>{const I=An(q.placement);return[q.placement,I&&u?q.overflows.slice(0,2).reduce((et,T)=>et+T,0):q.overflows[0],q.overflows]}).sort((q,I)=>q[1]-I[1]),J=((o=V.filter(q=>q[2].slice(0,An(q[0])?2:3).every(I=>I<=0))[0])==null?void 0:o[0])||V[0][0];return J!==a?{data:{index:x+1,overflows:O},reset:{placement:J}}:{}}}},D2=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:o,middlewareData:s,rects:r,initialPlacement:a,platform:l,elements:c}=e,{mainAxis:u=!0,crossAxis:d=!0,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:m=!0,...x}=bo(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const _=fi(o),S=ai(a),P=fi(a)===a,A=await(l.isRTL==null?void 0:l.isRTL(c.floating)),O=f||(P||!m?[Va(a)]:_2(a)),U=y!=="none";!f&&U&&O.push(...S2(a,m,y,A));const V=[a,...O],J=await l.detectOverflow(e,x),q=[];let I=((i=s.flip)==null?void 0:i.overflows)||[];if(u&&q.push(J[_]),d){const Q=ym(o,r,A);q.push(J[Q[0]],J[Q[1]])}if(I=[...I,{placement:o,overflows:q}],!q.every(Q=>Q<=0)){var et,T;const Q=(((et=s.flip)==null?void 0:et.index)||0)+1,M=V[Q];if(M&&(!(d==="alignment"&&S!==ai(M))||I.every(rt=>ai(rt.placement)===S?rt.overflows[0]>0:!0)))return{data:{index:Q,overflows:I},reset:{placement:M}};let Z=(T=I.filter(rt=>rt.overflows[0]<=0).sort((rt,lt)=>rt.overflows[1]-lt.overflows[1])[0])==null?void 0:T.placement;if(!Z)switch(p){case"bestFit":{var j;const rt=(j=I.filter(lt=>{if(U){const ft=ai(lt.placement);return ft===S||ft==="y"}return!0}).map(lt=>[lt.placement,lt.overflows.filter(ft=>ft>0).reduce((ft,pt)=>ft+pt,0)]).sort((lt,ft)=>lt[1]-ft[1])[0])==null?void 0:j[0];rt&&(Z=rt);break}case"initialPlacement":Z=a;break}if(o!==Z)return{reset:{placement:Z}}}return{}}}},N2=new Set(["left","top"]);async function O2(t,e){const{placement:n,platform:i,elements:o}=t,s=await(i.isRTL==null?void 0:i.isRTL(o.floating)),r=fi(n),a=An(n),l=ai(n)==="y",c=N2.has(r)?-1:1,u=s&&l?-1:1,d=bo(e,t);let{mainAxis:f,crossAxis:p,alignmentAxis:y}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return a&&typeof y=="number"&&(p=a==="end"?y*-1:y),l?{x:p*u,y:f*c}:{x:f*c,y:p*u}}const $2=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:o,y:s,placement:r,middlewareData:a}=e,l=await O2(e,t);return r===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:o+l.x,y:s+l.y,data:{...l,placement:r}}}}},B2=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:o,platform:s}=e,{mainAxis:r=!0,crossAxis:a=!1,limiter:l={fn:S=>{let{x:P,y:A}=S;return{x:P,y:A}}},...c}=bo(t,e),u={x:n,y:i},d=await s.detectOverflow(e,c),f=ai(o),p=vm(f);let y=u[p],m=u[f];const x=(S,P)=>mm(P+d[S==="y"?"top":"left"],P,P-d[S==="y"?"bottom":"right"]);r&&(y=x(p,y)),a&&(m=x(f,m));const _=l.fn({...e,[p]:y,[f]:m});return{..._,data:{x:_.x-n,y:_.y-i,enabled:{[p]:r,[f]:a}}}}}},F2=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){const{placement:n,rects:i,platform:o,elements:s}=e,{apply:r=()=>{},...a}=bo(t,e),l=await o.detectOverflow(e,a),c=fi(n),u=An(n),d=ai(n)==="y",{width:f,height:p}=i.floating;let y,m;c==="top"||c==="bottom"?(y=c,m=u===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?"start":"end")?"left":"right"):(m=c,y=u==="end"?"top":"bottom");const x=p-l.top-l.bottom,_=f-l.left-l.right,S=ir(p-l[y],x),P=ir(f-l[m],_),A=e.middlewareData.shift,O=!A;let U=S,V=P;A!=null&&A.enabled.x&&(V=_),A!=null&&A.enabled.y&&(U=x),O&&!u&&(d?V=f-2*cc(l.left,l.right):U=p-2*cc(l.top,l.bottom)),await r({...e,availableWidth:V,availableHeight:U});const J=await o.getDimensions(s.floating);return f!==J.width||p!==J.height?{reset:{rects:!0}}:{}}}};function gn(t){var e;return((e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Jn(t){return gn(t).getComputedStyle(t)}const sf=Math.min,Fs=Math.max,Ia=Math.round;function _m(t){const e=Jn(t);let n=parseFloat(e.width),i=parseFloat(e.height);const o=t.offsetWidth,s=t.offsetHeight,r=Ia(n)!==o||Ia(i)!==s;return r&&(n=o,i=s),{width:n,height:i,fallback:r}}function Oi(t){return xm(t)?(t.nodeName||"").toLowerCase():""}let Ir;function wm(){if(Ir)return Ir;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(Ir=t.brands.map((e=>e.brand+"/"+e.version)).join(" "),Ir):navigator.userAgent}function Wn(t){return t instanceof gn(t).HTMLElement}function Pi(t){return t instanceof gn(t).Element}function xm(t){return t instanceof gn(t).Node}function rf(t){return typeof ShadowRoot>"u"?!1:t instanceof gn(t).ShadowRoot||t instanceof ShadowRoot}function kl(t){const{overflow:e,overflowX:n,overflowY:i,display:o}=Jn(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(o)}function j2(t){return["table","td","th"].includes(Oi(t))}function dc(t){const e=/firefox/i.test(wm()),n=Jn(t),i=n.backdropFilter||n.WebkitBackdropFilter;return n.transform!=="none"||n.perspective!=="none"||!!i&&i!=="none"||e&&n.willChange==="filter"||e&&!!n.filter&&n.filter!=="none"||["transform","perspective"].some((o=>n.willChange.includes(o)))||["paint","layout","strict","content"].some((o=>{const s=n.contain;return s!=null&&s.includes(o)}))}function Em(){return!/^((?!chrome|android).)*safari/i.test(wm())}function Yc(t){return["html","body","#document"].includes(Oi(t))}function Sm(t){return Pi(t)?t:t.contextElement}const Am={x:1,y:1};function zo(t){const e=Sm(t);if(!Wn(e))return Am;const n=e.getBoundingClientRect(),{width:i,height:o,fallback:s}=_m(e);let r=(s?Ia(n.width):n.width)/i,a=(s?Ia(n.height):n.height)/o;return r&&Number.isFinite(r)||(r=1),a&&Number.isFinite(a)||(a=1),{x:r,y:a}}function or(t,e,n,i){var o,s;e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=Sm(t);let l=Am;e&&(i?Pi(i)&&(l=zo(i)):l=zo(t));const c=a?gn(a):window,u=!Em()&&n;let d=(r.left+(u&&((o=c.visualViewport)==null?void 0:o.offsetLeft)||0))/l.x,f=(r.top+(u&&((s=c.visualViewport)==null?void 0:s.offsetTop)||0))/l.y,p=r.width/l.x,y=r.height/l.y;if(a){const m=gn(a),x=i&&Pi(i)?gn(i):i;let _=m.frameElement;for(;_&&i&&x!==m;){const S=zo(_),P=_.getBoundingClientRect(),A=getComputedStyle(_);P.x+=(_.clientLeft+parseFloat(A.paddingLeft))*S.x,P.y+=(_.clientTop+parseFloat(A.paddingTop))*S.y,d*=S.x,f*=S.y,p*=S.x,y*=S.y,d+=P.x,f+=P.y,_=gn(_).frameElement}}return{width:p,height:y,top:f,right:d+p,bottom:f+y,left:d,x:d,y:f}}function Ri(t){return((xm(t)?t.ownerDocument:t.document)||window.document).documentElement}function Pl(t){return Pi(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function Cm(t){return or(Ri(t)).left+Pl(t).scrollLeft}function sr(t){if(Oi(t)==="html")return t;const e=t.assignedSlot||t.parentNode||rf(t)&&t.host||Ri(t);return rf(e)?e.host:e}function Tm(t){const e=sr(t);return Yc(e)?e.ownerDocument.body:Wn(e)&&kl(e)?e:Tm(e)}function za(t,e){var n;e===void 0&&(e=[]);const i=Tm(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=gn(i);return o?e.concat(s,s.visualViewport||[],kl(i)?i:[]):e.concat(i,za(i))}function af(t,e,n){return e==="viewport"?Bs((function(i,o){const s=gn(i),r=Ri(i),a=s.visualViewport;let l=r.clientWidth,c=r.clientHeight,u=0,d=0;if(a){l=a.width,c=a.height;const f=Em();(f||!f&&o==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}return{width:l,height:c,x:u,y:d}})(t,n)):Pi(e)?Bs((function(i,o){const s=or(i,!0,o==="fixed"),r=s.top+i.clientTop,a=s.left+i.clientLeft,l=Wn(i)?zo(i):{x:1,y:1};return{width:i.clientWidth*l.x,height:i.clientHeight*l.y,x:a*l.x,y:r*l.y}})(e,n)):Bs((function(i){const o=Ri(i),s=Pl(i),r=i.ownerDocument.body,a=Fs(o.scrollWidth,o.clientWidth,r.scrollWidth,r.clientWidth),l=Fs(o.scrollHeight,o.clientHeight,r.scrollHeight,r.clientHeight);let c=-s.scrollLeft+Cm(i);const u=-s.scrollTop;return Jn(r).direction==="rtl"&&(c+=Fs(o.clientWidth,r.clientWidth)-a),{width:a,height:l,x:c,y:u}})(Ri(t)))}function lf(t){return Wn(t)&&Jn(t).position!=="fixed"?t.offsetParent:null}function uf(t){const e=gn(t);let n=lf(t);for(;n&&j2(n)&&Jn(n).position==="static";)n=lf(n);return n&&(Oi(n)==="html"||Oi(n)==="body"&&Jn(n).position==="static"&&!dc(n))?e:n||(function(i){let o=sr(i);for(;Wn(o)&&!Yc(o);){if(dc(o))return o;o=sr(o)}return null})(t)||e}function U2(t,e,n){const i=Wn(e),o=Ri(e),s=or(t,!0,n==="fixed",e);let r={scrollLeft:0,scrollTop:0};const a={x:0,y:0};if(i||!i&&n!=="fixed")if((Oi(e)!=="body"||kl(o))&&(r=Pl(e)),Wn(e)){const l=or(e,!0);a.x=l.x+e.clientLeft,a.y=l.y+e.clientTop}else o&&(a.x=Cm(o));return{x:s.left+r.scrollLeft-a.x,y:s.top+r.scrollTop-a.y,width:s.width,height:s.height}}const V2={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:o}=t;const s=n==="clippingAncestors"?(function(c,u){const d=u.get(c);if(d)return d;let f=za(c).filter((x=>Pi(x)&&Oi(x)!=="body")),p=null;const y=Jn(c).position==="fixed";let m=y?sr(c):c;for(;Pi(m)&&!Yc(m);){const x=Jn(m),_=dc(m);(y?_||p:_||x.position!=="static"||!p||!["absolute","fixed"].includes(p.position))?p=x:f=f.filter((S=>S!==m)),m=sr(m)}return u.set(c,f),f})(e,this._c):[].concat(n),r=[...s,i],a=r[0],l=r.reduce(((c,u)=>{const d=af(e,u,o);return c.top=Fs(d.top,c.top),c.right=sf(d.right,c.right),c.bottom=sf(d.bottom,c.bottom),c.left=Fs(d.left,c.left),c}),af(e,a,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:i}=t;const o=Wn(n),s=Ri(n);if(n===s)return e;let r={scrollLeft:0,scrollTop:0},a={x:1,y:1};const l={x:0,y:0};if((o||!o&&i!=="fixed")&&((Oi(n)!=="body"||kl(s))&&(r=Pl(n)),Wn(n))){const c=or(n);a=zo(n),l.x=c.x+n.clientLeft,l.y=c.y+n.clientTop}return{width:e.width*a.x,height:e.height*a.y,x:e.x*a.x-r.scrollLeft*a.x+l.x,y:e.y*a.y-r.scrollTop*a.y+l.y}},isElement:Pi,getDimensions:function(t){return Wn(t)?_m(t):t.getBoundingClientRect()},getOffsetParent:uf,getDocumentElement:Ri,getScale:zo,async getElementRects(t){let{reference:e,floating:n,strategy:i}=t;const o=this.getOffsetParent||uf,s=this.getDimensions;return{reference:U2(e,await o(n),i),floating:{x:0,y:0,...await s(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>Jn(t).direction==="rtl"},I2=(t,e,n)=>{const i=new Map,o={platform:V2,...n},s={...o.platform,_c:i};return k2(t,e,{...o,platform:s})},Li={disabled:!1,distance:5,skidding:0,container:"body",boundary:void 0,instantMove:!1,disposeTimeout:150,popperTriggers:[],strategy:"absolute",preventOverflow:!0,flip:!0,shift:!0,overflowPadding:0,arrowPadding:0,arrowOverflow:!0,autoHideOnMousedown:!1,themes:{tooltip:{placement:"top",triggers:["hover","focus","touch"],hideTriggers:t=>[...t,"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"],delay:{show:0,hide:400}}}};function z2(t,e){let n=Li.themes[t]||{},i;do i=n[e],typeof i>"u"?n.$extend?n=Li.themes[n.$extend]||{}:(n=null,i=Li[e]):n=null;while(n);return i}function H2(t){const e=[t];let n=Li.themes[t]||{};do n.$extend&&!n.$resetCss?(e.push(n.$extend),n=Li.themes[n.$extend]||{}):n=null;while(n);return e.map(i=>`v-popper--theme-${i}`)}function cf(t){const e=[t];let n=Li.themes[t]||{};do n.$extend?(e.push(n.$extend),n=Li.themes[n.$extend]||{}):n=null;while(n);return e}let rr=!1;if(typeof window<"u"){rr=!1;try{const t=Object.defineProperty({},"passive",{get(){rr=!0}});window.addEventListener("test",null,t)}catch{}}let km=!1;typeof window<"u"&&typeof navigator<"u"&&(km=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream);const J2=["auto","top","bottom","left","right"].reduce((t,e)=>t.concat([e,`${e}-start`,`${e}-end`]),[]),df={hover:"mouseenter",focus:"focus",click:"click",touch:"touchstart",pointer:"pointerdown"},hf={hover:"mouseleave",focus:"blur",click:"click",touch:"touchend",pointer:"pointerup"};function ff(t,e){const n=t.indexOf(e);n!==-1&&t.splice(n,1)}function du(){return new Promise(t=>requestAnimationFrame(()=>{requestAnimationFrame(t)}))}const xn=[];let Ji=null;const pf={};function gf(t){let e=pf[t];return e||(e=pf[t]=[]),e}let hc=function(){};typeof window<"u"&&(hc=window.Element);function zt(t){return function(e){return z2(e.theme,t)}}const hu="__floating-vue__popper",Pm=()=>Pt({name:"VPopper",provide(){return{[hu]:{parentPopper:this}}},inject:{[hu]:{default:null}},props:{theme:{type:String,required:!0},targetNodes:{type:Function,required:!0},referenceNode:{type:Function,default:null},popperNode:{type:Function,required:!0},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:zt("disabled")},positioningDisabled:{type:Boolean,default:zt("positioningDisabled")},placement:{type:String,default:zt("placement"),validator:t=>J2.includes(t)},delay:{type:[String,Number,Object],default:zt("delay")},distance:{type:[Number,String],default:zt("distance")},skidding:{type:[Number,String],default:zt("skidding")},triggers:{type:Array,default:zt("triggers")},showTriggers:{type:[Array,Function],default:zt("showTriggers")},hideTriggers:{type:[Array,Function],default:zt("hideTriggers")},popperTriggers:{type:Array,default:zt("popperTriggers")},popperShowTriggers:{type:[Array,Function],default:zt("popperShowTriggers")},popperHideTriggers:{type:[Array,Function],default:zt("popperHideTriggers")},container:{type:[String,Object,hc,Boolean],default:zt("container")},boundary:{type:[String,hc],default:zt("boundary")},strategy:{type:String,validator:t=>["absolute","fixed"].includes(t),default:zt("strategy")},autoHide:{type:[Boolean,Function],default:zt("autoHide")},handleResize:{type:Boolean,default:zt("handleResize")},instantMove:{type:Boolean,default:zt("instantMove")},eagerMount:{type:Boolean,default:zt("eagerMount")},popperClass:{type:[String,Array,Object],default:zt("popperClass")},computeTransformOrigin:{type:Boolean,default:zt("computeTransformOrigin")},autoMinSize:{type:Boolean,default:zt("autoMinSize")},autoSize:{type:[Boolean,String],default:zt("autoSize")},autoMaxSize:{type:Boolean,default:zt("autoMaxSize")},autoBoundaryMaxSize:{type:Boolean,default:zt("autoBoundaryMaxSize")},preventOverflow:{type:Boolean,default:zt("preventOverflow")},overflowPadding:{type:[Number,String],default:zt("overflowPadding")},arrowPadding:{type:[Number,String],default:zt("arrowPadding")},arrowOverflow:{type:Boolean,default:zt("arrowOverflow")},flip:{type:Boolean,default:zt("flip")},shift:{type:Boolean,default:zt("shift")},shiftCrossAxis:{type:Boolean,default:zt("shiftCrossAxis")},noAutoFocus:{type:Boolean,default:zt("noAutoFocus")},disposeTimeout:{type:Number,default:zt("disposeTimeout")}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},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},randomId:`popper_${[Math.random(),Date.now()].map(t=>t.toString(36).substring(2,10)).join("_")}`,shownChildren:new Set,lastAutoHide:!0,pendingHide:!1,containsGlobalTarget:!1,isDisposed:!0,mouseDownContains:!1}},computed:{popperId(){return this.ariaId!=null?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:typeof this.autoHide=="function"?this.lastAutoHide:this.autoHide,show:this.show,hide:this.hide,handleResize:this.handleResize,onResize:this.onResize,classes:{...this.classes,popperClass:this.popperClass},result:this.positioningDisabled?null:this.result,attrs:this.$attrs}},parentPopper(){var t;return(t=this[hu])==null?void 0:t.parentPopper},hasPopperShowTriggerHover(){var t,e;return((t=this.popperTriggers)==null?void 0:t.includes("hover"))||((e=this.popperShowTriggers)==null?void 0:e.includes("hover"))}},watch:{shown:"$_autoShowHide",disabled(t){t?this.dispose():this.init()},async container(){this.isShown&&(this.$_ensureTeleport(),await this.$_computePosition())},triggers:{handler:"$_refreshListeners",deep:!0},positioningDisabled:"$_refreshListeners",...["placement","distance","skidding","boundary","strategy","overflowPadding","arrowPadding","preventOverflow","shift","shiftCrossAxis","flip"].reduce((t,e)=>(t[e]="$_computePosition",t),{})},created(){this.autoMinSize&&console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize="min"` instead.'),this.autoMaxSize&&console.warn("[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.")},mounted(){this.init(),this.$_detachPopperNode()},activated(){this.$_autoShowHide()},deactivated(){this.hide()},beforeUnmount(){this.dispose()},methods:{show({event:t=null,skipDelay:e=!1,force:n=!1}={}){var i,o;(i=this.parentPopper)!=null&&i.lockedChild&&this.parentPopper.lockedChild!==this||(this.pendingHide=!1,(n||!this.disabled)&&(((o=this.parentPopper)==null?void 0:o.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.$_scheduleShow(t,e),this.$emit("show"),this.$_showFrameLocked=!0,requestAnimationFrame(()=>{this.$_showFrameLocked=!1})),this.$emit("update:shown",!0))},hide({event:t=null,skipDelay:e=!1}={}){var n;if(!this.$_hideInProgress){if(this.shownChildren.size>0){this.pendingHide=!0;return}if(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:e}),this.parentPopper.lockedChild=null)},1e3));return}((n=this.parentPopper)==null?void 0:n.lockedChild)===this&&(this.parentPopper.lockedChild=null),this.pendingHide=!1,this.$_scheduleHide(t,e),this.$emit("hide"),this.$emit("update:shown",!1)}},init(){var t;this.isDisposed&&(this.isDisposed=!1,this.isMounted=!1,this.$_events=[],this.$_preventShow=!1,this.$_referenceNode=((t=this.referenceNode)==null?void 0:t.call(this))??this.$el,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"))},async onResize(){this.isShown&&(await this.$_computePosition(),this.$emit("resize"))},async $_computePosition(){if(this.isDisposed||this.positioningDisabled)return;const t={strategy:this.strategy,middleware:[]};(this.distance||this.skidding)&&t.middleware.push($2({mainAxis:this.distance,crossAxis:this.skidding}));const e=this.placement.startsWith("auto");if(e?t.middleware.push(L2({alignment:this.placement.split("-")[1]??""})):t.placement=this.placement,this.preventOverflow&&(this.shift&&t.middleware.push(B2({padding:this.overflowPadding,boundary:this.boundary,crossAxis:this.shiftCrossAxis})),!e&&this.flip&&t.middleware.push(D2({padding:this.overflowPadding,boundary:this.boundary}))),t.middleware.push(P2({element:this.$_arrowNode,padding:this.arrowPadding})),this.arrowOverflow&&t.middleware.push({name:"arrowOverflow",fn:({placement:i,rects:o,middlewareData:s})=>{let r;const{centerOffset:a}=s.arrow;return i.startsWith("top")||i.startsWith("bottom")?r=Math.abs(a)>o.reference.width/2:r=Math.abs(a)>o.reference.height/2,{data:{overflow:r}}}}),this.autoMinSize||this.autoSize){const i=this.autoSize?this.autoSize:this.autoMinSize?"min":null;t.middleware.push({name:"autoSize",fn:({rects:o,placement:s,middlewareData:r})=>{var a;if((a=r.autoSize)!=null&&a.skip)return{};let l,c;return s.startsWith("top")||s.startsWith("bottom")?l=o.reference.width:c=o.reference.height,this.$_innerNode.style[i==="min"?"minWidth":i==="max"?"maxWidth":"width"]=l!=null?`${l}px`:null,this.$_innerNode.style[i==="min"?"minHeight":i==="max"?"maxHeight":"height"]=c!=null?`${c}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(F2({boundary:this.boundary,padding:this.overflowPadding,apply:({availableWidth:i,availableHeight:o})=>{this.$_innerNode.style.maxWidth=i!=null?`${i}px`:null,this.$_innerNode.style.maxHeight=o!=null?`${o}px`:null}})));const n=await I2(this.$_referenceNode,this.$_popperNode,t);Object.assign(this.result,{x:n.x,y:n.y,placement:n.placement,strategy:n.strategy,arrow:{...n.middlewareData.arrow,...n.middlewareData.arrowOverflow}})},$_scheduleShow(t,e=!1){if(this.$_updateParentShownChildren(!0),this.$_hideInProgress=!1,clearTimeout(this.$_scheduleTimer),Ji&&this.instantMove&&Ji.instantMove&&Ji!==this.parentPopper){Ji.$_applyHide(!0),this.$_applyShow(!0);return}e?this.$_applyShow():this.$_scheduleTimer=setTimeout(this.$_applyShow.bind(this),this.$_computeDelay("show"))},$_scheduleHide(t,e=!1){if(this.shownChildren.size>0){this.pendingHide=!0;return}this.$_updateParentShownChildren(!1),this.$_hideInProgress=!0,clearTimeout(this.$_scheduleTimer),this.isShown&&(Ji=this),e?this.$_applyHide():this.$_scheduleTimer=setTimeout(this.$_applyHide.bind(this),this.$_computeDelay("hide"))},$_computeDelay(t){const e=this.delay;return parseInt(e&&e[t]||e||0)},async $_applyShow(t=!1){clearTimeout(this.$_disposeTimer),clearTimeout(this.$_scheduleTimer),this.skipTransition=t,!this.isShown&&(this.$_ensureTeleport(),await du(),await this.$_computePosition(),await this.$_applyShowEffect(),this.positioningDisabled||this.$_registerEventListeners([...za(this.$_referenceNode),...za(this.$_popperNode)],"scroll",()=>{this.$_computePosition()}))},async $_applyShowEffect(){if(this.$_hideInProgress)return;if(this.computeTransformOrigin){const e=this.$_referenceNode.getBoundingClientRect(),n=this.$_popperNode.querySelector(".v-popper__wrapper"),i=n.parentNode.getBoundingClientRect(),o=e.x+e.width/2-(i.left+n.offsetLeft),s=e.y+e.height/2-(i.top+n.offsetTop);this.result.transformOrigin=`${o}px ${s}px`}this.isShown=!0,this.$_applyAttrsToTarget({"aria-describedby":this.popperId,"data-popper-shown":""});const t=this.showGroup;if(t){let e;for(let n=0;n0){this.pendingHide=!0,this.$_hideInProgress=!1;return}if(clearTimeout(this.$_scheduleTimer),!this.isShown)return;this.skipTransition=t,ff(xn,this),xn.length===0&&document.body.classList.remove("v-popper--some-open");for(const n of cf(this.theme)){const i=gf(n);ff(i,this),i.length===0&&document.body.classList.remove(`v-popper--some-open--${n}`)}Ji===this&&(Ji=null),this.isShown=!1,this.$_applyAttrsToTarget({"aria-describedby":void 0,"data-popper-shown":void 0}),clearTimeout(this.$_disposeTimer);const e=this.disposeTimeout;e!==null&&(this.$_disposeTimer=setTimeout(()=>{this.$_popperNode&&(this.$_detachPopperNode(),this.isMounted=!1)},e)),this.$_removeEventListeners("scroll"),this.$emit("apply-hide"),this.classes.showFrom=!1,this.classes.showTo=!1,this.classes.hideFrom=!0,this.classes.hideTo=!1,await du(),this.classes.hideFrom=!1,this.classes.hideTo=!0},$_autoShowHide(){this.shown?this.show():this.hide()},$_ensureTeleport(){if(this.isDisposed)return;let t=this.container;if(typeof t=="string"?t=window.document.querySelector(t):t===!1&&(t=this.$_targetNodes[0].parentNode),!t)throw new Error("No container for popover: "+this.container);t.appendChild(this.$_popperNode),this.isMounted=!0},$_addEventListeners(){const t=n=>{this.isShown&&!this.$_hideInProgress||(n.usedByTooltip=!0,!this.$_preventShow&&this.show({event:n}))};this.$_registerTriggerListeners(this.$_targetNodes,df,this.triggers,this.showTriggers,t),this.$_registerTriggerListeners([this.$_popperNode],df,this.popperTriggers,this.popperShowTriggers,t);const e=n=>{n.usedByTooltip||this.hide({event:n})};this.$_registerTriggerListeners(this.$_targetNodes,hf,this.triggers,this.hideTriggers,e),this.$_registerTriggerListeners([this.$_popperNode],hf,this.popperTriggers,this.popperHideTriggers,e)},$_registerEventListeners(t,e,n){this.$_events.push({targetNodes:t,eventType:e,handler:n}),t.forEach(i=>i.addEventListener(e,n,rr?{passive:!0}:void 0))},$_registerTriggerListeners(t,e,n,i,o){let s=n;i!=null&&(s=typeof i=="function"?i(s):i),s.forEach(r=>{const a=e[r];a&&this.$_registerEventListeners(t,a,o)})},$_removeEventListeners(t){const e=[];this.$_events.forEach(n=>{const{targetNodes:i,eventType:o,handler:s}=n;!t||t===o?i.forEach(r=>r.removeEventListener(o,s)):e.push(n)}),this.$_events=e},$_refreshListeners(){this.isDisposed||(this.$_removeEventListeners(),this.$_addEventListeners())},$_handleGlobalClose(t,e=!1){this.$_showFrameLocked||(this.hide({event:t}),t.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),e&&(this.$_preventShow=!0,setTimeout(()=>{this.$_preventShow=!1},300)))},$_detachPopperNode(){this.$_popperNode.parentNode&&this.$_popperNode.parentNode.removeChild(this.$_popperNode)},$_swapTargetAttrs(t,e){for(const n of this.$_targetNodes){const i=n.getAttribute(t);i&&(n.removeAttribute(t),n.setAttribute(e,i))}},$_applyAttrsToTarget(t){for(const e of this.$_targetNodes)for(const n in t){const i=t[n];i==null?e.removeAttribute(n):e.setAttribute(n,i)}},$_updateParentShownChildren(t){let e=this.parentPopper;for(;e;)t?e.shownChildren.add(this.randomId):(e.shownChildren.delete(this.randomId),e.pendingHide&&e.hide()),e=e.parentPopper},$_isAimingPopper(){const t=this.$_referenceNode.getBoundingClientRect();if(js>=t.left&&js<=t.right&&Us>=t.top&&Us<=t.bottom){const e=this.$_popperNode.getBoundingClientRect(),n=js-wi,i=Us-xi,o=e.left+e.width/2-wi+(e.top+e.height/2)-xi+e.width+e.height,s=wi+n*o,r=xi+i*o;return zr(wi,xi,s,r,e.left,e.top,e.left,e.bottom)||zr(wi,xi,s,r,e.left,e.top,e.right,e.top)||zr(wi,xi,s,r,e.right,e.top,e.right,e.bottom)||zr(wi,xi,s,r,e.left,e.bottom,e.right,e.bottom)}return!1}},render(){return this.$slots.default(this.slotData)}});if(typeof document<"u"&&typeof window<"u"){if(km){const t=rr?{passive:!0,capture:!0}:!0;document.addEventListener("touchstart",e=>mf(e),t),document.addEventListener("touchend",e=>vf(e,!0),t)}else window.addEventListener("mousedown",t=>mf(t),!0),window.addEventListener("click",t=>vf(t,!1),!0);window.addEventListener("resize",q2)}function mf(t,e){for(let n=0;n=0;i--){const o=xn[i];try{const s=o.containsGlobalTarget=o.mouseDownContains||o.popperNode().contains(t.target);o.pendingHide=!1,requestAnimationFrame(()=>{if(o.pendingHide=!1,!n[o.randomId]&&yf(o,s,t)){if(o.$_handleGlobalClose(t,e),!t.closeAllPopover&&t.closePopover&&s){let a=o.parentPopper;for(;a;)n[a.randomId]=!0,a=a.parentPopper;return}let r=o.parentPopper;for(;r&&yf(r,r.containsGlobalTarget,t);)r.$_handleGlobalClose(t,e),r=r.parentPopper}})}catch{}}}function yf(t,e,n){return n.closeAllPopover||n.closePopover&&e||G2(t,n)&&!e}function G2(t,e){if(typeof t.autoHide=="function"){const n=t.autoHide(e);return t.lastAutoHide=n,n}return t.autoHide}function q2(){for(let t=0;t{wi=js,xi=Us,js=t.clientX,Us=t.clientY},rr?{passive:!0}:void 0);function zr(t,e,n,i,o,s,r,a){const l=((r-o)*(e-s)-(a-s)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e)),c=((n-t)*(e-s)-(i-e)*(t-o))/((a-s)*(n-t)-(r-o)*(i-e));return l>=0&&l<=1&&c>=0&&c<=1}const K2={extends:Pm()},Zc=(t,e)=>{const n=t.__vccOpts||t;for(const[i,o]of e)n[i]=o;return n};function X2(t,e,n,i,o,s){return D(),z("div",{ref:"reference",class:Xt(["v-popper",{"v-popper--shown":t.slotData.isShown}])},[Qt(t.$slots,"default",Iu(Ra(t.slotData)))],2)}const Y2=Zc(K2,[["render",X2]]);function Z2(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let ha;function fc(){fc.init||(fc.init=!0,ha=Z2()!==-1)}var fa={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){fc(),yr(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",ha&&this.$el.appendChild(t),t.data="about:blank",ha||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!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(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!ha&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const Q2=ky();Cy("data-v-b329ee4c");const M2={class:"resize-observer",tabindex:"-1"};Ty();const tE=Q2((t,e,n,i,o,s)=>(D(),xt("div",M2)));fa.render=tE,fa.__scopeId="data-v-b329ee4c",fa.__file="src/components/ResizeObserver.vue";const Rm=(t="theme")=>({computed:{themeClass(){return H2(this[t])}}}),eE=Pt({name:"VPopperContent",components:{ResizeObserver:fa},mixins:[Rm()],props:{popperId:String,theme:String,shown:Boolean,mounted:Boolean,skipTransition:Boolean,autoHide:Boolean,handleResize:Boolean,classes:Object,result:Object},emits:["hide","resize"],methods:{toPx(t){return t!=null&&!isNaN(t)?`${t}px`:null}}}),nE=["id","aria-hidden","tabindex","data-popper-placement"],iE={ref:"inner",class:"v-popper__inner"},oE=b("div",{class:"v-popper__arrow-outer"},null,-1),sE=b("div",{class:"v-popper__arrow-inner"},null,-1),rE=[oE,sE];function aE(t,e,n,i,o,s){const r=Zs("ResizeObserver");return D(),z("div",{id:t.popperId,ref:"popover",class:Xt(["v-popper__popper",[t.themeClass,t.classes.popperClass,{"v-popper__popper--shown":t.shown,"v-popper__popper--hidden":!t.shown,"v-popper__popper--show-from":t.classes.showFrom,"v-popper__popper--show-to":t.classes.showTo,"v-popper__popper--hide-from":t.classes.hideFrom,"v-popper__popper--hide-to":t.classes.hideTo,"v-popper__popper--skip-transition":t.skipTransition,"v-popper__popper--arrow-overflow":t.result&&t.result.arrow.overflow,"v-popper__popper--no-positioning":!t.result}]]),style:ao(t.result?{position:t.result.strategy,transform:`translate3d(${Math.round(t.result.x)}px,${Math.round(t.result.y)}px,0)`}:void 0),"aria-hidden":t.shown?"false":"true",tabindex:t.autoHide?0:void 0,"data-popper-placement":t.result?t.result.placement:void 0,onKeyup:e[2]||(e[2]=l_(a=>t.autoHide&&t.$emit("hide"),["esc"]))},[b("div",{class:"v-popper__backdrop",onClick:e[0]||(e[0]=a=>t.autoHide&&t.$emit("hide"))}),b("div",{class:"v-popper__wrapper",style:ao(t.result?{transformOrigin:t.result.transformOrigin}:void 0)},[b("div",iE,[t.mounted?(D(),z(Et,{key:0},[b("div",null,[Qt(t.$slots,"default")]),t.handleResize?(D(),xt(r,{key:0,onNotify:e[1]||(e[1]=a=>t.$emit("resize",a))})):bt("",!0)],64)):bt("",!0)],512),b("div",{ref:"arrow",class:"v-popper__arrow-container",style:ao(t.result?{left:t.toPx(t.result.arrow.x),top:t.toPx(t.result.arrow.y)}:void 0)},rE,4)],4)],46,nE)}const lE=Zc(eE,[["render",aE]]),uE={methods:{show(...t){return this.$refs.popper.show(...t)},hide(...t){return this.$refs.popper.hide(...t)},dispose(...t){return this.$refs.popper.dispose(...t)},onResize(...t){return this.$refs.popper.onResize(...t)}}};let pc=function(){};typeof window<"u"&&(pc=window.Element);const cE=Pt({name:"VPopperWrapper",components:{Popper:Y2,PopperContent:lE},mixins:[uE,Rm("finalTheme")],props:{theme:{type:String,default:null},referenceNode:{type:Function,default:null},shown:{type:Boolean,default:!1},showGroup:{type:String,default:null},ariaId:{default:null},disabled:{type:Boolean,default:void 0},positioningDisabled:{type:Boolean,default:void 0},placement:{type:String,default:void 0},delay:{type:[String,Number,Object],default:void 0},distance:{type:[Number,String],default:void 0},skidding:{type:[Number,String],default:void 0},triggers:{type:Array,default:void 0},showTriggers:{type:[Array,Function],default:void 0},hideTriggers:{type:[Array,Function],default:void 0},popperTriggers:{type:Array,default:void 0},popperShowTriggers:{type:[Array,Function],default:void 0},popperHideTriggers:{type:[Array,Function],default:void 0},container:{type:[String,Object,pc,Boolean],default:void 0},boundary:{type:[String,pc],default:void 0},strategy:{type:String,default:void 0},autoHide:{type:[Boolean,Function],default:void 0},handleResize:{type:Boolean,default:void 0},instantMove:{type:Boolean,default:void 0},eagerMount:{type:Boolean,default:void 0},popperClass:{type:[String,Array,Object],default:void 0},computeTransformOrigin:{type:Boolean,default:void 0},autoMinSize:{type:Boolean,default:void 0},autoSize:{type:[Boolean,String],default:void 0},autoMaxSize:{type:Boolean,default:void 0},autoBoundaryMaxSize:{type:Boolean,default:void 0},preventOverflow:{type:Boolean,default:void 0},overflowPadding:{type:[Number,String],default:void 0},arrowPadding:{type:[Number,String],default:void 0},arrowOverflow:{type:Boolean,default:void 0},flip:{type:Boolean,default:void 0},shift:{type:Boolean,default:void 0},shiftCrossAxis:{type:Boolean,default:void 0},noAutoFocus:{type:Boolean,default:void 0},disposeTimeout:{type:Number,default:void 0}},emits:{show:()=>!0,hide:()=>!0,"update:shown":t=>!0,"apply-show":()=>!0,"apply-hide":()=>!0,"close-group":()=>!0,"close-directive":()=>!0,"auto-hide":()=>!0,resize:()=>!0},computed:{finalTheme(){return this.theme??this.$options.vPopperTheme}},methods:{getTargetNodes(){return Array.from(this.$el.children).filter(t=>t!==this.$refs.popperContent.$el)}}});function dE(t,e,n,i,o,s){const r=Zs("PopperContent"),a=Zs("Popper");return D(),xt(a,te({ref:"popper"},t.$props,{theme:t.finalTheme,"target-nodes":t.getTargetNodes,"popper-node":()=>t.$refs.popperContent.$el,class:[t.themeClass],onShow:e[0]||(e[0]=()=>t.$emit("show")),onHide:e[1]||(e[1]=()=>t.$emit("hide")),"onUpdate:shown":e[2]||(e[2]=l=>t.$emit("update:shown",l)),onApplyShow:e[3]||(e[3]=()=>t.$emit("apply-show")),onApplyHide:e[4]||(e[4]=()=>t.$emit("apply-hide")),onCloseGroup:e[5]||(e[5]=()=>t.$emit("close-group")),onCloseDirective:e[6]||(e[6]=()=>t.$emit("close-directive")),onAutoHide:e[7]||(e[7]=()=>t.$emit("auto-hide")),onResize:e[8]||(e[8]=()=>t.$emit("resize"))}),{default:Tt(({popperId:l,isShown:c,shouldMountContent:u,skipTransition:d,autoHide:f,show:p,hide:y,handleResize:m,onResize:x,classes:_,result:S})=>[Qt(t.$slots,"default",{shown:c,show:p,hide:y}),nt(r,{ref:"popperContent","popper-id":l,theme:t.finalTheme,shown:c,mounted:u,"skip-transition":d,"auto-hide":f,"handle-resize":m,classes:_,result:S,onHide:y,onResize:x},{default:Tt(()=>[Qt(t.$slots,"popper",{shown:c,hide:y})]),_:2},1032,["popper-id","theme","shown","mounted","skip-transition","auto-hide","handle-resize","classes","result","onHide","onResize"])]),_:3},16,["theme","target-nodes","popper-node","class"])}const gc=Zc(cE,[["render",dE]]),hE={...gc,name:"VDropdown",vPopperTheme:"dropdown"};({...gc},{...gc}),Pm();const bf=Li,fE=hE;function pE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Lm={exports:{}},pe=Lm.exports={},Fn,jn;function mc(){throw new Error("setTimeout has not been defined")}function vc(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Fn=setTimeout:Fn=mc}catch{Fn=mc}try{typeof clearTimeout=="function"?jn=clearTimeout:jn=vc}catch{jn=vc}})();function Dm(t){if(Fn===setTimeout)return setTimeout(t,0);if((Fn===mc||!Fn)&&setTimeout)return Fn=setTimeout,setTimeout(t,0);try{return Fn(t,0)}catch{try{return Fn.call(null,t,0)}catch{return Fn.call(this,t,0)}}}function gE(t){if(jn===clearTimeout)return clearTimeout(t);if((jn===vc||!jn)&&clearTimeout)return jn=clearTimeout,clearTimeout(t);try{return jn(t)}catch{try{return jn.call(null,t)}catch{return jn.call(this,t)}}}var li=[],Ho=!1,io,pa=-1;function mE(){!Ho||!io||(Ho=!1,io.length?li=io.concat(li):pa=-1,li.length&&Nm())}function Nm(){if(!Ho){var t=Dm(mE);Ho=!0;for(var e=li.length;e;){for(io=li,li=[];++pa1)for(var n=1;nconsole.error("SEMVER",...e):()=>{},fu}var pu,wf;function Bm(){if(wf)return pu;wf=1;const t="2.0.0",e=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,i=16,o=e-6;return pu={MAX_LENGTH:e,MAX_SAFE_COMPONENT_LENGTH:i,MAX_SAFE_BUILD_LENGTH:o,MAX_SAFE_INTEGER:n,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:t,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},pu}var gu={exports:{}},xf;function yE(){return xf||(xf=1,(function(t,e){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:i,MAX_LENGTH:o}=Bm(),s=$m();e=t.exports={};const r=e.re=[],a=e.safeRe=[],l=e.src=[],c=e.safeSrc=[],u=e.t={};let d=0;const f="[a-zA-Z0-9-]",p=[["\\s",1],["\\d",o],[f,i]],y=x=>{for(const[_,S]of p)x=x.split(`${_}*`).join(`${_}{0,${S}}`).split(`${_}+`).join(`${_}{1,${S}}`);return x},m=(x,_,S)=>{const P=y(_),A=d++;s(x,A,_),u[x]=A,l[A]=_,c[A]=P,r[A]=new RegExp(_,S?"g":void 0),a[A]=new RegExp(P,S?"g":void 0)};m("NUMERICIDENTIFIER","0|[1-9]\\d*"),m("NUMERICIDENTIFIERLOOSE","\\d+"),m("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${f}*`),m("MAINVERSION",`(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})\\.(${l[u.NUMERICIDENTIFIER]})`),m("MAINVERSIONLOOSE",`(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})\\.(${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASEIDENTIFIER",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIER]})`),m("PRERELEASEIDENTIFIERLOOSE",`(?:${l[u.NONNUMERICIDENTIFIER]}|${l[u.NUMERICIDENTIFIERLOOSE]})`),m("PRERELEASE",`(?:-(${l[u.PRERELEASEIDENTIFIER]}(?:\\.${l[u.PRERELEASEIDENTIFIER]})*))`),m("PRERELEASELOOSE",`(?:-?(${l[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${l[u.PRERELEASEIDENTIFIERLOOSE]})*))`),m("BUILDIDENTIFIER",`${f}+`),m("BUILD",`(?:\\+(${l[u.BUILDIDENTIFIER]}(?:\\.${l[u.BUILDIDENTIFIER]})*))`),m("FULLPLAIN",`v?${l[u.MAINVERSION]}${l[u.PRERELEASE]}?${l[u.BUILD]}?`),m("FULL",`^${l[u.FULLPLAIN]}$`),m("LOOSEPLAIN",`[v=\\s]*${l[u.MAINVERSIONLOOSE]}${l[u.PRERELEASELOOSE]}?${l[u.BUILD]}?`),m("LOOSE",`^${l[u.LOOSEPLAIN]}$`),m("GTLT","((?:<|>)?=?)"),m("XRANGEIDENTIFIERLOOSE",`${l[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),m("XRANGEIDENTIFIER",`${l[u.NUMERICIDENTIFIER]}|x|X|\\*`),m("XRANGEPLAIN",`[v=\\s]*(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:\\.(${l[u.XRANGEIDENTIFIER]})(?:${l[u.PRERELEASE]})?${l[u.BUILD]}?)?)?`),m("XRANGEPLAINLOOSE",`[v=\\s]*(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${l[u.XRANGEIDENTIFIERLOOSE]})(?:${l[u.PRERELEASELOOSE]})?${l[u.BUILD]}?)?)?`),m("XRANGE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAIN]}$`),m("XRANGELOOSE",`^${l[u.GTLT]}\\s*${l[u.XRANGEPLAINLOOSE]}$`),m("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),m("COERCE",`${l[u.COERCEPLAIN]}(?:$|[^\\d])`),m("COERCEFULL",l[u.COERCEPLAIN]+`(?:${l[u.PRERELEASE]})?(?:${l[u.BUILD]})?(?:$|[^\\d])`),m("COERCERTL",l[u.COERCE],!0),m("COERCERTLFULL",l[u.COERCEFULL],!0),m("LONETILDE","(?:~>?)"),m("TILDETRIM",`(\\s*)${l[u.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",m("TILDE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAIN]}$`),m("TILDELOOSE",`^${l[u.LONETILDE]}${l[u.XRANGEPLAINLOOSE]}$`),m("LONECARET","(?:\\^)"),m("CARETTRIM",`(\\s*)${l[u.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",m("CARET",`^${l[u.LONECARET]}${l[u.XRANGEPLAIN]}$`),m("CARETLOOSE",`^${l[u.LONECARET]}${l[u.XRANGEPLAINLOOSE]}$`),m("COMPARATORLOOSE",`^${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]})$|^$`),m("COMPARATOR",`^${l[u.GTLT]}\\s*(${l[u.FULLPLAIN]})$|^$`),m("COMPARATORTRIM",`(\\s*)${l[u.GTLT]}\\s*(${l[u.LOOSEPLAIN]}|${l[u.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",m("HYPHENRANGE",`^\\s*(${l[u.XRANGEPLAIN]})\\s+-\\s+(${l[u.XRANGEPLAIN]})\\s*$`),m("HYPHENRANGELOOSE",`^\\s*(${l[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${l[u.XRANGEPLAINLOOSE]})\\s*$`),m("STAR","(<|>)?=?\\s*\\*"),m("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),m("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(gu,gu.exports)),gu.exports}var mu,Ef;function bE(){if(Ef)return mu;Ef=1;const t=Object.freeze({loose:!0}),e=Object.freeze({});return mu=n=>n?typeof n!="object"?t:n:e,mu}var vu,Sf;function _E(){if(Sf)return vu;Sf=1;const t=/^[0-9]+$/,e=(n,i)=>{if(typeof n=="number"&&typeof i=="number")return n===i?0:ne(i,n)},vu}var yu,Af;function Fm(){if(Af)return yu;Af=1;const t=$m(),{MAX_LENGTH:e,MAX_SAFE_INTEGER:n}=Bm(),{safeRe:i,t:o}=yE(),s=bE(),{compareIdentifiers:r}=_E();class a{constructor(c,u){if(u=s(u),c instanceof a){if(c.loose===!!u.loose&&c.includePrerelease===!!u.includePrerelease)return c;c=c.version}else if(typeof c!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof c}".`);if(c.length>e)throw new TypeError(`version is longer than ${e} characters`);t("SemVer",c,u),this.options=u,this.loose=!!u.loose,this.includePrerelease=!!u.includePrerelease;const d=c.trim().match(u.loose?i[o.LOOSE]:i[o.FULL]);if(!d)throw new TypeError(`Invalid Version: ${c}`);if(this.raw=c,this.major=+d[1],this.minor=+d[2],this.patch=+d[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");d[4]?this.prerelease=d[4].split(".").map(f=>{if(/^[0-9]+$/.test(f)){const p=+f;if(p>=0&&pc.major?1:this.minorc.minor?1:this.patchc.patch?1:0}comparePre(c){if(c instanceof a||(c=new a(c,this.options)),this.prerelease.length&&!c.prerelease.length)return-1;if(!this.prerelease.length&&c.prerelease.length)return 1;if(!this.prerelease.length&&!c.prerelease.length)return 0;let u=0;do{const d=this.prerelease[u],f=c.prerelease[u];if(t("prerelease compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}compareBuild(c){c instanceof a||(c=new a(c,this.options));let u=0;do{const d=this.build[u],f=c.build[u];if(t("build compare",u,d,f),d===void 0&&f===void 0)return 0;if(f===void 0)return 1;if(d===void 0)return-1;if(d!==f)return r(d,f)}while(++u)}inc(c,u,d){if(c.startsWith("pre")){if(!u&&d===!1)throw new Error("invalid increment argument: identifier is empty");if(u){const f=`-${u}`.match(this.options.loose?i[o.PRERELEASELOOSE]:i[o.PRERELEASE]);if(!f||f[1]!==u)throw new Error(`invalid identifier: ${u}`)}}switch(c){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",u,d);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",u,d);break;case"prepatch":this.prerelease.length=0,this.inc("patch",u,d),this.inc("pre",u,d);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",u,d),this.inc("pre",u,d);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const f=Number(d)?1:0;if(this.prerelease.length===0)this.prerelease=[f];else{let p=this.prerelease.length;for(;--p>=0;)typeof this.prerelease[p]=="number"&&(this.prerelease[p]++,p=-2);if(p===-1){if(u===this.prerelease.join(".")&&d===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(f)}}if(u){let p=[u,f];d===!1&&(p=[u]),r(this.prerelease[0],u)===0?isNaN(this.prerelease[1])&&(this.prerelease=p):this.prerelease=p}break}default:throw new Error(`invalid increment argument: ${c}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}}return yu=a,yu}var bu,Cf;function wE(){if(Cf)return bu;Cf=1;const t=Fm();return bu=(e,n)=>new t(e,n).major,bu}var xE=wE();const Tf=Gc(xE);var _u,kf;function EE(){if(kf)return _u;kf=1;const t=Fm();return _u=(e,n,i=!1)=>{if(e instanceof t)return e;try{return new t(e,n)}catch(o){if(!i)return null;throw o}},_u}var wu,Pf;function SE(){if(Pf)return wu;Pf=1;const t=EE();return wu=(e,n)=>{const i=t(e,n);return i?i.version:null},wu}var AE=SE();const CE=Gc(AE);class TE{bus;constructor(e){typeof e.getVersion!="function"||!CE(e.getVersion())?console.warn("Proxying an event bus with an unknown or invalid version"):Tf(e.getVersion())!==Tf(this.getVersion())&&console.warn("Proxying an event bus of version "+e.getVersion()+" with "+this.getVersion()),this.bus=e}getVersion(){return"3.3.3"}subscribe(e,n){this.bus.subscribe(e,n)}unsubscribe(e,n){this.bus.unsubscribe(e,n)}emit(e,...n){this.bus.emit(e,...n)}}class kE{handlers=new Map;getVersion(){return"3.3.3"}subscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).concat(n))}unsubscribe(e,n){this.handlers.set(e,(this.handlers.get(e)||[]).filter(i=>i!==n))}emit(e,...n){(this.handlers.get(e)||[]).forEach(i=>{try{i(n[0])}catch(o){console.error("could not invoke event listener",o)}})}}let ps=null;function Qc(){return ps!==null?ps:typeof window>"u"?new Proxy({},{get:()=>()=>console.error("Window not available, EventBus can not be established!")}):(window.OC?._eventBus&&typeof window._nc_event_bus>"u"&&(console.warn("found old event bus instance at OC._eventBus. Update your version!"),window._nc_event_bus=window.OC._eventBus),typeof window?._nc_event_bus<"u"?ps=new TE(window._nc_event_bus):ps=window._nc_event_bus=new kE,ps)}function jm(t,e){Qc().subscribe(t,e)}function PE(t,e){Qc().unsubscribe(t,e)}function RE(t,...e){Qc().emit(t,...e)}class Ha{static GLOBAL_SCOPE_VOLATILE="nextcloud_vol";static GLOBAL_SCOPE_PERSISTENT="nextcloud_per";scope;wrapped;constructor(e,n,i){this.scope=`${i?Ha.GLOBAL_SCOPE_PERSISTENT:Ha.GLOBAL_SCOPE_VOLATILE}_${btoa(e)}_`,this.wrapped=n}scopeKey(e){return`${this.scope}${e}`}setItem(e,n){this.wrapped.setItem(this.scopeKey(e),n)}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))}}class LE{appId;persisted=!1;clearedOnLogout=!1;constructor(e){this.appId=e}persist(e=!0){return this.persisted=e,this}clearOnLogout(e=!0){return this.clearedOnLogout=e,this}build(){return new Ha(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}function DE(t){return new LE(t)}BE();function NE(){return globalThis._nc_auth_requestToken?globalThis._nc_auth_requestToken:globalThis.document?document.head.dataset.requesttoken??null:null}function Um(t){if(!t||typeof t!="string")throw new Error("Invalid CSRF token given",{cause:{token:t}});globalThis._nc_auth_requestToken!==t&&(globalThis._nc_auth_requestToken=t,globalThis.document&&(document.head.dataset.requesttoken=t),RE("csrf-token-update",{token:t,_internal:!0}))}async function OE(){const t=Wc("/csrftoken"),e=await fetch(t);if(!e.ok)throw new Error("Could not fetch CSRF token from API",{cause:e});try{const{token:n}=await e.json();return Um(n),n}catch(n){throw new Error("Could not parse CSRF token from API response",{cause:n})}}function $E(t){const e=async({token:n})=>{try{t(n)}catch(i){console.error("Error updating CSRF token observer",i)}};return jm("csrf-token-update",e),()=>PE("csrf-token-update",e)}function BE(){jm("csrf-token-update",({token:t,_internal:e})=>{e||Um(t)})}DE("public").persist().build();let Ro;function Rf(t,e){return t?t.getAttribute(e):null}function FE(){if(Ro!==void 0)return Ro;const t=document?.getElementsByTagName("head")[0];if(!t)return null;const e=Rf(t,"data-user");return e===null?(Ro=null,Ro):(Ro={uid:e,displayName:Rf(t,"data-user-displayname"),isAdmin:!!window._oc_isadmin},Ro)}var me=(t=>(t[t.Debug=0]="Debug",t[t.Info=1]="Info",t[t.Warn=2]="Warn",t[t.Error=3]="Error",t[t.Fatal=4]="Fatal",t))(me||{});class jE{context;constructor(e){this.context=e||{}}formatMessage(e,n,i){let o="["+me[n].toUpperCase()+"] ";return i&&i.app&&(o+=i.app+": "),typeof e=="string"?o+e:(o+=`Unexpected ${e.name}`,e.message&&(o+=` "${e.message}"`),n===me.Debug&&e.stack&&(o+=` Stack trace: -${e.stack}`),o)}log(e,n,i){if(!(typeof this.context?.level=="number"&&e{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??me.Warn,window._oc_debug&&(e.context.level=me.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function UE(){return new jE(FE)}const VE=UE().detectUser().setApp("@nextcloud/vue").build(),Ha=K_(),IE=Rt({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),zE="_ncPopover_zfWgY",HE={"material-design-icon":"_material-design-icon_bkeq-",ncPopover:zE},Vm="nc-popover-9";bf.themes[Vm]=structuredClone(bf.themes.dropdown);const JE={name:"NcPopover",components:{Dropdown:dE,NcPopoverTriggerProvider:IE},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:Vm}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Ha?"right":"left":this.placement==="end"?Ha?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=gm(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:er(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){VE.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function WE(t,e,n,i,o,s){const r=Ys("NcPopoverTriggerProvider"),a=Ys("Dropdown");return O(),Ct(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],arrowPadding:10,autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:10,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:kt(l=>[Zt(t.$slots,"default",Vu(Ra(l)))]),default:kt(()=>[ot(r,{shown:o.internalShown,popupRole:n.popupRole},{default:kt(l=>[Zt(t.$slots,"trigger",Vu(Ra(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const GE={$style:HE},Lf=Ie(JE,[["render",WE],["__cssModules",GE]]),qE=Symbol.for("NcActions:isSemanticMenu"),KE=Symbol.for("NcActions:closeMenu"),XE={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},YE=["aria-hidden","aria-label"],ZE=["fill","width","height"],QE={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"},ME={key:0};function tA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",QE,[n.title?(O(),J("title",ME,L(n.title),1)):_t("",!0)])],8,ZE))],16,YE)}const eA=Ie(XE,[["render",tA]]);wr(xw);function Im(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Se||n.type===At&&!Im(n.children)||n.type===br&&!n.children.trim())return!1}return!0})}const nA=".focusable",iA={name:"NcActions",components:{NcButton:si,NcPopover:Lf},provide(){return{[qE]:ht(()=>this.actionsMenuSemanticType==="menu"),[KE]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:We("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:Qo()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){g2(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(nA)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(p,y)=>{p.forEach(m=>{if(this.isAction(m)){y.push(m);return}m.type===At&&e(m.children,y)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(p=>!i.includes(p)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(p=>r.includes(this.getActionName(p))),c=o.some(p=>s.includes(this.getActionName(p))),u=o.some(p=>a.includes(this.getActionName(p)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(p=>this.getActionName(p).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=p=>{const y=p?.props?.icon,m=p?.children?.icon?.()?.[0]??(this.isIconUrl(y)?Ne("img",{class:"action-item__menutoggle__icon",src:y,alt:""}):Ne("span",{class:["icon",y]})),x=p?.children?.default?.()?.[0]?.children?.trim(),b=this.forceName?x:"";let A=p?.props?.title;this.forceName||A||(A=x);const R={...p?.props??{}},S=["submit","reset"].includes(R.type)?R.modelValue:"button";return delete R.modelValue,delete R.type,Ne(si,ee(R,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":p?.props?.["aria-label"]||x,title:A,disabled:this.disabled||p?.props?.disabled,pressed:p?.props?.modelValue,size:this.size,type:S,wide:this.wide,variant:this.variant||(b?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":p?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>b,icon:()=>m})},f=p=>{const y=Im(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?Ne("span",{class:["icon",this.defaultIcon]}):Ne(eA,{size:20}),m=`${this.randomId}-trigger`;return Ne(Lf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>Ne(si,{id:m,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>y,default:()=>this.menuName}),default:()=>Ne("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[Ne("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":m,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[p])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?Ne("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?Ne("div",{class:["action-item",{"action-item--open":this.opened}]},[f(o)]):null]):Ne("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[f(t)]))}},oA=Ie(iA,[["__scopeId","data-v-23e5cae7"]]),sA=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),rA=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),aA=/^[a-zA-Z0-9]$/,lA=/^[^\x20-\x7F]$/;function uA(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Df(t,e){return n=>{if((sA?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||uA(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Nf(t,e=()=>{},n={}){if(rA)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return aA.test(l)&&lA.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Gh(o,Df(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Gh(o,Df(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function cA(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}cA();const dA=ge(zm());window.addEventListener("resize",()=>{dA.value=zm()});function zm(){return window.outerHeight===window.screen.height}const Mc=1024,Hm=Mc/2,Ja=t=>document.documentElement.clientWidth{hA.value=Ja(Mc),fA.value=Ja(Hm)},{passive:!0});function Of(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function pA(t){const e=[t];let n=Of(t);for(;n;)e.push(n),n=Of(n);return e}function gA(){const t=Gn();if(!t)throw new Error("useScopeId must be called within a setup context");const e=pA(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}wr(Ew,Cw);const mA=["aria-labelledby","aria-describedby"],vA=["data-theme-light","data-theme-dark"],yA=["id"],bA={class:"icons-menu"},_A=["title"],wA=["id"],xA={class:"modal-container__content"},EA=Rt({inheritAttrs:!1,__name:"NcModal",props:Wo({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:Wo(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){Al(V=>({v046d2bb2:b.value,v71f7c020:y.value}));const n=Uc(t,"show"),i=t,o=e,s=gA(),r=Qo(),a=qu("mask");let l;Wn(()=>q()),Ke(()=>i.additionalTrapElements,V=>{l&&l.updateContainerElements([a.value,...V])});const{isActive:c,pause:u,resume:d}=dx(A,to(()=>i.slideshowDelay),{immediate:!1}),f=ge(0),p=ge(!1);ig(()=>{p.value&&!i.slideshowPaused?d():c.value&&u()});const y=ht(()=>`${i.slideshowDelay}ms`),{stop:m}=bx(a,{onSwipeEnd:S});Wn(m),Nf("Escape",()=>{er().at(-1)===l&&j()},{allowInModal:!0}),Nf(["ArrowLeft","ArrowRight"],V=>{document.activeElement&&!a.value.contains(document.activeElement)||(V.key==="ArrowLeft"!==Ha?R():A())},{allowInModal:!0});const x=wl(),b=ht(()=>{let V=0;return i.hasNext&&i.enableSlideshow&&V++,!i.noClose&&i.closeButtonOutside&&V++,x.actions&&V++,V});Oi(()=>{!i.name&&i.labelId});function A(V){if(!i.hasNext){p.value=!1;return}V&&c.value&&N(),o("next",V)}function R(V){i.hasPrevious&&(V&&c.value&&N(),o("previous",V))}function S(V,et){if(!i.disableSwipe){if(et!=="left"&&et!=="right")return;et==="left"!==Ha?A(V):R(V)}}function N(){u(),d(),f.value++}function j(V){i.noClose||(n.value=!1,setTimeout(()=>{o("close",V)},300))}function U(V){i.closeOnClickOutside&&j(V)}async function H(){if(l)return;await yr();const V={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:er(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=gm([a.value,...i.additionalTrapElements],V),l.activate()}function q(){l&&(l?.deactivate(),l=void 0)}return(V,et)=>(O(),Ct(Oy,{disabled:t.container===null,to:t.container},[ot(ls,{name:"fade",appear:"",onAfterEnter:H,onBeforeLeave:q},{default:kt(()=>[_s(w("div",ee({...V.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[w("div",{class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(O(),J("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},L(t.name),9,yA)):_t("",!0),w("div",bA,[t.hasNext&&t.enableSlideshow?(O(),J("button",{key:0,class:Yt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),type:"button",onClick:et[0]||(et[0]=T=>p.value=!p.value)},[ot(Vn,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(We)("Pause slideshow"):E(We)("Start slideshow"),path:E(c)?E(Iw):E(zw)},null,8,["name","path"]),E(c)?(O(),J("svg",{key:`${E(r)}-animation-${f.value}`,class:"progress-ring",height:"50",width:"50"},[...et[1]||(et[1]=[w("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):_t("",!0)],10,_A)):_t("",!0),ot(oA,{class:"header-actions",inline:t.inlineActions},{default:kt(()=>[Zt(V.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(O(),Ct(si,{key:1,"aria-label":E(We)("Close"),class:"header-close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)])],8,vA)]),_:3}),ot(ls,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:kt(()=>[_s(w("div",{class:Yt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation}]]),onMousedown:o_(U,["self"])},[ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:R},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Bw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasPrevious]])]),_:1}),w("div",{id:"modal-description-"+E(r),class:"modal-container"},[w("div",xA,[Zt(V.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(O(),Ct(si,{key:0,"aria-label":E(We)("Close"),class:"modal-container__close",variant:"tertiary",onClick:j},{icon:kt(()=>[ot(Vn,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):_t("",!0)],8,wA),ot(ls,{name:"fade-visibility",appear:""},{default:kt(()=>[_s(ot(si,{"aria-label":E(We)("Next"),class:"next",variant:"tertiary-no-background",onClick:A},{icon:kt(()=>[ot(Vn,{directional:"",path:E(Fw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasNext]])]),_:1})],34),[[jr,n.value]])]),_:3},8,["name"])],16,mA),[[jr,n.value]])]),_:3})],8,["disabled","to"]))}}),AA=Ie(EA,[["__scopeId","data-v-3c357e2d"]]),SA=["id","textContent"],CA=["aria-label","aria-labelledby"],TA={class:"dialog__text"},kA={class:"dialog__actions"},RA=Rt({__name:"NcDialog",props:Wo({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Wo(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Uc(t,"open"),i=t,o=e,s=wl(),r=qu("wrapper"),{width:a}=yx(r,{width:900,height:0}),l=ht(()=>a.value<876),c=ht(()=>s?.navigation!==void 0),u=Qo(),d=ht(()=>i.navigationAriaLabel||void 0),f=ht(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),p=qu("dialogElement"),y=ht(()=>i.isForm&&!c.value?"form":"div"),m=ht(()=>y.value!=="form"?{}:{submit(N){N.preventDefault(),o("submit",N)},reset(N){N.preventDefault(),o("reset",N)}}),x=ge(!0);function b(N,j){N.type==="submit"&&y.value==="form"&&"reportValidity"in p.value&&!p.value.reportValidity()||(A(j),window.setTimeout(()=>R(),300))}function A(N){x.value=!1,o("closing",N)}function R(){x.value=!0,n.value=!1}const S=ht(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&x.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(N,j)=>n.value?(O(),Ct(E(AA),ee({key:0,class:"dialog__modal",disableSwipe:""},S.value,{onClose:R,"onUpdate:show":j[0]||(j[0]=U=>A())}),{default:kt(()=>[w("h2",{id:E(u),class:"dialog__name",textContent:L(t.name)},null,8,SA),(O(),Ct(_l(y.value),ee({ref:"dialogElement",class:["dialog",t.dialogClasses]},qy(m.value)),{default:kt(()=>[w("div",{ref:"wrapper",class:Yt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(O(),J("nav",{key:0,class:Yt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":f.value},[Zt(N.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,CA)):_t("",!0),w("div",{class:Yt(["dialog__content",t.contentClasses])},[Zt(N.$slots,"default",{},()=>[w("p",TA,L(t.message),1)],!0)],2)],2),w("div",kA,[Zt(N.$slots,"actions",{},()=>[(O(!0),J(At,null,$i(t.buttons,(U,H)=>(O(),Ct(E(Ux),ee({key:H},{ref_for:!0},U,{onClick:(q,V)=>b(U,V)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):_t("",!0)}}),PA=Ie(RA,[["__scopeId","data-v-24e91b99"]]),LA=["title"],DA=Rt({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"SUCCEEDED":return I("serverinfo","Succeeded");case"FAILED":return I("serverinfo","Failed");case"CRASHED":return I("serverinfo","Crashed");default:return I("serverinfo","Running")}});return(i,o)=>(O(),J("span",{class:Yt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=w("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),w("span",{class:Yt(t.dotOnly&&"hidden-visually")},L(n.value),3)],10,LA))}}),Jm=Qt(DA,[["__scopeId","data-v-0e5a1326"]]);function _n(t){const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(O(),Ct(E(PA),{name:E(Wa)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:kt(()=>[w("dl",NA,[w("dt",null,L(E(I)("serverinfo","Class")),1),w("dd",OA,L(t.run.className),1),w("dt",null,L(E(I)("serverinfo","Status")),1),w("dd",null,[ot(Jm,{status:t.run.status},null,8,["status"])]),w("dt",null,L(E(I)("serverinfo","Started")),1),w("dd",null,[ot(E(Gc),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("dt",null,L(E(I)("serverinfo","Duration")),1),w("dd",null,L(E(Ga)(t.run.duration)),1),w("dt",null,L(E(I)("serverinfo","Peak memory")),1),w("dd",null,L(E(ed)(t.run.memoryPeak)),1),w("dt",null,L(E(I)("serverinfo","Run ID")),1),w("dd",null,L(t.run.runId),1),w("dt",null,L(E(I)("serverinfo","Server ID")),1),w("dd",null,L(t.run.serverId),1),w("dt",null,L(E(I)("serverinfo","Process ID")),1),w("dd",null,L(t.run.pid),1)])]),_:1},8,["name"]))}}),BA=Qt($A,[["__scopeId","data-v-c21cb020"]]),FA={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},jA=["aria-hidden","aria-label"],UA=["fill","width","height"],VA={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},IA={key:0};function zA(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",VA,[n.title?(O(),J("title",IA,L(n.title),1)):_t("",!0)])],8,UA))],16,jA)}const HA=Qt(FA,[["render",zA]]),JA={class:"server-info-table"},WA={class:"status-cell"},GA={class:"hidden-visually"},qA={class:"when-cell"},KA={class:"duration-cell"},XA={class:"memory-cell"},YA={class:"info-cell"},ZA={class:"hidden-visually"},QA={class:"status-cell"},MA=["title"],tS={class:"info-cell"},eS=Rt({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return I("serverinfo","Details about {job} from {time}",{job:Wa(i.className),time:new Date(i.startedAt*1e3).toLocaleString(Mg(),e)})}return(i,o)=>(O(),J("div",JA,[w("table",null,[w("thead",null,[w("tr",null,[w("th",WA,[w("span",GA,L(E(I)("serverinfo","Status")),1)]),w("th",null,L(E(I)("serverinfo","Job")),1),w("th",qA,L(E(I)("serverinfo","When")),1),w("th",KA,L(E(I)("serverinfo","Duration")),1),w("th",XA,L(E(I)("serverinfo","Peak memory")),1),w("th",YA,[w("span",ZA,L(E(I)("serverinfo","Details")),1)])])]),w("tbody",null,[(O(!0),J(At,null,$i(t.runs,s=>(O(),J("tr",{key:s.runId},[w("td",QA,[ot(Jm,{status:s.status,dotOnly:""},null,8,["status"])]),w("td",{title:s.className},L(E(Wa)(s.className)),9,MA),w("td",null,[ot(E(Gc),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),w("td",null,L(E(Ga)(s.duration)),1),w("td",null,L(E(ed)(s.memoryPeak)),1),w("td",tS,[ot(E(si),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:kt(()=>[ot(HA,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),$f=Qt(eS,[["__scopeId","data-v-10f09a63"]]),nS={class:"server-info-table"},iS={class:"job-cell"},oS={class:"count-cell"},sS={class:"count-cell"},rS={class:"count-cell"},aS={class:"memory-cell"},lS=["title"],uS={class:"count-cell"},cS={class:"count-cell"},dS={class:"count-cell"},hS={class:"memory-cell"},fS=Rt({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(O(),J("div",nS,[w("table",null,[w("thead",null,[w("tr",null,[w("th",iS,L(E(I)("serverinfo","Job")),1),w("th",oS,L(E(I)("serverinfo","Runs")),1),w("th",sS,L(E(I)("serverinfo","Average")),1),w("th",rS,L(E(I)("serverinfo","Longest")),1),w("th",aS,L(E(I)("serverinfo","Peak memory")),1)])]),w("tbody",null,[(O(!0),J(At,null,$i(t.jobs,i=>(O(),J("tr",{key:i.className},[w("td",{class:"job-cell",title:i.className},L(E(Wa)(i.className)),9,lS),w("td",uS,L(i.runs),1),w("td",cS,L(E(Ga)(i.avgDuration)),1),w("td",dS,L(E(Ga)(i.maxDuration)),1),w("td",hS,L(E(ed)(i.memoryPeak)),1)]))),128))])])]))}}),pS=Qt(fS,[["__scopeId","data-v-452808c1"]]),gS={class:"stat-tile"},mS={class:"stat-tile__label"},vS={key:0,class:"hidden-visually"},yS=Rt({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=ht(()=>{switch(e.status){case"warning":return I("serverinfo","Warning");case"critical":return I("serverinfo","Critical");default:return""}});return(i,o)=>(O(),J("div",gS,[w("div",mS,L(t.label),1),w("div",{class:Yt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[Zt(i.$slots,"default",{},()=>[Dt(L(t.value),1)],!0),n.value?(O(),J("span",vS,L(n.value),1)):_t("",!0)],2)]))}}),tn=Qt(yS,[["__scopeId","data-v-4a64fa3b"]]),bS={class:"section background-jobs"},_S={class:"row row--tiles"},wS=Rt({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=ge(null);function i(a){n.value={...a}}const o=ht(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=ht(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=ht(()=>{switch(e.cron.mode){case"cron":return I("serverinfo","System cron");case"webcron":return I("serverinfo","Webcron");default:return I("serverinfo","AJAX (not recommended)")}});return(a,l)=>(O(),J("div",bS,[ot(Xe,{icon:rx,title:E(I)("serverinfo","Background jobs")},null,8,["title"]),w("div",_S,[ot(tn,{label:E(I)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),ot(tn,{label:E(I)("serverinfo","Last run"),status:s.value},{default:kt(()=>[t.cron.lastRun>0?(O(),Ct(E(Gc),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(O(),J(At,{key:1},[Dt(L(E(I)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),w("h3",null,L(E(ic)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(O(),Ct(E(au),{key:0,type:"success"},{default:kt(()=>[Dt(L(E(ic)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(O(),Ct($f,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(O(),Ct(E(au),{key:2,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","No background job has run yet.")),1)]),_:1})):(O(),Ct($f,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),w("h3",null,L(E(I)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(O(),Ct(E(au),{key:4,type:"info"},{default:kt(()=>[Dt(L(E(I)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(O(),Ct(pS,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(O(),Ct(BA,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):_t("",!0)]))}}),xS=Qt(wS,[["__scopeId","data-v-612ee243"]]);function xr(t){return t+.5|0}const Ei=(t,e,n)=>Math.max(Math.min(t,n),e);function Ss(t){return Ei(xr(t*2.55),0,255)}function Pi(t){return Ei(xr(t*255),0,255)}function ei(t){return Ei(xr(t/2.55)/100,0,1)}function Bf(t){return Ei(xr(t*100),0,100)}const dn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},bc=[..."0123456789ABCDEF"],ES=t=>bc[t&15],AS=t=>bc[(t&240)>>4]+bc[t&15],Hr=t=>(t&240)>>4===(t&15),SS=t=>Hr(t.r)&&Hr(t.g)&&Hr(t.b)&&Hr(t.a);function CS(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&dn[t[1]]*17,g:255&dn[t[2]]*17,b:255&dn[t[3]]*17,a:e===5?dn[t[4]]*17:255}:(e===7||e===9)&&(n={r:dn[t[1]]<<4|dn[t[2]],g:dn[t[3]]<<4|dn[t[4]],b:dn[t[5]]<<4|dn[t[6]],a:e===9?dn[t[7]]<<4|dn[t[8]]:255})),n}const TS=(t,e)=>t<255?e(t):"";function kS(t){var e=SS(t)?ES:AS;return t?"#"+e(t.r)+e(t.g)+e(t.b)+TS(t.a,e):void 0}const RS=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Gm(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function PS(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function LS(t,e,n){const i=Gm(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function DS(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=DS(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function id(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Pi)}function od(t,e,n){return id(Gm,t,e,n)}function NS(t,e,n){return id(LS,t,e,n)}function OS(t,e,n){return id(PS,t,e,n)}function qm(t){return(t%360+360)%360}function $S(t){const e=RS.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?Ss(+e[5]):Pi(+e[5]));const o=qm(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=NS(o,s,r):e[1]==="hsv"?i=OS(o,s,r):i=od(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function BS(t,e){var n=nd(t);n[0]=qm(n[0]+e),n=od(n),t.r=n[0],t.g=n[1],t.b=n[2]}function FS(t){if(!t)return;const e=nd(t),n=e[0],i=Bf(e[1]),o=Bf(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${ei(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const Ff={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},jf={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function jS(){const t={},e=Object.keys(jf),n=Object.keys(Ff);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Jr;function US(t){Jr||(Jr=jS(),Jr.transparent=[0,0,0,0]);const e=Jr[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const VS=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function IS(t){const e=VS.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?Ss(r):Ei(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?Ss(i):Ei(i,0,255)),o=255&(e[4]?Ss(o):Ei(o,0,255)),s=255&(e[6]?Ss(s):Ei(s,0,255)),{r:i,g:o,b:s,a:n}}}function zS(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${ei(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const wu=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Po=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function HS(t,e,n){const i=Po(ei(t.r)),o=Po(ei(t.g)),s=Po(ei(t.b));return{r:Pi(wu(i+n*(Po(ei(e.r))-i))),g:Pi(wu(o+n*(Po(ei(e.g))-o))),b:Pi(wu(s+n*(Po(ei(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Wr(t,e,n){if(t){let i=nd(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=od(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Km(t,e){return t&&Object.assign(e||{},t)}function Uf(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Pi(t[3]))):(e=Km(t,{r:0,g:0,b:0,a:1}),e.a=Pi(e.a)),e}function JS(t){return t.charAt(0)==="r"?IS(t):$S(t)}class ar{constructor(e){if(e instanceof ar)return e;const n=typeof e;let i;n==="object"?i=Uf(e):n==="string"&&(i=CS(e)||US(e)||JS(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Km(this._rgb);return e&&(e.a=ei(e.a)),e}set rgb(e){this._rgb=Uf(e)}rgbString(){return this._valid?zS(this._rgb):void 0}hexString(){return this._valid?kS(this._rgb):void 0}hslString(){return this._valid?FS(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=HS(this._rgb,e._rgb,n)),this}clone(){return new ar(this.rgb)}alpha(e){return this._rgb.a=Pi(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=xr(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Wr(this._rgb,2,e),this}darken(e){return Wr(this._rgb,2,-e),this}saturate(e){return Wr(this._rgb,1,e),this}desaturate(e){return Wr(this._rgb,1,-e),this}rotate(e){return BS(this._rgb,e),this}}function Yn(){}const WS=(()=>{let t=0;return()=>t++})();function oe(t){return t==null}function Ae(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Vt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ve(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Dn(t,e){return Ve(t)?t:e}function Ot(t,e){return typeof t>"u"?e:t}const GS=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Xm=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function re(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Mt(t,e,n,i){let o,s,r;if(Ae(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function XS(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function YS(t){const e=XS(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function ur(t,e){return(Vf[e]||(Vf[e]=YS(e)))(t)}function sd(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Xa=t=>typeof t<"u",Ni=t=>typeof t=="function",If=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function ZS(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const te=Math.PI,de=2*te,QS=de+te,Ya=Number.POSITIVE_INFINITY,MS=te/180,we=te/2,Ji=te/4,zf=te*2/3,Zm=Math.log10,Go=Math.sign;function Vs(t,e,n){return Math.abs(t-e)o-s).pop(),e}function e4(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function cr(t){return!e4(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function n4(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function i4(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function rd(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const oo=(t,e,n,i)=>rd(t,n,i?o=>{const s=t[o][e];return st[o][e]rd(t,n,i=>t[i][e]>=n);function l4(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+sd(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function Wf(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(Mm.forEach(s=>{delete t[s]}),delete t._chartjs)}function c4(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const t1=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function e1(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,t1.call(window,()=>{i=!1,t.apply(e,n)}))}}function d4(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const n1=t=>t==="start"?"left":t==="end"?"right":"center",sn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,h4=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function f4(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:f,minDefined:p,maxDefined:y}=r.getUserBounds();if(p){if(o=Math.min(oo(l,u,d).lo,n?i:oo(e,u,r.getPixelForValue(d)).lo),c){const m=l.slice(0,o+1).reverse().findIndex(x=>!oe(x[a.axis]));o-=Math.max(0,m)}o=qe(o,0,i-1)}if(y){let m=Math.max(oo(l,r.axis,f,!0).hi+1,n?0:oo(e,u,r.getPixelForValue(f),!0).hi+1);if(c){const x=l.slice(m-1).findIndex(b=>!oe(b[a.axis]));m+=Math.max(0,x)}s=qe(m,o,i)-o}else s=i-o}return{start:o,count:s}}function p4(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Gr=t=>t===0||t===1,Gf=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*de/n)),qf=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*de/n)+1,Is={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*we)+1,easeOutSine:t=>Math.sin(t*we),easeInOutSine:t=>-.5*(Math.cos(te*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Gr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Gr(t)?t:Gf(t,.075,.3),easeOutElastic:t=>Gr(t)?t:qf(t,.075,.3),easeInOutElastic(t){return Gr(t)?t:t<.5?.5*Gf(t*2,.1125,.45):.5+.5*qf(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-Is.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?Is.easeInBounce(t*2)*.5:Is.easeOutBounce(t*2-1)*.5+.5};function ad(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function Kf(t){return ad(t)?t:new ar(t)}function xu(t){return ad(t)?t:new ar(t).saturate(.5).darken(.1).hexString()}const g4=["x","y","borderWidth","radius","tension"],m4=["color","borderColor","backgroundColor"];function v4(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:m4},numbers:{type:"number",properties:g4}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function y4(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Xf=new Map;function b4(t,e){e=e||{};const n=t+JSON.stringify(e);let i=Xf.get(n);return i||(i=new Intl.NumberFormat(t,e),Xf.set(n,i)),i}function ld(t,e,n){return b4(e,n).format(t)}const _4={values(t){return Ae(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=w4(t,n)}const r=Zm(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ld(t,i,l)}};function w4(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var i1={formatters:_4};function x4(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:i1.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const po=Object.create(null),wc=Object.create(null);function zs(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>xu(o.backgroundColor),this.hoverBorderColor=(i,o)=>xu(o.borderColor),this.hoverColor=(i,o)=>xu(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Eu(this,e,n)}get(e){return zs(this,e)}describe(e,n){return Eu(wc,e,n)}override(e,n){return Eu(po,e,n)}route(e,n,i,o){const s=zs(this,e),r=zs(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Vt(l)?Object.assign({},c,l):Ot(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var pe=new E4({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[v4,y4,x4]);function A4(t){return!t||oe(t.size)||oe(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Yf(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function Wi(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function Zf(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function xc(t,e,n,i){o1(t,e,n,i,null)}function o1(t,e,n,i,o){let s,r,a,l,c,u,d,f;const p=e.pointStyle,y=e.rotation,m=e.radius;let x=(y||0)*MS;if(p&&typeof p=="object"&&(s=p.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(x),t.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),t.restore();return}if(!(isNaN(m)||m<=0)){switch(t.beginPath(),p){default:o?t.ellipse(n,i,o/2,m,0,0,de):t.arc(n,i,m,0,de),t.closePath();break;case"triangle":u=o?o/2:m,t.moveTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),t.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(x+Ji)*l,d=Math.cos(x+Ji)*(o?o/2-c:l),a=Math.sin(x+Ji)*l,f=Math.sin(x+Ji)*(o?o/2-c:l),t.arc(n-d,i-a,c,x-te,x-we),t.arc(n+f,i-r,c,x-we,x),t.arc(n+d,i+a,c,x,x+we),t.arc(n-f,i+r,c,x+we,x+te),t.closePath();break;case"rect":if(!y){l=Math.SQRT1_2*m,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}x+=Ji;case"rectRot":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+f,i-r),t.lineTo(n+d,i+a),t.lineTo(n-f,i+r),t.closePath();break;case"crossRot":x+=Ji;case"cross":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"star":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r),x+=Ji,d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"line":r=o?o/2:Math.cos(x)*m,a=Math.sin(x)*m,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(x)*(o?o/2:m),i+Math.sin(x)*m);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function hr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,T4(t,s),l=0;l+t||0;function ud(t,e){const n={},i=Vt(e),o=i?Object.keys(e):e,s=Vt(t)?i?r=>Ot(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=N4(s(r));return n}function O4(t){return ud(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Hs(t){return ud(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Cn(t){const e=O4(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function Me(t,e){t=t||{},e=e||pe.font;let n=Ot(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ot(t.style,e.style);i&&!(""+i).match(L4)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ot(t.family,e.family),lineHeight:D4(Ot(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ot(t.weight,e.weight),string:""};return o.string=A4(o),o}function qr(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function bo(t,e){return Object.assign(Object.create(t),e)}function cd(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=l1("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>cd([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return r1(a,l,()=>H4(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Mf(a).includes(l)},ownKeys(a){return Mf(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function qo(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:s1(t,i),setContext:s=>qo(t,s,n,i),override:s=>qo(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return r1(s,r,()=>F4(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function s1(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:Ni(n)?n:()=>n,isIndexable:Ni(i)?i:()=>i}}const B4=(t,e)=>t?t+sd(e):e,dd=(t,e)=>Vt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function r1(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function F4(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return Ni(a)&&r.isScriptable(e)&&(a=j4(e,a,t,n)),Ae(a)&&a.length&&(a=U4(e,a,t,r.isIndexable)),dd(e,a)&&(a=qo(a,o,s&&s[e],r)),a}function j4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),dd(t,l)&&(l=hd(o._scopes,o,t,l)),l}function U4(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Vt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=hd(c,o,t,u);e.push(qo(d,s,r&&r[t],a))}}return e}function a1(t,e,n){return Ni(t)?t(e,n):t}const V4=(t,e)=>t===!0?e:typeof t=="string"?ur(e,t):void 0;function I4(t,e,n,i,o){for(const s of e){const r=V4(n,s);if(r){t.add(r);const a=a1(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function hd(t,e,n,i){const o=e._rootScopes,s=a1(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=Qf(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=Qf(a,r,s,l,i),l===null)?!1:cd(Array.from(a),[""],o,s,()=>z4(e,n,i))}function Qf(t,e,n,i,o){for(;n;)n=I4(t,e,n,i,o);return n}function z4(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Ae(o)&&Vt(n)?n:o||{}}function H4(t,e,n,i){let o;for(const s of e)if(o=l1(B4(s,t),n),typeof o<"u")return dd(t,o)?hd(n,i,t,o):o}function l1(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function Mf(t){let e=t._keys;return e||(e=t._keys=J4(t._scopes)),e}function J4(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const W4=Number.EPSILON||1e-14,Ko=(t,e)=>et==="x"?"y":"x";function G4(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=_c(s,o),l=_c(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,f=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+f*(r.x-o.x),y:s.y+f*(r.y-o.y)}}}function q4(t,e,n){const i=t.length;let o,s,r,a,l,c=Ko(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")X4(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function Q4(t,e){return Pl(t).getPropertyValue(e)}const M4=["top","right","bottom","left"];function co(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=M4[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const tC=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function eC(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(tC(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function Ki(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=Pl(n),s=o.boxSizing==="border-box",r=co(o,"padding"),a=co(o,"border","width"),{x:l,y:c,box:u}=eC(t,n),d=r.left+(u&&a.left),f=r.top+(u&&a.top);let{width:p,height:y}=e;return s&&(p-=r.width+a.width,y-=r.height+a.height),{x:Math.round((l-d)/p*n.width/i),y:Math.round((c-f)/y*n.height/i)}}function nC(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&pd(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=Pl(s),l=co(a,"border","width"),c=co(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Qa(a.maxWidth,s,"clientWidth"),o=Qa(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Ya,maxHeight:o||Ya}}const Ai=t=>Math.round(t*10)/10;function iC(t,e,n,i){const o=Pl(t),s=co(o,"margin"),r=Qa(o.maxWidth,t,"clientWidth")||Ya,a=Qa(o.maxHeight,t,"clientHeight")||Ya,l=nC(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=co(o,"border","width"),f=co(o,"padding");c-=f.width+d.width,u-=f.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Ai(Math.min(c,r,l.maxWidth)),u=Ai(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Ai(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Ai(Math.floor(u*i))),{width:c,height:u}}function tp(t,e,n){const i=e||1,o=Ai(t.height*i),s=Ai(t.width*i);t.height=Ai(t.height),t.width=Ai(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const oC=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fd()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function ep(t,e){const n=Q4(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Xi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function sC(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function rC(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=Xi(t,o,n),a=Xi(o,s,n),l=Xi(s,e,n),c=Xi(r,a,n),u=Xi(a,l,n);return Xi(c,u,n)}const aC=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},lC=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Ho(t,e,n){return t?aC(e,n):lC()}function c1(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function d1(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function h1(t){return t==="angle"?{between:dr,compare:s4,normalize:rn}:{between:io,compare:(e,n)=>e-n,normalize:e=>e}}function np({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function uC(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=h1(i),l=e.length;let{start:c,end:u,loop:d}=t,f,p;if(d){for(c+=l,u+=l,f=0,p=l;fl(o,R,b)&&a(o,R)!==0,N=()=>a(s,b)===0||l(s,R,b),j=()=>m||S(),U=()=>!m||N();for(let H=u,q=u;H<=d;++H)A=e[H%r],!A.skip&&(b=c(A[i]),b!==R&&(m=l(b,o,s),x===null&&j()&&(x=a(b,o)===0?H:q),x!==null&&U()&&(y.push(np({start:x,end:H,loop:f,count:r,style:p})),x=null),q=H,R=b));return x!==null&&y.push(np({start:x,end:d,loop:f,count:r,style:p})),y}function p1(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function dC(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function hC(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=cC(n,o,s,i);if(i===!0)return ip(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=t1.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Zn=new mC;const sp="transparent",vC={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=Kf(t||sp),o=i.valid&&Kf(e||sp);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class yC{constructor(e,n,i,o){const s=n[i];o=qr([e.to,o,s,e.from]);const r=qr([e.from,s,o]);this._active=!0,this._fn=e.fn||vC[e.type||typeof r],this._easing=Is[e.easing]||Is.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=qr([e.to,n,o,e.from]),this._from=qr([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Vt(s))return;const r={};for(const a of n)r[a]=s[a];(Ae(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=_C(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&bC(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const f=i.get(c);if(d)if(f&&d.active()){d.update(f,u,a);continue}else d.cancel();if(!f||!f.duration){e[c]=u;continue}s[c]=d=new yC(f,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Zn.add(this._chart,i),!0}}function bC(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function up(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=AC(s,r,i),d=e.length;let f;for(let p=0;pn[i].axis===e).shift()}function TC(t,e){return bo(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function kC(t,e,n){return bo(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function ps(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Cu=t=>t==="reset"||t==="none",cp=(t,e)=>e?t:Object.assign({},t),RC=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:v1(n,!0),values:null};class gd{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Au(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&ps(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,f,p,y)=>d==="x"?f:d==="r"?y:p,s=n.xAxisID=Ot(i.xAxisID,Su(e,"x")),r=n.yAxisID=Ot(i.yAxisID,Su(e,"y")),a=n.rAxisID=Ot(i.rAxisID,Su(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Wf(this._data,this),e._stacked&&ps(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Vt(n)){const o=this._cachedMeta;this._data=EC(n,o)}else if(i!==n){if(i){Wf(i,this);const o=this._cachedMeta;ps(o),o._parsed=[]}n&&Object.isExtensible(n)&&u4(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=Au(n.vScale,n),n.stack!==i.stack&&(o=!0,ps(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(up(this,n._parsed),n._stacked=Au(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,f;if(this._parsing===!1)i._parsed=o,i._sorted=!0,f=o;else{Ae(o[e])?f=this.parseArrayData(i,o,e,n):Vt(o[e])?f=this.parseObjectData(i,o,e,n):f=this.parsePrimitiveData(i,o,e,n);const p=()=>d[a]===null||c&&d[a]m||d=0;--f)if(!y()){this.updateRangeFromParsed(c,e,p,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),m=c.resolveNamedOptions(f,p,y,d);return m.$shared&&(m.$shared=l,s[r]=Object.freeze(cp(m,l))),m}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),f=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(f,this.getContext(e,i,n))}const c=new m1(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Cu(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Cu(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Cu(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;adr(R,a,l,!0)?1:Math.max(S,S*n,N,N*n),y=(R,S,N)=>dr(R,a,l,!0)?-1:Math.min(S,S*n,N,N*n),m=p(0,c,d),x=p(we,u,f),b=y(te,c,d),A=y(te+we,u,f);i=(m-b)/2,o=(x-A)/2,s=-(m+b)/2,r=-(x+A)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class LC extends gd{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Vt(i[e])){const{key:l="value"}=this._parsing;s=c=>+ur(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?de*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ld(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let N=0;N=A){U.skip=!0;continue}const H=this.getParsed(N),q=oe(H[p]),V=U[f]=r.getPixelForValue(H[f],N),et=U[p]=s||q?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,H,l):H[p],N);U.skip=isNaN(V)||isNaN(et)||q,U.stop=N>0&&Math.abs(H[f]-S[f])>x,m&&(U.parsed=H,U.raw=c.data[N]),d&&(U.options=u||this.resolveDataElementOptions(N,j.active?"active":o)),b||this.updateElement(j,N,U,o),S=H}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function Gi(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class vd{static override(e){Object.assign(vd.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return Gi()}parse(){return Gi()}format(){return Gi()}add(){return Gi()}diff(){return Gi()}startOf(){return Gi()}endOf(){return Gi()}}var DC={_date:vd};function NC(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?a4:oo;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const f=c(s,e,n-d),p=c(s,e,n+d);return{lo:f.lo,hi:p.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:f}=t,p=f.slice(0,u.lo+1).reverse().findIndex(m=>!oe(m[d.axis]));u.lo-=Math.max(0,p);const y=f.slice(u.hi).findIndex(m=>!oe(m[d.axis]));u.hi+=Math.max(0,y)}return u}}return{lo:0,hi:s.length-1}}function Ll(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var FC={modes:{index(t,e,n,i){const o=Ki(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=Ki(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?Tu(t,o,s,i,r):ku(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function hp(t,e){return t.filter(n=>y1.indexOf(n.pos)===-1&&n.box.axis===e)}function ms(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function jC(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=ms(gs(e,"left"),!0),o=ms(gs(e,"right")),s=ms(gs(e,"top"),!0),r=ms(gs(e,"bottom")),a=hp(e,"x"),l=hp(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:gs(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function fp(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function b1(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function zC(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Vt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&b1(r,s.getPadding());const a=Math.max(0,e.outerWidth-fp(r,t,"left","right")),l=Math.max(0,e.outerHeight-fp(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function HC(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function JC(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function Cs(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof m.beforeLayout=="function"&&m.beforeLayout()});const u=l.reduce((m,x)=>x.box.options&&x.box.options.display===!1?m:m+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),f=Object.assign({},o);b1(f,Cn(i));const p=Object.assign({maxPadding:f,w:s,h:r,x:o.left,y:o.top},o),y=VC(l.concat(c),d);Cs(a.fullSize,p,d,y),Cs(l,p,d,y),Cs(c,p,d,y)&&Cs(l,p,d,y),HC(p),pp(a.leftAndTop,p,d,y),p.x+=p.w,p.y+=p.h,pp(a.rightAndBottom,p,d,y),t.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Mt(a.chartArea,m=>{const x=m.box;Object.assign(x,t.chartArea),x.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class _1{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class WC extends _1{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const pa="$chartjs",GC={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},gp=t=>t===null||t==="";function qC(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[pa]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",gp(o)){const s=ep(t,"width");s!==void 0&&(t.width=s)}if(gp(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=ep(t,"height");s!==void 0&&(t.height=s)}return t}const w1=oC?{passive:!0}:!1;function KC(t,e,n){t&&t.addEventListener(e,n,w1)}function XC(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,w1)}function YC(t,e){const n=GC[t.type]||t.type,{x:i,y:o}=Ki(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function Ma(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function ZC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.addedNodes,i),r=r&&!Ma(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function QC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||Ma(a.removedNodes,i),r=r&&!Ma(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const fr=new Map;let mp=0;function x1(){const t=window.devicePixelRatio;t!==mp&&(mp=t,fr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function MC(t,e){fr.size||window.addEventListener("resize",x1),fr.set(t,e)}function tT(t){fr.delete(t),fr.size||window.removeEventListener("resize",x1)}function eT(t,e,n){const i=t.canvas,o=i&&pd(i);if(!o)return;const s=e1((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),MC(t,s),r}function Ru(t,e,n){n&&n.disconnect(),e==="resize"&&tT(t)}function nT(t,e,n){const i=t.canvas,o=e1(s=>{t.ctx!==null&&n(YC(s,t))},t);return KC(i,e,o),o}class iT extends _1{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(qC(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[pa])return!1;const i=n[pa].initial;["height","width"].forEach(s=>{const r=i[s];oe(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[pa],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:ZC,detach:QC,resize:eT}[n]||nT;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ru,detach:Ru,resize:Ru}[n]||XC)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return iC(e,n,i,o)}isAttached(e){const n=e&&pd(e);return!!(n&&n.isConnected)}}function oT(t){return!fd()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?WC:iT}let _o=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return cr(this.x)&&cr(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function sT(t,e){const n=t.options.ticks,i=rT(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?lT(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return uT(e,c,s,r/o),c;const u=aT(s,e,o);if(r>0){let d,f;const p=r>1?Math.round((l-a)/(r-1)):null;for(Zr(e,c,u,oe(p)?0:a-p,a),d=0,f=r-1;do)return l}return Math.max(o,1)}function lT(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,vp=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,yp=(t,e)=>Math.min(e||t,t);function bp(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function fT(t,e){Mt(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Dn(n,Dn(i,n)),max:Dn(i,Dn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){re(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=$4(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,f=u.highest.height,p=qe(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:p/(i-1),d+6>a&&(a=p/(i-(e.offset?.5:1)),l=this.maxHeight-vs(e.grid)-n.padding-_p(e.title,this.chart.options.font),c=Math.sqrt(d*d+f*f),r=o4(Math.min(Math.asin(qe((u.highest.height+6)/a,-1,1)),Math.asin(qe(l/c,-1,1))-Math.asin(qe(f/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){re(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){re(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=_p(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=vs(s)+l):(e.height=this.maxHeight,e.width=vs(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:f}=this._getLabelSizes(),p=i.padding*2,y=li(this.labelRotation),m=Math.cos(y),x=Math.sin(y);if(a){const b=i.mirror?0:x*d.width+m*f.height;e.height=Math.min(this.maxHeight,e.height+b+p)}else{const b=i.mirror?0:m*d.width+x*f.height;e.width=Math.min(this.maxWidth,e.width+b+p)}this._calculatePadding(c,u,x,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?c?(f=o*e.width,p=i*n.height):(f=i*e.height,p=o*n.width):s==="start"?p=n.width:s==="end"?f=e.width:s!=="inner"&&(f=e.width/2,p=n.width/2),this.paddingLeft=Math.max((f-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((p-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){re(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[q]||0,height:a[q]||0});return{first:H(0),last:H(n-1),widest:H(j),highest:H(U),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return r4(this._alignToPixels?Wi(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=vs(s),f=[],p=a.setContext(this.getContext()),y=p.display?p.width:0,m=y/2,x=function(M){return Wi(i,M,y)};let b,A,R,S,N,j,U,H,q,V,et,T;if(r==="top")b=x(this.bottom),j=this.bottom-d,H=b-m,V=x(e.top)+m,T=e.bottom;else if(r==="bottom")b=x(this.top),V=e.top,T=x(e.bottom)-m,j=b+m,H=this.top+d;else if(r==="left")b=x(this.right),N=this.right-d,U=b-m,q=x(e.left)+m,et=e.right;else if(r==="right")b=x(this.left),q=e.left,et=x(e.right)-m,N=b+m,U=this.left+d;else if(n==="x"){if(r==="center")b=x((e.top+e.bottom)/2+.5);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}V=e.top,T=e.bottom,j=b+m,H=j+d}else if(n==="y"){if(r==="center")b=x((e.left+e.right)/2);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];b=x(this.chart.scales[M].getPixelForValue(Z))}N=b-m,U=N-d,q=e.left,et=e.right}const F=Ot(o.ticks.maxTicksLimit,u),Q=Math.max(1,Math.ceil(u/F));for(A=0;A0&&(Et-=Pt/2);break}xt={left:Et,top:$t,width:Pt+gt.width,height:Gt+gt.height,color:M.backdropColor}}x.push({label:S,font:q,textOffset:T,options:{rotation:m,color:rt,strokeColor:lt,strokeWidth:ft,textAlign:pt,textBaseline:F,translation:[N,j],backdrop:xt}})}return x}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-li(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");pe.route(s,o,l,a)})}function _T(t){return"id"in t&&"defaults"in t}class wT{constructor(){this.controllers=new Qr(gd,"datasets",!0),this.elements=new Qr(_o,"elements"),this.plugins=new Qr(Object,"plugins"),this.scales=new Qr(Mo,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):Mt(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=sd(e);re(i["before"+o],[],i),n[e](i),re(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function ET(t){const e={},n=[],i=Object.keys($n.plugins.items);for(let s=0;s1&&wp(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function xp(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function PT(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return xp(t,"x",n[0])||xp(t,"y",n[0])}return{}}function LT(t,e){const n=po[t.type]||{scales:{}},i=e.scales||{},o=Ac(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Vt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Sc(r,a,PT(r,t),pe.scales[a.type]),c=kT(l,o),u=n.scales||{};s[r]=Us(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||Ac(a,e),c=(po[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=TT(u,l),f=r[d+"AxisID"]||d;s[f]=s[f]||Object.create(null),Us(s[f],[{axis:d},i[f],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];Us(a,[pe.scales[a.type],pe.scale])}),s}function E1(t){const e=t.options||(t.options={});e.plugins=Ot(e.plugins,{}),e.scales=LT(t,e)}function A1(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function DT(t){return t=t||{},t.data=A1(t.data),E1(t),t}const Ep=new Map,S1=new Set;function Mr(t,e){let n=Ep.get(t);return n||(n=e(),Ep.set(t,n),S1.add(n)),n}const ys=(t,e,n)=>{const i=ur(e,n);i!==void 0&&t.add(i)};class NT{constructor(e){this._config=DT(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=A1(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),E1(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Mr(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Mr(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Mr(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Mr(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>ys(l,e,d))),u.forEach(d=>ys(l,o,d)),u.forEach(d=>ys(l,po[s]||{},d)),u.forEach(d=>ys(l,pe,d)),u.forEach(d=>ys(l,wc,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),S1.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,po[n]||{},pe.datasets[n]||{},{type:n},pe,wc]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=Ap(this._resolverCache,e,o);let l=r;if($T(r,n)){s.$shared=!1,i=Ni(i)?i():i;const c=this.createResolver(e,i,a);l=qo(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=Ap(this._resolverCache,e,i);return Vt(n)?qo(s,n,void 0,o):s}}function Ap(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:cd(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const OT=t=>Vt(t)&&Object.getOwnPropertyNames(t).some(e=>Ni(t[e]));function $T(t,e){const{isScriptable:n,isIndexable:i}=s1(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&(Ni(a)||OT(a))||r&&Ae(a))return!0}return!1}var BT="4.5.1";const FT=["top","bottom","left","right","chartArea"];function Sp(t,e){return t==="top"||t==="bottom"||FT.indexOf(t)===-1&&e==="x"}function Cp(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Tp(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),re(n&&n.onComplete,[t],e)}function jT(t){const e=t.chart,n=e.options.animation;re(n&&n.onProgress,[t],e)}function C1(t){return fd()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ga={},kp=t=>{const e=C1(t);return Object.values(ga).filter(n=>n.canvas===e).pop()};function UT(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function VT(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let go=class{static defaults=pe;static instances=ga;static overrides=po;static registry=$n;static version=BT;static getChart=kp;static register(...t){$n.add(...t),Rp()}static unregister(...t){$n.remove(...t),Rp()}constructor(t,e){const n=this.config=new NT(e),i=C1(t),o=kp(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||oT(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=WS(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new xT,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=d4(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],ga[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Zn.listen(this,"complete",Tp),Zn.listen(this,"progress",jT),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return oe(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return $n}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():tp(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Zf(this.canvas,this.ctx),this}stop(){return Zn.stop(this),this}resize(t,e){Zn.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,tp(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),re(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};Mt(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=Sc(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),Mt(o,s=>{const r=s.options,a=r.id,l=Sc(a,r),c=Ot(r.type,s.dtype);(r.position===void 0||Sp(r.position,l)!==Sp(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=$n.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),Mt(i,(s,r)=>{s||delete n[r]}),Mt(n,s=>{Si.configure(this,s,s.options),Si.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Cp("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Mt(this.scales,t=>{Si.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!If(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;UT(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Si.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=g1(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&kl(e,i),t.controller.draw(),i&&Rl(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return hr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=FC.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=bo(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Xa(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Zn.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};Mt(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!qa(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=ZS(t),l=VT(t,this._lastEvent,n,a);n&&(this._lastEvent=null,re(o.onHover,[t,r,this],this),a&&re(o.onClick,[t,r,this],this));const c=!qa(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function Rp(){return Mt(go.instances,t=>t._plugins.invalidate())}function IT(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,rn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const f=Math.min(c/a,rn(i-n));t.arc(o,s,a+c/2,n-f/2,i+f/2,!0)}else{const f=Math.min(c/2,r*rn(i-n));if(u==="round")t.arc(o,s,f,n-te/2,i+te/2,!0);else if(u==="bevel"){const p=2*f*f,y=-p*Math.cos(n+te/2)+o,m=-p*Math.sin(n+te/2)+s,x=p*Math.cos(i+te/2)+o,b=p*Math.sin(i+te/2)+s;t.lineTo(y,m),t.lineTo(x,b)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function zT(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+we,i-we),t.closePath(),t.clip()}function HT(t){return ud(t,["outerStart","outerEnd","innerStart","innerEnd"])}function JT(t,e,n,i){const o=HT(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return qe(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:qe(o.innerStart,0,r),innerEnd:qe(o.innerEnd,0,r)}}function Lo(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function tl(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),f=u>0?u+i+n+c:0;let p=0;const y=o-l;if(i){const M=u>0?u-i:0,Z=d>0?d-i:0,rt=(M+Z)/2,lt=rt!==0?y*rt/(rt+i):y;p=(y-lt)/2}const m=Math.max(.001,y*d-n/te)/d,x=(y-m)/2,b=l+x+p,A=o-x-p,{outerStart:R,outerEnd:S,innerStart:N,innerEnd:j}=JT(e,f,d,A-b),U=d-R,H=d-S,q=b+R/U,V=A-S/H,et=f+N,T=f+j,F=b+N/et,Q=A-j/T;if(t.beginPath(),s){const M=(q+V)/2;if(t.arc(r,a,d,q,M),t.arc(r,a,d,M,V),S>0){const ft=Lo(H,V,r,a);t.arc(ft.x,ft.y,S,V,A+we)}const Z=Lo(T,A,r,a);if(t.lineTo(Z.x,Z.y),j>0){const ft=Lo(T,Q,r,a);t.arc(ft.x,ft.y,j,A+we,Q+Math.PI)}const rt=(A-j/f+(b+N/f))/2;if(t.arc(r,a,f,A-j/f,rt,!0),t.arc(r,a,f,rt,b+N/f,!0),N>0){const ft=Lo(et,F,r,a);t.arc(ft.x,ft.y,N,F+Math.PI,b-we)}const lt=Lo(U,b,r,a);if(t.lineTo(lt.x,lt.y),R>0){const ft=Lo(U,q,r,a);t.arc(ft.x,ft.y,R,b-we,q)}}else{t.moveTo(r,a);const M=Math.cos(q)*d+r,Z=Math.sin(q)*d+a;t.lineTo(M,Z);const rt=Math.cos(V)*d+r,lt=Math.sin(V)*d+a;t.lineTo(rt,lt)}t.closePath()}function WT(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){tl(t,e,n,i,l,o);for(let c=0;c=te&&p===0&&u!=="miter"&&IT(t,e,m),s||(tl(t,e,n,i,m,o),t.stroke())}class qT extends _o{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Qm(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),f=(this.options.spacing+this.options.borderWidth)/2,p=Ot(d,l-a),y=dr(s,a,l)&&a!==l,m=p>=de||y,x=io(r,c+f,u+f);return m&&x}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>de?Math.floor(i/de):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(te,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,WT(e,this,c,s,r),GT(e,this,c,s,r),e.restore()}}function T1(t,e,n=e){t.lineCap=Ot(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ot(n.borderDash,e.borderDash)),t.lineDashOffset=Ot(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ot(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ot(n.borderWidth,e.borderWidth),t.strokeStyle=Ot(n.borderColor,e.borderColor)}function KT(t,e,n){t.lineTo(n.x,n.y)}function XT(t){return t.stepped?S4:t.tension||t.cubicInterpolationMode==="monotone"?C4:KT}function k1(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-S:S))%s,R=()=>{m!==x&&(t.lineTo(u,x),t.lineTo(u,m),t.lineTo(u,b))};for(l&&(p=o[A(0)],t.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=o[A(f)],p.skip)continue;const S=p.x,N=p.y,j=S|0;j===y?(Nx&&(x=N),u=(d*u+S)/++d):(R(),t.lineTo(S,N),y=j,d=0,m=x=N),b=N}R()}function Cc(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?ZT:YT}function QT(t){return t.stepped?sC:t.tension||t.cubicInterpolationMode==="monotone"?rC:Xi}function MT(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),T1(t,e.options),t.stroke(o)}function t3(t,e,n,i){const{segments:o,options:s}=e,r=Cc(e);for(const a of o)T1(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const e3=typeof Path2D=="function";function n3(t,e,n,i){e3&&!e.options.segment?MT(t,e,n,i):t3(t,e,n,i)}class Er extends _o{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;Z4(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=hC(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=p1(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=QT(i);let c,u;for(c=0,u=r.length;c{a=Dl(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function Dl(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Lp(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function P1(t,e){let n=[],i=!1;return Ae(t)?(i=!0,n=t):n=o3(t,e),n.length?new Er({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Dp(t){return t&&t.fill!==!1}function s3(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ve(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function r3(t,e,n){const i=c3(t);if(Vt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ve(o)&&Math.floor(o)===o?a3(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function a3(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function l3(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Vt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function u3(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Vt(t)?i=t.value:i=e.getBaseValue(),i}function c3(t){const e=t.options,n=e.fill;let i=Ot(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function d3(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=h3(e,n);a.push(P1({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&Pu(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;Dp(s)&&Pu(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Dp(i)||n.drawTime!=="beforeDatasetDraw"||Pu(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Bp=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},x3=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Fp extends _o{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=re(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=Me(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Bp(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let f=-1,p=-u;return this.legendItems.forEach((y,m)=>{const x=i+n/2+s.measureText(y.text).width;(m===0||c[c.length-1]+x+2*a>r)&&(d+=u,c[c.length-(m>0?0:1)]=0,p+=u,f++),l[m]={left:0,top:p,row:f,width:x,height:o},c[c.length-1]+=x+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,f=0,p=0,y=0,m=0;return this.legendItems.forEach((x,b)=>{const{itemWidth:A,itemHeight:R}=E3(i,n,s,x,o);b>0&&p+R+2*a>u&&(d+=f+a,c.push({width:f,height:p}),y+=f+a,m++,f=p=0),l[b]={left:y,top:p,col:m,width:A,height:R},f=Math.max(f,A),p+=R+a}),d+=f,c.push({width:f,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=Ho(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=sn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=sn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;kl(e,this),this._draw(),Rl(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=pe.color,l=Ho(e.rtl,this.left,this.width),c=Me(r.font),{padding:u}=r,d=c.size,f=d/2;let p;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:y,boxHeight:m,itemHeight:x}=Bp(r,d),b=function(j,U,H){if(isNaN(y)||y<=0||isNaN(m)||m<0)return;o.save();const q=Ot(H.lineWidth,1);if(o.fillStyle=Ot(H.fillStyle,a),o.lineCap=Ot(H.lineCap,"butt"),o.lineDashOffset=Ot(H.lineDashOffset,0),o.lineJoin=Ot(H.lineJoin,"miter"),o.lineWidth=q,o.strokeStyle=Ot(H.strokeStyle,a),o.setLineDash(Ot(H.lineDash,[])),r.usePointStyle){const V={radius:m*Math.SQRT2/2,pointStyle:H.pointStyle,rotation:H.rotation,borderWidth:q},et=l.xPlus(j,y/2),T=U+f;o1(o,V,et,T,r.pointStyleWidth&&y)}else{const V=U+Math.max((d-m)/2,0),et=l.leftForLtr(j,y),T=Hs(H.borderRadius);o.beginPath(),Object.values(T).some(F=>F!==0)?Ec(o,{x:et,y:V,w:y,h:m,radius:T}):o.rect(et,V,y,m),o.fill(),q!==0&&o.stroke()}o.restore()},A=function(j,U,H){Za(o,H.text,j,U+x/2,c,{strikethrough:H.hidden,textAlign:l.textAlign(H.textAlign)})},R=this.isHorizontal(),S=this._computeTitleHeight();R?p={x:sn(s,this.left+u,this.right-i[0]),y:this.top+u+S,line:0}:p={x:this.left+u,y:sn(s,this.top+S+u,this.bottom-n[0].height),line:0},c1(this.ctx,e.textDirection);const N=x+u;this.legendItems.forEach((j,U)=>{o.strokeStyle=j.fontColor,o.fillStyle=j.fontColor;const H=o.measureText(j.text).width,q=l.textAlign(j.textAlign||(j.textAlign=r.textAlign)),V=y+f+H;let et=p.x,T=p.y;l.setWidth(this.width),R?U>0&&et+V+u>this.right&&(T=p.y+=N,p.line++,et=p.x=sn(s,this.left+u,this.right-i[p.line])):U>0&&T+N>this.bottom&&(et=p.x=et+n[p.line].width+u,p.line++,T=p.y=sn(s,this.top+S+u,this.bottom-n[p.line].height));const F=l.x(et);if(b(F,T,j),et=h4(q,et+y+f,R?et+V:this.right,e.rtl),A(l.x(et),T,j),R)p.x+=V+u;else if(typeof j.text!="string"){const Q=c.lineHeight;p.y+=N1(j,Q)+u}else p.y+=N}),d1(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=Me(n.font),o=Cn(n.padding);if(!n.display)return;const s=Ho(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),u=this.top+c,d=sn(e.align,d,this.right-f);else{const y=this.columnSizes.reduce((m,x)=>Math.max(m,x.height),0);u=c+sn(e.align,this.top,this.bottom-y-e.labels.padding-this._computeTitleHeight())}const p=sn(a,d,d+f);r.textAlign=s.textAlign(n1(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,Za(r,n.text,p,u,i)}_computeTitleHeight(){const e=this.options.title,n=Me(e.font),i=Cn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(io(e,this.left,this.right)&&io(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function S3(t,e,n){let i=t;return typeof e.text!="string"&&(i=N1(e,n)),i}function N1(t,e){const n=t.text?t.text.length:0;return e*n}function C3(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var T3={id:"legend",_element:Fp,start(t,e,n){const i=t.legend=new Fp({ctx:t.ctx,options:n,chart:t});Si.configure(t,i,n),Si.addBox(t,i)},stop(t){Si.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Si.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Cn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const Ts={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s{document.readyState==="complete"||document.readyState==="interactive"?(e.context.level=window._oc_config?.loglevel??me.Warn,window._oc_debug&&(e.context.level=me.Debug),document.removeEventListener("readystatechange",n)):document.addEventListener("readystatechange",n)};return n(),this}build(){return this.context.level===void 0&&this.detectLogLevel(),this.factory(this.context)}}function IE(){return new VE(UE)}const zE=IE().detectUser().setApp("@nextcloud/vue").build(),Ja=Y_(),HE=Pt({name:"NcPopoverTriggerProvider",provide(){return{"NcPopover:trigger:shown":()=>this.shown,"NcPopover:trigger:attrs":()=>this.triggerAttrs}},props:{shown:{type:Boolean,required:!0},popupRole:{type:String,default:void 0}},computed:{triggerAttrs(){return{"aria-haspopup":this.popupRole,"aria-expanded":this.shown.toString()}}},render(){return this.$slots.default?.({attrs:this.triggerAttrs})}}),JE="_ncPopover_zfWgY",WE={"material-design-icon":"_material-design-icon_bkeq-",ncPopover:JE},Vm="nc-popover-9";bf.themes[Vm]=structuredClone(bf.themes.dropdown);const GE={name:"NcPopover",components:{Dropdown:fE,NcPopoverTriggerProvider:HE},props:{boundary:{type:[String,Object],default:""},closeOnClickOutside:{type:Boolean,default:!0},noCloseOnClickOutside:{type:Boolean,default:!1},container:{type:[Boolean,String],default:"body"},delay:{type:[Number,Object],default:0},noFocusTrap:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},popoverBaseClass:{type:String,default:""},popoverTriggers:{type:[Array,Object],default:null},popupRole:{type:String,default:void 0,validator:t=>["menu","listbox","tree","grid","dialog","true"].includes(t)},setReturnFocus:{default:void 0,type:[Boolean,HTMLElement,SVGElement,String,Function]},shown:{type:Boolean,default:!1},triggers:{type:[Array,Object],default:()=>["click"]}},emits:["afterShow","afterHide","update:shown"],setup(){return{theme:Vm}},data(){return{internalShown:this.shown}},computed:{popperTriggers(){if(this.popoverTriggers&&Array.isArray(this.popoverTriggers))return this.popoverTriggers},popperHideTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.hide},popperShowTriggers(){if(this.popoverTriggers&&typeof this.popoverTriggers=="object")return this.popoverTriggers.show},internalTriggers(){if(this.triggers&&Array.isArray(this.triggers))return this.triggers},hideTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.hide},showTriggers(){if(this.triggers&&typeof this.triggers=="object")return this.triggers.show},internalPlacement(){return this.placement==="start"?Ja?"right":"left":this.placement==="end"?Ja?"left":"right":this.placement}},watch:{shown(t){this.internalShown=t},internalShown(t){this.$emit("update:shown",t)}},mounted(){this.checkTriggerA11y()},beforeUnmount(){this.clearFocusTrap(),this.clearEscapeStopPropagation()},methods:{checkTriggerA11y(){window.OC?.debug&&this.getPopoverTriggerContainerElement().querySelector("[aria-expanded]")},removeFloatingVueAriaDescribedBy(){const t=this.getPopoverTriggerContainerElement().querySelectorAll("[data-popper-shown]");for(const e of t)e.removeAttribute("aria-describedby")},getPopoverContentElement(){return this.$refs.popover?.$refs.popperContent?.$el},getPopoverTriggerContainerElement(){return this.$refs.popover?.$refs.popper?.$refs.reference},async useFocusTrap(){if(await this.$nextTick(),this.noFocusTrap)return;const t=this.getPopoverContentElement();t.tabIndex=-1,t&&(this.$focusTrap=gm(t,{escapeDeactivates:!1,allowOutsideClick:!0,setReturnFocus:this.setReturnFocus,trapStack:nr(),fallBackFocus:t}),this.$focusTrap.activate())},clearFocusTrap(t={}){try{this.$focusTrap?.deactivate(t),this.$focusTrap=null}catch(e){zE.warn("[NcPopover] Failed to clear focus trap",{error:e})}},addEscapeStopPropagation(){this.getPopoverContentElement()?.addEventListener("keydown",this.stopKeydownEscapeHandler)},clearEscapeStopPropagation(){this.getPopoverContentElement()?.removeEventListener("keydown",this.stopKeydownEscapeHandler)},stopKeydownEscapeHandler(t){t.type==="keydown"&&t.key==="Escape"&&t.stopPropagation()},async afterShow(){this.getPopoverContentElement().addEventListener("transitionend",()=>{this.$emit("afterShow")},{once:!0,passive:!0}),this.removeFloatingVueAriaDescribedBy(),await this.$nextTick(),await this.useFocusTrap(),this.addEscapeStopPropagation()},afterHide(){this.getPopoverContentElement()?.addEventListener("transitionend",()=>{this.$emit("afterHide")},{once:!0,passive:!0}),this.clearFocusTrap(),this.clearEscapeStopPropagation()}}};function qE(t,e,n,i,o,s){const r=Zs("NcPopoverTriggerProvider"),a=Zs("Dropdown");return D(),xt(a,{ref:"popover",shown:o.internalShown,"onUpdate:shown":[e[0]||(e[0]=l=>o.internalShown=l),e[1]||(e[1]=l=>o.internalShown=l)],arrowPadding:10,autoHide:!n.noCloseOnClickOutside&&n.closeOnClickOutside,boundary:n.boundary||void 0,container:n.container,delay:n.delay,distance:10,handleResize:"",noAutoFocus:!0,placement:s.internalPlacement,popperClass:[t.$style.ncPopover,n.popoverBaseClass],popperTriggers:s.popperTriggers,popperHideTriggers:s.popperHideTriggers,popperShowTriggers:s.popperShowTriggers,theme:i.theme,triggers:s.internalTriggers,hideTriggers:s.hideTriggers,showTriggers:s.showTriggers,onApplyShow:s.afterShow,onApplyHide:s.afterHide},{popper:Tt(l=>[Qt(t.$slots,"default",Iu(Ra(l)))]),default:Tt(()=>[nt(r,{shown:o.internalShown,popupRole:n.popupRole},{default:Tt(l=>[Qt(t.$slots,"trigger",Iu(Ra(l)))]),_:3},8,["shown","popupRole"])]),_:3},8,["shown","autoHide","boundary","container","delay","placement","popperClass","popperTriggers","popperHideTriggers","popperShowTriggers","theme","triggers","hideTriggers","showTriggers","onApplyShow","onApplyHide"])}const KE={$style:WE},Lf=ze(GE,[["render",qE],["__cssModules",KE]]),XE=Symbol.for("NcActions:isSemanticMenu"),YE=Symbol.for("NcActions:closeMenu"),ZE={name:"DotsHorizontalIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},QE=["aria-hidden","aria-label"],ME=["fill","width","height"],tS={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"},eS={key:0};function nS(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon dots-horizontal-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",tS,[n.title?(D(),z("title",eS,L(n.title),1)):bt("",!0)])],8,ME))],16,QE)}const iS=ze(ZE,[["render",nS]]);wr(Sw);function Im(t){return Array.isArray(t)&&t.some(e=>{if(e===null)return!1;if(typeof e=="object"){const n=e;if(n.type===Ce||n.type===Et&&!Im(n.children)||n.type===br&&!n.children.trim())return!1}return!0})}const oS=".focusable",sS={name:"NcActions",components:{NcButton:Hn,NcPopover:Lf},provide(){return{[XE]:ct(()=>this.actionsMenuSemanticType==="menu"),[YE]:this.closeMenu}},props:{open:{type:Boolean,default:!1},manualOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},forceName:{type:Boolean,default:!1},menuName:{type:String,default:null},primary:{type:Boolean,default:!1},defaultIcon:{type:String,default:""},ariaLabel:{type:String,default:Ge("Actions")},placement:{type:String,default:"bottom"},boundariesElement:{type:Element,default:()=>document.getElementById("content-vue")??document.querySelector("body")},container:{type:[Boolean,String,Object,Element],default:"body"},disabled:{type:Boolean,default:!1},inline:{type:Number,default:0},variant:{type:String,validator(t){return["primary","secondary","tertiary","tertiary-no-background","tertiary-on-primary","error","warning","success"].includes(t)},default:null},wide:{type:Boolean,default:!1},size:{type:String,default:"normal",validator(t){return["small","normal","large"].includes(t)}}},emits:["click","blur","focus","close","closed","open","opened","update:open"],setup(){return{randomId:Mo()}},data(){return{opened:this.open,focusIndex:0,actionsMenuSemanticType:"unknown"}},computed:{triggerButtonVariant(){return this.variant||(this.primary?"primary":this.menuName?"secondary":"tertiary")},config(){return{menu:{popupRole:"menu",withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!1},navigation:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!1},dialog:{popupRole:"dialog",withArrowNavigation:!1,withTabNavigation:!0,withFocusTrap:!0},tooltip:{popupRole:void 0,withArrowNavigation:!1,withTabNavigation:!1,withFocusTrap:!1},unknown:{popupRole:void 0,role:void 0,withArrowNavigation:!0,withTabNavigation:!1,withFocusTrap:!0}}[this.actionsMenuSemanticType]},withFocusTrap(){return this.config.withFocusTrap}},watch:{open(t){t!==this.opened&&(this.opened=t)},opened(){this.opened?document.body.addEventListener("keydown",this.handleEscapePressed):document.body.removeEventListener("keydown",this.handleEscapePressed)}},created(){v2(()=>this.opened,{disabled:()=>this.config.withFocusTrap}),"ariaHidden"in this.$attrs},methods:{getActionName(t){return t?.type?.name},isValidSingleAction(t){return["NcActionButton","NcActionLink","NcActionRouter"].includes(this.getActionName(t))},isAction(t){return this.getActionName(t)?.startsWith?.("NcAction")},isIconUrl(t){try{return!!new URL(t,t.startsWith("/")?window.location.origin:void 0)}catch{return!1}},toggleMenu(t){t?this.openMenu():this.closeMenu()},openMenu(){this.opened||(this.opened=!0,this.$emit("update:open",!0),this.$emit("open"))},async closeMenu(t=!0){this.opened&&(await this.$nextTick(),this.opened=!1,this.$refs.popover?.clearFocusTrap({returnFocus:t}),this.$emit("update:open",!1),this.$emit("close"),this.focusIndex=0,t&&this.$refs.triggerButton?.$el.focus())},onOpened(){this.$nextTick(()=>{this.focusFirstAction(null),this.$emit("opened")})},onClosed(){this.$emit("closed")},getCurrentActiveMenuItemElement(){return this.$refs.menu.querySelector("li.active")},getFocusableMenuItemElements(){return this.$refs.menu.querySelectorAll(oS)},onKeydown(t){if(t.key==="Tab"){if(this.config.withFocusTrap)return;if(!this.config.withTabNavigation){this.closeMenu(!0);return}t.preventDefault();const e=this.getFocusableMenuItemElements(),n=[...e].indexOf(document.activeElement);if(n===-1)return;const i=t.shiftKey?n-1:n+1;(i<0||i===e.length)&&this.closeMenu(!0),this.focusIndex=i,this.focusAction();return}this.config.withArrowNavigation&&(t.key==="ArrowUp"&&this.focusPreviousAction(t),t.key==="ArrowDown"&&this.focusNextAction(t),t.key==="PageUp"&&this.focusFirstAction(t),t.key==="PageDown"&&this.focusLastAction(t)),this.handleEscapePressed(t)},onTriggerKeydown(t){t.key==="Escape"&&this.actionsMenuSemanticType==="tooltip"&&this.closeMenu()},handleEscapePressed(t){t.key==="Escape"&&(this.closeMenu(),t.preventDefault())},removeCurrentActive(){const t=this.$refs.menu.querySelector("li.active");t&&t.classList.remove("active")},focusAction(){const t=this.getFocusableMenuItemElements()[this.focusIndex];if(t){this.removeCurrentActive();const e=t.closest("li.action");t.focus(),e&&e.classList.add("active")}},focusPreviousAction(t){this.opened&&(this.focusIndex===0?this.focusLastAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex-1),this.focusAction())},focusNextAction(t){if(this.opened){const e=this.getFocusableMenuItemElements().length-1;this.focusIndex===e?this.focusFirstAction(t):(this.preventIfEvent(t),this.focusIndex=this.focusIndex+1),this.focusAction()}},focusFirstAction(t){if(this.opened){this.preventIfEvent(t);const e=[...this.getFocusableMenuItemElements()].findIndex(n=>n.getAttribute("aria-checked")==="true"&&n.getAttribute("role")==="menuitemradio");this.focusIndex=e>-1?e:0,this.focusAction()}},focusLastAction(t){this.opened&&(this.preventIfEvent(t),this.focusIndex=this.getFocusableMenuItemElements().length-1,this.focusAction())},preventIfEvent(t){t&&(t.preventDefault(),t.stopPropagation())},onFocus(t){this.$emit("focus",t)},onBlur(t){this.$emit("blur",t),this.actionsMenuSemanticType==="tooltip"&&this.$refs.menu&&this.getFocusableMenuItemElements().length===0&&this.closeMenu(!1)},onClick(t){this.$emit("click",t)}},render(){const t=[],e=(p,y)=>{p.forEach(m=>{if(this.isAction(m)){y.push(m);return}m.type===Et&&e(m.children,y)})};if(e(this.$slots.default?.(),t),t.length===0)return;let n=t.filter(this.isValidSingleAction);this.forceMenu&&n.length>0&&this.inline>0&&(n=[]);const i=n.slice(0,this.inline),o=t.filter(p=>!i.includes(p)),s=["NcActionButton","NcActionButtonGroup","NcActionCheckbox","NcActionRadio"],r=["NcActionInput","NcActionTextEditable"],a=["NcActionLink","NcActionRouter"],l=o.some(p=>r.includes(this.getActionName(p))),c=o.some(p=>s.includes(this.getActionName(p))),u=o.some(p=>a.includes(this.getActionName(p)));l?this.actionsMenuSemanticType="dialog":c?this.actionsMenuSemanticType="menu":u?this.actionsMenuSemanticType="navigation":t.filter(p=>this.getActionName(p).startsWith("NcAction")).length===t.length?this.actionsMenuSemanticType="tooltip":this.actionsMenuSemanticType="unknown";const d=p=>{const y=p?.props?.icon,m=p?.children?.icon?.()?.[0]??(this.isIconUrl(y)?Oe("img",{class:"action-item__menutoggle__icon",src:y,alt:""}):Oe("span",{class:["icon",y]})),x=p?.children?.default?.()?.[0]?.children?.trim(),_=this.forceName?x:"";let S=p?.props?.title;this.forceName||S||(S=x);const P={...p?.props??{}},A=["submit","reset"].includes(P.type)?P.modelValue:"button";return delete P.modelValue,delete P.type,Oe(Hn,te(P,{class:["action-item action-item--single",{"action-item--wide":this.wide}],"aria-label":p?.props?.["aria-label"]||x,title:S,disabled:this.disabled||p?.props?.disabled,pressed:p?.props?.modelValue,size:this.size,type:A,wide:this.wide,variant:this.variant||(_?"secondary":"tertiary"),onFocus:this.onFocus,onBlur:this.onBlur,"onUpdate:pressed":p?.props?.["onUpdate:modelValue"]??(()=>{})}),{default:()=>_,icon:()=>m})},f=p=>{const y=Im(this.$slots.icon?.())?this.$slots.icon?.():this.defaultIcon?Oe("span",{class:["icon",this.defaultIcon]}):Oe(iS,{size:20}),m=`${this.randomId}-trigger`;return Oe(Lf,{ref:"popover",delay:0,shown:this.opened,placement:this.placement,boundary:this.boundariesElement,autoBoundaryMaxSize:!0,container:this.container,...this.manualOpen&&{triggers:[]},noCloseOnClickOutside:this.manualOpen,popoverBaseClass:"action-item__popper",popupRole:this.config.popupRole,setReturnFocus:this.config.withFocusTrap?this.$refs.triggerButton?.$el:void 0,noFocusTrap:!this.config.withFocusTrap,"onUpdate:shown":this.toggleMenu,onAfterShow:this.onOpened,onAfterClose:this.onClosed},{trigger:()=>Oe(Hn,{id:m,class:"action-item__menutoggle",disabled:this.disabled,size:this.size,variant:this.triggerButtonVariant,wide:this.wide,ref:"triggerButton","aria-label":this.menuName?null:this.ariaLabel,"aria-controls":this.opened&&this.config.popupRole?this.randomId:null,onFocus:this.onFocus,onBlur:this.onBlur,onClick:this.onClick,onKeydown:this.onTriggerKeydown},{icon:()=>y,default:()=>this.menuName}),default:()=>Oe("div",{class:{open:this.opened},tabindex:"-1",onKeydown:this.onKeydown,ref:"menu"},[Oe("ul",{id:this.randomId,tabindex:"-1",ref:"menuList",role:this.config.popupRole,"aria-labelledby":m,"aria-modal":this.actionsMenuSemanticType==="dialog"?"true":void 0},[p])])})};return t.length===1&&n.length===1&&!this.forceMenu?d(t[0]):(this.$nextTick(()=>{this.opened&&this.$refs.menu&&(this.$refs.menu.querySelector("li.active")||[]).length===0&&this.focusFirstAction()}),i.length>0&&this.inline>0?Oe("div",{class:["action-items",`action-item--${this.triggerButtonVariant}`]},[...i.map(d),o.length>0?Oe("div",{class:["action-item",{"action-item--open":this.opened}]},[f(o)]):null]):Oe("div",{class:["action-item action-item--default-popover",`action-item--${this.triggerButtonVariant}`,{"action-item--open":this.opened,"action-item--wide":this.wide}]},[f(t)]))}},rS=ze(sS,[["__scopeId","data-v-23e5cae7"]]),aS=/mac|ipad|iphone|darwin/i.test(navigator.userAgent),lS=window.OCP?.Accessibility?.disableKeyboardShortcuts?.(),uS=/^[a-zA-Z0-9]$/,cS=/^[^\x20-\x7F]$/;function dS(t,e){return!(t.target instanceof HTMLElement)||t.target instanceof HTMLInputElement||t.target instanceof HTMLTextAreaElement||t.target instanceof HTMLSelectElement||t.target.isContentEditable?!0:e.allowInModal?!1:Array.from(document.getElementsByClassName("modal-mask")).filter(n=>n.checkVisibility()).length>0}function Df(t,e){return n=>{if((aS?n.metaKey:n.ctrlKey)===!!e.ctrl){if(n.altKey!==!!e.alt||e.shift!==void 0&&n.shiftKey!==!!e.shift||dS(n,e))return;e.prevent&&n.preventDefault(),e.stop&&n.stopPropagation(),t(n)}}}function Nf(t,e=()=>{},n={}){if(lS)return()=>{};const i=(a,l)=>{if(a.key===l)return!0;if(n.caseSensitive){const c=l===l.toLowerCase(),u=a.key===a.key.toLowerCase();if(c!==u)return!1}return uS.test(l)&&cS.test(a.key)?a.code.replace(/^(?:Key|Digit|Numpad)/,"")===l.toUpperCase():a.key.toLowerCase()===l.toLowerCase()},o=a=>typeof t=="function"?t(a):typeof t=="string"?i(a,t):Array.isArray(t)?t.some(l=>i(a,l)):!0,s=Gh(o,Df(e,n),{eventName:"keydown",dedupe:!0,passive:!n.prevent}),r=n.push?Gh(o,Df(e,n),{eventName:"keyup",passive:!n.prevent}):()=>{};return()=>{s(),r()}}function hS(t=document.body){const e=window.getComputedStyle(t).getPropertyValue("--background-invert-if-dark");return e!==void 0?e==="invert(100%)":!1}hS();const fS=fe(zm());window.addEventListener("resize",()=>{fS.value=zm()});function zm(){return window.outerHeight===window.screen.height}const Mc=1024,Hm=Mc/2,Wa=t=>document.documentElement.clientWidth{pS.value=Wa(Mc),gS.value=Wa(Hm)},{passive:!0});function Of(t){return!t.parent||"vapor"in t||"vapor"in t.parent||t.parent.subTree!==t.vnode?null:t.parent}function mS(t){const e=[t];let n=Of(t);for(;n;)e.push(n),n=Of(n);return e}function vS(){const t=Kn();if(!t)throw new Error("useScopeId must be called within a setup context");const e=mS(t).map(n=>n.vnode.scopeId).filter(Boolean);return Object.fromEntries(e.map(n=>[n,""]))}wr(Aw,kw);const yS=["aria-labelledby","aria-describedby"],bS=["data-theme-light","data-theme-dark"],_S=["id"],wS={class:"icons-menu"},xS=["title"],ES=["id"],SS={class:"modal-container__content"},AS=Pt({inheritAttrs:!1,__name:"NcModal",props:Go({name:{default:""},hasPrevious:{type:Boolean},hasNext:{type:Boolean},outTransition:{type:Boolean},enableSlideshow:{type:Boolean},slideshowDelay:{default:5e3},slideshowPaused:{type:Boolean},disableSwipe:{type:Boolean},spreadNavigation:{type:Boolean},size:{default:"normal"},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},dark:{type:Boolean},lightBackdrop:{type:Boolean},container:{default:"body"},closeButtonOutside:{type:Boolean},additionalTrapElements:{default:()=>[]},inlineActions:{default:0},labelId:{default:""},setReturnFocus:{default:void 0}},{show:{type:Boolean,default:!0},showModifiers:{}}),emits:Go(["next","previous","close","update:show"],["update:show"]),setup(t,{emit:e}){Al(I=>({v046d2bb2:_.value,v71f7c020:y.value}));const n=Vc(t,"show"),i=t,o=e,s=vS(),r=Mo(),a=Ku("mask");let l;qn(()=>q()),Xe(()=>i.additionalTrapElements,I=>{l&&l.updateContainerElements([a.value,...I])});const{isActive:c,pause:u,resume:d}=fx(S,eo(()=>i.slideshowDelay),{immediate:!1}),f=fe(0),p=fe(!1);ig(()=>{p.value&&!i.slideshowPaused?d():c.value&&u()});const y=ct(()=>`${i.slideshowDelay}ms`),{stop:m}=wx(a,{onSwipeEnd:A});qn(m),Nf("Escape",()=>{nr().at(-1)===l&&U()},{allowInModal:!0}),Nf(["ArrowLeft","ArrowRight"],I=>{document.activeElement&&!a.value.contains(document.activeElement)||(I.key==="ArrowLeft"!==Ja?P():S())},{allowInModal:!0});const x=xl(),_=ct(()=>{let I=0;return i.hasNext&&i.enableSlideshow&&I++,!i.noClose&&i.closeButtonOutside&&I++,x.actions&&I++,I});Bi(()=>{!i.name&&i.labelId});function S(I){if(!i.hasNext){p.value=!1;return}I&&c.value&&O(),o("next",I)}function P(I){i.hasPrevious&&(I&&c.value&&O(),o("previous",I))}function A(I,et){if(!i.disableSwipe){if(et!=="left"&&et!=="right")return;et==="left"!==Ja?S(I):P(I)}}function O(){u(),d(),f.value++}function U(I){i.noClose||(n.value=!1,setTimeout(()=>{o("close",I)},300))}function V(I){i.closeOnClickOutside&&U(I)}async function J(){if(l)return;await yr();const I={allowOutsideClick:!0,fallbackFocus:a.value,trapStack:nr(),escapeDeactivates:!1,setReturnFocus:i.setReturnFocus};l=gm([a.value,...i.additionalTrapElements],I),l.activate()}function q(){l&&(l?.deactivate(),l=void 0)}return(I,et)=>(D(),xt(By,{disabled:t.container===null,to:t.container},[nt(us,{name:"fade",appear:"",onAfterEnter:J,onBeforeLeave:q},{default:Tt(()=>[ws(b("div",te({...I.$attrs,...E(s)},{ref:"mask",class:["modal-mask",{"modal-mask--opaque":t.dark||t.closeButtonOutside||t.hasPrevious||t.hasNext,"modal-mask--light":t.lightBackdrop}],role:"dialog","aria-modal":"true","aria-labelledby":t.labelId||`modal-name-${E(r)}`,"aria-describedby":"modal-description-"+E(r),tabindex:"-1"}),[nt(us,{name:"fade-visibility",appear:""},{default:Tt(()=>[b("div",{class:"modal-header","data-theme-light":t.lightBackdrop,"data-theme-dark":!t.lightBackdrop},[t.name.trim()!==""?(D(),z("h2",{key:0,id:"modal-name-"+E(r),class:"modal-header__name"},L(t.name),9,_S)):bt("",!0),b("div",wS,[t.hasNext&&t.enableSlideshow?(D(),z("button",{key:0,class:Xt(["play-pause-icons",{"play-pause-icons--paused":t.slideshowPaused}]),title:E(c)?E(Ge)("Pause slideshow"):E(Ge)("Start slideshow"),type:"button",onClick:et[0]||(et[0]=T=>p.value=!p.value)},[nt(In,{class:"play-pause-icons__icon",inline:"",name:E(c)?E(Ge)("Pause slideshow"):E(Ge)("Start slideshow"),path:E(c)?E(Hw):E(Jw)},null,8,["name","path"]),E(c)?(D(),z("svg",{key:`${E(r)}-animation-${f.value}`,class:"progress-ring",height:"50",width:"50"},[...et[1]||(et[1]=[b("circle",{class:"progress-ring__circle",stroke:"white","stroke-width":"2",fill:"transparent",r:"15",cx:"25",cy:"25"},null,-1)])])):bt("",!0)],10,xS)):bt("",!0),nt(rS,{class:"header-actions",inline:t.inlineActions},{default:Tt(()=>[Qt(I.$slots,"actions",{},void 0,!0)]),_:3},8,["inline"]),!t.noClose&&t.closeButtonOutside?(D(),xt(Hn,{key:1,"aria-label":E(Ge)("Close"),class:"header-close",variant:"tertiary",onClick:U},{icon:Tt(()=>[nt(In,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):bt("",!0)])],8,bS)]),_:3}),nt(us,{name:`modal-${t.outTransition?"out":"in"}`,appear:""},{default:Tt(()=>[ws(b("div",{class:Xt(["modal-wrapper",[`modal-wrapper--${t.size}`,{"modal-wrapper--spread-navigation":t.spreadNavigation}]]),onMousedown:r_(V,["self"])},[nt(us,{name:"fade-visibility",appear:""},{default:Tt(()=>[ws(nt(Hn,{"aria-label":E(Ge)("Previous"),class:"prev",variant:"tertiary-no-background",onClick:P},{icon:Tt(()=>[nt(In,{directional:"",path:E(jw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasPrevious]])]),_:1}),b("div",{id:"modal-description-"+E(r),class:"modal-container"},[b("div",SS,[Qt(I.$slots,"default",{},void 0,!0)]),!t.noClose&&!t.closeButtonOutside?(D(),xt(Hn,{key:0,"aria-label":E(Ge)("Close"),class:"modal-container__close",variant:"tertiary",onClick:U},{icon:Tt(()=>[nt(In,{path:E(Wh)},null,8,["path"])]),_:1},8,["aria-label"])):bt("",!0)],8,ES),nt(us,{name:"fade-visibility",appear:""},{default:Tt(()=>[ws(nt(Hn,{"aria-label":E(Ge)("Next"),class:"next",variant:"tertiary-no-background",onClick:S},{icon:Tt(()=>[nt(In,{directional:"",path:E(Uw),size:40},null,8,["path"])]),_:1},8,["aria-label"]),[[jr,t.hasNext]])]),_:1})],34),[[jr,n.value]])]),_:3},8,["name"])],16,yS),[[jr,n.value]])]),_:3})],8,["disabled","to"]))}}),CS=ze(AS,[["__scopeId","data-v-3c357e2d"]]),TS=["id","textContent"],kS=["aria-label","aria-labelledby"],PS={class:"dialog__text"},RS={class:"dialog__actions"},LS=Pt({__name:"NcDialog",props:Go({name:{},message:{default:""},additionalTrapElements:{default:()=>[]},container:{default:"body"},size:{default:"small"},buttons:{default:()=>[]},isForm:{type:Boolean},noClose:{type:Boolean},closeOnClickOutside:{type:Boolean},outTransition:{type:Boolean},navigationAriaLabel:{default:""},navigationAriaLabelledby:{default:""},contentClasses:{default:""},dialogClasses:{default:""},navigationClasses:{default:""}},{open:{type:Boolean,default:!0},openModifiers:{}}),emits:Go(["closing","reset","submit"],["update:open"]),setup(t,{emit:e}){const n=Vc(t,"open"),i=t,o=e,s=xl(),r=Ku("wrapper"),{width:a}=_x(r,{width:900,height:0}),l=ct(()=>a.value<876),c=ct(()=>s?.navigation!==void 0),u=Mo(),d=ct(()=>i.navigationAriaLabel||void 0),f=ct(()=>{if(!i.navigationAriaLabel)return i.navigationAriaLabelledby||u}),p=Ku("dialogElement"),y=ct(()=>i.isForm&&!c.value?"form":"div"),m=ct(()=>y.value!=="form"?{}:{submit(O){O.preventDefault(),o("submit",O)},reset(O){O.preventDefault(),o("reset",O)}}),x=fe(!0);function _(O,U){O.type==="submit"&&y.value==="form"&&"reportValidity"in p.value&&!p.value.reportValidity()||(S(U),window.setTimeout(()=>P(),300))}function S(O){x.value=!1,o("closing",O)}function P(){x.value=!0,n.value=!1}const A=ct(()=>({noClose:i.noClose,container:i.container===void 0?"body":i.container,labelId:u,size:i.size,show:n.value&&x.value,outTransition:i.outTransition,closeOnClickOutside:i.closeOnClickOutside,additionalTrapElements:i.additionalTrapElements}));return(O,U)=>n.value?(D(),xt(E(CS),te({key:0,class:"dialog__modal",disableSwipe:""},A.value,{onClose:P,"onUpdate:show":U[0]||(U[0]=V=>S())}),{default:Tt(()=>[b("h2",{id:E(u),class:"dialog__name",textContent:L(t.name)},null,8,TS),(D(),xt(wl(y.value),te({ref:"dialogElement",class:["dialog",t.dialogClasses]},Xy(m.value)),{default:Tt(()=>[b("div",{ref:"wrapper",class:Xt(["dialog__wrapper",[{"dialog__wrapper--collapsed":l.value}]])},[c.value?(D(),z("nav",{key:0,class:Xt(["dialog__navigation",t.navigationClasses]),"aria-label":d.value,"aria-labelledby":f.value},[Qt(O.$slots,"navigation",{isCollapsed:l.value},void 0,!0)],10,kS)):bt("",!0),b("div",{class:Xt(["dialog__content",t.contentClasses])},[Qt(O.$slots,"default",{},()=>[b("p",PS,L(t.message),1)],!0)],2)],2),b("div",RS,[Qt(O.$slots,"actions",{},()=>[(D(!0),z(Et,null,mi(t.buttons,(V,J)=>(D(),xt(E(Ix),te({key:J},{ref_for:!0},V,{onClick:(q,I)=>_(V,I)}),null,16,["onClick"]))),128))],!0)])]),_:3},16,["class"]))]),_:3},16)):bt("",!0)}}),Jm=ze(LS,[["__scopeId","data-v-24e91b99"]]),DS=["title"],NS=Pt({__name:"JobStatusIndicator",props:{status:{},dotOnly:{type:Boolean}},setup(t){const e=t,n=ct(()=>{switch(e.status){case"SUCCEEDED":return F("serverinfo","Succeeded");case"FAILED":return F("serverinfo","Failed");case"CRASHED":return F("serverinfo","Crashed");default:return F("serverinfo","Running")}});return(i,o)=>(D(),z("span",{class:Xt(["job-status",`job-status--${t.status.toLowerCase()}`]),title:t.dotOnly?n.value:void 0},[o[0]||(o[0]=b("span",{class:"job-status__dot","aria-hidden":"true"},null,-1)),b("span",{class:Xt(t.dotOnly&&"hidden-visually")},L(n.value),3)],10,DS))}}),Wm=Jt(NS,[["__scopeId","data-v-0e5a1326"]]);function wn(t){const e=["MB","GB","TB","PB","EB"];let n=t,i=0;for(;n>=1024&&i=1024&&i(D(),xt(E(Jm),{name:E(Ga)(t.run.className),size:"normal",onClosing:i[0]||(i[0]=o=>n.$emit("close"))},{default:Tt(()=>[b("dl",OS,[b("dt",null,L(E(F)("serverinfo","Class")),1),b("dd",$S,L(t.run.className),1),b("dt",null,L(E(F)("serverinfo","Status")),1),b("dd",null,[nt(Wm,{status:t.run.status},null,8,["status"])]),b("dt",null,L(E(F)("serverinfo","Started")),1),b("dd",null,[nt(E(Cl),{timestamp:t.run.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),b("dt",null,L(E(F)("serverinfo","Duration")),1),b("dd",null,L(E(qa)(t.run.duration)),1),b("dt",null,L(E(F)("serverinfo","Peak memory")),1),b("dd",null,L(E(ed)(t.run.memoryPeak)),1),b("dt",null,L(E(F)("serverinfo","Run ID")),1),b("dd",null,L(t.run.runId),1),b("dt",null,L(E(F)("serverinfo","Server ID")),1),b("dd",null,L(t.run.serverId),1),b("dt",null,L(E(F)("serverinfo","Process ID")),1),b("dd",null,L(t.run.pid),1)])]),_:1},8,["name"]))}}),FS=Jt(BS,[["__scopeId","data-v-c21cb020"]]),jS={name:"InformationOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},US=["aria-hidden","aria-label"],VS=["fill","width","height"],IS={d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z"},zS={key:0};function HS(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon information-outline-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",IS,[n.title?(D(),z("title",zS,L(n.title),1)):bt("",!0)])],8,VS))],16,US)}const JS=Jt(jS,[["render",HS]]),WS={class:"server-info-table"},GS={class:"status-cell"},qS={class:"hidden-visually"},KS={class:"when-cell"},XS={class:"duration-cell"},YS={class:"memory-cell"},ZS={class:"info-cell"},QS={class:"hidden-visually"},MS={class:"status-cell"},t4=["title"],e4={class:"info-cell"},n4=Pt({__name:"JobRunsTable",props:{runs:{}},emits:["select"],setup(t){const e={dateStyle:"short",timeStyle:"medium"};function n(i){return F("serverinfo","Details about {job} from {time}",{job:Ga(i.className),time:new Date(i.startedAt*1e3).toLocaleString(Mg(),e)})}return(i,o)=>(D(),z("div",WS,[b("table",null,[b("thead",null,[b("tr",null,[b("th",GS,[b("span",qS,L(E(F)("serverinfo","Status")),1)]),b("th",null,L(E(F)("serverinfo","Job")),1),b("th",KS,L(E(F)("serverinfo","When")),1),b("th",XS,L(E(F)("serverinfo","Duration")),1),b("th",YS,L(E(F)("serverinfo","Peak memory")),1),b("th",ZS,[b("span",QS,L(E(F)("serverinfo","Details")),1)])])]),b("tbody",null,[(D(!0),z(Et,null,mi(t.runs,s=>(D(),z("tr",{key:s.runId},[b("td",MS,[nt(Wm,{status:s.status,dotOnly:""},null,8,["status"])]),b("td",{title:s.className},L(E(Ga)(s.className)),9,t4),b("td",null,[nt(E(Cl),{timestamp:s.startedAt*1e3,format:e,relativeTime:!1},null,8,["timestamp"])]),b("td",null,L(E(qa)(s.duration)),1),b("td",null,L(E(ed)(s.memoryPeak)),1),b("td",e4,[nt(E(Hn),{variant:"tertiary",size:"small","aria-label":n(s),title:n(s),onClick:r=>i.$emit("select",s)},{icon:Tt(()=>[nt(JS,{size:20})]),_:1},8,["aria-label","title","onClick"])])]))),128))])])]))}}),$f=Jt(n4,[["__scopeId","data-v-10f09a63"]]),i4={class:"server-info-table"},o4={class:"job-cell"},s4={class:"count-cell"},r4={class:"count-cell"},a4={class:"count-cell"},l4={class:"memory-cell"},u4=["title"],c4={class:"count-cell"},d4={class:"count-cell"},h4={class:"count-cell"},f4={class:"memory-cell"},p4=Pt({__name:"SlowJobsTable",props:{jobs:{}},setup(t){return(e,n)=>(D(),z("div",i4,[b("table",null,[b("thead",null,[b("tr",null,[b("th",o4,L(E(F)("serverinfo","Job")),1),b("th",s4,L(E(F)("serverinfo","Runs")),1),b("th",r4,L(E(F)("serverinfo","Average")),1),b("th",a4,L(E(F)("serverinfo","Longest")),1),b("th",l4,L(E(F)("serverinfo","Peak memory")),1)])]),b("tbody",null,[(D(!0),z(Et,null,mi(t.jobs,i=>(D(),z("tr",{key:i.className},[b("td",{class:"job-cell",title:i.className},L(E(Ga)(i.className)),9,u4),b("td",c4,L(i.runs),1),b("td",d4,L(E(qa)(i.avgDuration)),1),b("td",h4,L(E(qa)(i.maxDuration)),1),b("td",f4,L(E(ed)(i.memoryPeak)),1)]))),128))])])]))}}),g4=Jt(p4,[["__scopeId","data-v-452808c1"]]),m4={class:"stat-tile"},v4={class:"stat-tile__label"},y4={key:0,class:"hidden-visually"},b4=Pt({__name:"StatTile",props:{label:{},value:{},status:{}},setup(t){const e=t,n=ct(()=>{switch(e.status){case"warning":return F("serverinfo","Warning");case"critical":return F("serverinfo","Critical");default:return""}});return(i,o)=>(D(),z("div",m4,[b("div",v4,L(t.label),1),b("div",{class:Xt(["stat-tile__value",t.status&&`stat-tile__value--${t.status}`])},[Qt(i.$slots,"default",{},()=>[Rt(L(t.value),1)],!0),n.value?(D(),z("span",y4,L(n.value),1)):bt("",!0)],2)]))}}),Ae=Jt(b4,[["__scopeId","data-v-4a64fa3b"]]),_4={class:"section background-jobs"},w4={class:"row row--tiles"},x4=Pt({__name:"BackgroundJobsSection",props:{cron:{},jobs:{}},setup(t){const e=t,n=fe(null);function i(a){n.value={...a}}const o=ct(()=>e.cron.lastRun>0?Math.max(0,e.cron.now-e.cron.lastRun):-1),s=ct(()=>{const a=o.value;return a<0?"critical":e.cron.mode==="cron"?a>3600?"critical":a>900?"warning":"ok":a>7200?"critical":a>3600?"warning":"ok"}),r=ct(()=>{switch(e.cron.mode){case"cron":return F("serverinfo","System cron");case"webcron":return F("serverinfo","Webcron");default:return F("serverinfo","AJAX (not recommended)")}});return(a,l)=>(D(),z("div",_4,[nt(Ye,{icon:lx,title:E(F)("serverinfo","Background jobs")},null,8,["title"]),b("div",w4,[nt(Ae,{label:E(F)("serverinfo","Mode"),value:r.value,status:t.cron.mode==="ajax"?"warning":void 0},null,8,["label","value","status"]),nt(Ae,{label:E(F)("serverinfo","Last run"),status:s.value},{default:Tt(()=>[t.cron.lastRun>0?(D(),xt(E(Cl),{key:0,timestamp:t.cron.lastRun*1e3},null,8,["timestamp"])):(D(),z(Et,{key:1},[Rt(L(E(F)("serverinfo","Never")),1)],64))]),_:1},8,["label","status"])]),b("h3",null,L(E(oc)("serverinfo","Latest failures (last %n day)","Latest failures (last %n days)",t.jobs.retentionDays)),1),t.jobs.failures.length===0?(D(),xt(E(la),{key:0,type:"success"},{default:Tt(()=>[Rt(L(E(oc)("serverinfo","No background job failed in the last %n day.","No background job failed in the last %n days.",t.jobs.retentionDays)),1)]),_:1})):(D(),xt($f,{key:1,runs:t.jobs.failures,onSelect:i},null,8,["runs"])),b("h3",null,L(E(F)("serverinfo","Latest runs")),1),t.jobs.recent.length===0?(D(),xt(E(la),{key:2,type:"info"},{default:Tt(()=>[Rt(L(E(F)("serverinfo","No background job has run yet.")),1)]),_:1})):(D(),xt($f,{key:3,runs:t.jobs.recent,onSelect:i},null,8,["runs"])),b("h3",null,L(E(F)("serverinfo","Slowest jobs")),1),t.jobs.slowest.length===0?(D(),xt(E(la),{key:4,type:"info"},{default:Tt(()=>[Rt(L(E(F)("serverinfo","The slow jobs statistics are not available yet. They are collected by a background job and appear after its next run.")),1)]),_:1})):(D(),xt(g4,{key:5,jobs:t.jobs.slowest},null,8,["jobs"])),n.value?(D(),xt(FS,{key:6,run:n.value,onClose:l[0]||(l[0]=c=>n.value=null)},null,8,["run"])):bt("",!0)]))}}),E4=Jt(x4,[["__scopeId","data-v-612ee243"]]);function xr(t){return t+.5|0}const Ai=(t,e,n)=>Math.max(Math.min(t,n),e);function Cs(t){return Ai(xr(t*2.55),0,255)}function Di(t){return Ai(xr(t*255),0,255)}function ii(t){return Ai(xr(t/2.55)/100,0,1)}function Bf(t){return Ai(xr(t*100),0,100)}const dn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},_c=[..."0123456789ABCDEF"],S4=t=>_c[t&15],A4=t=>_c[(t&240)>>4]+_c[t&15],Hr=t=>(t&240)>>4===(t&15),C4=t=>Hr(t.r)&&Hr(t.g)&&Hr(t.b)&&Hr(t.a);function T4(t){var e=t.length,n;return t[0]==="#"&&(e===4||e===5?n={r:255&dn[t[1]]*17,g:255&dn[t[2]]*17,b:255&dn[t[3]]*17,a:e===5?dn[t[4]]*17:255}:(e===7||e===9)&&(n={r:dn[t[1]]<<4|dn[t[2]],g:dn[t[3]]<<4|dn[t[4]],b:dn[t[5]]<<4|dn[t[6]],a:e===9?dn[t[7]]<<4|dn[t[8]]:255})),n}const k4=(t,e)=>t<255?e(t):"";function P4(t){var e=C4(t)?S4:A4;return t?"#"+e(t.r)+e(t.g)+e(t.b)+k4(t.a,e):void 0}const R4=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function qm(t,e,n){const i=e*Math.min(n,1-n),o=(s,r=(s+t/30)%12)=>n-i*Math.max(Math.min(r-3,9-r,1),-1);return[o(0),o(8),o(4)]}function L4(t,e,n){const i=(o,s=(o+t/60)%6)=>n-n*e*Math.max(Math.min(s,4-s,1),0);return[i(5),i(3),i(1)]}function D4(t,e,n){const i=qm(t,1,.5);let o;for(e+n>1&&(o=1/(e+n),e*=o,n*=o),o=0;o<3;o++)i[o]*=1-e-n,i[o]+=e;return i}function N4(t,e,n,i,o){return t===o?(e-n)/i+(e.5?c/(2-o-s):c/(o+s),a=N4(e,n,i,c,o),a=a*60+.5),[a|0,l||0,r]}function id(t,e,n,i){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,n,i)).map(Di)}function od(t,e,n){return id(qm,t,e,n)}function O4(t,e,n){return id(D4,t,e,n)}function $4(t,e,n){return id(L4,t,e,n)}function Km(t){return(t%360+360)%360}function B4(t){const e=R4.exec(t);let n=255,i;if(!e)return;e[5]!==i&&(n=e[6]?Cs(+e[5]):Di(+e[5]));const o=Km(+e[2]),s=+e[3]/100,r=+e[4]/100;return e[1]==="hwb"?i=O4(o,s,r):e[1]==="hsv"?i=$4(o,s,r):i=od(o,s,r),{r:i[0],g:i[1],b:i[2],a:n}}function F4(t,e){var n=nd(t);n[0]=Km(n[0]+e),n=od(n),t.r=n[0],t.g=n[1],t.b=n[2]}function j4(t){if(!t)return;const e=nd(t),n=e[0],i=Bf(e[1]),o=Bf(e[2]);return t.a<255?`hsla(${n}, ${i}%, ${o}%, ${ii(t.a)})`:`hsl(${n}, ${i}%, ${o}%)`}const Ff={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},jf={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function U4(){const t={},e=Object.keys(jf),n=Object.keys(Ff);let i,o,s,r,a;for(i=0;i>16&255,s>>8&255,s&255]}return t}let Jr;function V4(t){Jr||(Jr=U4(),Jr.transparent=[0,0,0,0]);const e=Jr[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:e.length===4?e[3]:255}}const I4=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function z4(t){const e=I4.exec(t);let n=255,i,o,s;if(e){if(e[7]!==i){const r=+e[7];n=e[8]?Cs(r):Ai(r*255,0,255)}return i=+e[1],o=+e[3],s=+e[5],i=255&(e[2]?Cs(i):Ai(i,0,255)),o=255&(e[4]?Cs(o):Ai(o,0,255)),s=255&(e[6]?Cs(s):Ai(s,0,255)),{r:i,g:o,b:s,a:n}}}function H4(t){return t&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${ii(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`)}const xu=t=>t<=.0031308?t*12.92:Math.pow(t,1/2.4)*1.055-.055,Lo=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function J4(t,e,n){const i=Lo(ii(t.r)),o=Lo(ii(t.g)),s=Lo(ii(t.b));return{r:Di(xu(i+n*(Lo(ii(e.r))-i))),g:Di(xu(o+n*(Lo(ii(e.g))-o))),b:Di(xu(s+n*(Lo(ii(e.b))-s))),a:t.a+n*(e.a-t.a)}}function Wr(t,e,n){if(t){let i=nd(t);i[e]=Math.max(0,Math.min(i[e]+i[e]*n,e===0?360:1)),i=od(i),t.r=i[0],t.g=i[1],t.b=i[2]}}function Xm(t,e){return t&&Object.assign(e||{},t)}function Uf(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=Di(t[3]))):(e=Xm(t,{r:0,g:0,b:0,a:1}),e.a=Di(e.a)),e}function W4(t){return t.charAt(0)==="r"?z4(t):B4(t)}class ar{constructor(e){if(e instanceof ar)return e;const n=typeof e;let i;n==="object"?i=Uf(e):n==="string"&&(i=T4(e)||V4(e)||W4(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Xm(this._rgb);return e&&(e.a=ii(e.a)),e}set rgb(e){this._rgb=Uf(e)}rgbString(){return this._valid?H4(this._rgb):void 0}hexString(){return this._valid?P4(this._rgb):void 0}hslString(){return this._valid?j4(this._rgb):void 0}mix(e,n){if(e){const i=this.rgb,o=e.rgb;let s;const r=n===s?.5:n,a=2*r-1,l=i.a-o.a,c=((a*l===-1?a:(a+l)/(1+a*l))+1)/2;s=1-c,i.r=255&c*i.r+s*o.r+.5,i.g=255&c*i.g+s*o.g+.5,i.b=255&c*i.b+s*o.b+.5,i.a=r*i.a+(1-r)*o.a,this.rgb=i}return this}interpolate(e,n){return e&&(this._rgb=J4(this._rgb,e._rgb,n)),this}clone(){return new ar(this.rgb)}alpha(e){return this._rgb.a=Di(e),this}clearer(e){const n=this._rgb;return n.a*=1-e,this}greyscale(){const e=this._rgb,n=xr(e.r*.3+e.g*.59+e.b*.11);return e.r=e.g=e.b=n,this}opaquer(e){const n=this._rgb;return n.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Wr(this._rgb,2,e),this}darken(e){return Wr(this._rgb,2,-e),this}saturate(e){return Wr(this._rgb,1,e),this}desaturate(e){return Wr(this._rgb,1,-e),this}rotate(e){return F4(this._rgb,e),this}}function Qn(){}const G4=(()=>{let t=0;return()=>t++})();function oe(t){return t==null}function Se(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return e.slice(0,7)==="[object"&&e.slice(-6)==="Array]"}function Vt(t){return t!==null&&Object.prototype.toString.call(t)==="[object Object]"}function Ie(t){return(typeof t=="number"||t instanceof Number)&&isFinite(+t)}function Nn(t,e){return Ie(t)?t:e}function Ot(t,e){return typeof t>"u"?e:t}const q4=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100:+t/e,Ym=(t,e)=>typeof t=="string"&&t.endsWith("%")?parseFloat(t)/100*e:+t;function re(t,e,n){if(t&&typeof t.call=="function")return t.apply(n,e)}function Mt(t,e,n,i){let o,s,r;if(Se(t))for(s=t.length,o=0;ot,x:t=>t.x,y:t=>t.y};function Y4(t){const e=t.split("."),n=[];let i="";for(const o of e)i+=o,i.endsWith("\\")?i=i.slice(0,-1)+".":(n.push(i),i="");return n}function Z4(t){const e=Y4(t);return n=>{for(const i of e){if(i==="")break;n=n&&n[i]}return n}}function ur(t,e){return(Vf[e]||(Vf[e]=Z4(e)))(t)}function sd(t){return t.charAt(0).toUpperCase()+t.slice(1)}const Ya=t=>typeof t<"u",$i=t=>typeof t=="function",If=(t,e)=>{if(t.size!==e.size)return!1;for(const n of t)if(!e.has(n))return!1;return!0};function Q4(t){return t.type==="mouseup"||t.type==="click"||t.type==="contextmenu"}const ee=Math.PI,de=2*ee,M4=de+ee,Za=Number.POSITIVE_INFINITY,tA=ee/180,we=ee/2,Wi=ee/4,zf=ee*2/3,Qm=Math.log10,qo=Math.sign;function Is(t,e,n){return Math.abs(t-e)o-s).pop(),e}function nA(t){return typeof t=="symbol"||typeof t=="object"&&t!==null&&!(Symbol.toPrimitive in t||"toString"in t||"valueOf"in t)}function cr(t){return!nA(t)&&!isNaN(parseFloat(t))&&isFinite(t)}function iA(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}function oA(t,e,n){let i,o,s;for(i=0,o=t.length;il&&c=Math.min(e,n)-i&&t<=Math.max(e,n)+i}function rd(t,e,n){n=n||(r=>t[r]1;)s=o+i>>1,n(s)?o=s:i=s;return{lo:o,hi:i}}const so=(t,e,n,i)=>rd(t,n,i?o=>{const s=t[o][e];return st[o][e]rd(t,n,i=>t[i][e]>=n);function uA(t,e,n){let i=0,o=t.length;for(;ii&&t[o-1]>n;)o--;return i>0||o{const i="_onData"+sd(n),o=t[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!1,value(...s){const r=o.apply(this,s);return t._chartjs.listeners.forEach(a=>{typeof a[i]=="function"&&a[i](...s)}),r}})})}function Wf(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),!(i.length>0)&&(t1.forEach(s=>{delete t[s]}),delete t._chartjs)}function dA(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}const e1=(function(){return typeof window>"u"?function(t){return t()}:window.requestAnimationFrame})();function n1(t,e){let n=[],i=!1;return function(...o){n=o,i||(i=!0,e1.call(window,()=>{i=!1,t.apply(e,n)}))}}function hA(t,e){let n;return function(...i){return e?(clearTimeout(n),n=setTimeout(t,e,i)):t.apply(this,i),e}}const i1=t=>t==="start"?"left":t==="end"?"right":"center",sn=(t,e,n)=>t==="start"?e:t==="end"?n:(e+n)/2,fA=(t,e,n,i)=>t===(i?"left":"right")?n:t==="center"?(e+n)/2:e;function pA(t,e,n){const i=e.length;let o=0,s=i;if(t._sorted){const{iScale:r,vScale:a,_parsed:l}=t,c=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null,u=r.axis,{min:d,max:f,minDefined:p,maxDefined:y}=r.getUserBounds();if(p){if(o=Math.min(so(l,u,d).lo,n?i:so(e,u,r.getPixelForValue(d)).lo),c){const m=l.slice(0,o+1).reverse().findIndex(x=>!oe(x[a.axis]));o-=Math.max(0,m)}o=Ke(o,0,i-1)}if(y){let m=Math.max(so(l,r.axis,f,!0).hi+1,n?0:so(e,u,r.getPixelForValue(f),!0).hi+1);if(c){const x=l.slice(m-1).findIndex(_=>!oe(_[a.axis]));m+=Math.max(0,x)}s=Ke(m,o,i)-o}else s=i-o}return{start:o,count:s}}function gA(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,o={xmin:e.min,xmax:e.max,ymin:n.min,ymax:n.max};if(!i)return t._scaleRanges=o,!0;const s=i.xmin!==e.min||i.xmax!==e.max||i.ymin!==n.min||i.ymax!==n.max;return Object.assign(i,o),s}const Gr=t=>t===0||t===1,Gf=(t,e,n)=>-(Math.pow(2,10*(t-=1))*Math.sin((t-e)*de/n)),qf=(t,e,n)=>Math.pow(2,-10*t)*Math.sin((t-e)*de/n)+1,zs={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>-Math.cos(t*we)+1,easeOutSine:t=>Math.sin(t*we),easeInOutSine:t=>-.5*(Math.cos(ee*t)-1),easeInExpo:t=>t===0?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>t===1?1:-Math.pow(2,-10*t)+1,easeInOutExpo:t=>Gr(t)?t:t<.5?.5*Math.pow(2,10*(t*2-1)):.5*(-Math.pow(2,-10*(t*2-1))+2),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>Gr(t)?t:Gf(t,.075,.3),easeOutElastic:t=>Gr(t)?t:qf(t,.075,.3),easeInOutElastic(t){return Gr(t)?t:t<.5?.5*Gf(t*2,.1125,.45):.5+.5*qf(t*2-1,.1125,.45)},easeInBack(t){return t*t*((1.70158+1)*t-1.70158)},easeOutBack(t){return(t-=1)*t*((1.70158+1)*t+1.70158)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:t=>1-zs.easeOutBounce(1-t),easeOutBounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:t=>t<.5?zs.easeInBounce(t*2)*.5:zs.easeOutBounce(t*2-1)*.5+.5};function ad(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object CanvasPattern]"||e==="[object CanvasGradient]"}return!1}function Kf(t){return ad(t)?t:new ar(t)}function Eu(t){return ad(t)?t:new ar(t).saturate(.5).darken(.1).hexString()}const mA=["x","y","borderWidth","radius","tension"],vA=["color","borderColor","backgroundColor"];function yA(t){t.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),t.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:e=>e!=="onProgress"&&e!=="onComplete"&&e!=="fn"}),t.set("animations",{colors:{type:"color",properties:vA},numbers:{type:"number",properties:mA}}),t.describe("animations",{_fallback:"animation"}),t.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>e|0}}}})}function bA(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const Xf=new Map;function _A(t,e){e=e||{};const n=t+JSON.stringify(e);let i=Xf.get(n);return i||(i=new Intl.NumberFormat(t,e),Xf.set(n,i)),i}function ld(t,e,n){return _A(e,n).format(t)}const wA={values(t){return Se(t)?t:""+t},numeric(t,e,n){if(t===0)return"0";const i=this.chart.options.locale;let o,s=t;if(n.length>1){const c=Math.max(Math.abs(n[0].value),Math.abs(n[n.length-1].value));(c<1e-4||c>1e15)&&(o="scientific"),s=xA(t,n)}const r=Qm(Math.abs(s)),a=isNaN(r)?1:Math.max(Math.min(-1*Math.floor(r),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ld(t,i,l)}};function xA(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;return Math.abs(n)>=1&&t!==Math.floor(t)&&(n=t-Math.floor(t)),n}var o1={formatters:wA};function EA(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(e,n)=>n.lineWidth,tickColor:(e,n)=>n.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:o1.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),t.route("scale.ticks","color","","color"),t.route("scale.grid","color","","borderColor"),t.route("scale.border","color","","borderColor"),t.route("scale.title","color","","color"),t.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&e!=="callback"&&e!=="parser",_indexable:e=>e!=="borderDash"&&e!=="tickBorderDash"&&e!=="dash"}),t.describe("scales",{_fallback:"scale"}),t.describe("scale.ticks",{_scriptable:e=>e!=="backdropPadding"&&e!=="callback",_indexable:e=>e!=="backdropPadding"})}const go=Object.create(null),xc=Object.create(null);function Hs(t,e){if(!e)return t;const n=e.split(".");for(let i=0,o=n.length;ii.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(i,o)=>Eu(o.backgroundColor),this.hoverBorderColor=(i,o)=>Eu(o.borderColor),this.hoverColor=(i,o)=>Eu(o.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e),this.apply(n)}set(e,n){return Su(this,e,n)}get(e){return Hs(this,e)}describe(e,n){return Su(xc,e,n)}override(e,n){return Su(go,e,n)}route(e,n,i,o){const s=Hs(this,e),r=Hs(this,i),a="_"+n;Object.defineProperties(s,{[a]:{value:s[n],writable:!0},[n]:{enumerable:!0,get(){const l=this[a],c=r[o];return Vt(l)?Object.assign({},c,l):Ot(l,c)},set(l){this[a]=l}}})}apply(e){e.forEach(n=>n(this))}}var ge=new SA({_scriptable:t=>!t.startsWith("on"),_indexable:t=>t!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[yA,bA,EA]);function AA(t){return!t||oe(t.size)||oe(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function Yf(t,e,n,i,o){let s=e[o];return s||(s=e[o]=t.measureText(o).width,n.push(o)),s>i&&(i=s),i}function Gi(t,e,n){const i=t.currentDevicePixelRatio,o=n!==0?Math.max(n/2,.5):0;return Math.round((e-o)*i)/i+o}function Zf(t,e){!e&&!t||(e=e||t.getContext("2d"),e.save(),e.resetTransform(),e.clearRect(0,0,t.width,t.height),e.restore())}function Ec(t,e,n,i){s1(t,e,n,i,null)}function s1(t,e,n,i,o){let s,r,a,l,c,u,d,f;const p=e.pointStyle,y=e.rotation,m=e.radius;let x=(y||0)*tA;if(p&&typeof p=="object"&&(s=p.toString(),s==="[object HTMLImageElement]"||s==="[object HTMLCanvasElement]")){t.save(),t.translate(n,i),t.rotate(x),t.drawImage(p,-p.width/2,-p.height/2,p.width,p.height),t.restore();return}if(!(isNaN(m)||m<=0)){switch(t.beginPath(),p){default:o?t.ellipse(n,i,o/2,m,0,0,de):t.arc(n,i,m,0,de),t.closePath();break;case"triangle":u=o?o/2:m,t.moveTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),x+=zf,t.lineTo(n+Math.sin(x)*u,i-Math.cos(x)*m),t.closePath();break;case"rectRounded":c=m*.516,l=m-c,r=Math.cos(x+Wi)*l,d=Math.cos(x+Wi)*(o?o/2-c:l),a=Math.sin(x+Wi)*l,f=Math.sin(x+Wi)*(o?o/2-c:l),t.arc(n-d,i-a,c,x-ee,x-we),t.arc(n+f,i-r,c,x-we,x),t.arc(n+d,i+a,c,x,x+we),t.arc(n-f,i+r,c,x+we,x+ee),t.closePath();break;case"rect":if(!y){l=Math.SQRT1_2*m,u=o?o/2:l,t.rect(n-u,i-l,2*u,2*l);break}x+=Wi;case"rectRot":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+f,i-r),t.lineTo(n+d,i+a),t.lineTo(n-f,i+r),t.closePath();break;case"crossRot":x+=Wi;case"cross":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"star":d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r),x+=Wi,d=Math.cos(x)*(o?o/2:m),r=Math.cos(x)*m,a=Math.sin(x)*m,f=Math.sin(x)*(o?o/2:m),t.moveTo(n-d,i-a),t.lineTo(n+d,i+a),t.moveTo(n+f,i-r),t.lineTo(n-f,i+r);break;case"line":r=o?o/2:Math.cos(x)*m,a=Math.sin(x)*m,t.moveTo(n-r,i-a),t.lineTo(n+r,i+a);break;case"dash":t.moveTo(n,i),t.lineTo(n+Math.cos(x)*(o?o/2:m),i+Math.sin(x)*m);break;case!1:t.closePath();break}t.fill(),e.borderWidth>0&&t.stroke()}}function hr(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.xe.top-n&&t.y0&&s.strokeColor!=="";let l,c;for(t.save(),t.font=o.string,kA(t,s),l=0;l+t||0;function ud(t,e){const n={},i=Vt(e),o=i?Object.keys(e):e,s=Vt(t)?i?r=>Ot(t[r],t[e[r]]):r=>t[r]:()=>t;for(const r of o)n[r]=OA(s(r));return n}function $A(t){return ud(t,{top:"y",right:"x",bottom:"y",left:"x"})}function Js(t){return ud(t,["topLeft","topRight","bottomLeft","bottomRight"])}function Tn(t){const e=$A(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function tn(t,e){t=t||{},e=e||ge.font;let n=Ot(t.size,e.size);typeof n=="string"&&(n=parseInt(n,10));let i=Ot(t.style,e.style);i&&!(""+i).match(DA)&&(console.warn('Invalid font style specified: "'+i+'"'),i=void 0);const o={family:Ot(t.family,e.family),lineHeight:NA(Ot(t.lineHeight,e.lineHeight),n),size:n,style:i,weight:Ot(t.weight,e.weight),string:""};return o.string=AA(o),o}function qr(t,e,n,i){let o,s,r;for(o=0,s=t.length;on&&a===0?0:a+l;return{min:r(i,-Math.abs(s)),max:r(o,s)}}function _o(t,e){return Object.assign(Object.create(t),e)}function cd(t,e=[""],n,i,o=()=>t[0]){const s=n||t;typeof i>"u"&&(i=u1("_fallback",t));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:s,_fallback:i,_getTarget:o,override:a=>cd([a,...t],e,s,i)};return new Proxy(r,{deleteProperty(a,l){return delete a[l],delete a._keys,delete t[0][l],!0},get(a,l){return a1(a,l,()=>JA(l,e,t,a))},getOwnPropertyDescriptor(a,l){return Reflect.getOwnPropertyDescriptor(a._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(t[0])},has(a,l){return Mf(a).includes(l)},ownKeys(a){return Mf(a)},set(a,l,c){const u=a._storage||(a._storage=o());return a[l]=u[l]=c,delete a._keys,!0}})}function Ko(t,e,n,i){const o={_cacheable:!1,_proxy:t,_context:e,_subProxy:n,_stack:new Set,_descriptors:r1(t,i),setContext:s=>Ko(t,s,n,i),override:s=>Ko(t.override(s),e,n,i)};return new Proxy(o,{deleteProperty(s,r){return delete s[r],delete t[r],!0},get(s,r,a){return a1(s,r,()=>jA(s,r,a))},getOwnPropertyDescriptor(s,r){return s._descriptors.allKeys?Reflect.has(t,r)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,r)},getPrototypeOf(){return Reflect.getPrototypeOf(t)},has(s,r){return Reflect.has(t,r)},ownKeys(){return Reflect.ownKeys(t)},set(s,r,a){return t[r]=a,delete s[r],!0}})}function r1(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scriptable,_indexable:i=e.indexable,_allKeys:o=e.allKeys}=t;return{allKeys:o,scriptable:n,indexable:i,isScriptable:$i(n)?n:()=>n,isIndexable:$i(i)?i:()=>i}}const FA=(t,e)=>t?t+sd(e):e,dd=(t,e)=>Vt(e)&&t!=="adapters"&&(Object.getPrototypeOf(e)===null||e.constructor===Object);function a1(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||e==="constructor")return t[e];const i=n();return t[e]=i,i}function jA(t,e,n){const{_proxy:i,_context:o,_subProxy:s,_descriptors:r}=t;let a=i[e];return $i(a)&&r.isScriptable(e)&&(a=UA(e,a,t,n)),Se(a)&&a.length&&(a=VA(e,a,t,r.isIndexable)),dd(e,a)&&(a=Ko(a,o,s&&s[e],r)),a}function UA(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_stack:a}=n;if(a.has(t))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+t);a.add(t);let l=e(s,r||i);return a.delete(t),dd(t,l)&&(l=hd(o._scopes,o,t,l)),l}function VA(t,e,n,i){const{_proxy:o,_context:s,_subProxy:r,_descriptors:a}=n;if(typeof s.index<"u"&&i(t))return e[s.index%e.length];if(Vt(e[0])){const l=e,c=o._scopes.filter(u=>u!==l);e=[];for(const u of l){const d=hd(c,o,t,u);e.push(Ko(d,s,r&&r[t],a))}}return e}function l1(t,e,n){return $i(t)?t(e,n):t}const IA=(t,e)=>t===!0?e:typeof t=="string"?ur(e,t):void 0;function zA(t,e,n,i,o){for(const s of e){const r=IA(n,s);if(r){t.add(r);const a=l1(r._fallback,n,o);if(typeof a<"u"&&a!==n&&a!==i)return a}else if(r===!1&&typeof i<"u"&&n!==i)return null}return!1}function hd(t,e,n,i){const o=e._rootScopes,s=l1(e._fallback,n,i),r=[...t,...o],a=new Set;a.add(i);let l=Qf(a,r,n,s||n,i);return l===null||typeof s<"u"&&s!==n&&(l=Qf(a,r,s,l,i),l===null)?!1:cd(Array.from(a),[""],o,s,()=>HA(e,n,i))}function Qf(t,e,n,i,o){for(;n;)n=zA(t,e,n,i,o);return n}function HA(t,e,n){const i=t._getTarget();e in i||(i[e]={});const o=i[e];return Se(o)&&Vt(n)?n:o||{}}function JA(t,e,n,i){let o;for(const s of e)if(o=u1(FA(s,t),n),typeof o<"u")return dd(t,o)?hd(n,i,t,o):o}function u1(t,e){for(const n of e){if(!n)continue;const i=n[t];if(typeof i<"u")return i}}function Mf(t){let e=t._keys;return e||(e=t._keys=WA(t._scopes)),e}function WA(t){const e=new Set;for(const n of t)for(const i of Object.keys(n).filter(o=>!o.startsWith("_")))e.add(i);return Array.from(e)}const GA=Number.EPSILON||1e-14,Xo=(t,e)=>et==="x"?"y":"x";function qA(t,e,n,i){const o=t.skip?e:t,s=e,r=n.skip?e:n,a=wc(s,o),l=wc(r,s);let c=a/(a+l),u=l/(a+l);c=isNaN(c)?0:c,u=isNaN(u)?0:u;const d=i*c,f=i*u;return{previous:{x:s.x-d*(r.x-o.x),y:s.y-d*(r.y-o.y)},next:{x:s.x+f*(r.x-o.x),y:s.y+f*(r.y-o.y)}}}function KA(t,e,n){const i=t.length;let o,s,r,a,l,c=Xo(t,0);for(let u=0;u!c.skip)),e.cubicInterpolationMode==="monotone")YA(t,o);else{let c=i?t[t.length-1]:t[0];for(s=0,r=t.length;st.ownerDocument.defaultView.getComputedStyle(t,null);function MA(t,e){return Dl(t).getPropertyValue(e)}const tC=["top","right","bottom","left"];function ho(t,e,n){const i={};n=n?"-"+n:"";for(let o=0;o<4;o++){const s=tC[o];i[s]=parseFloat(t[e+"-"+s+n])||0}return i.width=i.left+i.right,i.height=i.top+i.bottom,i}const eC=(t,e,n)=>(t>0||e>0)&&(!n||!n.shadowRoot);function nC(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:o,offsetY:s}=i;let r=!1,a,l;if(eC(o,s,t.target))a=o,l=s;else{const c=e.getBoundingClientRect();a=i.clientX-c.left,l=i.clientY-c.top,r=!0}return{x:a,y:l,box:r}}function Xi(t,e){if("native"in t)return t;const{canvas:n,currentDevicePixelRatio:i}=e,o=Dl(n),s=o.boxSizing==="border-box",r=ho(o,"padding"),a=ho(o,"border","width"),{x:l,y:c,box:u}=nC(t,n),d=r.left+(u&&a.left),f=r.top+(u&&a.top);let{width:p,height:y}=e;return s&&(p-=r.width+a.width,y-=r.height+a.height),{x:Math.round((l-d)/p*n.width/i),y:Math.round((c-f)/y*n.height/i)}}function iC(t,e,n){let i,o;if(e===void 0||n===void 0){const s=t&&pd(t);if(!s)e=t.clientWidth,n=t.clientHeight;else{const r=s.getBoundingClientRect(),a=Dl(s),l=ho(a,"border","width"),c=ho(a,"padding");e=r.width-c.width-l.width,n=r.height-c.height-l.height,i=Ma(a.maxWidth,s,"clientWidth"),o=Ma(a.maxHeight,s,"clientHeight")}}return{width:e,height:n,maxWidth:i||Za,maxHeight:o||Za}}const Ci=t=>Math.round(t*10)/10;function oC(t,e,n,i){const o=Dl(t),s=ho(o,"margin"),r=Ma(o.maxWidth,t,"clientWidth")||Za,a=Ma(o.maxHeight,t,"clientHeight")||Za,l=iC(t,e,n);let{width:c,height:u}=l;if(o.boxSizing==="content-box"){const d=ho(o,"border","width"),f=ho(o,"padding");c-=f.width+d.width,u-=f.height+d.height}return c=Math.max(0,c-s.width),u=Math.max(0,i?c/i:u-s.height),c=Ci(Math.min(c,r,l.maxWidth)),u=Ci(Math.min(u,a,l.maxHeight)),c&&!u&&(u=Ci(c/2)),(e!==void 0||n!==void 0)&&i&&l.height&&u>l.height&&(u=l.height,c=Ci(Math.floor(u*i))),{width:c,height:u}}function tp(t,e,n){const i=e||1,o=Ci(t.height*i),s=Ci(t.width*i);t.height=Ci(t.height),t.width=Ci(t.width);const r=t.canvas;return r.style&&(n||!r.style.height&&!r.style.width)&&(r.style.height=`${t.height}px`,r.style.width=`${t.width}px`),t.currentDevicePixelRatio!==i||r.height!==o||r.width!==s?(t.currentDevicePixelRatio=i,r.height=o,r.width=s,t.ctx.setTransform(i,0,0,i,0,0),!0):!1}const sC=(function(){let t=!1;try{const e={get passive(){return t=!0,!1}};fd()&&(window.addEventListener("test",null,e),window.removeEventListener("test",null,e))}catch{}return t})();function ep(t,e){const n=MA(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?+i[1]:void 0}function Yi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}function rC(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:i==="middle"?n<.5?t.y:e.y:i==="after"?n<1?t.y:e.y:n>0?e.y:t.y}}function aC(t,e,n,i){const o={x:t.cp2x,y:t.cp2y},s={x:e.cp1x,y:e.cp1y},r=Yi(t,o,n),a=Yi(o,s,n),l=Yi(s,e,n),c=Yi(r,a,n),u=Yi(a,l,n);return Yi(c,u,n)}const lC=function(t,e){return{x(n){return t+t+e-n},setWidth(n){e=n},textAlign(n){return n==="center"?n:n==="right"?"left":"right"},xPlus(n,i){return n-i},leftForLtr(n,i){return n-i}}},uC=function(){return{x(t){return t},setWidth(t){},textAlign(t){return t},xPlus(t,e){return t+e},leftForLtr(t,e){return t}}};function Jo(t,e,n){return t?lC(e,n):uC()}function d1(t,e){let n,i;(e==="ltr"||e==="rtl")&&(n=t.canvas.style,i=[n.getPropertyValue("direction"),n.getPropertyPriority("direction")],n.setProperty("direction",e,"important"),t.prevTextDirection=i)}function h1(t,e){e!==void 0&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function f1(t){return t==="angle"?{between:dr,compare:rA,normalize:rn}:{between:oo,compare:(e,n)=>e-n,normalize:e=>e}}function np({start:t,end:e,count:n,loop:i,style:o}){return{start:t%n,end:e%n,loop:i&&(e-t+1)%n===0,style:o}}function cC(t,e,n){const{property:i,start:o,end:s}=n,{between:r,normalize:a}=f1(i),l=e.length;let{start:c,end:u,loop:d}=t,f,p;if(d){for(c+=l,u+=l,f=0,p=l;fl(o,P,_)&&a(o,P)!==0,O=()=>a(s,_)===0||l(s,P,_),U=()=>m||A(),V=()=>!m||O();for(let J=u,q=u;J<=d;++J)S=e[J%r],!S.skip&&(_=c(S[i]),_!==P&&(m=l(_,o,s),x===null&&U()&&(x=a(_,o)===0?J:q),x!==null&&V()&&(y.push(np({start:x,end:J,loop:f,count:r,style:p})),x=null),q=J,P=_));return x!==null&&y.push(np({start:x,end:d,loop:f,count:r,style:p})),y}function g1(t,e){const n=[],i=t.segments;for(let o=0;oo&&t[s%e].skip;)s--;return s%=e,{start:o,end:s}}function hC(t,e,n,i){const o=t.length,s=[];let r=e,a=t[e],l;for(l=e+1;l<=n;++l){const c=t[l%o];c.skip||c.stop?a.skip||(i=!1,s.push({start:e%o,end:(l-1)%o,loop:i}),e=r=c.stop?l:null):(r=l,a.skip&&(e=l)),a=c}return r!==null&&s.push({start:e%o,end:r%o,loop:i}),s}function fC(t,e){const n=t.points,i=t.options.spanGaps,o=n.length;if(!o)return[];const s=!!t._loop,{start:r,end:a}=dC(n,o,s,i);if(i===!0)return ip(t,[{start:r,end:a,loop:s}],n,e);const l=aa({chart:e,initial:n.initial,numSteps:r,currentStep:Math.min(i-n.start,r)}))}_refresh(){this._request||(this._running=!0,this._request=e1.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(e=Date.now()){let n=0;this._charts.forEach((i,o)=>{if(!i.running||!i.items.length)return;const s=i.items;let r=s.length-1,a=!1,l;for(;r>=0;--r)l=s[r],l._active?(l._total>i.duration&&(i.duration=l._total),l.tick(e),a=!0):(s[r]=s[s.length-1],s.pop());a&&(o.draw(),this._notify(o,i,e,"progress")),s.length||(i.running=!1,this._notify(o,i,e,"complete"),i.initial=!1),n+=s.length}),this._lastDate=e,n===0&&(this._running=!1)}_getAnims(e){const n=this._charts;let i=n.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},n.set(e,i)),i}listen(e,n,i){this._getAnims(e).listeners[n].push(i)}add(e,n){!n||!n.length||this._getAnims(e).items.push(...n)}has(e){return this._getAnims(e).items.length>0}start(e){const n=this._charts.get(e);n&&(n.running=!0,n.start=Date.now(),n.duration=n.items.reduce((i,o)=>Math.max(i,o._duration),0),this._refresh())}running(e){if(!this._running)return!1;const n=this._charts.get(e);return!(!n||!n.running||!n.items.length)}stop(e){const n=this._charts.get(e);if(!n||!n.items.length)return;const i=n.items;let o=i.length-1;for(;o>=0;--o)i[o].cancel();n.items=[],this._notify(e,n,Date.now(),"complete")}remove(e){return this._charts.delete(e)}}var Mn=new vC;const sp="transparent",yC={boolean(t,e,n){return n>.5?e:t},color(t,e,n){const i=Kf(t||sp),o=i.valid&&Kf(e||sp);return o&&o.valid?o.mix(i,n).hexString():e},number(t,e,n){return t+(e-t)*n}};class bC{constructor(e,n,i,o){const s=n[i];o=qr([e.to,o,s,e.from]);const r=qr([e.from,s,o]);this._active=!0,this._fn=e.fn||yC[e.type||typeof r],this._easing=zs[e.easing]||zs.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=n,this._prop=i,this._from=r,this._to=o,this._promises=void 0}active(){return this._active}update(e,n,i){if(this._active){this._notify(!1);const o=this._target[this._prop],s=i-this._start,r=this._duration-s;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=s,this._loop=!!e.loop,this._to=qr([e.to,n,o,e.from]),this._from=qr([e.from,o,n])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const n=e-this._start,i=this._duration,o=this._prop,s=this._from,r=this._loop,a=this._to;let l;if(this._active=s!==a&&(r||n1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[o]=this._fn(s,a,l)}wait(){const e=this._promises||(this._promises=[]);return new Promise((n,i)=>{e.push({res:n,rej:i})})}_notify(e){const n=e?"res":"rej",i=this._promises||[];for(let o=0;o{const s=e[o];if(!Vt(s))return;const r={};for(const a of n)r[a]=s[a];(Se(s.properties)&&s.properties||[o]).forEach(a=>{(a===o||!i.has(a))&&i.set(a,r)})})}_animateOptions(e,n){const i=n.options,o=wC(e,i);if(!o)return[];const s=this._createAnimations(o,i);return i.$shared&&_C(e.options.$animations,i).then(()=>{e.options=i},()=>{}),s}_createAnimations(e,n){const i=this._properties,o=[],s=e.$animations||(e.$animations={}),r=Object.keys(n),a=Date.now();let l;for(l=r.length-1;l>=0;--l){const c=r[l];if(c.charAt(0)==="$")continue;if(c==="options"){o.push(...this._animateOptions(e,n));continue}const u=n[c];let d=s[c];const f=i.get(c);if(d)if(f&&d.active()){d.update(f,u,a);continue}else d.cancel();if(!f||!f.duration){e[c]=u;continue}s[c]=d=new bC(f,e,c,u),o.push(d)}return o}update(e,n){if(this._properties.size===0){Object.assign(e,n);return}const i=this._createAnimations(e,n);if(i.length)return Mn.add(this._chart,i),!0}}function _C(t,e){const n=[],i=Object.keys(e);for(let o=0;o0||!n&&s<0)return o.index}return null}function up(t,e){const{chart:n,_cachedMeta:i}=t,o=n._stacks||(n._stacks={}),{iScale:s,vScale:r,index:a}=i,l=s.axis,c=r.axis,u=AC(s,r,i),d=e.length;let f;for(let p=0;pn[i].axis===e).shift()}function kC(t,e){return _o(t,{active:!1,dataset:void 0,datasetIndex:e,index:e,mode:"default",type:"dataset"})}function PC(t,e,n){return _o(t,{active:!1,dataIndex:e,parsed:void 0,raw:void 0,element:n,index:e,mode:"default",type:"data"})}function gs(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(i){e=e||t._parsed;for(const o of e){const s=o._stacks;if(!s||s[i]===void 0||s[i][n]===void 0)return;delete s[i][n],s[i]._visualValues!==void 0&&s[i]._visualValues[n]!==void 0&&delete s[i]._visualValues[n]}}}const Tu=t=>t==="reset"||t==="none",cp=(t,e)=>e?t:Object.assign({},t),RC=(t,e,n)=>t&&!e.hidden&&e._stacked&&{keys:y1(n,!0),values:null};class gd{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(e,n){this.chart=e,this._ctx=e.ctx,this.index=n,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Au(e.vScale,e),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(e){this.index!==e&&gs(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,n=this._cachedMeta,i=this.getDataset(),o=(d,f,p,y)=>d==="x"?f:d==="r"?y:p,s=n.xAxisID=Ot(i.xAxisID,Cu(e,"x")),r=n.yAxisID=Ot(i.yAxisID,Cu(e,"y")),a=n.rAxisID=Ot(i.rAxisID,Cu(e,"r")),l=n.indexAxis,c=n.iAxisID=o(l,s,r,a),u=n.vAxisID=o(l,r,s,a);n.xScale=this.getScaleForId(s),n.yScale=this.getScaleForId(r),n.rScale=this.getScaleForId(a),n.iScale=this.getScaleForId(c),n.vScale=this.getScaleForId(u)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const n=this._cachedMeta;return e===n.iScale?n.vScale:n.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&Wf(this._data,this),e._stacked&&gs(e)}_dataCheck(){const e=this.getDataset(),n=e.data||(e.data=[]),i=this._data;if(Vt(n)){const o=this._cachedMeta;this._data=SC(n,o)}else if(i!==n){if(i){Wf(i,this);const o=this._cachedMeta;gs(o),o._parsed=[]}n&&Object.isExtensible(n)&&cA(n,this),this._syncList=[],this._data=n}}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const n=this._cachedMeta,i=this.getDataset();let o=!1;this._dataCheck();const s=n._stacked;n._stacked=Au(n.vScale,n),n.stack!==i.stack&&(o=!0,gs(n),n.stack=i.stack),this._resyncElements(e),(o||s!==n._stacked)&&(up(this,n._parsed),n._stacked=Au(n.vScale,n))}configure(){const e=this.chart.config,n=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),n,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,n){const{_cachedMeta:i,_data:o}=this,{iScale:s,_stacked:r}=i,a=s.axis;let l=e===0&&n===o.length?!0:i._sorted,c=e>0&&i._parsed[e-1],u,d,f;if(this._parsing===!1)i._parsed=o,i._sorted=!0,f=o;else{Se(o[e])?f=this.parseArrayData(i,o,e,n):Vt(o[e])?f=this.parseObjectData(i,o,e,n):f=this.parsePrimitiveData(i,o,e,n);const p=()=>d[a]===null||c&&d[a]m||d=0;--f)if(!y()){this.updateRangeFromParsed(c,e,p,l);break}}return c}getAllParsedValues(e){const n=this._cachedMeta._parsed,i=[];let o,s,r;for(o=0,s=n.length;o=0&&ethis.getContext(i,o,n),m=c.resolveNamedOptions(f,p,y,d);return m.$shared&&(m.$shared=l,s[r]=Object.freeze(cp(m,l))),m}_resolveAnimations(e,n,i){const o=this.chart,s=this._cachedDataOpts,r=`animation-${n}`,a=s[r];if(a)return a;let l;if(o.options.animation!==!1){const u=this.chart.config,d=u.datasetAnimationScopeKeys(this._type,n),f=u.getOptionScopes(this.getDataset(),d);l=u.createResolver(f,this.getContext(e,i,n))}const c=new v1(o,l&&l.animations);return l&&l._cacheable&&(s[r]=Object.freeze(c)),c}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,n){return!n||Tu(e)||this.chart._animationsDisabled}_getSharedOptions(e,n){const i=this.resolveDataElementOptions(e,n),o=this._sharedOptions,s=this.getSharedOptions(i),r=this.includeOptions(n,s)||s!==o;return this.updateSharedOptions(s,n,i),{sharedOptions:s,includeOptions:r}}updateElement(e,n,i,o){Tu(o)?Object.assign(e,i):this._resolveAnimations(n,o).update(e,i)}updateSharedOptions(e,n,i){e&&!Tu(n)&&this._resolveAnimations(void 0,n).update(e,i)}_setStyle(e,n,i,o){e.active=o;const s=this.getStyle(n,o);this._resolveAnimations(n,i,o).update(e,{options:!o&&this.getSharedOptions(s)||s})}removeHoverStyle(e,n,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,n,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const n=this._data,i=this._cachedMeta.data;for(const[a,l,c]of this._syncList)this[a](l,c);this._syncList=[];const o=i.length,s=n.length,r=Math.min(s,o);r&&this.parse(0,r),s>o?this._insertElements(o,s-o,e):s{for(c.length+=n,a=c.length-1;a>=r;a--)c[a]=c[a-n]};for(l(s),a=e;adr(P,a,l,!0)?1:Math.max(A,A*n,O,O*n),y=(P,A,O)=>dr(P,a,l,!0)?-1:Math.min(A,A*n,O,O*n),m=p(0,c,d),x=p(we,u,f),_=y(ee,c,d),S=y(ee+we,u,f);i=(m-_)/2,o=(x-S)/2,s=-(m+_)/2,r=-(x+S)/2}return{ratioX:i,ratioY:o,offsetX:s,offsetY:r}}class DC extends gd{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:e=>e!=="spacing",_indexable:e=>e!=="spacing"&&!e.startsWith("borderDash")&&!e.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const n=e.data,{labels:{pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=e.legend.options;return n.labels.length&&n.datasets.length?n.labels.map((l,c)=>{const u=e.getDatasetMeta(0).controller.getStyle(c);return{text:l,fillStyle:u.backgroundColor,fontColor:s,hidden:!e.getDataVisibility(c),lineDash:u.borderDash,lineDashOffset:u.borderDashOffset,lineJoin:u.borderJoinStyle,lineWidth:u.borderWidth,strokeStyle:u.borderColor,textAlign:o,pointStyle:i,borderRadius:r&&(a||u.borderRadius),index:c}}):[]}},onClick(e,n,i){i.chart.toggleDataVisibility(n.index),i.chart.update()}}}};constructor(e,n){super(e,n),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,n){const i=this.getDataset().data,o=this._cachedMeta;if(this._parsing===!1)o._parsed=i;else{let s=l=>+i[l];if(Vt(i[e])){const{key:l="value"}=this._parsing;s=c=>+ur(i[c],l)}let r,a;for(r=e,a=e+n;r0&&!isNaN(e)?de*(Math.abs(e)/n):0}getLabelAndValue(e){const n=this._cachedMeta,i=this.chart,o=i.data.labels||[],s=ld(n._parsed[e],i.options.locale);return{label:o[e]||"",value:s}}getMaxBorderWidth(e){let n=0;const i=this.chart;let o,s,r,a,l;if(!e){for(o=0,s=i.data.datasets.length;o0&&this.getParsed(n-1);for(let O=0;O=S){V.skip=!0;continue}const J=this.getParsed(O),q=oe(J[p]),I=V[f]=r.getPixelForValue(J[f],O),et=V[p]=s||q?a.getBasePixel():a.getPixelForValue(l?this.applyStack(a,J,l):J[p],O);V.skip=isNaN(I)||isNaN(et)||q,V.stop=O>0&&Math.abs(J[f]-A[f])>x,m&&(V.parsed=J,V.raw=c.data[O]),d&&(V.options=u||this.resolveDataElementOptions(O,U.active?"active":o)),_||this.updateElement(U,O,V,o),A=J}}getMaxOverflow(){const e=this._cachedMeta,n=e.dataset,i=n.options&&n.options.borderWidth||0,o=e.data||[];if(!o.length)return i;const s=o[0].size(this.resolveDataElementOptions(0)),r=o[o.length-1].size(this.resolveDataElementOptions(o.length-1));return Math.max(i,s,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}function qi(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class vd{static override(e){Object.assign(vd.prototype,e)}options;constructor(e){this.options=e||{}}init(){}formats(){return qi()}parse(){return qi()}format(){return qi()}add(){return qi()}diff(){return qi()}startOf(){return qi()}endOf(){return qi()}}var NC={_date:vd};function OC(t,e,n,i){const{controller:o,data:s,_sorted:r}=t,a=o._cachedMeta.iScale,l=t.dataset&&t.dataset.options?t.dataset.options.spanGaps:null;if(a&&e===a.axis&&e!=="r"&&r&&s.length){const c=a._reversePixels?lA:so;if(i){if(o._sharedOptions){const u=s[0],d=typeof u.getRange=="function"&&u.getRange(e);if(d){const f=c(s,e,n-d),p=c(s,e,n+d);return{lo:f.lo,hi:p.hi}}}}else{const u=c(s,e,n);if(l){const{vScale:d}=o._cachedMeta,{_parsed:f}=t,p=f.slice(0,u.lo+1).reverse().findIndex(m=>!oe(m[d.axis]));u.lo-=Math.max(0,p);const y=f.slice(u.hi).findIndex(m=>!oe(m[d.axis]));u.hi+=Math.max(0,y)}return u}}return{lo:0,hi:s.length-1}}function Nl(t,e,n,i,o){const s=t.getSortedVisibleDatasetMetas(),r=n[e];for(let a=0,l=s.length;a{l[r]&&l[r](e[n],o)&&(s.push({element:l,datasetIndex:c,index:u}),a=a||l.inRange(e.x,e.y,o))}),i&&!a?[]:s}var jC={modes:{index(t,e,n,i){const o=Xi(e,t),s=n.axis||"x",r=n.includeInvisible||!1,a=n.intersect?ku(t,o,s,i,r):Pu(t,o,s,!1,i,r),l=[];return a.length?(t.getSortedVisibleDatasetMetas().forEach(c=>{const u=a[0].index,d=c.data[u];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:u})}),l):[]},dataset(t,e,n,i){const o=Xi(e,t),s=n.axis||"xy",r=n.includeInvisible||!1;let a=n.intersect?ku(t,o,s,i,r):Pu(t,o,s,!1,i,r);if(a.length>0){const l=a[0].datasetIndex,c=t.getDatasetMeta(l).data;a=[];for(let u=0;un.pos===e)}function hp(t,e){return t.filter(n=>b1.indexOf(n.pos)===-1&&n.box.axis===e)}function vs(t,e){return t.sort((n,i)=>{const o=e?i:n,s=e?n:i;return o.weight===s.weight?o.index-s.index:o.weight-s.weight})}function UC(t){const e=[];let n,i,o,s,r,a;for(n=0,i=(t||[]).length;nc.box.fullSize),!0),i=vs(ms(e,"left"),!0),o=vs(ms(e,"right")),s=vs(ms(e,"top"),!0),r=vs(ms(e,"bottom")),a=hp(e,"x"),l=hp(e,"y");return{fullSize:n,leftAndTop:i.concat(s),rightAndBottom:o.concat(l).concat(r).concat(a),chartArea:ms(e,"chartArea"),vertical:i.concat(o).concat(l),horizontal:s.concat(r).concat(a)}}function fp(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function _1(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.left),t.bottom=Math.max(t.bottom,e.bottom),t.right=Math.max(t.right,e.right)}function HC(t,e,n,i){const{pos:o,box:s}=n,r=t.maxPadding;if(!Vt(o)){n.size&&(t[o]-=n.size);const d=i[n.stack]||{size:0,count:1};d.size=Math.max(d.size,n.horizontal?s.height:s.width),n.size=d.size/d.count,t[o]+=n.size}s.getPadding&&_1(r,s.getPadding());const a=Math.max(0,e.outerWidth-fp(r,t,"left","right")),l=Math.max(0,e.outerHeight-fp(r,t,"top","bottom")),c=a!==t.w,u=l!==t.h;return t.w=a,t.h=l,n.horizontal?{same:c,other:u}:{same:u,other:c}}function JC(t){const e=t.maxPadding;function n(i){const o=Math.max(e[i]-t[i],0);return t[i]+=o,o}t.y+=n("top"),t.x+=n("left"),n("right"),n("bottom")}function WC(t,e){const n=e.maxPadding;function i(o){const s={left:0,top:0,right:0,bottom:0};return o.forEach(r=>{s[r]=Math.max(e[r],n[r])}),s}return i(t?["left","right"]:["top","bottom"])}function Ts(t,e,n,i){const o=[];let s,r,a,l,c,u;for(s=0,r=t.length,c=0;s{typeof m.beforeLayout=="function"&&m.beforeLayout()});const u=l.reduce((m,x)=>x.box.options&&x.box.options.display===!1?m:m+1,0)||1,d=Object.freeze({outerWidth:e,outerHeight:n,padding:o,availableWidth:s,availableHeight:r,vBoxMaxWidth:s/2/u,hBoxMaxHeight:r/2}),f=Object.assign({},o);_1(f,Tn(i));const p=Object.assign({maxPadding:f,w:s,h:r,x:o.left,y:o.top},o),y=IC(l.concat(c),d);Ts(a.fullSize,p,d,y),Ts(l,p,d,y),Ts(c,p,d,y)&&Ts(l,p,d,y),JC(p),pp(a.leftAndTop,p,d,y),p.x+=p.w,p.y+=p.h,pp(a.rightAndBottom,p,d,y),t.chartArea={left:p.left,top:p.top,right:p.left+p.w,bottom:p.top+p.h,height:p.h,width:p.w},Mt(a.chartArea,m=>{const x=m.box;Object.assign(x,t.chartArea),x.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})})}};class w1{acquireContext(e,n){}releaseContext(e){return!1}addEventListener(e,n,i){}removeEventListener(e,n,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,n,i,o){return n=Math.max(0,n||e.width),i=i||e.height,{width:n,height:Math.max(0,o?Math.floor(n/o):i)}}isAttached(e){return!0}updateConfig(e){}}class GC extends w1{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const ga="$chartjs",qC={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},gp=t=>t===null||t==="";function KC(t,e){const n=t.style,i=t.getAttribute("height"),o=t.getAttribute("width");if(t[ga]={initial:{height:i,width:o,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",n.boxSizing=n.boxSizing||"border-box",gp(o)){const s=ep(t,"width");s!==void 0&&(t.width=s)}if(gp(i))if(t.style.height==="")t.height=t.width/(e||2);else{const s=ep(t,"height");s!==void 0&&(t.height=s)}return t}const x1=sC?{passive:!0}:!1;function XC(t,e,n){t&&t.addEventListener(e,n,x1)}function YC(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,x1)}function ZC(t,e){const n=qC[t.type]||t.type,{x:i,y:o}=Xi(t,e);return{type:n,chart:e,native:t,x:i!==void 0?i:null,y:o!==void 0?o:null}}function tl(t,e){for(const n of t)if(n===e||n.contains(e))return!0}function QC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||tl(a.addedNodes,i),r=r&&!tl(a.removedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}function MC(t,e,n){const i=t.canvas,o=new MutationObserver(s=>{let r=!1;for(const a of s)r=r||tl(a.removedNodes,i),r=r&&!tl(a.addedNodes,i);r&&n()});return o.observe(document,{childList:!0,subtree:!0}),o}const fr=new Map;let mp=0;function E1(){const t=window.devicePixelRatio;t!==mp&&(mp=t,fr.forEach((e,n)=>{n.currentDevicePixelRatio!==t&&e()}))}function tT(t,e){fr.size||window.addEventListener("resize",E1),fr.set(t,e)}function eT(t){fr.delete(t),fr.size||window.removeEventListener("resize",E1)}function nT(t,e,n){const i=t.canvas,o=i&&pd(i);if(!o)return;const s=n1((a,l)=>{const c=o.clientWidth;n(a,l),c{const l=a[0],c=l.contentRect.width,u=l.contentRect.height;c===0&&u===0||s(c,u)});return r.observe(o),tT(t,s),r}function Ru(t,e,n){n&&n.disconnect(),e==="resize"&&eT(t)}function iT(t,e,n){const i=t.canvas,o=n1(s=>{t.ctx!==null&&n(ZC(s,t))},t);return XC(i,e,o),o}class oT extends w1{acquireContext(e,n){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(KC(e,n),i):null}releaseContext(e){const n=e.canvas;if(!n[ga])return!1;const i=n[ga].initial;["height","width"].forEach(s=>{const r=i[s];oe(r)?n.removeAttribute(s):n.setAttribute(s,r)});const o=i.style||{};return Object.keys(o).forEach(s=>{n.style[s]=o[s]}),n.width=n.width,delete n[ga],!0}addEventListener(e,n,i){this.removeEventListener(e,n);const o=e.$proxies||(e.$proxies={}),s={attach:QC,detach:MC,resize:nT}[n]||iT;o[n]=s(e,n,i)}removeEventListener(e,n){const i=e.$proxies||(e.$proxies={}),o=i[n];o&&(({attach:Ru,detach:Ru,resize:Ru}[n]||YC)(e,n,o),i[n]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,n,i,o){return oC(e,n,i,o)}isAttached(e){const n=e&&pd(e);return!!(n&&n.isConnected)}}function sT(t){return!fd()||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas?GC:oT}let wo=class{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e,y:n}}hasValue(){return cr(this.x)&&cr(this.y)}getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={};return t.forEach(o=>{i[o]=n[o]&&n[o].active()?n[o]._to:this[o]}),i}};function rT(t,e){const n=t.options.ticks,i=aT(t),o=Math.min(n.maxTicksLimit||i,i),s=n.major.enabled?uT(e):[],r=s.length,a=s[0],l=s[r-1],c=[];if(r>o)return cT(e,c,s,r/o),c;const u=lT(s,e,o);if(r>0){let d,f;const p=r>1?Math.round((l-a)/(r-1)):null;for(Zr(e,c,u,oe(p)?0:a-p,a),d=0,f=r-1;do)return l}return Math.max(o,1)}function uT(t){const e=[];let n,i;for(n=0,i=t.length;nt==="left"?"right":t==="right"?"left":t,vp=(t,e,n)=>e==="top"||e==="left"?t[e]+n:t[e]-n,yp=(t,e)=>Math.min(e||t,t);function bp(t,e){const n=[],i=t.length/e,o=t.length;let s=0;for(;sr+a)))return l}function pT(t,e){Mt(t,n=>{const i=n.gc,o=i.length/2;let s;if(o>e){for(s=0;si?i:n,i=o&&n>i?n:i,{min:Nn(n,Nn(i,n)),max:Nn(i,Nn(n,i))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}getLabelItems(e=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(e))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){re(this.options.beforeUpdate,[this])}update(e,n,i){const{beginAtZero:o,grace:s,ticks:r}=this.options,a=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=n,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=BA(this,s,o),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=a=s||i<=1||!this.isHorizontal()){this.labelRotation=o;return}const u=this._getLabelSizes(),d=u.widest.width,f=u.highest.height,p=Ke(this.chart.width-d,0,this.maxWidth);a=e.offset?this.maxWidth/i:p/(i-1),d+6>a&&(a=p/(i-(e.offset?.5:1)),l=this.maxHeight-ys(e.grid)-n.padding-_p(e.title,this.chart.options.font),c=Math.sqrt(d*d+f*f),r=sA(Math.min(Math.asin(Ke((u.highest.height+6)/a,-1,1)),Math.asin(Ke(l/c,-1,1))-Math.asin(Ke(f/c,-1,1)))),r=Math.max(o,Math.min(s,r))),this.labelRotation=r}afterCalculateLabelRotation(){re(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){re(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:n,options:{ticks:i,title:o,grid:s}}=this,r=this._isVisible(),a=this.isHorizontal();if(r){const l=_p(o,n.options.font);if(a?(e.width=this.maxWidth,e.height=ys(s)+l):(e.height=this.maxHeight,e.width=ys(s)+l),i.display&&this.ticks.length){const{first:c,last:u,widest:d,highest:f}=this._getLabelSizes(),p=i.padding*2,y=ui(this.labelRotation),m=Math.cos(y),x=Math.sin(y);if(a){const _=i.mirror?0:x*d.width+m*f.height;e.height=Math.min(this.maxHeight,e.height+_+p)}else{const _=i.mirror?0:m*d.width+x*f.height;e.width=Math.min(this.maxWidth,e.width+_+p)}this._calculatePadding(c,u,x,m)}}this._handleMargins(),a?(this.width=this._length=n.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=n.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,n,i,o){const{ticks:{align:s,padding:r},position:a}=this.options,l=this.labelRotation!==0,c=a!=="top"&&this.axis==="x";if(this.isHorizontal()){const u=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let f=0,p=0;l?c?(f=o*e.width,p=i*n.height):(f=i*e.height,p=o*n.width):s==="start"?p=n.width:s==="end"?f=e.width:s!=="inner"&&(f=e.width/2,p=n.width/2),this.paddingLeft=Math.max((f-u+r)*this.width/(this.width-u),0),this.paddingRight=Math.max((p-d+r)*this.width/(this.width-d),0)}else{let u=n.height/2,d=e.height/2;s==="start"?(u=0,d=e.height):s==="end"&&(u=n.height,d=0),this.paddingTop=u+r,this.paddingBottom=d+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){re(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:n}=this.options;return n==="top"||n==="bottom"||e==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){this.beforeTickToLabelConversion(),this.generateTickLabels(e);let n,i;for(n=0,i=e.length;n({width:r[q]||0,height:a[q]||0});return{first:J(0),last:J(n-1),widest:J(U),highest:J(V),widths:r,heights:a}}getLabelForValue(e){return e}getPixelForValue(e,n){return NaN}getValueForPixel(e){}getPixelForTick(e){const n=this.ticks;return e<0||e>n.length-1?null:this.getPixelForValue(n[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const n=this._startPixel+e*this._length;return aA(this._alignToPixels?Gi(this.chart,n,0):n)}getDecimalForPixel(e){const n=(e-this._startPixel)/this._length;return this._reversePixels?1-n:n}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:n}=this;return e<0&&n<0?n:e>0&&n>0?e:0}getContext(e){const n=this.ticks||[];if(e>=0&&ea*o?a/i:l/o:l*o0}_computeGridLineItems(e){const n=this.axis,i=this.chart,o=this.options,{grid:s,position:r,border:a}=o,l=s.offset,c=this.isHorizontal(),u=this.ticks.length+(l?1:0),d=ys(s),f=[],p=a.setContext(this.getContext()),y=p.display?p.width:0,m=y/2,x=function(M){return Gi(i,M,y)};let _,S,P,A,O,U,V,J,q,I,et,T;if(r==="top")_=x(this.bottom),U=this.bottom-d,J=_-m,I=x(e.top)+m,T=e.bottom;else if(r==="bottom")_=x(this.top),I=e.top,T=x(e.bottom)-m,U=_+m,J=this.top+d;else if(r==="left")_=x(this.right),O=this.right-d,V=_-m,q=x(e.left)+m,et=e.right;else if(r==="right")_=x(this.left),q=e.left,et=x(e.right)-m,O=_+m,V=this.left+d;else if(n==="x"){if(r==="center")_=x((e.top+e.bottom)/2+.5);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];_=x(this.chart.scales[M].getPixelForValue(Z))}I=e.top,T=e.bottom,U=_+m,J=U+d}else if(n==="y"){if(r==="center")_=x((e.left+e.right)/2);else if(Vt(r)){const M=Object.keys(r)[0],Z=r[M];_=x(this.chart.scales[M].getPixelForValue(Z))}O=_-m,V=O-d,q=e.left,et=e.right}const j=Ot(o.ticks.maxTicksLimit,u),Q=Math.max(1,Math.ceil(u/j));for(S=0;S0&&(At-=Lt/2);break}St={left:At,top:$t,width:Lt+gt.width,height:qt+gt.height,color:M.backdropColor}}x.push({label:A,font:q,textOffset:T,options:{rotation:m,color:rt,strokeColor:lt,strokeWidth:ft,textAlign:pt,textBaseline:j,translation:[O,U],backdrop:St}})}return x}_getXAxisLabelAlignment(){const{position:e,ticks:n}=this.options;if(-ui(this.labelRotation))return e==="top"?"left":"right";let i="center";return n.align==="start"?i="left":n.align==="end"?i="right":n.align==="inner"&&(i="inner"),i}_getYAxisLabelAlignment(e){const{position:n,ticks:{crossAlign:i,mirror:o,padding:s}}=this.options,r=this._getLabelSizes(),a=e+s,l=r.widest.width;let c,u;return n==="left"?o?(u=this.right+s,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u+=l)):(u=this.right-a,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u=this.left)):n==="right"?o?(u=this.left+s,i==="near"?c="right":i==="center"?(c="center",u-=l/2):(c="left",u-=l)):(u=this.left+a,i==="near"?c="left":i==="center"?(c="center",u+=l/2):(c="right",u=this.right)):c="right",{textAlign:c,x:u}}_computeLabelArea(){if(this.options.ticks.mirror)return;const e=this.chart,n=this.options.position;if(n==="left"||n==="right")return{top:0,left:this.left,bottom:e.height,right:this.right};if(n==="top"||n==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:e.width}}drawBackground(){const{ctx:e,options:{backgroundColor:n},left:i,top:o,width:s,height:r}=this;n&&(e.save(),e.fillStyle=n,e.fillRect(i,o,s,r),e.restore())}getLineWidthForValue(e){const n=this.options.grid;if(!this._isVisible()||!n.display)return 0;const i=this.ticks.findIndex(o=>o.value===e);return i>=0?n.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const n=this.options.grid,i=this.ctx,o=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let s,r;const a=(l,c,u)=>{!u.width||!u.color||(i.save(),i.lineWidth=u.width,i.strokeStyle=u.color,i.setLineDash(u.borderDash||[]),i.lineDashOffset=u.borderDashOffset,i.beginPath(),i.moveTo(l.x,l.y),i.lineTo(c.x,c.y),i.stroke(),i.restore())};if(n.display)for(s=0,r=o.length;s{this.draw(s)}}]:[{z:i,draw:s=>{this.drawBackground(),this.drawGrid(s),this.drawTitle()}},{z:o,draw:()=>{this.drawBorder()}},{z:n,draw:s=>{this.drawLabels(s)}}]}getMatchingVisibleMetas(e){const n=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",o=[];let s,r;for(s=0,r=n.length;s{const i=n.split("."),o=i.pop(),s=[t].concat(i).join("."),r=e[n].split("."),a=r.pop(),l=r.join(".");ge.route(s,o,l,a)})}function wT(t){return"id"in t&&"defaults"in t}class xT{constructor(){this.controllers=new Qr(gd,"datasets",!0),this.elements=new Qr(wo,"elements"),this.plugins=new Qr(Object,"plugins"),this.scales=new Qr(ts,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,n,i){[...n].forEach(o=>{const s=i||this._getRegistryForType(o);i||s.isForType(o)||s===this.plugins&&o.id?this._exec(e,s,o):Mt(o,r=>{const a=i||this._getRegistryForType(r);this._exec(e,a,r)})})}_exec(e,n,i){const o=sd(e);re(i["before"+o],[],i),n[e](i),re(i["after"+o],[],i)}_getRegistryForType(e){for(let n=0;ns.filter(a=>!r.some(l=>a.plugin.id===l.plugin.id));this._notify(o(n,i),e,"stop"),this._notify(o(i,n),e,"start")}}function ST(t){const e={},n=[],i=Object.keys(Bn.plugins.items);for(let s=0;s1&&wp(t[0].toLowerCase());if(i)return i}throw new Error(`Cannot determine type of '${t}' axis. Please provide 'axis' or 'position' option.`)}function xp(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}function LT(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.filter(i=>i.xAxisID===t||i.yAxisID===t);if(n.length)return xp(t,"x",n[0])||xp(t,"y",n[0])}return{}}function DT(t,e){const n=go[t.type]||{scales:{}},i=e.scales||{},o=Ac(t.type,e),s=Object.create(null);return Object.keys(i).forEach(r=>{const a=i[r];if(!Vt(a))return console.error(`Invalid scale configuration for scale: ${r}`);if(a._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${r}`);const l=Cc(r,a,LT(r,t),ge.scales[a.type]),c=PT(l,o),u=n.scales||{};s[r]=Vs(Object.create(null),[{axis:l},a,u[l],u[c]])}),t.data.datasets.forEach(r=>{const a=r.type||t.type,l=r.indexAxis||Ac(a,e),c=(go[a]||{}).scales||{};Object.keys(c).forEach(u=>{const d=kT(u,l),f=r[d+"AxisID"]||d;s[f]=s[f]||Object.create(null),Vs(s[f],[{axis:d},i[f],c[u]])})}),Object.keys(s).forEach(r=>{const a=s[r];Vs(a,[ge.scales[a.type],ge.scale])}),s}function S1(t){const e=t.options||(t.options={});e.plugins=Ot(e.plugins,{}),e.scales=DT(t,e)}function A1(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.labels||[],t}function NT(t){return t=t||{},t.data=A1(t.data),S1(t),t}const Ep=new Map,C1=new Set;function Mr(t,e){let n=Ep.get(t);return n||(n=e(),Ep.set(t,n),C1.add(n)),n}const bs=(t,e,n)=>{const i=ur(e,n);i!==void 0&&t.add(i)};class OT{constructor(e){this._config=NT(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=A1(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),S1(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Mr(e,()=>[[`datasets.${e}`,""]])}datasetAnimationScopeKeys(e,n){return Mr(`${e}.transition.${n}`,()=>[[`datasets.${e}.transitions.${n}`,`transitions.${n}`],[`datasets.${e}`,""]])}datasetElementScopeKeys(e,n){return Mr(`${e}-${n}`,()=>[[`datasets.${e}.elements.${n}`,`datasets.${e}`,`elements.${n}`,""]])}pluginScopeKeys(e){const n=e.id,i=this.type;return Mr(`${i}-plugin-${n}`,()=>[[`plugins.${n}`,...e.additionalOptionScopes||[]]])}_cachedScopes(e,n){const i=this._scopeCache;let o=i.get(e);return(!o||n)&&(o=new Map,i.set(e,o)),o}getOptionScopes(e,n,i){const{options:o,type:s}=this,r=this._cachedScopes(e,i),a=r.get(n);if(a)return a;const l=new Set;n.forEach(u=>{e&&(l.add(e),u.forEach(d=>bs(l,e,d))),u.forEach(d=>bs(l,o,d)),u.forEach(d=>bs(l,go[s]||{},d)),u.forEach(d=>bs(l,ge,d)),u.forEach(d=>bs(l,xc,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),C1.has(n)&&r.set(n,c),c}chartOptionScopes(){const{options:e,type:n}=this;return[e,go[n]||{},ge.datasets[n]||{},{type:n},ge,xc]}resolveNamedOptions(e,n,i,o=[""]){const s={$shared:!0},{resolver:r,subPrefixes:a}=Sp(this._resolverCache,e,o);let l=r;if(BT(r,n)){s.$shared=!1,i=$i(i)?i():i;const c=this.createResolver(e,i,a);l=Ko(r,i,c)}for(const c of n)s[c]=l[c];return s}createResolver(e,n,i=[""],o){const{resolver:s}=Sp(this._resolverCache,e,i);return Vt(n)?Ko(s,n,void 0,o):s}}function Sp(t,e,n){let i=t.get(e);i||(i=new Map,t.set(e,i));const o=n.join();let s=i.get(o);return s||(s={resolver:cd(e,n),subPrefixes:n.filter(r=>!r.toLowerCase().includes("hover"))},i.set(o,s)),s}const $T=t=>Vt(t)&&Object.getOwnPropertyNames(t).some(e=>$i(t[e]));function BT(t,e){const{isScriptable:n,isIndexable:i}=r1(t);for(const o of e){const s=n(o),r=i(o),a=(r||s)&&t[o];if(s&&($i(a)||$T(a))||r&&Se(a))return!0}return!1}var FT="4.5.1";const jT=["top","bottom","left","right","chartArea"];function Ap(t,e){return t==="top"||t==="bottom"||jT.indexOf(t)===-1&&e==="x"}function Cp(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}function Tp(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("afterRender"),re(n&&n.onComplete,[t],e)}function UT(t){const e=t.chart,n=e.options.animation;re(n&&n.onProgress,[t],e)}function T1(t){return fd()&&typeof t=="string"?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const ma={},kp=t=>{const e=T1(t);return Object.values(ma).filter(n=>n.canvas===e).pop()};function VT(t,e,n){const i=Object.keys(t);for(const o of i){const s=+o;if(s>=e){const r=t[o];delete t[o],(n>0||s>e)&&(t[s+n]=r)}}}function IT(t,e,n,i){return!n||t.type==="mouseout"?null:i?e:t}let mo=class{static defaults=ge;static instances=ma;static overrides=go;static registry=Bn;static version=FT;static getChart=kp;static register(...t){Bn.add(...t),Pp()}static unregister(...t){Bn.remove(...t),Pp()}constructor(t,e){const n=this.config=new OT(e),i=T1(t),o=kp(i);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const s=n.createResolver(n.chartOptionScopes(),this.getContext());this.platform=new(n.platform||sT(i)),this.platform.updateConfig(n);const r=this.platform.acquireContext(i,s.aspectRatio),a=r&&r.canvas,l=a&&a.height,c=a&&a.width;if(this.id=G4(),this.ctx=r,this.canvas=a,this.width=c,this.height=l,this._options=s,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new ET,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=hA(u=>this.update(u),s.resizeDelay||0),this._dataChanges=[],ma[this.id]=this,!r||!a){console.error("Failed to create chart: can't acquire context from the given item");return}Mn.listen(this,"complete",Tp),Mn.listen(this,"progress",UT),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:n,height:i,_aspectRatio:o}=this;return oe(t)?e&&o?o:i?n/i:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return Bn}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():tp(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Zf(this.canvas,this.ctx),this}stop(){return Mn.stop(this),this}resize(t,e){Mn.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const n=this.options,i=this.canvas,o=n.maintainAspectRatio&&this.aspectRatio,s=this.platform.getMaximumSize(i,t,e,o),r=n.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=s.width,this.height=s.height,this._aspectRatio=this.aspectRatio,tp(this,r,!0)&&(this.notifyPlugins("resize",{size:s}),re(n.onResize,[this,s],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){const t=this.options.scales||{};Mt(t,(e,n)=>{e.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,i=Object.keys(n).reduce((s,r)=>(s[r]=!1,s),{});let o=[];e&&(o=o.concat(Object.keys(e).map(s=>{const r=e[s],a=Cc(s,r),l=a==="r",c=a==="x";return{options:r,dposition:l?"chartArea":c?"bottom":"left",dtype:l?"radialLinear":c?"category":"linear"}}))),Mt(o,s=>{const r=s.options,a=r.id,l=Cc(a,r),c=Ot(r.type,s.dtype);(r.position===void 0||Ap(r.position,l)!==Ap(s.dposition))&&(r.position=s.dposition),i[a]=!0;let u=null;if(a in n&&n[a].type===c)u=n[a];else{const d=Bn.getScale(c);u=new d({id:a,type:c,ctx:this.ctx,chart:this}),n[u.id]=u}u.init(r,t)}),Mt(i,(s,r)=>{s||delete n[r]}),Mt(n,s=>{Ti.configure(this,s,s.options),Ti.addBox(this,s)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n=t.length;if(t.sort((i,o)=>i.index-o.index),n>e){for(let i=e;ie.length&&delete this._stacks,t.forEach((n,i)=>{e.filter(o=>o===n._dataset).length===0&&this._destroyDatasetMeta(i)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,i;for(this._removeUnreferencedMetasets(),n=0,i=e.length;n{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const n=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),i=this._animationsDisabled=!n.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let s=0;for(let l=0,c=this.data.datasets.length;l{l.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(Cp("z","_idx"));const{_active:r,_lastEvent:a}=this;a?this._eventHandler(a,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){Mt(this.scales,t=>{Ti.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),n=new Set(t.events);(!If(e,n)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:n,start:i,count:o}of e){const s=n==="_removeElements"?-o:o;VT(t,i,s)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,n=o=>new Set(t.filter(s=>s[0]===o).map((s,r)=>r+","+s.splice(1).join(","))),i=n(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;Ti.update(this,this.width,this.height,t);const e=this.chartArea,n=e.width<=0||e.height<=0;this._layers=[],Mt(this.boxes,i=>{n&&i.position==="chartArea"||(i.configure&&i.configure(),this._layers.push(...i._layers()))},this),this._layers.forEach((i,o)=>{i._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,n=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0},i=m1(this,t);this.notifyPlugins("beforeDatasetDraw",n)!==!1&&(i&&Rl(e,i),t.controller.draw(),i&&Ll(e),n.cancelable=!1,this.notifyPlugins("afterDatasetDraw",n))}isPointInArea(t){return hr(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,n,i){const o=jC.modes[e];return typeof o=="function"?o(this,t,n,i):[]}getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i=n.filter(o=>o&&o._dataset===e).pop();return i||(i={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},n.push(i)),i}getContext(){return this.$context||(this.$context=_o(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const n=this.getDatasetMeta(t);return typeof n.hidden=="boolean"?!n.hidden:!e.hidden}setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,n){const i=n?"show":"hide",o=this.getDatasetMeta(t),s=o.controller._resolveAnimations(void 0,i);Ya(e)?(o.data[e].hidden=!n,this.update()):(this.setDatasetVisibility(t,n),s.update(o,{visible:n}),this.update(r=>r.datasetIndex===t?i:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),Mn.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,s),t[o]=s},i=(o,s,r)=>{o.offsetX=s,o.offsetY=r,this._eventHandler(o)};Mt(this.options.events,o=>n(o,i))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,n=(a,l)=>{e.addEventListener(this,a,l),t[a]=l},i=(a,l)=>{t[a]&&(e.removeEventListener(this,a,l),delete t[a])},o=(a,l)=>{this.canvas&&this.resize(a,l)};let s;const r=()=>{i("attach",r),this.attached=!0,this.resize(),n("resize",o),n("detach",s)};s=()=>{this.attached=!1,i("resize",o),this._stop(),this._resize(0,0),n("attach",r)},e.isAttached(this.canvas)?r():s()}unbindEvents(){Mt(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},Mt(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,n){const i=n?"set":"remove";let o,s,r,a;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+i+"DatasetHoverStyle"]()),r=0,a=t.length;r{const s=this.getDatasetMeta(i);if(!s)throw new Error("No dataset found at index "+i);return{datasetIndex:i,element:s.data[o],index:o}});!Ka(n,e)&&(this._active=n,this._lastEvent=null,this._updateHoverStyles(n,e))}notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,n){const i=this.options.hover,o=(a,l)=>a.filter(c=>!l.some(u=>c.datasetIndex===u.datasetIndex&&c.index===u.index)),s=o(e,t),r=n?t:o(t,e);s.length&&this.updateHoverStyle(s,i.mode,!1),r.length&&i.mode&&this.updateHoverStyle(r,i.mode,!0)}_eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},i=s=>(s.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",n,i)===!1)return;const o=this._handleEvent(t,e,n.inChartArea);return n.cancelable=!1,this.notifyPlugins("afterEvent",n,i),(o||n.changed)&&this.render(),this}_handleEvent(t,e,n){const{_active:i=[],options:o}=this,s=e,r=this._getActiveElements(t,i,n,s),a=Q4(t),l=IT(t,this._lastEvent,n,a);n&&(this._lastEvent=null,re(o.onHover,[t,r,this],this),a&&re(o.onClick,[t,r,this],this));const c=!Ka(r,i);return(c||e)&&(this._active=r,this._updateHoverStyles(r,i,e)),this._lastEvent=l,c}_getActiveElements(t,e,n,i){if(t.type==="mouseout")return[];if(!n)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,i)}};function Pp(){return Mt(mo.instances,t=>t._plugins.invalidate())}function zT(t,e,n){const{startAngle:i,x:o,y:s,outerRadius:r,innerRadius:a,options:l}=e,{borderWidth:c,borderJoinStyle:u}=l,d=Math.min(c/r,rn(i-n));if(t.beginPath(),t.arc(o,s,r-c/2,i+d/2,n-d/2),a>0){const f=Math.min(c/a,rn(i-n));t.arc(o,s,a+c/2,n-f/2,i+f/2,!0)}else{const f=Math.min(c/2,r*rn(i-n));if(u==="round")t.arc(o,s,f,n-ee/2,i+ee/2,!0);else if(u==="bevel"){const p=2*f*f,y=-p*Math.cos(n+ee/2)+o,m=-p*Math.sin(n+ee/2)+s,x=p*Math.cos(i+ee/2)+o,_=p*Math.sin(i+ee/2)+s;t.lineTo(y,m),t.lineTo(x,_)}}t.closePath(),t.moveTo(0,0),t.rect(0,0,t.canvas.width,t.canvas.height),t.clip("evenodd")}function HT(t,e,n){const{startAngle:i,pixelMargin:o,x:s,y:r,outerRadius:a,innerRadius:l}=e;let c=o/a;t.beginPath(),t.arc(s,r,a,i-c,n+c),l>o?(c=o/l,t.arc(s,r,l,n+c,i-c,!0)):t.arc(s,r,o,n+we,i-we),t.closePath(),t.clip()}function JT(t){return ud(t,["outerStart","outerEnd","innerStart","innerEnd"])}function WT(t,e,n,i){const o=JT(t.options.borderRadius),s=(n-e)/2,r=Math.min(s,i*e/2),a=l=>{const c=(n-Math.min(s,l))*i/2;return Ke(l,0,Math.min(s,c))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:Ke(o.innerStart,0,r),innerEnd:Ke(o.innerEnd,0,r)}}function Do(t,e,n,i){return{x:n+t*Math.cos(e),y:i+t*Math.sin(e)}}function el(t,e,n,i,o,s){const{x:r,y:a,startAngle:l,pixelMargin:c,innerRadius:u}=e,d=Math.max(e.outerRadius+i+n-c,0),f=u>0?u+i+n+c:0;let p=0;const y=o-l;if(i){const M=u>0?u-i:0,Z=d>0?d-i:0,rt=(M+Z)/2,lt=rt!==0?y*rt/(rt+i):y;p=(y-lt)/2}const m=Math.max(.001,y*d-n/ee)/d,x=(y-m)/2,_=l+x+p,S=o-x-p,{outerStart:P,outerEnd:A,innerStart:O,innerEnd:U}=WT(e,f,d,S-_),V=d-P,J=d-A,q=_+P/V,I=S-A/J,et=f+O,T=f+U,j=_+O/et,Q=S-U/T;if(t.beginPath(),s){const M=(q+I)/2;if(t.arc(r,a,d,q,M),t.arc(r,a,d,M,I),A>0){const ft=Do(J,I,r,a);t.arc(ft.x,ft.y,A,I,S+we)}const Z=Do(T,S,r,a);if(t.lineTo(Z.x,Z.y),U>0){const ft=Do(T,Q,r,a);t.arc(ft.x,ft.y,U,S+we,Q+Math.PI)}const rt=(S-U/f+(_+O/f))/2;if(t.arc(r,a,f,S-U/f,rt,!0),t.arc(r,a,f,rt,_+O/f,!0),O>0){const ft=Do(et,j,r,a);t.arc(ft.x,ft.y,O,j+Math.PI,_-we)}const lt=Do(V,_,r,a);if(t.lineTo(lt.x,lt.y),P>0){const ft=Do(V,q,r,a);t.arc(ft.x,ft.y,P,_-we,q)}}else{t.moveTo(r,a);const M=Math.cos(q)*d+r,Z=Math.sin(q)*d+a;t.lineTo(M,Z);const rt=Math.cos(I)*d+r,lt=Math.sin(I)*d+a;t.lineTo(rt,lt)}t.closePath()}function GT(t,e,n,i,o){const{fullCircles:s,startAngle:r,circumference:a}=e;let l=e.endAngle;if(s){el(t,e,n,i,l,o);for(let c=0;c=ee&&p===0&&u!=="miter"&&zT(t,e,m),s||(el(t,e,n,i,m,o),t.stroke())}class KT extends wo{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,n,i){const o=this.getProps(["x","y"],i),{angle:s,distance:r}=Mm(o,{x:e,y:n}),{startAngle:a,endAngle:l,innerRadius:c,outerRadius:u,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),f=(this.options.spacing+this.options.borderWidth)/2,p=Ot(d,l-a),y=dr(s,a,l)&&a!==l,m=p>=de||y,x=oo(r,c+f,u+f);return m&&x}getCenterPoint(e){const{x:n,y:i,startAngle:o,endAngle:s,innerRadius:r,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:l,spacing:c}=this.options,u=(o+s)/2,d=(r+a+c+l)/2;return{x:n+Math.cos(u)*d,y:i+Math.sin(u)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:n,circumference:i}=this,o=(n.offset||0)/4,s=(n.spacing||0)/2,r=n.circular;if(this.pixelMargin=n.borderAlign==="inner"?.33:0,this.fullCircles=i>de?Math.floor(i/de):0,i===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const a=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(a)*o,Math.sin(a)*o);const l=1-Math.sin(Math.min(ee,i||0)),c=o*l;e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,GT(e,this,c,s,r),qT(e,this,c,s,r),e.restore()}}function k1(t,e,n=e){t.lineCap=Ot(n.borderCapStyle,e.borderCapStyle),t.setLineDash(Ot(n.borderDash,e.borderDash)),t.lineDashOffset=Ot(n.borderDashOffset,e.borderDashOffset),t.lineJoin=Ot(n.borderJoinStyle,e.borderJoinStyle),t.lineWidth=Ot(n.borderWidth,e.borderWidth),t.strokeStyle=Ot(n.borderColor,e.borderColor)}function XT(t,e,n){t.lineTo(n.x,n.y)}function YT(t){return t.stepped?CA:t.tension||t.cubicInterpolationMode==="monotone"?TA:XT}function P1(t,e,n={}){const i=t.length,{start:o=0,end:s=i-1}=n,{start:r,end:a}=e,l=Math.max(o,r),c=Math.min(s,a),u=oa&&s>a;return{count:i,start:l,loop:e.loop,ilen:c(r+(c?a-A:A))%s,P=()=>{m!==x&&(t.lineTo(u,x),t.lineTo(u,m),t.lineTo(u,_))};for(l&&(p=o[S(0)],t.moveTo(p.x,p.y)),f=0;f<=a;++f){if(p=o[S(f)],p.skip)continue;const A=p.x,O=p.y,U=A|0;U===y?(Ox&&(x=O),u=(d*u+A)/++d):(P(),t.lineTo(A,O),y=U,d=0,m=x=O),_=O}P()}function Tc(t){const e=t.options,n=e.borderDash&&e.borderDash.length;return!t._decimated&&!t._loop&&!e.tension&&e.cubicInterpolationMode!=="monotone"&&!e.stepped&&!n?QT:ZT}function MT(t){return t.stepped?rC:t.tension||t.cubicInterpolationMode==="monotone"?aC:Yi}function t3(t,e,n,i){let o=e._path;o||(o=e._path=new Path2D,e.path(o,n,i)&&o.closePath()),k1(t,e.options),t.stroke(o)}function e3(t,e,n,i){const{segments:o,options:s}=e,r=Tc(e);for(const a of o)k1(t,s,a.style),t.beginPath(),r(t,e,a,{start:n,end:n+i-1})&&t.closePath(),t.stroke()}const n3=typeof Path2D=="function";function i3(t,e,n,i){n3&&!e.options.segment?t3(t,e,n,i):e3(t,e,n,i)}class Er extends wo{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:e=>e!=="borderDash"&&e!=="fill"};constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,n){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const o=i.spanGaps?this._loop:this._fullLoop;QA(this._points,i,e,o,n),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=fC(this,this.options.segment))}first(){const e=this.segments,n=this.points;return e.length&&n[e[0].start]}last(){const e=this.segments,n=this.points,i=e.length;return i&&n[e[i-1].end]}interpolate(e,n){const i=this.options,o=e[n],s=this.points,r=g1(this,{property:n,start:o,end:o});if(!r.length)return;const a=[],l=MT(i);let c,u;for(c=0,u=r.length;c{a=Ol(r,a,o);const l=o[r],c=o[a];i!==null?(s.push({x:l.x,y:i}),s.push({x:c.x,y:i})):n!==null&&(s.push({x:n,y:l.y}),s.push({x:n,y:c.y}))}),s}function Ol(t,e,n){for(;e>t;e--){const i=n[e];if(!isNaN(i.x)&&!isNaN(i.y))break}return e}function Lp(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}function L1(t,e){let n=[],i=!1;return Se(t)?(i=!0,n=t):n=s3(t,e),n.length?new Er({points:n,options:{tension:0},_loop:i,_fullLoop:i}):null}function Dp(t){return t&&t.fill!==!1}function r3(t,e,n){let i=t[e].fill;const o=[e];let s;if(!n)return i;for(;i!==!1&&o.indexOf(i)===-1;){if(!Ie(i))return i;if(s=t[i],!s)return!1;if(s.visible)return i;o.push(i),i=s.fill}return!1}function a3(t,e,n){const i=d3(t);if(Vt(i))return isNaN(i.value)?!1:i;let o=parseFloat(i);return Ie(o)&&Math.floor(o)===o?l3(i[0],e,o,n):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}function l3(t,e,n,i){return(t==="-"||t==="+")&&(n=e+n),n===e||n<0||n>=i?!1:n}function u3(t,e){let n=null;return t==="start"?n=e.bottom:t==="end"?n=e.top:Vt(t)?n=e.getPixelForValue(t.value):e.getBasePixel&&(n=e.getBasePixel()),n}function c3(t,e,n){let i;return t==="start"?i=n:t==="end"?i=e.options.reverse?e.min:e.max:Vt(t)?i=t.value:i=e.getBaseValue(),i}function d3(t){const e=t.options,n=e.fill;let i=Ot(n&&n.target,n);return i===void 0&&(i=!!e.backgroundColor),i===!1||i===null?!1:i===!0?"origin":i}function h3(t){const{scale:e,index:n,line:i}=t,o=[],s=i.segments,r=i.points,a=f3(e,n);a.push(L1({x:null,y:e.bottom},i));for(let l=0;l=0;--r){const a=o[r].$filler;a&&(a.line.updateControlPoints(s,a.axis),i&&a.fill&&Lu(t.ctx,a,s))}},beforeDatasetsDraw(t,e,n){if(n.drawTime!=="beforeDatasetsDraw")return;const i=t.getSortedVisibleDatasetMetas();for(let o=i.length-1;o>=0;--o){const s=i[o].$filler;Dp(s)&&Lu(t.ctx,s,t.chartArea)}},beforeDatasetDraw(t,e,n){const i=e.meta.$filler;!Dp(i)||n.drawTime!=="beforeDatasetDraw"||Lu(t.ctx,i,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Bp=(t,e)=>{let{boxHeight:n=e,boxWidth:i=e}=t;return t.usePointStyle&&(n=Math.min(n,e),i=t.pointStyleWidth||Math.min(i,e)),{boxWidth:i,boxHeight:n,itemHeight:Math.max(e,n)}},E3=(t,e)=>t!==null&&e!==null&&t.datasetIndex===e.datasetIndex&&t.index===e.index;class Fp extends wo{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,n,i){this.maxWidth=e,this.maxHeight=n,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let n=re(e.generateLabels,[this.chart],this)||[];e.filter&&(n=n.filter(i=>e.filter(i,this.chart.data))),e.sort&&(n=n.sort((i,o)=>e.sort(i,o,this.chart.data))),this.options.reverse&&n.reverse(),this.legendItems=n}fit(){const{options:e,ctx:n}=this;if(!e.display){this.width=this.height=0;return}const i=e.labels,o=tn(i.font),s=o.size,r=this._computeTitleHeight(),{boxWidth:a,itemHeight:l}=Bp(i,s);let c,u;n.font=o.string,this.isHorizontal()?(c=this.maxWidth,u=this._fitRows(r,s,a,l)+10):(u=this.maxHeight,c=this._fitCols(r,o,a,l)+10),this.width=Math.min(c,e.maxWidth||this.maxWidth),this.height=Math.min(u,e.maxHeight||this.maxHeight)}_fitRows(e,n,i,o){const{ctx:s,maxWidth:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],u=o+a;let d=e;s.textAlign="left",s.textBaseline="middle";let f=-1,p=-u;return this.legendItems.forEach((y,m)=>{const x=i+n/2+s.measureText(y.text).width;(m===0||c[c.length-1]+x+2*a>r)&&(d+=u,c[c.length-(m>0?0:1)]=0,p+=u,f++),l[m]={left:0,top:p,row:f,width:x,height:o},c[c.length-1]+=x+a}),d}_fitCols(e,n,i,o){const{ctx:s,maxHeight:r,options:{labels:{padding:a}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],u=r-e;let d=a,f=0,p=0,y=0,m=0;return this.legendItems.forEach((x,_)=>{const{itemWidth:S,itemHeight:P}=S3(i,n,s,x,o);_>0&&p+P+2*a>u&&(d+=f+a,c.push({width:f,height:p}),y+=f+a,m++,f=p=0),l[_]={left:y,top:p,col:m,width:S,height:P},f=Math.max(f,S),p+=P+a}),d+=f,c.push({width:f,height:p}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:n,options:{align:i,labels:{padding:o},rtl:s}}=this,r=Jo(s,this.left,this.width);if(this.isHorizontal()){let a=0,l=sn(i,this.left+o,this.right-this.lineWidths[a]);for(const c of n)a!==c.row&&(a=c.row,l=sn(i,this.left+o,this.right-this.lineWidths[a])),c.top+=this.top+e+o,c.left=r.leftForLtr(r.x(l),c.width),l+=c.width+o}else{let a=0,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height);for(const c of n)c.col!==a&&(a=c.col,l=sn(i,this.top+e+o,this.bottom-this.columnSizes[a].height)),c.top=l,c.left+=this.left+o,c.left=r.leftForLtr(r.x(c.left),c.width),l+=c.height+o}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const e=this.ctx;Rl(e,this),this._draw(),Ll(e)}}_draw(){const{options:e,columnSizes:n,lineWidths:i,ctx:o}=this,{align:s,labels:r}=e,a=ge.color,l=Jo(e.rtl,this.left,this.width),c=tn(r.font),{padding:u}=r,d=c.size,f=d/2;let p;this.drawTitle(),o.textAlign=l.textAlign("left"),o.textBaseline="middle",o.lineWidth=.5,o.font=c.string;const{boxWidth:y,boxHeight:m,itemHeight:x}=Bp(r,d),_=function(U,V,J){if(isNaN(y)||y<=0||isNaN(m)||m<0)return;o.save();const q=Ot(J.lineWidth,1);if(o.fillStyle=Ot(J.fillStyle,a),o.lineCap=Ot(J.lineCap,"butt"),o.lineDashOffset=Ot(J.lineDashOffset,0),o.lineJoin=Ot(J.lineJoin,"miter"),o.lineWidth=q,o.strokeStyle=Ot(J.strokeStyle,a),o.setLineDash(Ot(J.lineDash,[])),r.usePointStyle){const I={radius:m*Math.SQRT2/2,pointStyle:J.pointStyle,rotation:J.rotation,borderWidth:q},et=l.xPlus(U,y/2),T=V+f;s1(o,I,et,T,r.pointStyleWidth&&y)}else{const I=V+Math.max((d-m)/2,0),et=l.leftForLtr(U,y),T=Js(J.borderRadius);o.beginPath(),Object.values(T).some(j=>j!==0)?Sc(o,{x:et,y:I,w:y,h:m,radius:T}):o.rect(et,I,y,m),o.fill(),q!==0&&o.stroke()}o.restore()},S=function(U,V,J){Qa(o,J.text,U,V+x/2,c,{strikethrough:J.hidden,textAlign:l.textAlign(J.textAlign)})},P=this.isHorizontal(),A=this._computeTitleHeight();P?p={x:sn(s,this.left+u,this.right-i[0]),y:this.top+u+A,line:0}:p={x:this.left+u,y:sn(s,this.top+A+u,this.bottom-n[0].height),line:0},d1(this.ctx,e.textDirection);const O=x+u;this.legendItems.forEach((U,V)=>{o.strokeStyle=U.fontColor,o.fillStyle=U.fontColor;const J=o.measureText(U.text).width,q=l.textAlign(U.textAlign||(U.textAlign=r.textAlign)),I=y+f+J;let et=p.x,T=p.y;l.setWidth(this.width),P?V>0&&et+I+u>this.right&&(T=p.y+=O,p.line++,et=p.x=sn(s,this.left+u,this.right-i[p.line])):V>0&&T+O>this.bottom&&(et=p.x=et+n[p.line].width+u,p.line++,T=p.y=sn(s,this.top+A+u,this.bottom-n[p.line].height));const j=l.x(et);if(_(j,T,U),et=fA(q,et+y+f,P?et+I:this.right,e.rtl),S(l.x(et),T,U),P)p.x+=I+u;else if(typeof U.text!="string"){const Q=c.lineHeight;p.y+=O1(U,Q)+u}else p.y+=O}),h1(this.ctx,e.textDirection)}drawTitle(){const e=this.options,n=e.title,i=tn(n.font),o=Tn(n.padding);if(!n.display)return;const s=Jo(e.rtl,this.left,this.width),r=this.ctx,a=n.position,l=i.size/2,c=o.top+l;let u,d=this.left,f=this.width;if(this.isHorizontal())f=Math.max(...this.lineWidths),u=this.top+c,d=sn(e.align,d,this.right-f);else{const y=this.columnSizes.reduce((m,x)=>Math.max(m,x.height),0);u=c+sn(e.align,this.top,this.bottom-y-e.labels.padding-this._computeTitleHeight())}const p=sn(a,d,d+f);r.textAlign=s.textAlign(i1(a)),r.textBaseline="middle",r.strokeStyle=n.color,r.fillStyle=n.color,r.font=i.string,Qa(r,n.text,p,u,i)}_computeTitleHeight(){const e=this.options.title,n=tn(e.font),i=Tn(e.padding);return e.display?n.lineHeight+i.height:0}_getLegendItemAt(e,n){let i,o,s;if(oo(e,this.left,this.right)&&oo(n,this.top,this.bottom)){for(s=this.legendHitBoxes,i=0;is.length>r.length?s:r)),e+n.size/2+i.measureText(o).width}function C3(t,e,n){let i=t;return typeof e.text!="string"&&(i=O1(e,n)),i}function O1(t,e){const n=t.text?t.text.length:0;return e*n}function T3(t,e){return!!((t==="mousemove"||t==="mouseout")&&(e.onHover||e.onLeave)||e.onClick&&(t==="click"||t==="mouseup"))}var k3={id:"legend",_element:Fp,start(t,e,n){const i=t.legend=new Fp({ctx:t.ctx,options:n,chart:t});Ti.configure(t,i,n),Ti.addBox(t,i)},stop(t){Ti.removeBox(t,t.legend),delete t.legend},beforeUpdate(t,e,n){const i=t.legend;Ti.configure(t,i,n),i.options=n},afterUpdate(t){const e=t.legend;e.buildLabels(),e.adjustHitBoxes()},afterEvent(t,e){e.replay||t.legend.handleEvent(e.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(t,e,n){const i=e.datasetIndex,o=n.chart;o.isDatasetVisible(i)?(o.hide(i),e.hidden=!0):(o.show(i),e.hidden=!1)},onHover:null,onLeave:null,labels:{color:t=>t.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:n,pointStyle:i,textAlign:o,color:s,useBorderRadius:r,borderRadius:a}}=t.legend.options;return t._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(n?0:void 0),u=Tn(c.borderWidth);return{text:e[l.index].label,fillStyle:c.backgroundColor,fontColor:s,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(u.width+u.height)/4,strokeStyle:c.borderColor,pointStyle:i||c.pointStyle,rotation:c.rotation,textAlign:o||c.textAlign,borderRadius:r&&(a||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};const ks={average(t){if(!t.length)return!1;let e,n,i=new Set,o=0,s=0;for(e=0,n=t.length;er+a)/i.size,y:o/s}},nearest(t,e){if(!t.length)return!1;let n=e.x,i=e.y,o=Number.POSITIVE_INFINITY,s,r,a;for(s=0,r=t.length;s-1?t.split(` -`):t}function k3(t,e){const{element:n,datasetIndex:i,index:o}=e,s=t.getDatasetMeta(i).controller,{label:r,value:a}=s.getLabelAndValue(o);return{chart:t,label:r,parsed:s.getParsed(o),raw:t.data.datasets[i].data[o],formattedValue:a,dataset:s.getDataset(),dataIndex:o,datasetIndex:i,element:n}}function jp(t,e){const n=t.chart.ctx,{body:i,footer:o,title:s}=t,{boxWidth:r,boxHeight:a}=e,l=Me(e.bodyFont),c=Me(e.titleFont),u=Me(e.footerFont),d=s.length,f=o.length,p=i.length,y=Cn(e.padding);let m=y.height,x=0,b=i.reduce((S,N)=>S+N.before.length+N.lines.length+N.after.length,0);if(b+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*c.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),b){const S=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=p*S+(b-p)*l.lineHeight+(b-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*u.lineHeight+(f-1)*e.footerSpacing);let A=0;const R=function(S){x=Math.max(x,n.measureText(S).width+A)};return n.save(),n.font=c.string,Mt(t.title,R),n.font=l.string,Mt(t.beforeBody.concat(t.afterBody),R),A=e.displayColors?r+2+e.boxPadding:0,Mt(i,S=>{Mt(S.before,R),Mt(S.lines,R),Mt(S.after,R)}),A=0,n.font=u.string,Mt(t.footer,R),n.restore(),x+=y.width,{width:x,height:m}}function R3(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function P3(t,e,n,i){const{x:o,width:s}=i,r=n.caretSize+n.caretPadding;if(t==="left"&&o+s+r>e.width||t==="right"&&o-s-r<0)return!0}function L3(t,e,n,i){const{x:o,width:s}=n,{width:r,chartArea:{left:a,right:l}}=t;let c="center";return i==="center"?c=o<=(a+l)/2?"left":"right":o<=s/2?c="left":o>=r-s/2&&(c="right"),P3(c,t,e,n)&&(c="center"),c}function Up(t,e,n){const i=n.yAlign||e.yAlign||R3(t,n);return{xAlign:n.xAlign||e.xAlign||L3(t,e,n,i),yAlign:i}}function D3(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function N3(t,e,n){let{y:i,height:o}=t;return e==="top"?i+=n:e==="bottom"?i-=o+n:i-=o/2,i}function Vp(t,e,n,i){const{caretSize:o,caretPadding:s,cornerRadius:r}=t,{xAlign:a,yAlign:l}=n,c=o+s,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=Hs(r);let y=D3(e,a);const m=N3(e,l,c);return l==="center"?a==="left"?y+=c:a==="right"&&(y-=c):a==="left"?y-=Math.max(u,f)+o:a==="right"&&(y+=Math.max(d,p)+o),{x:qe(y,0,i.width-e.width),y:qe(m,0,i.height-e.height)}}function ta(t,e,n){const i=Cn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function Ip(t){return Nn([],Qn(t))}function O3(t,e,n){return bo(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function zp(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const O1={beforeTitle:Yn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?O1[e].call(n,i):o}class Hp extends _o{static positioners=Ts;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),o=i.enabled&&n.options.animation&&i.animations,s=new m1(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=O3(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,o=Ye(i,"beforeTitle",this,e),s=Ye(i,"title",this,e),r=Ye(i,"afterTitle",this,e);let a=[];return a=Nn(a,Qn(o)),a=Nn(a,Qn(s)),a=Nn(a,Qn(r)),a}getBeforeBody(e,n){return Ip(Ye(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,o=[];return Mt(e,s=>{const r={before:[],lines:[],after:[]},a=zp(i,s);Nn(r.before,Qn(Ye(a,"beforeLabel",this,s))),Nn(r.lines,Ye(a,"label",this,s)),Nn(r.after,Qn(Ye(a,"afterLabel",this,s))),o.push(r)}),o}getAfterBody(e,n){return Ip(Ye(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,o=Ye(i,"beforeFooter",this,e),s=Ye(i,"footer",this,e),r=Ye(i,"afterFooter",this,e);let a=[];return a=Nn(a,Qn(o)),a=Nn(a,Qn(s)),a=Nn(a,Qn(r)),a}_createItems(e){const n=this._active,i=this.chart.data,o=[],s=[],r=[];let a=[],l,c;for(l=0,c=n.length;le.filter(u,d,f,i))),e.itemSort&&(a=a.sort((u,d)=>e.itemSort(u,d,i))),Mt(a,u=>{const d=zp(e.callbacks,u);o.push(Ye(d,"labelColor",this,u)),s.push(Ye(d,"labelPointStyle",this,u)),r.push(Ye(d,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=r,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),o=this._active;let s,r=[];if(!o.length)this.opacity!==0&&(s={opacity:0});else{const a=Ts[i.position].call(this,o,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=jp(this,i),c=Object.assign({},a,l),u=Up(this.chart,i,c),d=Vp(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,o){const s=this.getCaretPosition(e,i,o);n.lineTo(s.x1,s.y1),n.lineTo(s.x2,s.y2),n.lineTo(s.x3,s.y3)}getCaretPosition(e,n,i){const{xAlign:o,yAlign:s}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=Hs(a),{x:f,y:p}=e,{width:y,height:m}=n;let x,b,A,R,S,N;return s==="center"?(S=p+m/2,o==="left"?(x=f,b=x-r,R=S+r,N=S-r):(x=f+y,b=x+r,R=S-r,N=S+r),A=x):(o==="left"?b=f+Math.max(l,u)+r:o==="right"?b=f+y-Math.max(c,d)-r:b=this.caretX,s==="top"?(R=p,S=R-r,x=b-r,A=b+r):(R=p+m,S=R+r,x=b+r,A=b-r),N=R),{x1:x,x2:b,x3:A,y1:R,y2:S,y3:N}}drawTitle(e,n,i){const o=this.title,s=o.length;let r,a,l;if(s){const c=Ho(i.rtl,this.x,this.width);for(e.x=ta(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=Me(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;lA!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,Ec(e,{x:m,y,w:c,h:l,radius:b}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),Ec(e,{x,y:y+1,w:c-2,h:l-2,radius:b}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(m,y,c,l),e.strokeRect(m,y,c,l),e.fillStyle=r.backgroundColor,e.fillRect(x,y+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:o}=this,{bodySpacing:s,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=Me(i.bodyFont);let f=d.lineHeight,p=0;const y=Ho(i.rtl,this.x,this.width),m=function(H){n.fillText(H,y.x(e.x+p),e.y+f/2),e.y+=f+s},x=y.textAlign(r);let b,A,R,S,N,j,U;for(n.textAlign=r,n.textBaseline="middle",n.font=d.string,e.x=ta(this,x,i),n.fillStyle=i.bodyColor,Mt(this.beforeBody,m),p=a&&x!=="right"?r==="center"?c/2+u:c+2+u:0,S=0,j=o.length;S0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,o=i&&i.x,s=i&&i.y;if(o||s){const r=Ts[e.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=jp(this,e),l=Object.assign({},r,this._size),c=Up(n,e,l),u=Vp(e,l,c,n);(o._to!==u.x||s._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=Cn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(s,e,o,n),c1(e,n.textDirection),s.y+=r.top,this.drawTitle(s,e,n),this.drawBody(s,e,n),this.drawFooter(s,e,n),d1(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,o=e.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),s=!qa(i,o),r=this._positionChanged(o,n);(s||r)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],r=this._getActiveElements(e,s,n,i),a=this._positionChanged(r,e),l=n||!qa(r,s)||a;return l&&(this._active=r,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,o){const s=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(e,s.mode,s,i);return s.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:i,caretY:o,options:s}=this,r=Ts[s.position].call(this,e,n);return r!==!1&&(i!==r.x||o!==r.y)}}var yd={id:"tooltip",_element:Hp,positioners:Ts,afterInit(t,e,n){n&&(t.tooltip=new Hp({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:O1},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const $3=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function B3(t,e,n,i){const o=t.indexOf(e);if(o===-1)return $3(t,e,n,i);const s=t.lastIndexOf(e);return o!==s?n:o}const F3=(t,e)=>t===null?null:qe(Math.round(t),0,e);function Jp(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function j3(t,e){const n=[],{bounds:i,step:o,min:s,max:r,precision:a,count:l,maxTicks:c,maxDigits:u,includeBounds:d}=t,f=o||1,p=c-1,{min:y,max:m}=e,x=!oe(s),b=!oe(r),A=!oe(l),R=(m-y)/(u+1);let S=Hf((m-y)/p/f)*f,N,j,U,H;if(S<1e-14&&!x&&!b)return[{value:y},{value:m}];H=Math.ceil(m/S)-Math.floor(y/S),H>p&&(S=Hf(H*S/p/f)*f),oe(a)||(N=Math.pow(10,a),S=Math.ceil(S*N)/N),i==="ticks"?(j=Math.floor(y/S)*S,U=Math.ceil(m/S)*S):(j=y,U=m),x&&b&&o&&n4((r-s)/o,S/1e3)?(H=Math.round(Math.min((r-s)/S,c)),S=(r-s)/H,j=s,U=r):A?(j=x?s:j,U=b?r:U,H=l-1,S=(U-j)/H):(H=(U-j)/S,Vs(H,Math.round(H),S/1e3)?H=Math.round(H):H=Math.ceil(H));const q=Math.max(Jf(S),Jf(j));N=Math.pow(10,oe(a)?q:a),j=Math.round(j*N)/N,U=Math.round(U*N)/N;let V=0;for(x&&(d&&j!==s?(n.push({value:s}),jr)break;n.push({value:et})}return b&&d&&U!==r?n.length&&Vs(n[n.length-1].value,r,Wp(r,R,t))?n[n.length-1].value=r:n.push({value:r}):(!b||U===r)&&n.push({value:U}),n}function Wp(t,e,{horizontal:n,minRotation:i}){const o=li(i),s=(n?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/s,r)}class U3 extends Mo{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return oe(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:o,max:s}=this;const r=l=>o=n?o:l,a=l=>s=i?s:l;if(e){const l=Go(o),c=Go(s);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(o===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||r(o-l)}this.min=o,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const o={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},s=this._range||this,r=j3(o,s);return e.bounds==="ticks"&&i4(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const o=(i-n)/Math.max(e.length-1,1)/2;n-=o,i+=o}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return ld(e,this.chart.options.locale,this.options.ticks.format)}}class B1 extends U3{static id="linear";static defaults={ticks:{callback:i1.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ve(e)?e:0,this.max=Ve(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=li(this.options.ticks.minRotation),o=(e?Math.sin(i):Math.cos(i))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,s.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const Nl={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Qe=Object.keys(Nl);function Gp(t,e){return t-e}function qp(t,e){if(oe(e))return null;const n=t._adapter,{parser:i,round:o,isoWeekday:s}=t._parseOpts;let r=e;return typeof i=="function"&&(r=i(r)),Ve(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(o&&(r=o==="week"&&(cr(s)||s===!0)?n.startOf(r,"isoWeek",s):n.startOf(r,o)),+r)}function Kp(t,e,n,i){const o=Qe.length;for(let s=Qe.indexOf(t);s=Qe.indexOf(n);s--){const r=Qe[s];if(Nl[r].common&&t._adapter.diff(o,i,r)>=e-1)return r}return Qe[n?Qe.indexOf(n):0]}function I3(t){for(let e=Qe.indexOf(t)+1,n=Qe.length;e=e?n[i]:n[o];t[s]=!0}}function z3(t,e,n,i){const o=t._adapter,s=+o.startOf(e[0].value,i),r=e[e.length-1].value;let a,l;for(a=s;a<=r;a=+o.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function Yp(t,e,n){const i=[],o={},s=e.length;let r,a;for(r=0;r+e.value))}initOffsets(e=[]){let n=0,i=0,o,s;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?i=s:i=(s-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=qe(n,0,r),i=qe(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,o=this.options,s=o.time,r=s.unit||Kp(s.minUnit,n,i,this._getLabelCapacity(n)),a=Ot(o.ticks.stepSize,1),l=r==="week"?s.isoWeekday:!1,c=cr(l)||l===!0,u={};let d=n,f,p;if(c&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,c?"day":r),e.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const y=o.ticks.source==="data"&&this.getDataTimestamps();for(f=d,p=0;f+m)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,o=this._unit,s=n||i[o];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,o){const s=this.options,r=s.ticks.callback;if(r)return re(r,[e,n,i],this);const a=s.time.displayFormats,l=this._unit,c=this._majorUnit,u=l&&a[l],d=c&&a[c],f=i[n],p=c&&d&&f&&f.major;return this._adapter.format(e,o||(p?d:u))}generateTickLabels(e){let n,i,o;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,i=o.length;n=t[i].pos&&e<=t[o].pos&&({lo:i,hi:o}=oo(t,"pos",e)),{pos:s,time:a}=t[i],{pos:r,time:l}=t[o]):(e>=t[i].time&&e<=t[o].time&&({lo:i,hi:o}=oo(t,"time",e)),{time:s,pos:a}=t[i],{time:r,pos:l}=t[o]);const c=r-s;return c?a+(l-a)*(e-s)/c:a}class iO extends Zp{static id="timeseries";static defaults=Zp.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=ea(n,this.min),this._tableRange=ea(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,o=[],s=[];let r,a,l,c,u;for(r=0,a=e.length;r=n&&c<=i&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=o.length;ro-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(ea(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return ea(this._table,i*this._tableRange+this._minPos,!0)}}const F1={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},H3={ariaLabel:{type:String},ariaDescribedby:{type:String}},J3={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...F1,...H3},W3=zg[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function Do(t){return Zo(t)?jt(t):t}function G3(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Zo(e)?new Proxy(t,{}):t}function q3(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function j1(t,e){t.labels=e}function U1(t,e,n){const i=[];t.datasets=e.map(o=>{const s=t.datasets.find(r=>r[n]===o[n]);return!s||!o.data||i.includes(s)?{...o}:(i.push(s),Object.assign(s,o),s)})}function K3(t,e){const n={labels:[],datasets:[]};return j1(n,t.labels),U1(n,t.datasets,e),n}const X3=Rt({props:J3,setup(t,e){let{expose:n,slots:i}=e;const o=ge(null),s=Jn(null);n({chart:s});const r=()=>{if(!o.value)return;const{type:c,data:u,options:d,plugins:f,datasetIdKey:p}=t,y=K3(u,p),m=G3(y,u);s.value=new go(o.value,{type:c,data:m,options:{...d},plugins:f})},a=()=>{const c=jt(s.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),s.value=null},t.destroyDelay):(c.destroy(),s.value=null))},l=c=>{c.update(t.updateMode)};return Oi(r),Wn(a),Ke([()=>t.options,()=>t.data],(c,u)=>{let[d,f]=c,[p,y]=u;const m=jt(s.value);if(!m)return;let x=!1;if(d){const b=Do(d),A=Do(p);b&&b!==A&&(q3(m,b),x=!0)}if(f){const b=Do(f.labels),A=Do(y.labels),R=Do(f.datasets),S=Do(y.datasets);b!==A&&(j1(m.config.data,b),x=!0),R&&R!==S&&(U1(m.config.data,R,t.datasetIdKey),x=!0)}x&&yr(()=>{l(m)})},{deep:!0}),()=>Ne("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:o},[Ne("p",{},[i.default?i.default():""])])}});function Y3(t,e){return go.register(e),Rt({props:F1,setup(n,i){let{expose:o}=i;const s=Jn(null),r=a=>{s.value=a?.chart};return o({chart:s}),()=>Ne(X3,W3({ref:r},{type:t,...n}))}})}const V1=Y3("line",md),Z3={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Q3=["aria-hidden","aria-label"],M3=["fill","width","height"],tk={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},ek={key:0};function nk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",tk,[n.title?(O(),J("title",ek,L(n.title),1)):_t("",!0)])],8,M3))],16,Q3)}const ik=Qt(Z3,[["render",nk]]),ok={key:0},sk={class:"row row--tiles"},rk={id:"cpuSection",class:"infobox"},ak={class:"chart-wrapper"},Qp=60,lk=Rt({__name:"CpuChartSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},tick:{}},setup(t){const e=t;go.register($1,D1,B1,md,Er,R1,yd);function n(){return"rgb(148, 148, 148)"}const i={borderColor:n(),backgroundColor:Wm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o=Jn({labels:Array(Qp).fill(""),datasets:[{...i,data:Array(Qp).fill(null)}]}),s={animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{min:0,max:100,ticks:{color:n(),callback:a=>a+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:a=>a.parsed.y.toFixed(1)+" %"}}}},r=ht(()=>e.cpuload===!1||e.cpunum<=0?null:{usage:(e.cpuload[0]/e.cpunum*100).toFixed(1),loads:e.cpuload.map(a=>a.toFixed(2)).join(" / ")});return Ke(()=>e.tick,()=>{const a=e.cpuload;if(a===!1||e.cpunum<=0||a.length===0)return;const l=[...o.value.labels.slice(1),new Date().toLocaleTimeString()],c=[...o.value.datasets[0].data.slice(1),a[0]/e.cpunum*100];o.value={labels:l,datasets:[{...i,data:c}]}}),(a,l)=>(O(),J(At,null,[ot(Xe,{icon:ik,title:E(I)("serverinfo","Load")},null,8,["title"]),r.value?(O(),J(At,{key:1},[w("div",sk,[ot(tn,{label:E(I)("serverinfo","Current usage"),value:`${r.value.usage} %`},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Threads"),value:t.cpunum},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Load average"),value:r.value.loads},null,8,["label","value"])]),w("div",rk,[w("div",ak,[ot(E(V1),{data:o.value,options:s},null,8,["data"])])])],64)):(O(),J("p",ok,[w("em",null,L(E(I)("serverinfo","CPU info not available")),1)]))],64))}}),uk=Qt(lk,[["__scopeId","data-v-6950f64f"]]),ck={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},dk=["aria-hidden","aria-label"],hk=["fill","width","height"],fk={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},pk={key:0};function gk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",fk,[n.title?(O(),J("title",pk,L(n.title),1)):_t("",!0)])],8,hk))],16,dk)}const mk=Qt(ck,[["render",gk]]),vk={class:"server-info-table"},yk={class:"info"},bk={class:"info"},_k={class:"info"},wk=Rt({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:mk,title:E(I)("serverinfo","Database")},null,8,["title"]),w("div",vk,[w("table",null,[w("tbody",null,[w("tr",null,[w("td",null,L(E(I)("serverinfo","Type:")),1),w("td",yk,L(t.database.type),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Version:")),1),w("td",bk,L(t.database.version),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Size:")),1),w("td",_k,L(E(rr)(t.database.size)),1)])])])])],64))}}),xk={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Ek=["aria-hidden","aria-label"],Ak=["fill","width","height"],Sk={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},Ck={key:0};function Tk(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",Sk,[n.title?(O(),J("title",Ck,L(n.title),1)):_t("",!0)])],8,Ak))],16,Ek)}const kk=Qt(xk,[["render",Tk]]),Rk={class:"section disk-status"},Pk={class:"row row--tiles"},Lk={class:"row row--cards"},Dk={class:"diskchart-container"},Nk=["aria-label"],Ok={class:"diskinfo-container"},$k=["title"],Bk={class:"diskinfo"},Fk={class:"diskinfo__row"},jk={class:"info"},Uk={class:"diskinfo__row"},Vk={class:"info"},Ik={class:"diskinfo__row"},zk={class:"info"},Hk={class:"diskinfo__row"},Jk={class:"info-color-label--available"},Wk={class:"info"},Gk={class:"diskinfo__row"},qk={class:"info-color-label--used"},Kk={class:"info"},Xk=Rt({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;go.register(qT,LC,yd);const n=[],i=[];function o(l){return l.split("/").pop()??l}function s(l){return I("serverinfo","{used} of {total} used",{used:_n(l.used),total:_n(l.used+l.available)})}function r(l){const c=Number.parseFloat(l);return Number.isNaN(c)?l:Math.round(c)+"%"}function a(l,c){return{id:"centerLabel",afterDatasetsDraw(u){const{ctx:d,chartArea:f}=u,p=Math.round((f.right-f.left)*.24);d.save(),d.fillStyle=c,d.font=`bold ${p}px ${getComputedStyle(u.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(f.left+f.right)/2,(f.top+f.bottom)/2),d.restore()}}}return Oi(()=>{const l=td(),c=yc("--color-border-maxcontrast","rgb(148, 148, 148)"),u=yc("--color-main-text","#222222");e.disks.forEach((d,f)=>{const p=n[f];p&&i.push(new go(p,{type:"doughnut",data:{labels:[I("serverinfo","Used"),I("serverinfo","Available")],datasets:[{backgroundColor:[l,c],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:y=>`${y.label}: ${_n(y.parsed)}`}}}},plugins:[a(r(d.percent),u)]}))})}),Wn(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,c)=>(O(),J("div",Rk,[ot(Xe,{icon:kk,title:E(I)("serverinfo","Disk")},null,8,["title"]),w("div",Pk,[ot(tn,{label:E(I)("serverinfo","Files"),value:t.storage.num_files},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Storages"),value:t.storage.num_storages},null,8,["label","value"]),t.freespace!==null?(O(),Ct(tn,{key:0,label:E(I)("serverinfo","Free space"),value:E(rr)(t.freespace)},null,8,["label","value"])):_t("",!0)]),w("div",Lk,[(O(!0),J(At,null,$i(t.disks,(u,d)=>(O(),J("div",{key:u.device,class:"infobox text-center-mobile"},[w("div",Dk,[w("canvas",{ref_for:!0,ref:f=>{f&&(n[d]=f)},class:"DiskChart",role:"img","aria-label":s(u)},null,8,Nk)]),w("div",Ok,[w("h3",{title:u.device},L(o(u.device)),9,$k),w("dl",Bk,[w("div",Fk,[w("dt",null,L(E(I)("serverinfo","Mount:")),1),w("dd",jk,L(u.mount),1)]),w("div",Uk,[w("dt",null,L(E(I)("serverinfo","Filesystem:")),1),w("dd",Vk,L(u.fs),1)]),w("div",Ik,[w("dt",null,L(E(I)("serverinfo","Size:")),1),w("dd",zk,L(E(_n)(u.used+u.available)),1)]),w("div",Hk,[w("dt",Jk,L(E(I)("serverinfo","Available:")),1),w("dd",Wk,L(E(_n)(u.available)),1)]),w("div",Gk,[w("dt",qk,L(E(I)("serverinfo","Used:")),1),w("dd",Kk,L(u.percent)+" ("+L(E(_n)(u.used))+") ",1)])])])]))),128))])]))}}),Yk=Qt(Xk,[["__scopeId","data-v-d52cfcd6"]]),Zk={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Qk=["aria-hidden","aria-label"],Mk=["fill","width","height"],tR={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},eR={key:0};function nR(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",tR,[n.title?(O(),J("title",eR,L(n.title),1)):_t("",!0)])],8,Mk))],16,Qk)}const iR=Qt(Zk,[["render",nR]]),oR={key:0},sR={class:"row row--tiles"},rR={id:"memorySection",class:"infobox"},aR={class:"chart-wrapper"},Du=60,lR=Rt({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;go.register($1,D1,T3,B1,md,Er,R1,yd);const n=ht(()=>e.memTotal!=="N/A"&&e.memFree!=="N/A"),i=ht(()=>e.swapTotal!=="N/A"&&e.swapFree!=="N/A"&&e.swapTotal>0);function o(){return"rgb(148, 148, 148)"}const s={label:I("serverinfo","RAM usage"),borderColor:o(),backgroundColor:Wm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},r={label:I("serverinfo","Swap usage"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=Jn({labels:Array(Du).fill(""),datasets:[{...s,data:Array(Du).fill(null)},{...r,data:Array(Du).fill(null)}]}),l=ge(1),c=ht(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:o(),callback:p=>p+" GB"},grid:{display:!1}}},plugins:{legend:{display:!0,position:"bottom",labels:{color:o(),filter:p=>i.value||p.datasetIndex===0}},tooltip:{callbacks:{label:p=>(p.dataset.label??"")+": "+p.parsed.y.toFixed(2)+" GB"}}}})),u=ht(()=>_n(e.memTotal)),d=ht(()=>_n(e.memTotal-e.memFree)),f=ht(()=>_n(e.swapTotal-e.swapFree));return Ke(()=>e.tick,()=>{if(!n.value)return;const p=e.memTotal/1024,y=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(p,y));const m=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],x=(e.memTotal-e.memFree)/1024,b=[...a.value.datasets[0].data.slice(1),x],A=i.value?(e.swapTotal-e.swapFree)/1024:null,R=[...a.value.datasets[1].data.slice(1),A];a.value={labels:m,datasets:[{...s,data:b},{...r,data:R}]}}),(p,y)=>(O(),J(At,null,[ot(Xe,{icon:iR,title:E(I)("serverinfo","Memory")},null,8,["title"]),n.value?(O(),J(At,{key:1},[w("div",sR,[ot(tn,{label:E(I)("serverinfo","Used"),value:d.value},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Total"),value:u.value},null,8,["label","value"]),i.value?(O(),Ct(tn,{key:0,label:E(I)("serverinfo","Swap used"),value:f.value},null,8,["label","value"])):_t("",!0)]),w("div",rR,[w("div",aR,[ot(E(V1),{data:a.value,options:c.value},null,8,["data","options"])])])],64)):(O(),J("p",oR,[w("em",null,L(E(I)("serverinfo","RAM info not available")),1)]))],64))}}),uR=Qt(lR,[["__scopeId","data-v-494041bc"]]),cR=Rt({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=Mb();return ng(rm,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(n,i)=>(O(),J("div",{class:Yt([n.$style.ncFormBox,t.row?n.$style.ncFormBox_row:n.$style.ncFormBox_col])},[Zt(n.$slots,"default",{itemClass:n.$style.ncFormBox__item})],2))}}),dR="_ncFormBox_s7kf-",hR="_ncFormBox_row_GzYuE",fR="_ncFormBox__item_691pI",pR="_ncFormBox_col_Lt4lg",gR={"material-design-icon":"_material-design-icon_JPsV1",ncFormBox:dR,ncFormBox_row:hR,ncFormBox__item:fR,ncFormBox_col:pR},mR={$style:gR},Nu=Ie(cR,[["__cssModules",mR]]),vR=["id"],yR=Rt({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=wl(),{formBoxItemClass:n}=am(),i=Qo(),o=()=>!!t.description||!!e.description;return(s,r)=>(O(),J("div",{class:Yt([t.class,s.$style.formBoxItem,E(n),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&o(),[s.$style.formBoxItem_legacy]:E(qc)}])},[w("span",{class:Yt(s.$style.formBoxItem__content)},[(O(),Ct(_l(t.tag),ee({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),{default:kt(()=>[Zt(s.$slots,"default",{descriptionId:E(i)},()=>[Dt(L(t.label||"⚠️ Label is missing"),1)])]),_:3},16,["class"])),o()?(O(),J("span",{key:0,id:E(i),class:Yt(s.$style.formBoxItem__description)},[Zt(s.$slots,"description",{},()=>[Dt(L(t.description),1)])],10,vR)):_t("",!0)],2),w("span",{class:Yt(s.$style.formBoxItem__icon)},[Zt(s.$slots,"icon",{descriptionId:E(i)},()=>[r[1]||(r[1]=Dt(" ⚠️ Icon is missing ",-1))])],2)],2))}}),bR="_formBoxItem_Gp-TA",_R="_formBoxItem__description_UqZJ1",wR="_formBoxItem_legacy_dP9aJ",xR="_formBoxItem_inverted_BU-i-",ER="_formBoxItem__element_jHCux",AR="_formBoxItem__content_UKovC",SR="_formBoxItem__icon_AvkP3",CR={"material-design-icon":"_material-design-icon_8BFGk",formBoxItem:bR,formBoxItem__description:_R,formBoxItem_legacy:wR,formBoxItem_inverted:xR,formBoxItem__element:ER,formBoxItem__content:AR,formBoxItem__icon:SR},TR={$style:CR},I1=Ie(yR,[["__cssModules",TR]]);function kR(t){const e=Jo(t),n=Ci(im,null)!==null,i=ht(()=>n&&e.to?"RouterLink":e.href?"a":"button"),o=ht(()=>i.value==="RouterLink"||i.value==="a"),s=ht(()=>i.value==="a"),r=ht(()=>i.value==="RouterLink"),a=ht(()=>i.value==="button"),l=ht(()=>{if(i.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(i.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(i.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:i,isLink:o,isHyperLink:s,isRouterLink:r,isButton:a,attrs:l}}const RR=Rt({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:n,isLink:i}=kR({to:to(()=>t.to),href:to(()=>t.href),target:to(()=>t.target),disabled:to(()=>t.disabled)}),o=ht(()=>{if(i.value)return t.target==="_blank"?Vw:Nw});return(s,r)=>(O(),Ct(I1,ee({tag:E(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},E(n),{tabindex:"0",onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),jc({_:2},[s.$slots.default||t.label?{name:"default",fn:kt(()=>[Zt(s.$slots,"default",{},()=>[Dt(L(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:kt(()=>[Zt(s.$slots,"description",{},()=>[Dt(L(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||o.value?{name:"icon",fn:kt(()=>[Zt(s.$slots,"icon",{},()=>[o.value?(O(),Ct(Vn,{key:0,path:o.value,inline:""},null,8,["path"])):_t("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),PR="_formBoxButton_E8Xfr",LR={"material-design-icon":"_material-design-icon_MaIxG",formBoxButton:PR},DR={$style:LR},NR=Ie(RR,[["__cssModules",DR]]);wr(Aw);const OR=2e3;function $R(t){const e=ge(!1),n=ht(()=>e.value?Ow:jw),i=ht(()=>e.value?We("Copied"):We("Copy to clipboard"));async function o(){if(e.value)return;const s=Fe(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},OR)}return{isCopied:e,copy:o,icon:n,altText:i}}const BR={class:"hidden-visually"},Ou=Rt({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const n=e,{isCopied:i,copy:o,icon:s,altText:r}=$R(()=>t.value);return fx(i,()=>n("copy")),(a,l)=>(O(),Ct(NR,{disabled:t.disabled,invertedAccent:"",onClick:E(o)},jc({description:kt(()=>[Dt(L(t.value),1)]),icon:kt(()=>[ot(Vn,{path:E(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:kt(()=>[w("span",BR,L(E(r)),1),Zt(a.$slots,"default",{},()=>[Dt(L(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),FR=`A+O.before.length+O.lines.length+O.after.length,0);if(_+=t.beforeBody.length+t.afterBody.length,d&&(m+=d*c.lineHeight+(d-1)*e.titleSpacing+e.titleMarginBottom),_){const A=e.displayColors?Math.max(a,l.lineHeight):l.lineHeight;m+=p*A+(_-p)*l.lineHeight+(_-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*u.lineHeight+(f-1)*e.footerSpacing);let S=0;const P=function(A){x=Math.max(x,n.measureText(A).width+S)};return n.save(),n.font=c.string,Mt(t.title,P),n.font=l.string,Mt(t.beforeBody.concat(t.afterBody),P),S=e.displayColors?r+2+e.boxPadding:0,Mt(i,A=>{Mt(A.before,P),Mt(A.lines,P),Mt(A.after,P)}),S=0,n.font=u.string,Mt(t.footer,P),n.restore(),x+=y.width,{width:x,height:m}}function R3(t,e){const{y:n,height:i}=e;return nt.height-i/2?"bottom":"center"}function L3(t,e,n,i){const{x:o,width:s}=i,r=n.caretSize+n.caretPadding;if(t==="left"&&o+s+r>e.width||t==="right"&&o-s-r<0)return!0}function D3(t,e,n,i){const{x:o,width:s}=n,{width:r,chartArea:{left:a,right:l}}=t;let c="center";return i==="center"?c=o<=(a+l)/2?"left":"right":o<=s/2?c="left":o>=r-s/2&&(c="right"),L3(c,t,e,n)&&(c="center"),c}function Up(t,e,n){const i=n.yAlign||e.yAlign||R3(t,n);return{xAlign:n.xAlign||e.xAlign||D3(t,e,n,i),yAlign:i}}function N3(t,e){let{x:n,width:i}=t;return e==="right"?n-=i:e==="center"&&(n-=i/2),n}function O3(t,e,n){let{y:i,height:o}=t;return e==="top"?i+=n:e==="bottom"?i-=o+n:i-=o/2,i}function Vp(t,e,n,i){const{caretSize:o,caretPadding:s,cornerRadius:r}=t,{xAlign:a,yAlign:l}=n,c=o+s,{topLeft:u,topRight:d,bottomLeft:f,bottomRight:p}=Js(r);let y=N3(e,a);const m=O3(e,l,c);return l==="center"?a==="left"?y+=c:a==="right"&&(y-=c):a==="left"?y-=Math.max(u,f)+o:a==="right"&&(y+=Math.max(d,p)+o),{x:Ke(y,0,i.width-e.width),y:Ke(m,0,i.height-e.height)}}function ta(t,e,n){const i=Tn(n.padding);return e==="center"?t.x+t.width/2:e==="right"?t.x+t.width-i.right:t.x+i.left}function Ip(t){return On([],ti(t))}function $3(t,e,n){return _o(t,{tooltip:e,tooltipItems:n,type:"tooltip"})}function zp(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return n?t.override(n):t}const $1={beforeTitle:Qn,title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:0;if(this&&this.options&&this.options.mode==="dataset")return e.dataset.label||"";if(e.label)return e.label;if(i>0&&e.dataIndex"u"?$1[e].call(n,i):o}class Hp extends wo{static positioners=ks;constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const n=this.chart,i=this.options.setContext(this.getContext()),o=i.enabled&&n.options.animation&&i.animations,s=new v1(this.chart,o);return o._cacheable&&(this._cachedAnimations=Object.freeze(s)),s}getContext(){return this.$context||(this.$context=$3(this.chart.getContext(),this,this._tooltipItems))}getTitle(e,n){const{callbacks:i}=n,o=Ze(i,"beforeTitle",this,e),s=Ze(i,"title",this,e),r=Ze(i,"afterTitle",this,e);let a=[];return a=On(a,ti(o)),a=On(a,ti(s)),a=On(a,ti(r)),a}getBeforeBody(e,n){return Ip(Ze(n.callbacks,"beforeBody",this,e))}getBody(e,n){const{callbacks:i}=n,o=[];return Mt(e,s=>{const r={before:[],lines:[],after:[]},a=zp(i,s);On(r.before,ti(Ze(a,"beforeLabel",this,s))),On(r.lines,Ze(a,"label",this,s)),On(r.after,ti(Ze(a,"afterLabel",this,s))),o.push(r)}),o}getAfterBody(e,n){return Ip(Ze(n.callbacks,"afterBody",this,e))}getFooter(e,n){const{callbacks:i}=n,o=Ze(i,"beforeFooter",this,e),s=Ze(i,"footer",this,e),r=Ze(i,"afterFooter",this,e);let a=[];return a=On(a,ti(o)),a=On(a,ti(s)),a=On(a,ti(r)),a}_createItems(e){const n=this._active,i=this.chart.data,o=[],s=[],r=[];let a=[],l,c;for(l=0,c=n.length;le.filter(u,d,f,i))),e.itemSort&&(a=a.sort((u,d)=>e.itemSort(u,d,i))),Mt(a,u=>{const d=zp(e.callbacks,u);o.push(Ze(d,"labelColor",this,u)),s.push(Ze(d,"labelPointStyle",this,u)),r.push(Ze(d,"labelTextColor",this,u))}),this.labelColors=o,this.labelPointStyles=s,this.labelTextColors=r,this.dataPoints=a,a}update(e,n){const i=this.options.setContext(this.getContext()),o=this._active;let s,r=[];if(!o.length)this.opacity!==0&&(s={opacity:0});else{const a=ks[i.position].call(this,o,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const l=this._size=jp(this,i),c=Object.assign({},a,l),u=Up(this.chart,i,c),d=Vp(i,c,u,this.chart);this.xAlign=u.xAlign,this.yAlign=u.yAlign,s={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:a.x,caretY:a.y}}this._tooltipItems=r,this.$context=void 0,s&&this._resolveAnimations().update(this,s),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:n})}drawCaret(e,n,i,o){const s=this.getCaretPosition(e,i,o);n.lineTo(s.x1,s.y1),n.lineTo(s.x2,s.y2),n.lineTo(s.x3,s.y3)}getCaretPosition(e,n,i){const{xAlign:o,yAlign:s}=this,{caretSize:r,cornerRadius:a}=i,{topLeft:l,topRight:c,bottomLeft:u,bottomRight:d}=Js(a),{x:f,y:p}=e,{width:y,height:m}=n;let x,_,S,P,A,O;return s==="center"?(A=p+m/2,o==="left"?(x=f,_=x-r,P=A+r,O=A-r):(x=f+y,_=x+r,P=A-r,O=A+r),S=x):(o==="left"?_=f+Math.max(l,u)+r:o==="right"?_=f+y-Math.max(c,d)-r:_=this.caretX,s==="top"?(P=p,A=P-r,x=_-r,S=_+r):(P=p+m,A=P+r,x=_+r,S=_-r),O=P),{x1:x,x2:_,x3:S,y1:P,y2:A,y3:O}}drawTitle(e,n,i){const o=this.title,s=o.length;let r,a,l;if(s){const c=Jo(i.rtl,this.x,this.width);for(e.x=ta(this,i.titleAlign,i),n.textAlign=c.textAlign(i.titleAlign),n.textBaseline="middle",r=tn(i.titleFont),a=i.titleSpacing,n.fillStyle=i.titleColor,n.font=r.string,l=0;lS!==0)?(e.beginPath(),e.fillStyle=s.multiKeyBackground,Sc(e,{x:m,y,w:c,h:l,radius:_}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),Sc(e,{x,y:y+1,w:c-2,h:l-2,radius:_}),e.fill()):(e.fillStyle=s.multiKeyBackground,e.fillRect(m,y,c,l),e.strokeRect(m,y,c,l),e.fillStyle=r.backgroundColor,e.fillRect(x,y+1,c-2,l-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,n,i){const{body:o}=this,{bodySpacing:s,bodyAlign:r,displayColors:a,boxHeight:l,boxWidth:c,boxPadding:u}=i,d=tn(i.bodyFont);let f=d.lineHeight,p=0;const y=Jo(i.rtl,this.x,this.width),m=function(J){n.fillText(J,y.x(e.x+p),e.y+f/2),e.y+=f+s},x=y.textAlign(r);let _,S,P,A,O,U,V;for(n.textAlign=r,n.textBaseline="middle",n.font=d.string,e.x=ta(this,x,i),n.fillStyle=i.bodyColor,Mt(this.beforeBody,m),p=a&&x!=="right"?r==="center"?c/2+u:c+2+u:0,A=0,U=o.length;A0&&n.stroke()}_updateAnimationTarget(e){const n=this.chart,i=this.$animations,o=i&&i.x,s=i&&i.y;if(o||s){const r=ks[e.position].call(this,this._active,this._eventPosition);if(!r)return;const a=this._size=jp(this,e),l=Object.assign({},r,this._size),c=Up(n,e,l),u=Vp(e,l,c,n);(o._to!==u.x||s._to!==u.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=a.width,this.height=a.height,this.caretX=r.x,this.caretY=r.y,this._resolveAnimations().update(this,u))}}_willRender(){return!!this.opacity}draw(e){const n=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(n);const o={width:this.width,height:this.height},s={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=Tn(n.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;n.enabled&&a&&(e.save(),e.globalAlpha=i,this.drawBackground(s,e,o,n),d1(e,n.textDirection),s.y+=r.top,this.drawTitle(s,e,n),this.drawBody(s,e,n),this.drawFooter(s,e,n),h1(e,n.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,n){const i=this._active,o=e.map(({datasetIndex:a,index:l})=>{const c=this.chart.getDatasetMeta(a);if(!c)throw new Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[l],index:l}}),s=!Ka(i,o),r=this._positionChanged(o,n);(s||r)&&(this._active=o,this._eventPosition=n,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,n,i=!0){if(n&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const o=this.options,s=this._active||[],r=this._getActiveElements(e,s,n,i),a=this._positionChanged(r,e),l=n||!Ka(r,s)||a;return l&&(this._active=r,(o.enabled||o.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,n))),l}_getActiveElements(e,n,i,o){const s=this.options;if(e.type==="mouseout")return[];if(!o)return n.filter(a=>this.chart.data.datasets[a.datasetIndex]&&this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index)!==void 0);const r=this.chart.getElementsAtEventForMode(e,s.mode,s,i);return s.reverse&&r.reverse(),r}_positionChanged(e,n){const{caretX:i,caretY:o,options:s}=this,r=ks[s.position].call(this,e,n);return r!==!1&&(i!==r.x||o!==r.y)}}var yd={id:"tooltip",_element:Hp,positioners:ks,afterInit(t,e,n){n&&(t.tooltip=new Hp({chart:t,options:n}))},beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)},reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e};if(t.notifyPlugins("beforeTooltipDraw",{...n,cancelable:!0})===!1)return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",n)}},afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.event,n,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:$1},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:t=>t!=="filter"&&t!=="itemSort"&&t!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]};const B3=(t,e,n,i)=>(typeof e=="string"?(n=t.push(e)-1,i.unshift({index:n,label:e})):isNaN(e)&&(n=null),n);function F3(t,e,n,i){const o=t.indexOf(e);if(o===-1)return B3(t,e,n,i);const s=t.lastIndexOf(e);return o!==s?n:o}const j3=(t,e)=>t===null?null:Ke(Math.round(t),0,e);function Jp(t){const e=this.getLabels();return t>=0&&tn.length-1?null:this.getPixelForValue(n[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function U3(t,e){const n=[],{bounds:i,step:o,min:s,max:r,precision:a,count:l,maxTicks:c,maxDigits:u,includeBounds:d}=t,f=o||1,p=c-1,{min:y,max:m}=e,x=!oe(s),_=!oe(r),S=!oe(l),P=(m-y)/(u+1);let A=Hf((m-y)/p/f)*f,O,U,V,J;if(A<1e-14&&!x&&!_)return[{value:y},{value:m}];J=Math.ceil(m/A)-Math.floor(y/A),J>p&&(A=Hf(J*A/p/f)*f),oe(a)||(O=Math.pow(10,a),A=Math.ceil(A*O)/O),i==="ticks"?(U=Math.floor(y/A)*A,V=Math.ceil(m/A)*A):(U=y,V=m),x&&_&&o&&iA((r-s)/o,A/1e3)?(J=Math.round(Math.min((r-s)/A,c)),A=(r-s)/J,U=s,V=r):S?(U=x?s:U,V=_?r:V,J=l-1,A=(V-U)/J):(J=(V-U)/A,Is(J,Math.round(J),A/1e3)?J=Math.round(J):J=Math.ceil(J));const q=Math.max(Jf(A),Jf(U));O=Math.pow(10,oe(a)?q:a),U=Math.round(U*O)/O,V=Math.round(V*O)/O;let I=0;for(x&&(d&&U!==s?(n.push({value:s}),Ur)break;n.push({value:et})}return _&&d&&V!==r?n.length&&Is(n[n.length-1].value,r,Wp(r,P,t))?n[n.length-1].value=r:n.push({value:r}):(!_||V===r)&&n.push({value:V}),n}function Wp(t,e,{horizontal:n,minRotation:i}){const o=ui(i),s=(n?Math.sin(o):Math.cos(o))||.001,r=.75*e*(""+t).length;return Math.min(e/s,r)}class V3 extends ts{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,n){return oe(e)||(typeof e=="number"||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:n,maxDefined:i}=this.getUserBounds();let{min:o,max:s}=this;const r=l=>o=n?o:l,a=l=>s=i?s:l;if(e){const l=qo(o),c=qo(s);l<0&&c<0?a(0):l>0&&c>0&&r(0)}if(o===s){let l=s===0?1:Math.abs(s*.05);a(s+l),e||r(o-l)}this.min=o,this.max=s}getTickLimit(){const e=this.options.ticks;let{maxTicksLimit:n,stepSize:i}=e,o;return i?(o=Math.ceil(this.max/i)-Math.floor(this.min/i)+1,o>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${i} would result generating up to ${o} ticks. Limiting to 1000.`),o=1e3)):(o=this.computeTickLimit(),n=n||11),n&&(o=Math.min(n,o)),o}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,n=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const o={maxTicks:i,bounds:e.bounds,min:e.min,max:e.max,precision:n.precision,step:n.stepSize,count:n.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:n.minRotation||0,includeBounds:n.includeBounds!==!1},s=this._range||this,r=U3(o,s);return e.bounds==="ticks"&&oA(r,this,"value"),e.reverse?(r.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),r}configure(){const e=this.ticks;let n=this.min,i=this.max;if(super.configure(),this.options.offset&&e.length){const o=(i-n)/Math.max(e.length-1,1)/2;n-=o,i+=o}this._startValue=n,this._endValue=i,this._valueRange=i-n}getLabelForValue(e){return ld(e,this.chart.options.locale,this.options.ticks.format)}}class F1 extends V3{static id="linear";static defaults={ticks:{callback:o1.formatters.numeric}};determineDataLimits(){const{min:e,max:n}=this.getMinMax(!0);this.min=Ie(e)?e:0,this.max=Ie(n)?n:1,this.handleTickRangeOptions()}computeTickLimit(){const e=this.isHorizontal(),n=e?this.width:this.height,i=ui(this.options.ticks.minRotation),o=(e?Math.sin(i):Math.cos(i))||.001,s=this._resolveTickFontOptions(0);return Math.ceil(n/Math.min(40,s.lineHeight/o))}getPixelForValue(e){return e===null?NaN:this.getPixelForDecimal((e-this._startValue)/this._valueRange)}getValueForPixel(e){return this._startValue+this.getDecimalForPixel(e)*this._valueRange}}const $l={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Me=Object.keys($l);function Gp(t,e){return t-e}function qp(t,e){if(oe(e))return null;const n=t._adapter,{parser:i,round:o,isoWeekday:s}=t._parseOpts;let r=e;return typeof i=="function"&&(r=i(r)),Ie(r)||(r=typeof i=="string"?n.parse(r,i):n.parse(r)),r===null?null:(o&&(r=o==="week"&&(cr(s)||s===!0)?n.startOf(r,"isoWeek",s):n.startOf(r,o)),+r)}function Kp(t,e,n,i){const o=Me.length;for(let s=Me.indexOf(t);s=Me.indexOf(n);s--){const r=Me[s];if($l[r].common&&t._adapter.diff(o,i,r)>=e-1)return r}return Me[n?Me.indexOf(n):0]}function z3(t){for(let e=Me.indexOf(t)+1,n=Me.length;e=e?n[i]:n[o];t[s]=!0}}function H3(t,e,n,i){const o=t._adapter,s=+o.startOf(e[0].value,i),r=e[e.length-1].value;let a,l;for(a=s;a<=r;a=+o.add(a,1,i))l=n[a],l>=0&&(e[l].major=!0);return e}function Yp(t,e,n){const i=[],o={},s=e.length;let r,a;for(r=0;r+e.value))}initOffsets(e=[]){let n=0,i=0,o,s;this.options.offset&&e.length&&(o=this.getDecimalForValue(e[0]),e.length===1?n=1-o:n=(this.getDecimalForValue(e[1])-o)/2,s=this.getDecimalForValue(e[e.length-1]),e.length===1?i=s:i=(s-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=Ke(n,0,r),i=Ke(i,0,r),this._offsets={start:n,end:i,factor:1/(n+1+i)}}_generate(){const e=this._adapter,n=this.min,i=this.max,o=this.options,s=o.time,r=s.unit||Kp(s.minUnit,n,i,this._getLabelCapacity(n)),a=Ot(o.ticks.stepSize,1),l=r==="week"?s.isoWeekday:!1,c=cr(l)||l===!0,u={};let d=n,f,p;if(c&&(d=+e.startOf(d,"isoWeek",l)),d=+e.startOf(d,c?"day":r),e.diff(i,n,r)>1e5*a)throw new Error(n+" and "+i+" are too far apart with stepSize of "+a+" "+r);const y=o.ticks.source==="data"&&this.getDataTimestamps();for(f=d,p=0;f+m)}getLabelForValue(e){const n=this._adapter,i=this.options.time;return i.tooltipFormat?n.format(e,i.tooltipFormat):n.format(e,i.displayFormats.datetime)}format(e,n){const i=this.options.time.displayFormats,o=this._unit,s=n||i[o];return this._adapter.format(e,s)}_tickFormatFunction(e,n,i,o){const s=this.options,r=s.ticks.callback;if(r)return re(r,[e,n,i],this);const a=s.time.displayFormats,l=this._unit,c=this._majorUnit,u=l&&a[l],d=c&&a[c],f=i[n],p=c&&d&&f&&f.major;return this._adapter.format(e,o||(p?d:u))}generateTickLabels(e){let n,i,o;for(n=0,i=e.length;n0?a:1}getDataTimestamps(){let e=this._cache.data||[],n,i;if(e.length)return e;const o=this.getMatchingVisibleMetas();if(this._normalized&&o.length)return this._cache.data=o[0].controller.getAllParsedValues(this);for(n=0,i=o.length;n=t[i].pos&&e<=t[o].pos&&({lo:i,hi:o}=so(t,"pos",e)),{pos:s,time:a}=t[i],{pos:r,time:l}=t[o]):(e>=t[i].time&&e<=t[o].time&&({lo:i,hi:o}=so(t,"time",e)),{time:s,pos:a}=t[i],{time:r,pos:l}=t[o]);const c=r-s;return c?a+(l-a)*(e-s)/c:a}class xO extends Zp{static id="timeseries";static defaults=Zp.defaults;constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),n=this._table=this.buildLookupTable(e);this._minPos=ea(n,this.min),this._tableRange=ea(n,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:n,max:i}=this,o=[],s=[];let r,a,l,c,u;for(r=0,a=e.length;r=n&&c<=i&&o.push(c);if(o.length<2)return[{time:n,pos:0},{time:i,pos:1}];for(r=0,a=o.length;ro-s)}_getTimestampsForTable(){let e=this._cache.all||[];if(e.length)return e;const n=this.getDataTimestamps(),i=this.getLabelTimestamps();return n.length&&i.length?e=this.normalize(n.concat(i)):e=n.length?n:i,e=this._cache.all=e,e}getDecimalForValue(e){return(ea(this._table,e)-this._minPos)/this._tableRange}getValueForPixel(e){const n=this._offsets,i=this.getDecimalForPixel(e)/n.factor-n.end;return ea(this._table,i*this._tableRange+this._minPos,!0)}}const j1={data:{type:Object,required:!0},options:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]},datasetIdKey:{type:String,default:"label"},updateMode:{type:String,default:void 0}},J3={ariaLabel:{type:String},ariaDescribedby:{type:String}},W3={type:{type:String,required:!0},destroyDelay:{type:Number,default:0},...j1,...J3},G3=zg[0]==="2"?(t,e)=>Object.assign(t,{attrs:e}):(t,e)=>Object.assign(t,e);function No(t){return Qo(t)?jt(t):t}function q3(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t;return Qo(e)?new Proxy(t,{}):t}function K3(t,e){const n=t.options;n&&e&&Object.assign(n,e)}function U1(t,e){t.labels=e}function V1(t,e,n){const i=[];t.datasets=e.map(o=>{const s=t.datasets.find(r=>r[n]===o[n]);return!s||!o.data||i.includes(s)?{...o}:(i.push(s),Object.assign(s,o),s)})}function X3(t,e){const n={labels:[],datasets:[]};return U1(n,t.labels),V1(n,t.datasets,e),n}const Y3=Pt({props:W3,setup(t,e){let{expose:n,slots:i}=e;const o=fe(null),s=Gn(null);n({chart:s});const r=()=>{if(!o.value)return;const{type:c,data:u,options:d,plugins:f,datasetIdKey:p}=t,y=X3(u,p),m=q3(y,u);s.value=new mo(o.value,{type:c,data:m,options:{...d},plugins:f})},a=()=>{const c=jt(s.value);c&&(t.destroyDelay>0?setTimeout(()=>{c.destroy(),s.value=null},t.destroyDelay):(c.destroy(),s.value=null))},l=c=>{c.update(t.updateMode)};return Bi(r),qn(a),Xe([()=>t.options,()=>t.data],(c,u)=>{let[d,f]=c,[p,y]=u;const m=jt(s.value);if(!m)return;let x=!1;if(d){const _=No(d),S=No(p);_&&_!==S&&(K3(m,_),x=!0)}if(f){const _=No(f.labels),S=No(y.labels),P=No(f.datasets),A=No(y.datasets);_!==S&&(U1(m.config.data,_),x=!0),P&&P!==A&&(V1(m.config.data,P,t.datasetIdKey),x=!0)}x&&yr(()=>{l(m)})},{deep:!0}),()=>Oe("canvas",{role:"img","aria-label":t.ariaLabel,"aria-describedby":t.ariaDescribedby,ref:o},[Oe("p",{},[i.default?i.default():""])])}});function Z3(t,e){return mo.register(e),Pt({props:j1,setup(n,i){let{expose:o}=i;const s=Gn(null),r=a=>{s.value=a?.chart};return o({chart:s}),()=>Oe(Y3,G3({ref:r},{type:t,...n}))}})}const I1=Z3("line",md),Q3={name:"ChipIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},M3=["aria-hidden","aria-label"],tk=["fill","width","height"],ek={d:"M6,4H18V5H21V7H18V9H21V11H18V13H21V15H18V17H21V19H18V20H6V19H3V17H6V15H3V13H6V11H3V9H6V7H3V5H6V4M11,15V18H12V15H11M13,15V18H14V15H13M15,15V18H16V15H15Z"},nk={key:0};function ik(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon chip-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",ek,[n.title?(D(),z("title",nk,L(n.title),1)):bt("",!0)])],8,tk))],16,M3)}const ok=Jt(Q3,[["render",ik]]),sk={key:0},rk={class:"row row--tiles"},ak={id:"cpuSection",class:"infobox"},lk={class:"chart-wrapper"},Qp=60,uk=Pt({__name:"CpuChartSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},tick:{}},setup(t){const e=t;mo.register(B1,N1,F1,md,Er,R1,yd);function n(){return"rgb(148, 148, 148)"}const i={borderColor:n(),backgroundColor:Gm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},o=Gn({labels:Array(Qp).fill(""),datasets:[{...i,data:Array(Qp).fill(null)}]}),s={animation:!1,responsive:!0,maintainAspectRatio:!1,scales:{x:{display:!1},y:{min:0,max:100,ticks:{color:n(),callback:a=>a+" %"},grid:{display:!1}}},interaction:{mode:"index",intersect:!1},plugins:{legend:{display:!1},tooltip:{callbacks:{label:a=>a.parsed.y.toFixed(1)+" %"}}}},r=ct(()=>e.cpuload===!1||e.cpunum<=0?null:{usage:(e.cpuload[0]/e.cpunum*100).toFixed(1),loads:e.cpuload.map(a=>a.toFixed(2)).join(" / ")});return Xe(()=>e.tick,()=>{const a=e.cpuload;if(a===!1||e.cpunum<=0||a.length===0)return;const l=[...o.value.labels.slice(1),new Date().toLocaleTimeString()],c=[...o.value.datasets[0].data.slice(1),a[0]/e.cpunum*100];o.value={labels:l,datasets:[{...i,data:c}]}}),(a,l)=>(D(),z(Et,null,[nt(Ye,{icon:ok,title:E(F)("serverinfo","Load")},null,8,["title"]),r.value?(D(),z(Et,{key:1},[b("div",rk,[nt(Ae,{label:E(F)("serverinfo","Current usage"),value:`${r.value.usage} %`},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Threads"),value:t.cpunum},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Load average"),value:r.value.loads},null,8,["label","value"])]),b("div",ak,[b("div",lk,[nt(E(I1),{data:o.value,options:s},null,8,["data"])])])],64)):(D(),z("p",sk,[b("em",null,L(E(F)("serverinfo","CPU info not available")),1)]))],64))}}),ck=Jt(uk,[["__scopeId","data-v-6950f64f"]]),dk={name:"DatabaseIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hk=["aria-hidden","aria-label"],fk=["fill","width","height"],pk={d:"M12,3C7.58,3 4,4.79 4,7C4,9.21 7.58,11 12,11C16.42,11 20,9.21 20,7C20,4.79 16.42,3 12,3M4,9V12C4,14.21 7.58,16 12,16C16.42,16 20,14.21 20,12V9C20,11.21 16.42,13 12,13C7.58,13 4,11.21 4,9M4,14V17C4,19.21 7.58,21 12,21C16.42,21 20,19.21 20,17V14C20,16.21 16.42,18 12,18C7.58,18 4,16.21 4,14Z"},gk={key:0};function mk(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon database-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",pk,[n.title?(D(),z("title",gk,L(n.title),1)):bt("",!0)])],8,fk))],16,hk)}const vk=Jt(dk,[["render",mk]]),yk={class:"server-info-table"},bk={class:"info"},_k={class:"info"},wk={class:"info"},xk=Pt({__name:"DatabaseSection",props:{database:{}},setup(t){return(e,n)=>(D(),z(Et,null,[nt(Ye,{icon:vk,title:E(F)("serverinfo","Database")},null,8,["title"]),b("div",yk,[b("table",null,[b("tbody",null,[b("tr",null,[b("td",null,L(E(F)("serverinfo","Type:")),1),b("td",bk,L(t.database.type),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Version:")),1),b("td",_k,L(t.database.version),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Size:")),1),b("td",wk,L(E(pn)(t.database.size)),1)])])])])],64))}}),Ek={name:"HarddiskIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Sk=["aria-hidden","aria-label"],Ak=["fill","width","height"],Ck={d:"M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z"},Tk={key:0};function kk(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon harddisk-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",Ck,[n.title?(D(),z("title",Tk,L(n.title),1)):bt("",!0)])],8,Ak))],16,Sk)}const Pk=Jt(Ek,[["render",kk]]),Rk={class:"section disk-status"},Lk={class:"row row--tiles"},Dk={class:"row row--cards"},Nk={class:"diskchart-container"},Ok=["aria-label"],$k={class:"diskinfo-container"},Bk=["title"],Fk={class:"diskinfo"},jk={class:"diskinfo__row"},Uk={class:"info"},Vk={class:"diskinfo__row"},Ik={class:"info"},zk={class:"diskinfo__row"},Hk={class:"info"},Jk={class:"diskinfo__row"},Wk={class:"info-color-label--available"},Gk={class:"info"},qk={class:"diskinfo__row"},Kk={class:"info-color-label--used"},Xk={class:"info"},Yk=Pt({__name:"DiskSection",props:{disks:{},freespace:{},storage:{}},setup(t){const e=t;mo.register(KT,DC,yd);const n=[],i=[];function o(l){return l.split("/").pop()??l}function s(l){return F("serverinfo","{used} of {total} used",{used:wn(l.used),total:wn(l.used+l.available)})}function r(l){const c=Number.parseFloat(l);return Number.isNaN(c)?l:Math.round(c)+"%"}function a(l,c){return{id:"centerLabel",afterDatasetsDraw(u){const{ctx:d,chartArea:f}=u,p=Math.round((f.right-f.left)*.24);d.save(),d.fillStyle=c,d.font=`bold ${p}px ${getComputedStyle(u.canvas).fontFamily}`,d.textAlign="center",d.textBaseline="middle",d.fillText(l,(f.left+f.right)/2,(f.top+f.bottom)/2),d.restore()}}}return Bi(()=>{const l=td(),c=bc("--color-border-maxcontrast","rgb(148, 148, 148)"),u=bc("--color-main-text","#222222");e.disks.forEach((d,f)=>{const p=n[f];p&&i.push(new mo(p,{type:"doughnut",data:{labels:[F("serverinfo","Used"),F("serverinfo","Available")],datasets:[{backgroundColor:[l,c],borderWidth:0,borderRadius:4,spacing:2,hoverOffset:4,data:[d.used,d.available]}]},options:{responsive:!0,maintainAspectRatio:!0,aspectRatio:1,cutout:"70%",layout:{padding:4},plugins:{legend:{display:!1},tooltip:{callbacks:{label:y=>`${y.label}: ${wn(y.parsed)}`}}}},plugins:[a(r(d.percent),u)]}))})}),qn(()=>{i.forEach(l=>l.destroy()),i.length=0}),(l,c)=>(D(),z("div",Rk,[nt(Ye,{icon:Pk,title:E(F)("serverinfo","Disk")},null,8,["title"]),b("div",Lk,[nt(Ae,{label:E(F)("serverinfo","Files"),value:t.storage.num_files},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Storages"),value:t.storage.num_storages},null,8,["label","value"]),t.freespace!==null?(D(),xt(Ae,{key:0,label:E(F)("serverinfo","Free space"),value:E(pn)(t.freespace)},null,8,["label","value"])):bt("",!0)]),b("div",Dk,[(D(!0),z(Et,null,mi(t.disks,(u,d)=>(D(),z("div",{key:u.device,class:"infobox text-center-mobile"},[b("div",Nk,[b("canvas",{ref_for:!0,ref:f=>{f&&(n[d]=f)},class:"DiskChart",role:"img","aria-label":s(u)},null,8,Ok)]),b("div",$k,[b("h3",{title:u.device},L(o(u.device)),9,Bk),b("dl",Fk,[b("div",jk,[b("dt",null,L(E(F)("serverinfo","Mount:")),1),b("dd",Uk,L(u.mount),1)]),b("div",Vk,[b("dt",null,L(E(F)("serverinfo","Filesystem:")),1),b("dd",Ik,L(u.fs),1)]),b("div",zk,[b("dt",null,L(E(F)("serverinfo","Size:")),1),b("dd",Hk,L(E(wn)(u.used+u.available)),1)]),b("div",Jk,[b("dt",Wk,L(E(F)("serverinfo","Available:")),1),b("dd",Gk,L(E(wn)(u.available)),1)]),b("div",qk,[b("dt",Kk,L(E(F)("serverinfo","Used:")),1),b("dd",Xk,L(u.percent)+" ("+L(E(wn)(u.used))+") ",1)])])])]))),128))])]))}}),Zk=Jt(Yk,[["__scopeId","data-v-d52cfcd6"]]),Qk={name:"MemoryIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Mk=["aria-hidden","aria-label"],tP=["fill","width","height"],eP={d:"M17,17H7V7H17M21,11V9H19V7C19,5.89 18.1,5 17,5H15V3H13V5H11V3H9V5H7C5.89,5 5,5.89 5,7V9H3V11H5V13H3V15H5V17A2,2 0 0,0 7,19H9V21H11V19H13V21H15V19H17A2,2 0 0,0 19,17V15H21V13H19V11M13,13H11V11H13M15,9H9V15H15V9Z"},nP={key:0};function iP(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon memory-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",eP,[n.title?(D(),z("title",nP,L(n.title),1)):bt("",!0)])],8,tP))],16,Mk)}const oP=Jt(Qk,[["render",iP]]),sP={key:0},rP={class:"row row--tiles"},aP={id:"memorySection",class:"infobox"},lP={class:"chart-wrapper"},Nu=60,uP=Pt({__name:"MemoryChartSection",props:{memTotal:{},memFree:{},swapTotal:{},swapFree:{},tick:{}},setup(t){const e=t;mo.register(B1,N1,k3,F1,md,Er,R1,yd);const n=ct(()=>e.memTotal!=="N/A"&&e.memFree!=="N/A"),i=ct(()=>e.swapTotal!=="N/A"&&e.swapFree!=="N/A"&&e.swapTotal>0);function o(){return"rgb(148, 148, 148)"}const s={label:F("serverinfo","RAM usage"),borderColor:o(),backgroundColor:Gm(td(),.4),fill:!0,pointRadius:0,borderWidth:1,tension:.2},r={label:F("serverinfo","Swap usage"),borderColor:"rgba(100,100,100,0.8)",backgroundColor:"rgba(100,100,100,0.2)",fill:!0,pointRadius:0,borderWidth:1,tension:.2},a=Gn({labels:Array(Nu).fill(""),datasets:[{...s,data:Array(Nu).fill(null)},{...r,data:Array(Nu).fill(null)}]}),l=fe(1),c=ct(()=>({animation:!1,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{display:!1},y:{min:0,max:l.value,ticks:{color:o(),callback:p=>p+" GB"},grid:{display:!1}}},plugins:{legend:{display:!0,position:"bottom",labels:{color:o(),filter:p=>i.value||p.datasetIndex===0}},tooltip:{callbacks:{label:p=>(p.dataset.label??"")+": "+p.parsed.y.toFixed(2)+" GB"}}}})),u=ct(()=>wn(e.memTotal)),d=ct(()=>wn(e.memTotal-e.memFree)),f=ct(()=>wn(e.swapTotal-e.swapFree));return Xe(()=>e.tick,()=>{if(!n.value)return;const p=e.memTotal/1024,y=i.value?e.swapTotal/1024:0;l.value=Math.ceil(Math.max(p,y));const m=[...a.value.labels.slice(1),new Date().toLocaleTimeString()],x=(e.memTotal-e.memFree)/1024,_=[...a.value.datasets[0].data.slice(1),x],S=i.value?(e.swapTotal-e.swapFree)/1024:null,P=[...a.value.datasets[1].data.slice(1),S];a.value={labels:m,datasets:[{...s,data:_},{...r,data:P}]}}),(p,y)=>(D(),z(Et,null,[nt(Ye,{icon:oP,title:E(F)("serverinfo","Memory")},null,8,["title"]),n.value?(D(),z(Et,{key:1},[b("div",rP,[nt(Ae,{label:E(F)("serverinfo","Used"),value:d.value},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Total"),value:u.value},null,8,["label","value"]),i.value?(D(),xt(Ae,{key:0,label:E(F)("serverinfo","Swap used"),value:f.value},null,8,["label","value"])):bt("",!0)]),b("div",aP,[b("div",lP,[nt(E(I1),{data:a.value,options:c.value},null,8,["data","options"])])])],64)):(D(),z("p",sP,[b("em",null,L(E(F)("serverinfo","RAM info not available")),1)]))],64))}}),cP=Jt(uP,[["__scopeId","data-v-494041bc"]]),dP=Pt({__name:"NcFormBox",props:{row:{type:Boolean}},setup(t){const e=e_();return ng(rm,{isInFormBox:!0,formBoxItemClass:e.ncFormBox__item}),(n,i)=>(D(),z("div",{class:Xt([n.$style.ncFormBox,t.row?n.$style.ncFormBox_row:n.$style.ncFormBox_col])},[Qt(n.$slots,"default",{itemClass:n.$style.ncFormBox__item})],2))}}),hP="_ncFormBox_s7kf-",fP="_ncFormBox_row_GzYuE",pP="_ncFormBox__item_691pI",gP="_ncFormBox_col_Lt4lg",mP={"material-design-icon":"_material-design-icon_JPsV1",ncFormBox:hP,ncFormBox_row:fP,ncFormBox__item:pP,ncFormBox_col:gP},vP={$style:mP},Ou=ze(dP,[["__cssModules",vP]]),yP=["id"],bP=Pt({inheritAttrs:!1,__name:"NcFormBoxItem",props:{tag:{},label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},class:{default:()=>{}},itemClasses:{default:()=>{}}},emits:["click"],setup(t){const e=xl(),{formBoxItemClass:n}=am(),i=Mo(),o=()=>!!t.description||!!e.description;return(s,r)=>(D(),z("div",{class:Xt([t.class,s.$style.formBoxItem,E(n),{[s.$style.formBoxItem_inverted]:t.invertedAccent&&o(),[s.$style.formBoxItem_legacy]:E(qc)}])},[b("span",{class:Xt(s.$style.formBoxItem__content)},[(D(),xt(wl(t.tag),te({class:[s.$style.formBoxItem__element,t.itemClasses]},s.$attrs,{onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),{default:Tt(()=>[Qt(s.$slots,"default",{descriptionId:E(i)},()=>[Rt(L(t.label||"⚠️ Label is missing"),1)])]),_:3},16,["class"])),o()?(D(),z("span",{key:0,id:E(i),class:Xt(s.$style.formBoxItem__description)},[Qt(s.$slots,"description",{},()=>[Rt(L(t.description),1)])],10,yP)):bt("",!0)],2),b("span",{class:Xt(s.$style.formBoxItem__icon)},[Qt(s.$slots,"icon",{descriptionId:E(i)},()=>[r[1]||(r[1]=Rt(" ⚠️ Icon is missing ",-1))])],2)],2))}}),_P="_formBoxItem_Gp-TA",wP="_formBoxItem__description_UqZJ1",xP="_formBoxItem_legacy_dP9aJ",EP="_formBoxItem_inverted_BU-i-",SP="_formBoxItem__element_jHCux",AP="_formBoxItem__content_UKovC",CP="_formBoxItem__icon_AvkP3",TP={"material-design-icon":"_material-design-icon_8BFGk",formBoxItem:_P,formBoxItem__description:wP,formBoxItem_legacy:xP,formBoxItem_inverted:EP,formBoxItem__element:SP,formBoxItem__content:AP,formBoxItem__icon:CP},kP={$style:TP},z1=ze(bP,[["__cssModules",kP]]);function PP(t){const e=Wo(t),n=ki(im,null)!==null,i=ct(()=>n&&e.to?"RouterLink":e.href?"a":"button"),o=ct(()=>i.value==="RouterLink"||i.value==="a"),s=ct(()=>i.value==="a"),r=ct(()=>i.value==="RouterLink"),a=ct(()=>i.value==="button"),l=ct(()=>{if(i.value==="RouterLink")return{to:e.to,activeClass:"active",...e.additionalAttrs?.("RouterLink")??{}};if(i.value==="a")return{href:e.href,target:e.target,download:e.download||void 0,rel:"nofollow noreferrer noopener",...e.additionalAttrs?.("a")??{}};if(i.value==="button")return{type:e.type||"button",disabled:e.disabled,...e.additionalAttrs?.("button")??{}}});return{tag:i,isLink:o,isHyperLink:s,isRouterLink:r,isButton:a,attrs:l}}const RP=Pt({__name:"NcFormBoxButton",props:{label:{default:()=>{}},description:{default:()=>{}},invertedAccent:{type:Boolean,default:!1},to:{default:()=>{}},href:{default:()=>{}},target:{default:()=>{}},disabled:{type:Boolean,default:!1}},emits:["click"],setup(t){const{tag:e,attrs:n,isLink:i}=PP({to:eo(()=>t.to),href:eo(()=>t.href),target:eo(()=>t.target),disabled:eo(()=>t.disabled)}),o=ct(()=>{if(i.value)return t.target==="_blank"?zw:$w});return(s,r)=>(D(),xt(z1,te({tag:E(e),itemClasses:["button-vue",s.$style.formBoxButton],invertedAccent:t.invertedAccent},E(n),{tabindex:"0",onClick:r[0]||(r[0]=a=>s.$emit("click",a))}),Uc({_:2},[s.$slots.default||t.label?{name:"default",fn:Tt(()=>[Qt(s.$slots,"default",{},()=>[Rt(L(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:Tt(()=>[Qt(s.$slots,"description",{},()=>[Rt(L(t.description),1)])]),key:"1"}:void 0,s.$slots.icon||o.value?{name:"icon",fn:Tt(()=>[Qt(s.$slots,"icon",{},()=>[o.value?(D(),xt(In,{key:0,path:o.value,inline:""},null,8,["path"])):bt("",!0)])]),key:"2"}:void 0]),1040,["tag","itemClasses","invertedAccent"]))}}),LP="_formBoxButton_E8Xfr",DP={"material-design-icon":"_material-design-icon_MaIxG",formBoxButton:LP},NP={$style:DP},OP=ze(RP,[["__cssModules",NP]]);wr(Cw);const $P=2e3;function BP(t){const e=fe(!1),n=ct(()=>e.value?Bw:Vw),i=ct(()=>e.value?Ge("Copied"):Ge("Copy to clipboard"));async function o(){if(e.value)return;const s=je(t);try{await navigator.clipboard.writeText(s)}catch{prompt("",s)}e.value=!0,setTimeout(()=>{e.value=!1},$P)}return{isCopied:e,copy:o,icon:n,altText:i}}const FP={class:"hidden-visually"},$u=Pt({__name:"NcFormBoxCopyButton",props:{label:{default:()=>{}},value:{},disabled:{type:Boolean,default:!1}},emits:["copy"],setup(t,{emit:e}){const n=e,{isCopied:i,copy:o,icon:s,altText:r}=BP(()=>t.value);return gx(i,()=>n("copy")),(a,l)=>(D(),xt(OP,{disabled:t.disabled,invertedAccent:"",onClick:E(o)},Uc({description:Tt(()=>[Rt(L(t.value),1)]),icon:Tt(()=>[nt(In,{path:E(s),inline:""},null,8,["path"])]),_:2},[a.$slots.default||t.label?{name:"default",fn:Tt(()=>[b("span",FP,L(E(r)),1),Qt(a.$slots,"default",{},()=>[Rt(L(t.label),1)])]),key:"0"}:void 0]),1032,["disabled","onClick"]))}}),jP=` @@ -15,13 +15,13 @@ ${e.stack}`),o)}log(e,n,i){if(!(typeof this.context?.level=="number"&&e -`,jR=Rt({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){Al(i=>({v6bd152af:e.value,v16fd8ca9:n.value}));const e=ht(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=ht(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(i,o)=>(O(),Ct(Vn,{class:Yt(i.$style.iconToggleSwitch),svg:FR,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),UR="_iconToggleSwitch_IKWaj",VR={"material-design-icon":"_material-design-icon_63AMQ",iconToggleSwitch:UR},IR={$style:VR},zR=Ie(jR,[["__cssModules",IR]]),HR=["id","aria-describedby","disabled"],JR=Rt({__name:"NcFormBoxSwitch",props:Wo({label:{default:()=>{}},description:{default:()=>{}},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Wo(["enable","disable"],["update:modelValue"]),setup(t,{emit:e}){const n=Uc(t,"modelValue"),i=e,o=Qo();return Ke(n,()=>{n.value?i("enable"):i("disable")},{flush:"sync"}),(s,r)=>(O(),Ct(I1,{tag:"label",for:E(o)},jc({icon:kt(({descriptionId:a})=>[_s(w("input",{id:E(o),"onUpdate:modelValue":r[0]||(r[0]=l=>n.value=l),class:Yt(s.$style.formBoxSwitch__input),type:"checkbox",role:"switch","aria-describedby":a,disabled:t.disabled},null,10,HR),[[t_,n.value]]),ot(zR,{checked:n.value,inline:""},null,8,["checked"])]),_:2},[s.$slots.default||t.label?{name:"default",fn:kt(()=>[Zt(s.$slots,"default",{},()=>[Dt(L(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:kt(()=>[Zt(s.$slots,"description",{},()=>[Dt(L(t.description),1)])]),key:"1"}:void 0]),1032,["for"]))}}),WR="_formBoxSwitch__input_n8432",GR={"material-design-icon":"_material-design-icon_v0XYD",formBoxSwitch__input:WR},qR={$style:GR},$u=Ie(JR,[["__cssModules",qR]]),KR=["aria-describedby"],XR=Rt({__name:"NcFormGroup",props:{label:{default:()=>{}},description:{default:()=>{}},hideLabel:{type:Boolean,default:!1},hideDescription:{type:Boolean,default:!1},noGap:{type:Boolean,default:!1}},setup(t){const e=wl(),n=`${`nc-form-group-${Qo()}`}-description`,i=()=>!!t.description||!!e.description,o=()=>i()?n:void 0,s=()=>t.hideLabel&&(!i()||t.hideDescription);return(r,a)=>(O(),J("fieldset",{class:Yt([r.$style.formGroup,{[r.$style.formGroup_noGap]:t.noGap}]),"aria-describedby":o()},[w("legend",{class:Yt([r.$style.formGroup__label,{"hidden-visually":t.hideLabel}])},[Zt(r.$slots,"label",{},()=>[Dt(L(t.label||"⚠️ Missing label"),1)])],2),i()?(O(),J("div",{key:0,id:n,class:Yt([r.$style.formGroup__description,{"hidden-visually":t.hideDescription}])},[Zt(r.$slots,"description",{},()=>[Dt(L(t.description),1)])],2)):_t("",!0),w("div",{class:Yt([r.$style.formGroup__content,{[r.$style.formGroup__content_only]:s()}])},[Zt(r.$slots,"default")],2)],10,KR))}}),YR="_formGroup_P4ub1",ZR="_formGroup_noGap_I25Tm",QR="_formGroup__label_dvGhm",MR="_formGroup__description_rqVc0",tP="_formGroup__content_fnqsg",eP="_formGroup__content_only_G-Ivq",nP={"material-design-icon":"_material-design-icon_2NWOj",formGroup:YR,formGroup_noGap:ZR,formGroup__label:QR,formGroup__description:MR,formGroup__content:tP,formGroup__content_only:eP},iP={$style:nP},Mp=Ie(XR,[["__cssModules",iP]]),oP={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},sP=["aria-hidden","aria-label"],rP=["fill","width","height"],aP={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},lP={key:0};function uP(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",aP,[n.title?(O(),J("title",lP,L(n.title),1)):_t("",!0)])],8,rP))],16,sP)}const cP=Qt(oP,[["render",uP]]),dP={class:"section monitoring"},t0="NC-Token",hP=Rt({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,n=Array.from(crypto.getRandomValues(new Uint8Array(32)),a=>a.toString(16).padStart(2,"0")).join(""),i=ge(!1),o=ge(!0),s=ge(!0),r=ht(()=>{try{const a=new URL(e.ocs);return i.value&&a.searchParams.set("format","json"),o.value||a.searchParams.set("skipApps","false"),s.value||a.searchParams.set("skipUpdate","false"),a.toString()}catch{return e.ocs}});return(a,l)=>(O(),J("div",dP,[ot(Xe,{icon:cP,title:E(I)("serverinfo","External monitoring API")},null,8,["title"]),ot(E(Nu),null,{default:kt(()=>[ot(E(Ou),{label:E(I)("serverinfo","Endpoint URL"),value:r.value},null,8,["label","value"])]),_:1}),ot(E(Mp),{label:E(I)("serverinfo","Configuration")},{default:kt(()=>[ot(E(Nu),null,{default:kt(()=>[ot(E($u),{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),label:E(I)("serverinfo","Output in JSON")},null,8,["modelValue","label"]),ot(E($u),{modelValue:o.value,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c),label:E(I)("serverinfo","Skip apps section"),description:E(I)("serverinfo","Including the apps section sends an external request to the app store")},null,8,["modelValue","label","description"]),ot(E($u),{modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=c=>s.value=c),label:E(I)("serverinfo","Skip server update")},null,8,["modelValue","label"])]),_:1})]),_:1},8,["label"]),ot(E(Mp),{label:E(I)("serverinfo","Authentication"),description:E(I)("serverinfo","This token was generated in your browser and is not stored until you run the command below. Send it in the {header} header with every request.",{header:t0})},{default:kt(()=>[ot(E(Nu),null,{default:kt(()=>[ot(E(Ou),{label:E(I)("serverinfo","Command to store the token"),value:`occ config:app:set serverinfo token --value ${E(n)}`},null,8,["label","value"]),ot(E(Ou),{label:E(I)("serverinfo","Request header"),value:`${t0}: ${E(n)}`},null,8,["label","value"])]),_:1})]),_:1},8,["label","description"])]))}}),fP=Qt(hP,[["__scopeId","data-v-94a398b4"]]),pP={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},gP=["aria-hidden","aria-label"],mP=["fill","width","height"],vP={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},yP={key:0};function bP(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",vP,[n.title?(O(),J("title",yP,L(n.title),1)):_t("",!0)])],8,mP))],16,gP)}const _P=Qt(pP,[["render",bP]]),wP={class:"section network-infos"},xP={class:"row row--tiles"},EP={class:"row row--cards"},AP={class:"infobox"},SP={class:"interface-wrapper"},CP={class:"info"},TP={class:"info"},kP={class:"info"},RP={class:"info"},PP={class:"info"},LP=Rt({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,n)=>(O(),J("div",wP,[ot(Xe,{icon:_P,title:E(I)("serverinfo","Network")},null,8,["title"]),w("div",xP,[ot(tn,{label:E(I)("serverinfo","Hostname"),value:t.networkinfo.hostname},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","Gateway"),value:t.networkinfo.gateway},null,8,["label","value"]),ot(tn,{label:E(I)("serverinfo","DNS"),value:t.networkinfo.dns},null,8,["label","value"])]),w("div",EP,[(O(!0),J(At,null,$i(t.interfaces,i=>(O(),J("div",{key:i.name},[w("div",AP,[w("div",SP,[w("h3",null,L(i.name),1),Dt(" "+L(E(I)("serverinfo","Status:"))+" ",1),w("span",CP,L(i.up?"up":"down"),1),n[1]||(n[1]=w("br",null,null,-1)),Dt(" "+L(E(I)("serverinfo","Speed:"))+" ",1),w("span",TP,L(i.speed)+" ("+L(E(I)("serverinfo","Duplex:"))+" "+L(i.duplex)+")",1),n[2]||(n[2]=w("br",null,null,-1)),i.mac?(O(),J(At,{key:0},[Dt(L(E(I)("serverinfo","MAC:"))+" ",1),w("span",kP,L(i.mac),1),n[0]||(n[0]=w("br",null,null,-1))],64)):_t("",!0),Dt(" "+L(E(I)("serverinfo","IPv4:"))+" ",1),w("span",RP,L(i.ipv4.join(", ")),1),n[3]||(n[3]=w("br",null,null,-1)),Dt(" "+L(E(I)("serverinfo","IPv6:"))+" ",1),w("span",PP,L(i.ipv6.join(", ")),1)])])]))),128))])]))}}),DP={name:"PuzzleIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},NP=["aria-hidden","aria-label"],OP=["fill","width","height"],$P={d:"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z"},BP={key:0};function FP(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon puzzle-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",$P,[n.title?(O(),J("title",BP,L(n.title),1)):_t("",!0)])],8,OP))],16,NP)}const jP=Qt(DP,[["render",FP]]),UP={class:"server-info__tag-wrapper"},VP=Rt({__name:"PhpExtensionsSection",props:{extensions:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:jP,title:E(I)("serverinfo","PHP extensions")},null,8,["title"]),w("div",UP,[t.extensions?(O(!0),J(At,{key:0},$i(t.extensions,i=>(O(),J("span",{key:i,class:"server-info__php-extension-tag"},L(i),1))),128)):(O(),J(At,{key:1},[Dt(L(E(I)("serverinfo","Unable to list extensions")),1)],64))])],64))}}),IP={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},zP=["aria-hidden","aria-label"],HP=["fill","width","height"],JP={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},WP={key:0};function GP(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",JP,[n.title?(O(),J("title",WP,L(n.title),1)):_t("",!0)])],8,HP))],16,zP)}const qP=Qt(IP,[["render",GP]]),KP={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},XP=["aria-hidden","aria-label"],YP=["fill","width","height"],ZP={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},QP={key:0};function MP(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",ZP,[n.title?(O(),J("title",QP,L(n.title),1)):_t("",!0)])],8,YP))],16,XP)}const t5=Qt(KP,[["render",MP]]),e5={class:"server-info-table"},n5={class:"info"},i5={class:"info"},o5={class:"info"},s5={class:"info"},r5={class:"info"},a5={key:0},l5=["href"],u5={class:"server-info-table"},c5={class:"info"},d5={class:"info"},h5={class:"info"},f5={class:"info"},p5={class:"info"},g5={class:"info"},m5={class:"info"},v5={class:"info"},y5={class:"info"},b5={class:"info"},_5={class:"info"},w5={class:"info"},x5=Rt({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:t5,title:E(I)("serverinfo","PHP")},null,8,["title"]),w("div",e5,[w("table",null,[w("tbody",null,[w("tr",null,[w("td",null,L(E(I)("serverinfo","Version:")),1),w("td",n5,L(t.php.version),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Memory limit:")),1),w("td",i5,L(E(rr)(t.php.memory_limit)),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Max execution time:")),1),w("td",o5,L(t.php.max_execution_time)+" "+L(E(I)("serverinfo","seconds")),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Upload max size:")),1),w("td",s5,L(E(rr)(t.php.upload_max_filesize)),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","OPcache Revalidate Frequency:")),1),w("td",r5,L(t.php.opcache_revalidate_freq)+" "+L(E(I)("serverinfo","seconds")),1)]),t.phpinfo?(O(),J("tr",a5,[w("td",null,L(E(I)("serverinfo","PHP Info:")),1),w("td",null,[w("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},L(E(I)("serverinfo","Show phpinfo")),9,l5)])])):_t("",!0)])])]),t.fpm!==!1?(O(),J(At,{key:0},[ot(Xe,{icon:qP,title:E(I)("serverinfo","FPM worker pool")},null,8,["title"]),w("div",u5,[w("table",null,[w("tbody",null,[w("tr",null,[w("td",null,L(E(I)("serverinfo","Pool name:")),1),w("td",c5,L(t.fpm.pool),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Pool type:")),1),w("td",d5,L(t.fpm["process-manager"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Start time:")),1),w("td",h5,L(t.fpm["start-time"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Accepted connections:")),1),w("td",f5,L(t.fpm["accepted-conn"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Total processes:")),1),w("td",p5,L(t.fpm["total-processes"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Active processes:")),1),w("td",g5,L(t.fpm["active-processes"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Idle processes:")),1),w("td",m5,L(t.fpm["idle-processes"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Listen queue:")),1),w("td",v5,L(t.fpm["listen-queue"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Slow requests:")),1),w("td",y5,L(t.fpm["slow-requests"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Max listen queue:")),1),w("td",b5,L(t.fpm["max-listen-queue"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Max active processes:")),1),w("td",_5,L(t.fpm["max-active-processes"]),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Max children reached:")),1),w("td",w5,L(t.fpm["max-children-reached"]),1)])])])])],64)):_t("",!0)],64))}}),E5=["aria-valuenow"],A5=["height","width"],S5=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],C5=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],T5={key:1,class:"progress-bar-container"},k5=["value"],R5={key:0,class:"progress-bar__value"},na=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),e0=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),P5=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--clickable-area-small")),L5=Rt({__name:"NcProgressBar",props:{value:{default:0},size:{default:"small"},error:{type:Boolean},type:{default:"linear"},color:{default:"var(--color-primary-element)"},showValue:{type:Boolean,default:!1}},setup(t){Al(c=>({v3a86fec2:c.color,v57442460:o.value}));const e=t,n=ht(()=>Math.max(0,Math.min(100,e.value))/100),i=ht(()=>typeof e.size=="number"?Math.round(e.size):e.type==="circular"?e.size==="medium"?e0:P5:e.size==="medium"?1.5*na:na),o=ht(()=>`${i.value}px`),s=ht(()=>Math.max(na,i.value/e0*na)),r=ht(()=>i.value/2),a=ht(()=>i.value/2-s.value),l=ht(()=>a.value*2*Math.PI);return(c,u)=>t.type==="circular"?(O(),J("span",{key:0,role:"progressbar","aria-valuenow":t.value,class:Yt([{"progress-bar--error":t.error},"progress-bar progress-bar--circular"])},[(O(),J("svg",{height:i.value,width:i.value},[w("circle",{stroke:"currentColor",fill:"transparent","stroke-dasharray":`${n.value*l.value} ${(1-n.value)*l.value}`,"stroke-dashoffset":.25*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,S5),w("circle",{stroke:"var(--color-background-darker)",fill:"transparent","stroke-dasharray":`${(1-n.value)*l.value} ${n.value*l.value}`,"stroke-dashoffset":(.25-n.value)*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,C5)],8,A5))],10,E5)):(O(),J("div",T5,[w("progress",{class:Yt(["progress-bar progress-bar--linear vue",{"progress-bar--error":t.error}]),value:t.value,max:"100"},null,10,k5),t.showValue?(O(),J("span",R5,L(t.value)+"%",1)):_t("",!0)]))}}),D5=Ie(L5,[["__scopeId","data-v-353fa414"]]),N5={name:"GaugeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},O5=["aria-hidden","aria-label"],$5=["fill","width","height"],B5={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M14,5.89C13.62,5.9 13.26,6.15 13.1,6.54L11.81,9.77L11.71,10C11,10.13 10.41,10.6 10.14,11.26C9.73,12.29 10.23,13.45 11.26,13.86C12.29,14.27 13.45,13.77 13.86,12.74C14.12,12.08 14,11.32 13.57,10.76L13.67,10.5L14.96,7.29L14.97,7.26C15.17,6.75 14.92,6.17 14.41,5.96C14.28,5.91 14.15,5.89 14,5.89M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9M17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9Z"},F5={key:0};function j5(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon gauge-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",B5,[n.title?(O(),J("title",F5,L(n.title),1)):_t("",!0)])],8,$5))],16,O5)}const U5=Qt(N5,[["render",j5]]),V5={class:"resource-usage"},I5={class:"resource-usage__header"},z5={class:"info"},H5=75,J5=90,W5=Rt({__name:"ResourceOverviewSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},memTotal:{},memFree:{},swapTotal:{},swapFree:{}},setup(t){const e=t;function n(o,s,r){return s==="N/A"||r==="N/A"||r<=0?null:{label:o,detail:I("serverinfo","{used} of {total}",{used:_n(s),total:_n(r)}),percentage:Math.round(s/r*100)}}const i=ht(()=>{const o=e.memTotal,s=e.swapTotal;return[e.cpuload===!1||e.cpunum<=0?null:{label:I("serverinfo","CPU"),detail:(e.cpuload[0]/e.cpunum*100).toFixed(1)+" %",percentage:Math.min(100,Math.round(e.cpuload[0]/e.cpunum*100))},n(I("serverinfo","Memory"),o==="N/A"||e.memFree==="N/A"?"N/A":o-e.memFree,o),n(I("serverinfo","Swap"),s==="N/A"||e.swapFree==="N/A"?"N/A":s-e.swapFree,s)].filter(r=>r!==null)});return(o,s)=>(O(),J(At,null,[ot(Xe,{icon:U5,title:E(I)("serverinfo","Resource usage")},null,8,["title"]),w("div",V5,[(O(!0),J(At,null,$i(i.value,r=>(O(),J("div",{key:r.label,class:"resource-usage__row"},[w("div",I5,[w("span",null,L(r.label),1),w("span",z5,L(r.detail),1)]),ot(E(D5),{value:r.percentage,size:"medium",color:r.percentage>=H5?"var(--color-warning)":void 0,error:r.percentage>=J5},null,8,["value","color","error"])]))),128))])],64))}}),G5=Qt(W5,[["__scopeId","data-v-ba447d79"]]),q5={},K5={class:"section section-skeleton","aria-busy":"true"};function X5(t,e){return O(),J("div",K5,[...e[0]||(e[0]=[w("div",{class:"skeleton-bar skeleton-title"},null,-1),w("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Ze=Qt(q5,[["render",X5],["__scopeId","data-v-9a2b13f0"]]),Y5={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},Z5=["aria-hidden","aria-label"],Q5=["fill","width","height"],M5={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},tL={key:0};function eL(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",M5,[n.title?(O(),J("title",tL,L(n.title),1)):_t("",!0)])],8,Q5))],16,Z5)}const nL=Qt(Y5,[["render",eL]]),iL={class:"section network-infos"},oL={class:"row row--cards"},sL={class:"infobox"},rL={class:"interface-wrapper"},aL={class:"info"},lL={class:"info"},uL={class:"info"},cL={class:"info"},dL={class:"info"},hL={class:"info"},fL={class:"info"},pL=Rt({__name:"SharesSection",props:{shares:{}},setup(t){return(e,n)=>(O(),J("div",iL,[ot(Xe,{icon:nL,title:E(I)("serverinfo","Shares")},null,8,["title"]),w("div",oL,[w("div",null,[w("div",sL,[w("div",rL,[t.shares.num_shares_user>0?(O(),J(At,{key:0},[Dt(L(E(I)("serverinfo","Users:"))+" ",1),w("span",aL,L(t.shares.num_shares_user),1),n[0]||(n[0]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_shares_groups>0?(O(),J(At,{key:1},[Dt(L(E(I)("serverinfo","Groups:"))+" ",1),w("span",lL,L(t.shares.num_shares_groups),1),n[1]||(n[1]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_shares_link>0?(O(),J(At,{key:2},[Dt(L(E(I)("serverinfo","Links:"))+" ",1),w("span",uL,L(t.shares.num_shares_link),1),n[2]||(n[2]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_shares_mail>0?(O(),J(At,{key:3},[Dt(L(E(I)("serverinfo","Emails:"))+" ",1),w("span",cL,L(t.shares.num_shares_mail),1),n[3]||(n[3]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_fed_shares_sent>0?(O(),J(At,{key:4},[Dt(L(E(I)("serverinfo","Federated sent:"))+" ",1),w("span",dL,L(t.shares.num_fed_shares_sent),1),n[4]||(n[4]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_fed_shares_received>0?(O(),J(At,{key:5},[Dt(L(E(I)("serverinfo","Federated received:"))+" ",1),w("span",hL,L(t.shares.num_fed_shares_received),1),n[5]||(n[5]=w("br",null,null,-1))],64)):_t("",!0),t.shares.num_shares_room>0?(O(),J(At,{key:6},[Dt(L(E(I)("serverinfo","Talk conversations:"))+" ",1),w("span",fL,L(t.shares.num_shares_room),1),n[6]||(n[6]=w("br",null,null,-1))],64)):_t("",!0)])])])])]))}}),gL={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mL=["aria-hidden","aria-label"],vL=["fill","width","height"],yL={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},bL={key:0};function _L(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",yL,[n.title?(O(),J("title",bL,L(n.title),1)):_t("",!0)])],8,vL))],16,mL)}const wL=Qt(gL,[["render",_L]]),xL={class:"server-info-table"},EL={class:"info"},AL={class:"info"},SL={class:"info"},CL={class:"info"},TL=Rt({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},servertime:{},uptime:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:wL,title:t.hostname},null,8,["title"]),w("div",xL,[w("table",null,[w("tbody",null,[w("tr",null,[w("td",null,L(E(I)("serverinfo","Operating System:")),1),w("td",EL,L(t.osname),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","CPU:")),1),w("td",AL,L(E(I)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads})),1)]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Server time:")),1),w("td",null,[w("span",SL,L(t.servertime),1)])]),w("tr",null,[w("td",null,L(E(I)("serverinfo","Uptime:")),1),w("td",null,[w("span",CL,L(t.uptime),1)])])])])])],64))}}),kL={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},RL=["aria-hidden","aria-label"],PL=["fill","width","height"],LL={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},DL={key:0};function NL(t,e,n,i,o,s){return O(),J("span",ee(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(O(),J("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[w("path",LL,[n.title?(O(),J("title",DL,L(n.title),1)):_t("",!0)])],8,PL))],16,RL)}const OL=Qt(kL,[["render",NL]]),$L={class:"server-info-table"},BL={class:"info temp"},FL=Rt({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,n)=>(O(),J(At,null,[ot(Xe,{icon:OL,title:E(I)("serverinfo","Temperature")},null,8,["title"]),w("div",$L,[w("table",null,[w("tbody",null,[(O(!0),J(At,null,$i(t.thermalzones,i=>(O(),J("tr",{key:i.zone},[w("td",null,L(i.type)+":",1),w("td",null,[w("span",BL,L(Math.round(i.temp)),1),n[0]||(n[0]=Dt("°C",-1))])]))),128))])])])],64))}}),jL=Qt(FL,[["__scopeId","data-v-cb3096fd"]]);function z1(t,e){return function(){return t.apply(e,arguments)}}const{toString:UL}=Object.prototype,{getPrototypeOf:Xo}=Object,{iterator:Ar,toStringTag:H1}=Symbol,el=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),pr=(t,e)=>{let n=t;const i=[];for(;n!=null&&n!==Object.prototype;){if(i.indexOf(n)!==-1)return!1;if(i.push(n),el(n,e))return!0;n=Xo(n)}return!1},VL=(t,e)=>t!=null&&pr(t,e)?t[e]:void 0,bd=(t=>e=>{const n=UL.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Tn=t=>(t=t.toLowerCase(),e=>bd(e)===t),Ol=t=>e=>typeof e===t,{isArray:mo}=Array,Yo=Ol("undefined");function ts(t){return t!==null&&!Yo(t)&&t.constructor!==null&&!Yo(t.constructor)&&en(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const J1=Tn("ArrayBuffer");function IL(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&J1(t.buffer),e}const zL=Ol("string"),en=Ol("function"),W1=Ol("number"),es=t=>t!==null&&typeof t=="object",HL=t=>t===!0||t===!1,ma=t=>{if(!es(t))return!1;const e=Xo(t);return(e===null||e===Object.prototype||Xo(e)===null)&&!pr(t,H1)&&!pr(t,Ar)},JL=t=>{if(!es(t)||ts(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},WL=Tn("Date"),GL=Tn("File"),qL=t=>!!(t&&typeof t.uri<"u"),KL=t=>t&&typeof t.getParts<"u",XL=Tn("Blob"),YL=Tn("FileList"),ZL=t=>es(t)&&en(t.pipe);function QL(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Js<"u"?Js:{}}const n0=QL(),i0=typeof n0.FormData<"u"?n0.FormData:void 0,ML=t=>{if(!t)return!1;if(i0&&t instanceof i0)return!0;const e=Xo(t);if(!e||e===Object.prototype||!en(t.append))return!1;const n=bd(t);return n==="formdata"||n==="object"&&en(t.toString)&&t.toString()==="[object FormData]"},tD=Tn("URLSearchParams"),[eD,nD,iD,oD]=["ReadableStream","Request","Response","Headers"].map(Tn),sD=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Sr(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,o;if(typeof t!="object"&&(t=[t]),mo(t))for(i=0,o=t.length;i0;)if(o=n[i],e===o.toLowerCase())return o;return null}const so=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Js,q1=t=>!Yo(t)&&t!==so;function kc(...t){const{caseless:e,skipUndefined:n}=q1(this)&&this||{},i={},o=(s,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const a=e&&typeof r=="string"&&G1(i,r)||r,l=el(i,a)?i[a]:void 0;ma(l)&&ma(s)?i[a]=kc(l,s):ma(s)?i[a]=kc({},s):mo(s)?i[a]=s.slice():(!n||!Yo(s))&&(i[a]=s)};for(let s=0,r=t.length;s(Sr(e,(o,s)=>{n&&en(o)?Object.defineProperty(t,s,{__proto__:null,value:z1(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),aD=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),lD=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},uD=(t,e,n,i)=>{let o,s,r;const a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)r=o[s],(!i||i(r,t,e))&&!a[r]&&(e[r]=t[r],a[r]=!0);t=n!==!1&&Xo(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},cD=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},dD=t=>{if(!t)return null;if(mo(t))return t;let e=t.length;if(!W1(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},hD=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Xo(Uint8Array)),fD=(t,e)=>{const n=(t&&t[Ar]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},pD=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},gD=Tn("HTMLFormElement"),mD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:vD}=Object.prototype,yD=Tn("RegExp"),K1=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Sr(n,(o,s)=>{let r;(r=e(o,s,t))!==!1&&(i[s]=r||o)}),Object.defineProperties(t,i)},bD=t=>{K1(t,(e,n)=>{if(en(t)&&["arguments","caller","callee"].includes(n))return!1;const i=t[n];if(en(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},_D=(t,e)=>{const n={},i=o=>{o.forEach(s=>{n[s]=!0})};return mo(t)?i(t):i(String(t).split(e)),n},wD=()=>{},xD=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function ED(t){return!!(t&&en(t.append)&&t[H1]==="FormData"&&t[Ar])}const AD=t=>{const e=new WeakSet,n=i=>{if(es(i)){if(e.has(i))return;if(ts(i))return i;if(!("toJSON"in i)){e.add(i);const o=mo(i)?[]:{};return Sr(i,(s,r)=>{const a=n(s);!Yo(a)&&(o[r]=a)}),e.delete(i),o}}return i};return n(t)},SD=Tn("AsyncFunction"),CD=t=>t&&(es(t)||en(t))&&en(t.then)&&en(t.catch),X1=((t,e)=>t?setImmediate:e?((n,i)=>(so.addEventListener("message",({source:o,data:s})=>{o===so&&s===n&&i.length&&i.shift()()},!1),o=>{i.push(o),so.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",en(so.postMessage)),TD=typeof queueMicrotask<"u"?queueMicrotask.bind(so):typeof vc<"u"&&vc.nextTick||X1,Y1=t=>t!=null&&en(t[Ar]),kD=t=>t!=null&&pr(t,Ar)&&Y1(t),D={isArray:mo,isArrayBuffer:J1,isBuffer:ts,isFormData:ML,isArrayBufferView:IL,isString:zL,isNumber:W1,isBoolean:HL,isObject:es,isPlainObject:ma,isEmptyObject:JL,isReadableStream:eD,isRequest:nD,isResponse:iD,isHeaders:oD,isUndefined:Yo,isDate:WL,isFile:GL,isReactNativeBlob:qL,isReactNative:KL,isBlob:XL,isRegExp:yD,isFunction:en,isStream:ZL,isURLSearchParams:tD,isTypedArray:hD,isFileList:YL,forEach:Sr,merge:kc,extend:rD,trim:sD,stripBOM:aD,inherits:lD,toFlatObject:uD,kindOf:bd,kindOfTest:Tn,endsWith:cD,toArray:dD,forEachEntry:fD,matchAll:pD,isHTMLForm:gD,hasOwnProperty:el,hasOwnProp:el,hasOwnInPrototypeChain:pr,getSafeProp:VL,reduceDescriptors:K1,freezeMethods:bD,toObjectSet:_D,toCamelCase:mD,noop:wD,toFiniteNumber:xD,findKey:G1,global:so,isContextDefined:q1,isSpecCompliantForm:ED,toJSONObject:AD,isAsyncFn:SD,isThenable:CD,setImmediate:X1,asap:TD,isIterable:Y1,isSafeIterable:kD},RD=D.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),PD=t=>{const e={};let n,i,o;return t&&t.split(` -`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&RD[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};function LD(t){let e=0,n=t.length;for(;ee;){const i=t.charCodeAt(n-1);if(i!==9&&i!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}const DD=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),ND=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function _d(t,e){return D.isArray(t)?t.map(n=>_d(n,e)):LD(String(t).replace(e,""))}const OD=t=>_d(t,DD),$D=t=>_d(t,ND);function Z1(t){const e=Object.create(null);return D.forEach(t.toJSON(),(n,i)=>{e[i]=$D(n)}),e}const o0=Symbol("internals");function bs(t){return t&&String(t).trim().toLowerCase()}function va(t){return t===!1||t==null?t:D.isArray(t)?t.map(va):OD(String(t))}function BD(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const FD=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Bu(t,e,n,i,o){if(D.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!D.isString(e)){if(D.isString(i))return e.indexOf(i)!==-1;if(D.isRegExp(i))return i.test(e)}}function jD(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function UD(t,e){const n=D.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{__proto__:null,value:function(o,s,r){return this[i].call(this,e,o,s,r)},configurable:!0})})}let Ue=class{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function o(r,a,l){const c=bs(a);if(!c)return;const u=D.findKey(i,c);(!u||i[u]===void 0||l===!0||l===void 0&&i[u]!==!1)&&(i[u||a]=va(r))}const s=(r,a)=>D.forEach(r,(l,c)=>o(l,c,a));if(D.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(D.isString(t)&&(t=t.trim())&&!FD(t))s(PD(t),e);else if(D.isObject(t)&&D.isSafeIterable(t)){let r=Object.create(null),a,l;for(const c of t){if(!D.isArray(c))throw new TypeError("Object iterator must return a key-value pair");l=c[0],D.hasOwnProp(r,l)?(a=r[l],r[l]=D.isArray(a)?[...a,c[1]]:[a,c[1]]):r[l]=c[1]}s(r,e)}else t!=null&&o(e,t,n);return this}get(t,e){if(t=bs(t),t){const n=D.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return BD(i);if(D.isFunction(e))return e.call(this,i,n);if(D.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=bs(t),t){const n=D.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||Bu(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function o(s){if(s=bs(s),s){const r=D.findKey(n,s);r&&(!e||Bu(n,n[r],r,e))&&(delete n[r],i=!0)}}return D.isArray(t)?t.forEach(o):o(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const o=e[n];(!t||Bu(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const e=this,n={};return D.forEach(this,(i,o)=>{const s=D.findKey(n,o);if(s){e[s]=va(i),delete e[o];return}const r=t?jD(o):String(o).trim();r!==o&&delete e[o],e[r]=va(i),n[r]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return D.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&D.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const e=(this[o0]=this[o0]={accessors:{}}).accessors,n=this.prototype;function i(o){const s=bs(o);e[s]||(UD(n,o),e[s]=!0)}return D.isArray(t)?t.forEach(i):i(t),this}};Ue.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),D.reduceDescriptors(Ue.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}}),D.freezeMethods(Ue);const VD="[REDACTED ****]";function ID(t){if(D.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(D.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function zD(t,e){const n=new Set(e.map(s=>String(s).toLowerCase())),i=[],o=s=>{if(s===null||typeof s!="object"||D.isBuffer(s))return s;if(i.indexOf(s)!==-1)return;s instanceof Ue&&(s=s.toJSON()),i.push(s);let r;if(D.isArray(s))r=[],s.forEach((a,l)=>{const c=o(a);D.isUndefined(c)||(r[l]=c)});else{if(!D.isPlainObject(s)&&ID(s))return i.pop(),s;r=Object.create(null);for(const[a,l]of Object.entries(s)){const c=n.has(a.toLowerCase())?VD:o(l);D.isUndefined(c)||(r[a]=c)}}return i.pop(),r};return o(t)}let dt=class Q1 extends Error{static from(e,n,i,o,s,r){const a=new Q1(e.message,n||e.code,i,o,s);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),r&&Object.assign(a,r),a}constructor(e,n,i,o,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,n=e&&D.hasOwnProp(e,"redact")?e.redact:void 0,i=D.isArray(n)&&n.length>0?zD(e,n):D.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:i,code:this.code,status:this.status}}};dt.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",dt.ERR_BAD_OPTION="ERR_BAD_OPTION",dt.ECONNABORTED="ECONNABORTED",dt.ETIMEDOUT="ETIMEDOUT",dt.ECONNREFUSED="ECONNREFUSED",dt.ERR_NETWORK="ERR_NETWORK",dt.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",dt.ERR_DEPRECATED="ERR_DEPRECATED",dt.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",dt.ERR_BAD_REQUEST="ERR_BAD_REQUEST",dt.ERR_CANCELED="ERR_CANCELED",dt.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",dt.ERR_INVALID_URL="ERR_INVALID_URL",dt.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const HD=null,M1=100;function Rc(t){return D.isPlainObject(t)||D.isArray(t)}function tv(t){return D.endsWith(t,"[]")?t.slice(0,-2):t}function Fu(t,e,n){return t?t.concat(e).map(function(i,o){return i=tv(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function JD(t){return D.isArray(t)&&!t.some(Rc)}const WD=D.toFlatObject(D,{},null,function(t){return/^is[A-Z]/.test(t)});function $l(t,e,n){if(!D.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=D.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,A){return!D.isUndefined(A[b])});const i=n.metaTokens,o=n.visitor||y,s=n.dots,r=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?M1:n.maxDepth,c=a&&D.isSpecCompliantForm(e),u=[];if(!D.isFunction(o))throw new TypeError("visitor must be a function");function d(b){if(b===null)return"";if(D.isDate(b))return b.toISOString();if(D.isBoolean(b))return b.toString();if(!c&&D.isBlob(b))throw new dt("Blob is not supported. Use a Buffer instead.");if(D.isArrayBuffer(b)||D.isTypedArray(b)){if(c&&typeof a=="function")return new a([b]);if(typeof qh<"u")return qh.from(b);throw new dt("Blob is not supported. Use a Buffer instead.",dt.ERR_NOT_SUPPORT)}return b}function f(b){if(b>l)throw new dt("Object is too deeply nested ("+b+" levels). Max depth: "+l,dt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(b,A){if(l===1/0)return JSON.stringify(b);const R=[];return JSON.stringify(b,function(S,N){if(!D.isObject(N))return N;for(;R.length&&R[R.length-1]!==this;)R.pop();return R.push(N),f(A+R.length-1),N})}function y(b,A,R){let S=b;if(D.isReactNative(e)&&D.isReactNativeBlob(b))return e.append(Fu(R,A,s),d(b)),!1;if(b&&!R&&typeof b=="object"){if(D.endsWith(A,"{}"))A=i?A:A.slice(0,-2),b=p(b,1);else if(D.isArray(b)&&JD(b)||(D.isFileList(b)||D.endsWith(A,"[]"))&&(S=D.toArray(b)))return A=tv(A),S.forEach(function(N,j){!(D.isUndefined(N)||N===null)&&e.append(r===!0?Fu([A],j,s):r===null?A:A+"[]",d(N))}),!1}return Rc(b)?!0:(e.append(Fu(R,A,s),d(b)),!1)}const m=Object.assign(WD,{defaultVisitor:y,convertValue:d,isVisitable:Rc});function x(b,A,R=0){if(!D.isUndefined(b)){if(f(R),u.indexOf(b)!==-1)throw new Error("Circular reference detected in "+A.join("."));u.push(b),D.forEach(b,function(S,N){(!(D.isUndefined(S)||S===null)&&o.call(e,S,D.isString(N)?N.trim():N,A,m))===!0&&x(S,A?A.concat(N):[N],R+1)}),u.pop()}}if(!D.isObject(t))throw new TypeError("data must be an object");return x(t),e}function s0(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function wd(t,e){this._pairs=[],t&&$l(t,this,e)}const r0=wd.prototype;r0.append=function(t,e){this._pairs.push([t,e])},r0.toString=function(t){const e=t?n=>t.call(this,n,s0):s0;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function GD(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function ev(t,e,n){if(!e)return t;t=t||"";const i=D.isFunction(n)?{serialize:n}:n,o=D.getSafeProp(i,"encode")||GD,s=D.getSafeProp(i,"serialize");let r;if(s?r=s(e,i):r=D.isURLSearchParams(e)?e.toString():new wd(e,i).toString(o),r){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class a0{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){D.forEach(this.handlers,function(n){n!==null&&e(n)})}}const xd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},qD=typeof URLSearchParams<"u"?URLSearchParams:wd,KD=typeof FormData<"u"?FormData:null,XD=typeof Blob<"u"?Blob:null,YD={isBrowser:!0,classes:{URLSearchParams:qD,FormData:KD,Blob:XD},protocols:["http","https","file","blob","url","data"]},Ed=typeof window<"u"&&typeof document<"u",Pc=typeof navigator=="object"&&navigator||void 0,ZD=Ed&&(!Pc||["ReactNative","NativeScript","NS"].indexOf(Pc.product)<0),QD=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MD=Ed&&window.location.href||"http://localhost",tN=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ed,hasStandardBrowserEnv:ZD,hasStandardBrowserWebWorkerEnv:QD,navigator:Pc,origin:MD},Symbol.toStringTag,{value:"Module"})),Ce={...tN,...YD};function eN(t,e){return $l(t,new Ce.classes.URLSearchParams,{visitor:function(n,i,o,s){return Ce.isNode&&D.isBuffer(n)?(this.append(i,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}const l0=M1;function nv(t){if(t>l0)throw new dt("FormData field is too deeply nested ("+t+" levels). Max depth: "+l0,dt.ERR_FORM_DATA_DEPTH_EXCEEDED)}function nN(t){const e=[],n=/\w+|\[(\w*)]/g;let i;for(;(i=n.exec(t))!==null;)nv(e.length),e.push(i[0]==="[]"?"":i[1]||i[0]);return e}function iN(t){const e={},n=Object.keys(t);let i;const o=n.length;let s;for(i=0;i=n.length;return r=!r&&D.isArray(o)?o.length:r,l?(D.hasOwnProp(o,r)?o[r]=D.isArray(o[r])?o[r].concat(i):[o[r],i]:o[r]=i,!a):((!D.hasOwnProp(o,r)||!D.isObject(o[r]))&&(o[r]=[]),e(n,i,o[r],s)&&D.isArray(o[r])&&(o[r]=iN(o[r])),!a)}if(D.isFormData(t)&&D.isFunction(t.entries)){const n={};return D.forEachEntry(t,(i,o)=>{e(nN(i),o,n,0)}),n}return null}const No=(t,e)=>t!=null&&D.hasOwnProp(t,e)?t[e]:void 0;function oN(t,e,n){if(D.isString(t))try{return(e||JSON.parse)(t),D.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const Cr={transitional:xd,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,o=D.isObject(t);if(o&&D.isHTMLForm(t)&&(t=new FormData(t)),D.isFormData(t))return i?JSON.stringify(iv(t)):t;if(D.isArrayBuffer(t)||D.isBuffer(t)||D.isStream(t)||D.isFile(t)||D.isBlob(t)||D.isReadableStream(t))return t;if(D.isArrayBufferView(t))return t.buffer;if(D.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){const r=No(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return eN(t,r).toString();if((s=D.isFileList(t))||n.indexOf("multipart/form-data")>-1){const a=No(this,"env"),l=a&&a.FormData;return $l(s?{"files[]":t}:t,l&&new l,r)}}return o||i?(e.setContentType("application/json",!1),oN(t)):t}],transformResponse:[function(t){const e=No(this,"transitional")||Cr.transitional,n=e&&e.forcedJSONParsing,i=No(this,"responseType"),o=i==="json";if(D.isResponse(t)||D.isReadableStream(t))return t;if(t&&D.isString(t)&&(n&&!i||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t,No(this,"parseReviver"))}catch(r){if(s)throw r.name==="SyntaxError"?dt.from(r,dt.ERR_BAD_RESPONSE,this,null,No(this,"response")):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ce.classes.FormData,Blob:Ce.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};D.forEach(["delete","get","head","post","put","patch","query"],t=>{Cr.headers[t]={}});function ju(t,e){const n=this||Cr,i=e||n,o=Ue.from(i.headers);let s=i.data;return D.forEach(t,function(r){s=r.call(n,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function ov(t){return!!(t&&t.__CANCEL__)}let Tr=class extends dt{constructor(t,e,n){super(t??"canceled",dt.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function sv(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new dt("Request failed with status code "+n.status,n.status>=400&&n.status<500?dt.ERR_BAD_REQUEST:dt.ERR_BAD_RESPONSE,n.config,n.request,n))}function sN(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function rN(t,e){t=t||10;const n=new Array(t),i=new Array(t);let o=0,s=0,r;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),c=i[s];r||(r=l),n[o]=a,i[o]=l;let u=s,d=0;for(;u!==o;)d+=n[u++],u=u%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),l-r{n=l,o=null,s&&(clearTimeout(s),s=null),t(...a)};return[(...a)=>{const l=Date.now(),c=l-n;c>=i?r(a,l):(o=a,s||(s=setTimeout(()=>{s=null,r(o)},i-c)))},()=>o&&r(o)]}const nl=(t,e,n=3)=>{let i=0;const o=rN(50,250);return aN(s=>{if(!s||typeof s.loaded!="number")return;const r=s.loaded,a=s.lengthComputable?s.total:void 0,l=a!=null?Math.min(r,a):r,c=Math.max(0,l-i),u=o(c);i=Math.max(i,l);const d={loaded:l,total:a,progress:a?l/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a?(a-l)/u:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},u0=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},c0=t=>(...e)=>D.asap(()=>t(...e)),lN=Ce.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Ce.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Ce.origin),Ce.navigator&&/(msie|trident)/i.test(Ce.navigator.userAgent)):()=>!0,uN=Ce.hasStandardBrowserEnv?{write(t,e,n,i,o,s,r){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];D.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),D.isString(i)&&a.push(`path=${i}`),D.isString(o)&&a.push(`domain=${o}`),s===!0&&a.push("secure"),D.isString(r)&&a.push(`SameSite=${r}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;nt instanceof Ue?{...t}:t;function vo(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function i(u,d,f,p){return D.isPlainObject(u)&&D.isPlainObject(d)?D.merge.call({caseless:p},u,d):D.isPlainObject(d)?D.merge({},d):D.isArray(d)?d.slice():d}function o(u,d,f,p){if(D.isUndefined(d)){if(!D.isUndefined(u))return i(void 0,u,f,p)}else return i(u,d,f,p)}function s(u,d){if(!D.isUndefined(d))return i(void 0,d)}function r(u,d){if(D.isUndefined(d)){if(!D.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u){const d=D.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!D.isUndefined(d))if(D.isPlainObject(d)){if(D.hasOwnProp(d,u))return d[u]}else return;const f=D.hasOwnProp(t,"transitional")?t.transitional:void 0;if(D.isPlainObject(f)&&D.hasOwnProp(f,u))return f[u]}function l(u,d,f){if(D.hasOwnProp(e,f))return i(u,d);if(D.hasOwnProp(t,f))return i(void 0,u)}const c={url:s,method:s,data:s,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:l,headers:(u,d,f)=>o(h0(u),h0(d),f,!0)};return D.forEach(Object.keys({...t,...e}),function(u){if(u==="__proto__"||u==="constructor"||u==="prototype")return;const d=D.hasOwnProp(c,u)?c[u]:o,f=D.hasOwnProp(t,u)?t[u]:void 0,p=D.hasOwnProp(e,u)?e[u]:void 0,y=d(f,p,u);D.isUndefined(y)&&d!==l||(n[u]=y)}),D.hasOwnProp(e,"validateStatus")&&D.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(D.hasOwnProp(t,"validateStatus")?n.validateStatus=i(void 0,t.validateStatus):delete n.validateStatus),n}const mN=["content-type","content-length"];function vN(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([i,o])=>{mN.includes(i.toLowerCase())&&t.set(i,o)})}const yN=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function av(t){const e=vo({},t),n=f=>D.hasOwnProp(e,f)?e[f]:void 0,i=n("data");let o=n("withXSRFToken");const s=n("xsrfHeaderName"),r=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(e.headers=a=Ue.from(a),e.url=ev(rv(c,d,u,e),n("params"),n("paramsSerializer")),l){const f=D.getSafeProp(l,"username")||"",p=D.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(f+":"+(p?yN(p):"")))}catch(y){throw dt.from(y,dt.ERR_BAD_OPTION_VALUE,t)}}if(D.isFormData(i)&&(Ce.hasStandardBrowserEnv||Ce.hasStandardBrowserWebWorkerEnv||D.isReactNative(i)?a.setContentType(void 0):D.isFunction(i.getHeaders)&&vN(a,i.getHeaders(),n("formDataHeaderPolicy"))),Ce.hasStandardBrowserEnv&&(D.isFunction(o)&&(o=o(e)),o===!0||o==null&&lN(e.url))){const f=s&&r&&uN.read(r);f&&a.set(s,f)}return e}const bN=typeof XMLHttpRequest<"u",_N=bN&&function(t){return new Promise(function(e,n){const i=av(t);let o=i.data;const s=Ue.from(i.headers).normalize();let{responseType:r,onUploadProgress:a,onDownloadProgress:l}=i,c,u,d,f,p;function y(){f&&f(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let m=new XMLHttpRequest;m.open(i.method.toUpperCase(),i.url,!0),m.timeout=i.timeout;function x(){if(!m)return;const A=Ue.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),R={data:!r||r==="text"||r==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:A,config:t,request:m};sv(function(S){e(S),y()},function(S){n(S),y()},R),m=null}"onloadend"in m?m.onloadend=x:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.startsWith("file:"))||setTimeout(x)},m.onabort=function(){m&&(n(new dt("Request aborted",dt.ECONNABORTED,t,m)),y(),m=null)},m.onerror=function(A){const R=A&&A.message?A.message:"Network Error",S=new dt(R,dt.ERR_NETWORK,t,m);S.event=A||null,n(S),y(),m=null},m.ontimeout=function(){let A=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const R=i.transitional||xd;i.timeoutErrorMessage&&(A=i.timeoutErrorMessage),n(new dt(A,R.clarifyTimeoutError?dt.ETIMEDOUT:dt.ECONNABORTED,t,m)),y(),m=null},o===void 0&&s.setContentType(null),"setRequestHeader"in m&&D.forEach(Z1(s),function(A,R){m.setRequestHeader(R,A)}),D.isUndefined(i.withCredentials)||(m.withCredentials=!!i.withCredentials),r&&r!=="json"&&(m.responseType=i.responseType),l&&([d,p]=nl(l,!0),m.addEventListener("progress",d)),a&&m.upload&&([u,f]=nl(a),m.upload.addEventListener("progress",u),m.upload.addEventListener("loadend",f)),(i.cancelToken||i.signal)&&(c=A=>{m&&(n(!A||A.type?new Tr(null,t,m):A),m.abort(),y(),m=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const b=sN(i.url);if(b&&!Ce.protocols.includes(b)){n(new dt("Unsupported protocol "+b+":",dt.ERR_BAD_REQUEST,t)),y();return}m.send(o||null)})},wN=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let i=!1;const o=function(l){if(!i){i=!0,r();const c=l instanceof Error?l:this.reason;n.abort(c instanceof dt?c:new Tr(c instanceof Error?c.message:c))}};let s=e&&setTimeout(()=>{s=null,o(new dt(`timeout of ${e}ms exceeded`,dt.ETIMEDOUT))},e);const r=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>D.asap(r),a},xN=function*(t,e){let n=t.byteLength;if(n{const o=EN(t,e);let s=0,r,a=l=>{r||(r=!0,i&&i(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=s+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),o.return()}},{highWaterMark:2})},il=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,SN=(t,e,n)=>e+2d>=2&&i.charCodeAt(d-2)===37&&i.charCodeAt(d-1)===51&&(i.charCodeAt(d)===68||i.charCodeAt(d)===100);l>=0&&(i.charCodeAt(l)===61?(a++,l--):c(l)&&(a++,l-=3)),a===1&&l>=0&&(i.charCodeAt(l)===61||c(l))&&a++;const u=Math.floor(s/4)*3-(a||0);return u>0?u:0}let o=0;for(let s=0,r=i.length;s=55296&&a<=56319&&s+1=56320&&l<=57343?(o+=4,s++):o+=3}else o+=3}return o}const Ad="1.18.1",p0=64*1024,{isFunction:ia}=D,TN=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),g0=t=>{if(!D.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},m0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},kN=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},RN=t=>{const e=D.global!==void 0&&D.global!==null?D.global:globalThis,{ReadableStream:n,TextEncoder:i}=e;t=D.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:o,Request:s,Response:r}=t,a=o?ia(o):typeof fetch=="function",l=ia(s),c=ia(r);if(!a)return!1;const u=a&&ia(n),d=a&&(typeof i=="function"?(b=>A=>b.encode(A))(new i):async b=>new Uint8Array(await new s(b).arrayBuffer())),f=l&&u&&m0(()=>{let b=!1;const A=new s(Ce.origin,{body:new n,method:"POST",get duplex(){return b=!0,"half"}}),R=A.headers.has("Content-Type");return A.body!=null&&A.body.cancel(),b&&!R}),p=c&&u&&m0(()=>D.isReadableStream(new r("").body)),y={stream:p&&(b=>b.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(b=>{!y[b]&&(y[b]=(A,R)=>{let S=A&&A[b];if(S)return S.call(A);throw new dt(`Response type '${b}' is not supported`,dt.ERR_NOT_SUPPORT,R)})});const m=async b=>{if(b==null)return 0;if(D.isBlob(b))return b.size;if(D.isSpecCompliantForm(b))return(await new s(Ce.origin,{method:"POST",body:b}).arrayBuffer()).byteLength;if(D.isArrayBufferView(b)||D.isArrayBuffer(b))return b.byteLength;if(D.isURLSearchParams(b)&&(b=b+""),D.isString(b))return(await d(b)).byteLength},x=async(b,A)=>D.toFiniteNumber(b.getContentLength())??m(A);return async b=>{let{url:A,method:R,data:S,signal:N,cancelToken:j,timeout:U,onDownloadProgress:H,onUploadProgress:q,responseType:V,headers:et,withCredentials:T="same-origin",fetchOptions:F,maxContentLength:Q,maxBodyLength:M}=av(b);const Z=D.isNumber(Q)&&Q>-1,rt=D.isNumber(M)&&M>-1,lt=Et=>D.hasOwnProp(b,Et)?b[Et]:void 0;let ft=o||fetch;V=V?(V+"").toLowerCase():"text";let pt=wN([N,j&&j.toAbortSignal()],U),xt=null;const gt=pt&&pt.unsubscribe&&(()=>{pt.unsubscribe()});let Gt,Pt=null;const $t=()=>new dt("Request body larger than maxBodyLength limit",dt.ERR_BAD_REQUEST,b,xt);try{let Et;const ne=lt("auth");if(ne){const B=D.getSafeProp(ne,"username")||"",it=D.getSafeProp(ne,"password")||"";Et={username:B,password:it}}if(kN(A)){const B=new URL(A,Ce.origin);if(!Et&&(B.username||B.password)){const it=g0(B.username),st=g0(B.password);Et={username:it,password:st}}(B.username||B.password)&&(B.username="",B.password="",A=B.href)}if(Et&&(et.delete("authorization"),et.set("Authorization","Basic "+btoa(TN((Et.username||"")+":"+(Et.password||""))))),Z&&typeof A=="string"&&A.startsWith("data:")&&CN(A)>Q)throw new dt("maxContentLength size of "+Q+" exceeded",dt.ERR_BAD_RESPONSE,b,xt);if(rt&&R!=="get"&&R!=="head"){const B=await m(S);if(typeof B=="number"&&isFinite(B)&&(Gt=B,B>M))throw $t()}const nn=rt&&(D.isReadableStream(S)||D.isStream(S)),mn=(B,it,st)=>f0(B,p0,nt=>{if(rt&&nt>M)throw Pt=$t();it&&it(nt)},st);if(f&&R!=="get"&&R!=="head"&&(q||nn)){if(Gt=Gt??await x(et,S),Gt!==0||nn){let B=new s(A,{method:"POST",body:S,duplex:"half"}),it;if(D.isFormData(S)&&(it=B.headers.get("content-type"))&&et.setContentType(it),B.body){const[st,nt]=q&&u0(Gt,nl(c0(q)))||[];S=mn(B.body,st,nt)}}}else if(nn&&!l&&u&&R!=="get"&&R!=="head")S=mn(S);else if(nn&&l&&!f&&R!=="get"&&R!=="head")throw new dt("Stream request bodies are not supported by the current fetch implementation",dt.ERR_NOT_SUPPORT,b,xt);D.isString(T)||(T=T?"include":"omit");const vn=l&&"credentials"in s.prototype;if(D.isFormData(S)){const B=et.getContentType();B&&/^multipart\/form-data/i.test(B)&&!/boundary=/i.test(B)&&et.delete("content-type")}et.set("User-Agent","axios/"+Ad,!1);const C={...F,signal:pt,method:R.toUpperCase(),headers:Z1(et.normalize()),body:S,duplex:"half",credentials:vn?T:void 0};xt=l&&new s(A,C);let k=await(l?ft(xt,F):ft(A,C));const W=Ue.from(k.headers);if(Z){const B=D.toFiniteNumber(W.getContentLength());if(B!=null&&B>Q)throw new dt("maxContentLength size of "+Q+" exceeded",dt.ERR_BAD_RESPONSE,b,xt)}const K=p&&(V==="stream"||V==="response");if(p&&k.body&&(H||Z||K&>)){const B={};["status","statusText","headers"].forEach(ut=>{B[ut]=k[ut]});const it=D.toFiniteNumber(W.getContentLength()),[st,nt]=H&&u0(it,nl(c0(H),!0))||[];let tt=0;const mt=ut=>{if(Z&&(tt=ut,tt>Q))throw new dt("maxContentLength size of "+Q+" exceeded",dt.ERR_BAD_RESPONSE,b,xt);st&&st(ut)};k=new r(f0(k.body,p0,mt,()=>{nt&&nt(),gt&>()}),B)}V=V||"text";let X=await y[D.findKey(y,V)||"text"](k,b);if(Z&&!p&&!K){let B;if(X!=null&&(typeof X.byteLength=="number"?B=X.byteLength:typeof X.size=="number"?B=X.size:typeof X=="string"&&(B=typeof i=="function"?new i().encode(X).byteLength:X.length)),typeof B=="number"&&B>Q)throw new dt("maxContentLength size of "+Q+" exceeded",dt.ERR_BAD_RESPONSE,b,xt)}return!K&>&>(),await new Promise((B,it)=>{sv(B,it,{data:X,headers:Ue.from(k.headers),status:k.status,statusText:k.statusText,config:b,request:xt})})}catch(Et){if(gt&>(),pt&&pt.aborted&&pt.reason instanceof dt){const ne=pt.reason;throw ne.config=b,xt&&(ne.request=xt),Et!==ne&&Object.defineProperty(ne,"cause",{__proto__:null,value:Et,writable:!0,enumerable:!1,configurable:!0}),ne}if(Pt)throw xt&&!Pt.request&&(Pt.request=xt),Pt;if(Et instanceof dt)throw xt&&!Et.request&&(Et.request=xt),Et;if(Et&&Et.name==="TypeError"&&/Load failed|fetch/i.test(Et.message)){const ne=new dt("Network Error",dt.ERR_NETWORK,b,xt,Et&&Et.response);throw Object.defineProperty(ne,"cause",{__proto__:null,value:Et.cause||Et,writable:!0,enumerable:!1,configurable:!0}),ne}throw dt.from(Et,Et&&Et.code,b,xt,Et&&Et.response)}}},PN=new Map,lv=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:o}=e,s=[i,o,n];let r=s.length,a=r,l,c,u=PN;for(;a--;)l=s[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:RN(e)),u=c;return c};lv();const Sd={http:HD,xhr:_N,fetch:{get:lv}};D.forEach(Sd,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const v0=t=>`- ${t}`,LN=t=>D.isFunction(t)||t===null||t===!1;function DN(t,e){t=D.isArray(t)?t:[t];const{length:n}=t;let i,o;const s={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?r.length>1?`since : +`,UP=Pt({__name:"NcIconToggleSwitch",props:{checked:{type:Boolean},size:{default:34},inline:{type:Boolean,default:!1}},setup(t){Al(i=>({v6bd152af:e.value,v16fd8ca9:n.value}));const e=ct(()=>t.checked?"var(--color-primary-element)":"var(--color-text-maxcontrast)"),n=ct(()=>t.checked?"calc(17 / 24 * 100%)":"calc(7 / 24 * 100%)");return(i,o)=>(D(),xt(In,{class:Xt(i.$style.iconToggleSwitch),svg:jP,size:t.size,inline:t.inline},null,8,["class","size","inline"]))}}),VP="_iconToggleSwitch_IKWaj",IP={"material-design-icon":"_material-design-icon_63AMQ",iconToggleSwitch:VP},zP={$style:IP},HP=ze(UP,[["__cssModules",zP]]),JP=["id","aria-describedby","disabled"],WP=Pt({__name:"NcFormBoxSwitch",props:Go({label:{default:()=>{}},description:{default:()=>{}},disabled:{type:Boolean,default:!1}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:Go(["enable","disable"],["update:modelValue"]),setup(t,{emit:e}){const n=Vc(t,"modelValue"),i=e,o=Mo();return Xe(n,()=>{n.value?i("enable"):i("disable")},{flush:"sync"}),(s,r)=>(D(),xt(z1,{tag:"label",for:E(o)},Uc({icon:Tt(({descriptionId:a})=>[ws(b("input",{id:E(o),"onUpdate:modelValue":r[0]||(r[0]=l=>n.value=l),class:Xt(s.$style.formBoxSwitch__input),type:"checkbox",role:"switch","aria-describedby":a,disabled:t.disabled},null,10,JP),[[n_,n.value]]),nt(HP,{checked:n.value,inline:""},null,8,["checked"])]),_:2},[s.$slots.default||t.label?{name:"default",fn:Tt(()=>[Qt(s.$slots,"default",{},()=>[Rt(L(t.label),1)])]),key:"0"}:void 0,s.$slots.description||t.description?{name:"description",fn:Tt(()=>[Qt(s.$slots,"description",{},()=>[Rt(L(t.description),1)])]),key:"1"}:void 0]),1032,["for"]))}}),GP="_formBoxSwitch__input_n8432",qP={"material-design-icon":"_material-design-icon_v0XYD",formBoxSwitch__input:GP},KP={$style:qP},Bu=ze(WP,[["__cssModules",KP]]),XP=["aria-describedby"],YP=Pt({__name:"NcFormGroup",props:{label:{default:()=>{}},description:{default:()=>{}},hideLabel:{type:Boolean,default:!1},hideDescription:{type:Boolean,default:!1},noGap:{type:Boolean,default:!1}},setup(t){const e=xl(),n=`${`nc-form-group-${Mo()}`}-description`,i=()=>!!t.description||!!e.description,o=()=>i()?n:void 0,s=()=>t.hideLabel&&(!i()||t.hideDescription);return(r,a)=>(D(),z("fieldset",{class:Xt([r.$style.formGroup,{[r.$style.formGroup_noGap]:t.noGap}]),"aria-describedby":o()},[b("legend",{class:Xt([r.$style.formGroup__label,{"hidden-visually":t.hideLabel}])},[Qt(r.$slots,"label",{},()=>[Rt(L(t.label||"⚠️ Missing label"),1)])],2),i()?(D(),z("div",{key:0,id:n,class:Xt([r.$style.formGroup__description,{"hidden-visually":t.hideDescription}])},[Qt(r.$slots,"description",{},()=>[Rt(L(t.description),1)])],2)):bt("",!0),b("div",{class:Xt([r.$style.formGroup__content,{[r.$style.formGroup__content_only]:s()}])},[Qt(r.$slots,"default")],2)],10,XP))}}),ZP="_formGroup_P4ub1",QP="_formGroup_noGap_I25Tm",MP="_formGroup__label_dvGhm",tR="_formGroup__description_rqVc0",eR="_formGroup__content_fnqsg",nR="_formGroup__content_only_G-Ivq",iR={"material-design-icon":"_material-design-icon_2NWOj",formGroup:ZP,formGroup_noGap:QP,formGroup__label:MP,formGroup__description:tR,formGroup__content:eR,formGroup__content_only:nR},oR={$style:iR},Mp=ze(YP,[["__cssModules",oR]]),sR={name:"ConnectionIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},rR=["aria-hidden","aria-label"],aR=["fill","width","height"],lR={d:"M21.4 7.5C22.2 8.3 22.2 9.6 21.4 10.3L18.6 13.1L10.8 5.3L13.6 2.5C14.4 1.7 15.7 1.7 16.4 2.5L18.2 4.3L21.2 1.3L22.6 2.7L19.6 5.7L21.4 7.5M15.6 13.3L14.2 11.9L11.4 14.7L9.3 12.6L12.1 9.8L10.7 8.4L7.9 11.2L6.4 9.8L3.6 12.6C2.8 13.4 2.8 14.7 3.6 15.4L5.4 17.2L1.4 21.2L2.8 22.6L6.8 18.6L8.6 20.4C9.4 21.2 10.7 21.2 11.4 20.4L14.2 17.6L12.8 16.2L15.6 13.3Z"},uR={key:0};function cR(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon connection-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",lR,[n.title?(D(),z("title",uR,L(n.title),1)):bt("",!0)])],8,aR))],16,rR)}const dR=Jt(sR,[["render",cR]]),hR={class:"section monitoring"},t0="NC-Token",fR=Pt({__name:"MonitoringSection",props:{ocs:{}},setup(t){const e=t,n=Array.from(crypto.getRandomValues(new Uint8Array(32)),a=>a.toString(16).padStart(2,"0")).join(""),i=fe(!1),o=fe(!0),s=fe(!0),r=ct(()=>{try{const a=new URL(e.ocs);return i.value&&a.searchParams.set("format","json"),o.value||a.searchParams.set("skipApps","false"),s.value||a.searchParams.set("skipUpdate","false"),a.toString()}catch{return e.ocs}});return(a,l)=>(D(),z("div",hR,[nt(Ye,{icon:dR,title:E(F)("serverinfo","External monitoring API")},null,8,["title"]),nt(E(Ou),null,{default:Tt(()=>[nt(E($u),{label:E(F)("serverinfo","Endpoint URL"),value:r.value},null,8,["label","value"])]),_:1}),nt(E(Mp),{label:E(F)("serverinfo","Configuration")},{default:Tt(()=>[nt(E(Ou),null,{default:Tt(()=>[nt(E(Bu),{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=c=>i.value=c),label:E(F)("serverinfo","Output in JSON")},null,8,["modelValue","label"]),nt(E(Bu),{modelValue:o.value,"onUpdate:modelValue":l[1]||(l[1]=c=>o.value=c),label:E(F)("serverinfo","Skip apps section"),description:E(F)("serverinfo","Including the apps section sends an external request to the app store")},null,8,["modelValue","label","description"]),nt(E(Bu),{modelValue:s.value,"onUpdate:modelValue":l[2]||(l[2]=c=>s.value=c),label:E(F)("serverinfo","Skip server update")},null,8,["modelValue","label"])]),_:1})]),_:1},8,["label"]),nt(E(Mp),{label:E(F)("serverinfo","Authentication"),description:E(F)("serverinfo","This token was generated in your browser and is not stored until you run the command below. Send it in the {header} header with every request.",{header:t0})},{default:Tt(()=>[nt(E(Ou),null,{default:Tt(()=>[nt(E($u),{label:E(F)("serverinfo","Command to store the token"),value:`occ config:app:set serverinfo token --value ${E(n)}`},null,8,["label","value"]),nt(E($u),{label:E(F)("serverinfo","Request header"),value:`${t0}: ${E(n)}`},null,8,["label","value"])]),_:1})]),_:1},8,["label","description"])]))}}),pR=Jt(fR,[["__scopeId","data-v-94a398b4"]]),gR={name:"LanIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},mR=["aria-hidden","aria-label"],vR=["fill","width","height"],yR={d:"M10,2C8.89,2 8,2.89 8,4V7C8,8.11 8.89,9 10,9H11V11H2V13H6V15H5C3.89,15 3,15.89 3,17V20C3,21.11 3.89,22 5,22H9C10.11,22 11,21.11 11,20V17C11,15.89 10.11,15 9,15H8V13H16V15H15C13.89,15 13,15.89 13,17V20C13,21.11 13.89,22 15,22H19C20.11,22 21,21.11 21,20V17C21,15.89 20.11,15 19,15H18V13H22V11H13V9H14C15.11,9 16,8.11 16,7V4C16,2.89 15.11,2 14,2H10M10,4H14V7H10V4M5,17H9V20H5V17M15,17H19V20H15V17Z"},bR={key:0};function _R(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon lan-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",yR,[n.title?(D(),z("title",bR,L(n.title),1)):bt("",!0)])],8,vR))],16,mR)}const wR=Jt(gR,[["render",_R]]),xR={class:"section network-infos"},ER={class:"row row--tiles"},SR={class:"row row--cards"},AR={class:"infobox"},CR={class:"interface-wrapper"},TR={class:"info"},kR={class:"info"},PR={class:"info"},RR={class:"info"},LR={class:"info"},DR=Pt({__name:"NetworkSection",props:{networkinfo:{},interfaces:{}},setup(t){return(e,n)=>(D(),z("div",xR,[nt(Ye,{icon:wR,title:E(F)("serverinfo","Network")},null,8,["title"]),b("div",ER,[nt(Ae,{label:E(F)("serverinfo","Hostname"),value:t.networkinfo.hostname},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Gateway"),value:t.networkinfo.gateway},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","DNS"),value:t.networkinfo.dns},null,8,["label","value"])]),b("div",SR,[(D(!0),z(Et,null,mi(t.interfaces,i=>(D(),z("div",{key:i.name},[b("div",AR,[b("div",CR,[b("h3",null,L(i.name),1),Rt(" "+L(E(F)("serverinfo","Status:"))+" ",1),b("span",TR,L(i.up?"up":"down"),1),n[1]||(n[1]=b("br",null,null,-1)),Rt(" "+L(E(F)("serverinfo","Speed:"))+" ",1),b("span",kR,L(i.speed)+" ("+L(E(F)("serverinfo","Duplex:"))+" "+L(i.duplex)+")",1),n[2]||(n[2]=b("br",null,null,-1)),i.mac?(D(),z(Et,{key:0},[Rt(L(E(F)("serverinfo","MAC:"))+" ",1),b("span",PR,L(i.mac),1),n[0]||(n[0]=b("br",null,null,-1))],64)):bt("",!0),Rt(" "+L(E(F)("serverinfo","IPv4:"))+" ",1),b("span",RR,L(i.ipv4.join(", ")),1),n[3]||(n[3]=b("br",null,null,-1)),Rt(" "+L(E(F)("serverinfo","IPv6:"))+" ",1),b("span",LR,L(i.ipv6.join(", ")),1)])])]))),128))])]))}}),NR={name:"FlashIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},OR=["aria-hidden","aria-label"],$R=["fill","width","height"],BR={d:"M7,2V13H10V22L17,10H13L17,2H7Z"},FR={key:0};function jR(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon flash-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",BR,[n.title?(D(),z("title",FR,L(n.title),1)):bt("",!0)])],8,$R))],16,OR)}const UR=Jt(NR,[["render",jR]]),VR=["aria-valuenow"],IR=["height","width"],zR=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],HR=["stroke-dasharray","stroke-dashoffset","stroke-width","r","cx","cy"],JR={key:1,class:"progress-bar-container"},WR=["value"],GR={key:0,class:"progress-bar__value"},na=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),e0=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),qR=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--clickable-area-small")),KR=Pt({__name:"NcProgressBar",props:{value:{default:0},size:{default:"small"},error:{type:Boolean},type:{default:"linear"},color:{default:"var(--color-primary-element)"},showValue:{type:Boolean,default:!1}},setup(t){Al(c=>({v3a86fec2:c.color,v57442460:o.value}));const e=t,n=ct(()=>Math.max(0,Math.min(100,e.value))/100),i=ct(()=>typeof e.size=="number"?Math.round(e.size):e.type==="circular"?e.size==="medium"?e0:qR:e.size==="medium"?1.5*na:na),o=ct(()=>`${i.value}px`),s=ct(()=>Math.max(na,i.value/e0*na)),r=ct(()=>i.value/2),a=ct(()=>i.value/2-s.value),l=ct(()=>a.value*2*Math.PI);return(c,u)=>t.type==="circular"?(D(),z("span",{key:0,role:"progressbar","aria-valuenow":t.value,class:Xt([{"progress-bar--error":t.error},"progress-bar progress-bar--circular"])},[(D(),z("svg",{height:i.value,width:i.value},[b("circle",{stroke:"currentColor",fill:"transparent","stroke-dasharray":`${n.value*l.value} ${(1-n.value)*l.value}`,"stroke-dashoffset":.25*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,zR),b("circle",{stroke:"var(--color-background-darker)",fill:"transparent","stroke-dasharray":`${(1-n.value)*l.value} ${n.value*l.value}`,"stroke-dashoffset":(.25-n.value)*l.value,"stroke-width":s.value,r:a.value,cx:r.value,cy:r.value},null,8,HR)],8,IR))],10,VR)):(D(),z("div",JR,[b("progress",{class:Xt(["progress-bar progress-bar--linear vue",{"progress-bar--error":t.error}]),value:t.value,max:"100"},null,10,WR),t.showValue?(D(),z("span",GR,L(t.value)+"%",1)):bt("",!0)]))}}),XR=ze(KR,[["__scopeId","data-v-353fa414"]]),YR={class:"usage-meter-bar"},ZR={class:"usage-meter-bar__header"},QR={class:"info"},MR=75,t5=90,e5=Pt({__name:"UsageMeterBar",props:{label:{},detail:{},percentage:{},forceError:{type:Boolean}},setup(t){return(e,n)=>(D(),z("div",YR,[b("div",ZR,[b("span",null,L(t.label),1),b("span",QR,L(t.detail),1)]),nt(E(XR),{value:t.percentage,size:"medium",color:t.percentage>=MR?"var(--color-warning)":void 0,error:t.forceError||t.percentage>=t5},null,8,["value","color","error"])]))}}),H1=Jt(e5,[["__scopeId","data-v-733874f2"]]),n5={class:"row row--tiles"},i5=["title"],o5={class:"server-info-table"},s5={class:"info"},r5={class:"info"},a5={class:"info"},l5={key:0},u5={class:"info"},c5=Pt({__name:"OpcacheSection",props:{opcache:{}},setup(t){const e=t,n=ct(()=>{switch(e.opcache.status){case"not_loaded":return F("serverinfo","OPcache is not loaded.");case"disabled":return F("serverinfo","OPcache is disabled.");case"api_restricted":return F("serverinfo",'Nextcloud is not permitted to read the OPcache status ("opcache.restrict_api").');default:return F("serverinfo","OPcache status is unavailable.")}});function i(r,a,l,c,u=!1){return c<=0?null:{label:r,detail:a,percentage:Math.round(l/c*100),forceError:u}}const o=ct(()=>{if(e.opcache.status!=="ok")return[];const{memory:r,internedStrings:a,keys:l,cacheFull:c}=e.opcache;return[i(F("serverinfo","Memory"),F("serverinfo","{used} of {total}",{used:pn(r.used+r.wasted),total:pn(r.total)}),r.used+r.wasted,r.total,c),i(F("serverinfo","Interned strings"),F("serverinfo","{used} of {total}",{used:pn(a.used),total:pn(a.total)}),a.used,a.total),i(F("serverinfo","Keys"),F("serverinfo","{used} of {max}",{used:l.used.toLocaleString(),max:l.max.toLocaleString()}),l.used,l.max)].filter(u=>u!==null)}),s=ct(()=>e.opcache.status!=="ok"||!e.opcache.jit?"":e.opcache.jit.enabled?F("serverinfo","Enabled, {used} of {total} buffer used",{used:pn(e.opcache.jit.bufferUsed),total:pn(e.opcache.jit.bufferTotal)}):F("serverinfo","Disabled"));return(r,a)=>(D(),z(Et,null,[nt(Ye,{icon:UR,title:E(F)("serverinfo","OPcache")},null,8,["title"]),t.opcache.status!=="ok"?(D(),xt(E(la),{key:0,type:"warning"},{default:Tt(()=>[Rt(L(n.value),1)]),_:1})):(D(),z(Et,{key:1},[b("div",n5,[nt(Ae,{label:E(F)("serverinfo","Hit rate"),value:`${t.opcache.hitRate.toFixed(2)} %`},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Cached scripts"),value:t.opcache.cachedScripts},null,8,["label","value"])]),b("div",{class:"opcache-meters",title:E(F)("serverinfo","These numbers describe the PHP process handling this request. Other FPM pools or the CLI keep their own OPcache.")},[(D(!0),z(Et,null,mi(o.value,l=>(D(),xt(H1,te({key:l.label},{ref_for:!0},l),null,16))),128))],8,i5),b("div",o5,[b("table",null,[b("tbody",null,[b("tr",null,[b("td",null,L(E(F)("serverinfo","Revalidate frequency:")),1),b("td",s5,L(t.opcache.revalidateFreq)+" "+L(E(F)("serverinfo","seconds")),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Validate timestamps:")),1),b("td",r5,L(t.opcache.validateTimestamps?E(F)("serverinfo","Yes"):E(F)("serverinfo","No")),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","OOM restarts:")),1),b("td",{class:Xt(["info",{"info--warning":t.opcache.oomRestarts>0}])},L(t.opcache.oomRestarts),3)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Last restart:")),1),b("td",a5,[t.opcache.lastRestart!==null?(D(),xt(E(Cl),{key:0,timestamp:t.opcache.lastRestart*1e3},null,8,["timestamp"])):(D(),z(Et,{key:1},[Rt(L(E(F)("serverinfo","Never")),1)],64))])]),t.opcache.jit?(D(),z("tr",l5,[b("td",null,L(E(F)("serverinfo","JIT:")),1),b("td",u5,L(s.value),1)])):bt("",!0)])])])],64))],64))}}),d5=Jt(c5,[["__scopeId","data-v-6fef687a"]]),h5={name:"CogsIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},f5=["aria-hidden","aria-label"],p5=["fill","width","height"],g5={d:"M15.9,18.45C17.25,18.45 18.35,17.35 18.35,16C18.35,14.65 17.25,13.55 15.9,13.55C14.54,13.55 13.45,14.65 13.45,16C13.45,17.35 14.54,18.45 15.9,18.45M21.1,16.68L22.58,17.84C22.71,17.95 22.75,18.13 22.66,18.29L21.26,20.71C21.17,20.86 21,20.92 20.83,20.86L19.09,20.16C18.73,20.44 18.33,20.67 17.91,20.85L17.64,22.7C17.62,22.87 17.47,23 17.3,23H14.5C14.32,23 14.18,22.87 14.15,22.7L13.89,20.85C13.46,20.67 13.07,20.44 12.71,20.16L10.96,20.86C10.81,20.92 10.62,20.86 10.54,20.71L9.14,18.29C9.05,18.13 9.09,17.95 9.22,17.84L10.7,16.68L10.65,16L10.7,15.31L9.22,14.16C9.09,14.05 9.05,13.86 9.14,13.71L10.54,11.29C10.62,11.13 10.81,11.07 10.96,11.13L12.71,11.84C13.07,11.56 13.46,11.32 13.89,11.15L14.15,9.29C14.18,9.13 14.32,9 14.5,9H17.3C17.47,9 17.62,9.13 17.64,9.29L17.91,11.15C18.33,11.32 18.73,11.56 19.09,11.84L20.83,11.13C21,11.07 21.17,11.13 21.26,11.29L22.66,13.71C22.75,13.86 22.71,14.05 22.58,14.16L21.1,15.31L21.15,16L21.1,16.68M6.69,8.07C7.56,8.07 8.26,7.37 8.26,6.5C8.26,5.63 7.56,4.92 6.69,4.92A1.58,1.58 0 0,0 5.11,6.5C5.11,7.37 5.82,8.07 6.69,8.07M10.03,6.94L11,7.68C11.07,7.75 11.09,7.87 11.03,7.97L10.13,9.53C10.08,9.63 9.96,9.67 9.86,9.63L8.74,9.18L8,9.62L7.81,10.81C7.79,10.92 7.7,11 7.59,11H5.79C5.67,11 5.58,10.92 5.56,10.81L5.4,9.62L4.64,9.18L3.5,9.63C3.41,9.67 3.3,9.63 3.24,9.53L2.34,7.97C2.28,7.87 2.31,7.75 2.39,7.68L3.34,6.94L3.31,6.5L3.34,6.06L2.39,5.32C2.31,5.25 2.28,5.13 2.34,5.03L3.24,3.47C3.3,3.37 3.41,3.33 3.5,3.37L4.63,3.82L5.4,3.38L5.56,2.19C5.58,2.08 5.67,2 5.79,2H7.59C7.7,2 7.79,2.08 7.81,2.19L8,3.38L8.74,3.82L9.86,3.37C9.96,3.33 10.08,3.37 10.13,3.47L11.03,5.03C11.09,5.13 11.07,5.25 11,5.32L10.03,6.06L10.06,6.5L10.03,6.94Z"},m5={key:0};function v5(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon cogs-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",g5,[n.title?(D(),z("title",m5,L(n.title),1)):bt("",!0)])],8,p5))],16,f5)}const y5=Jt(h5,[["render",v5]]),b5={name:"LanguagePhpIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},_5=["aria-hidden","aria-label"],w5=["fill","width","height"],x5={d:"M12,18.08C5.37,18.08 0,15.36 0,12C0,8.64 5.37,5.92 12,5.92C18.63,5.92 24,8.64 24,12C24,15.36 18.63,18.08 12,18.08M6.81,10.13C7.35,10.13 7.72,10.23 7.9,10.44C8.08,10.64 8.12,11 8.03,11.47C7.93,12 7.74,12.34 7.45,12.56C7.17,12.78 6.74,12.89 6.16,12.89H5.29L5.82,10.13H6.81M3.31,15.68H4.75L5.09,13.93H6.32C6.86,13.93 7.3,13.87 7.65,13.76C8,13.64 8.32,13.45 8.61,13.18C8.85,12.96 9.04,12.72 9.19,12.45C9.34,12.19 9.45,11.89 9.5,11.57C9.66,10.79 9.55,10.18 9.17,9.75C8.78,9.31 8.18,9.1 7.35,9.1H4.59L3.31,15.68M10.56,7.35L9.28,13.93H10.7L11.44,10.16H12.58C12.94,10.16 13.18,10.22 13.29,10.34C13.4,10.46 13.42,10.68 13.36,11L12.79,13.93H14.24L14.83,10.86C14.96,10.24 14.86,9.79 14.56,9.5C14.26,9.23 13.71,9.1 12.91,9.1H11.64L12,7.35H10.56M18,10.13C18.55,10.13 18.91,10.23 19.09,10.44C19.27,10.64 19.31,11 19.22,11.47C19.12,12 18.93,12.34 18.65,12.56C18.36,12.78 17.93,12.89 17.35,12.89H16.5L17,10.13H18M14.5,15.68H15.94L16.28,13.93H17.5C18.05,13.93 18.5,13.87 18.85,13.76C19.2,13.64 19.5,13.45 19.8,13.18C20.04,12.96 20.24,12.72 20.38,12.45C20.53,12.19 20.64,11.89 20.7,11.57C20.85,10.79 20.74,10.18 20.36,9.75C20,9.31 19.37,9.1 18.54,9.1H15.79L14.5,15.68Z"},E5={key:0};function S5(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon language-php-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",x5,[n.title?(D(),z("title",E5,L(n.title),1)):bt("",!0)])],8,w5))],16,_5)}const A5=Jt(b5,[["render",S5]]),C5={key:0,class:"server-info-table"},T5=Pt({__name:"PhpExtensionsDialog",props:{extensions:{}},emits:["close"],setup(t){return(e,n)=>(D(),xt(E(Jm),{name:E(F)("serverinfo","PHP extensions"),size:"normal",onClosing:n[0]||(n[0]=i=>e.$emit("close"))},{default:Tt(()=>[t.extensions?(D(),z("div",C5,[b("table",null,[b("thead",null,[b("tr",null,[b("th",null,L(E(F)("serverinfo","Extension")),1)])]),b("tbody",null,[(D(!0),z(Et,null,mi(t.extensions,i=>(D(),z("tr",{key:i},[b("td",null,L(i),1)]))),128))])])])):(D(),z(Et,{key:1},[Rt(L(E(F)("serverinfo","Unable to list extensions")),1)],64))]),_:1},8,["name"]))}}),k5={class:"row row--tiles"},P5={class:"server-info-table"},R5={class:"info"},L5={class:"info"},D5={class:"info"},N5={class:"info"},O5={class:"info"},$5={key:0},B5=["href"],F5={class:"server-info-table"},j5={class:"info"},U5={class:"info"},V5={class:"info"},I5={class:"info"},z5={class:"info"},H5={class:"info"},J5={class:"info"},W5={class:"info"},G5={class:"info"},q5={class:"info"},K5={class:"info"},X5={class:"info"},Y5=Pt({__name:"PhpSection",props:{php:{},fpm:{type:[Object,Boolean]},phpinfo:{type:Boolean},phpinfoUrl:{}},setup(t){const e=t,n=fe(!1),i=ct(()=>e.php.extensions===null?F("serverinfo","Unable to list extensions"):F("serverinfo","{count} loaded",{count:e.php.extensions.length}));return(o,s)=>(D(),z(Et,null,[nt(Ye,{icon:A5,title:E(F)("serverinfo","PHP")},null,8,["title"]),b("div",k5,[nt(Ae,{label:E(F)("serverinfo","Version"),value:t.php.version},null,8,["label","value"]),nt(Ae,{label:E(F)("serverinfo","Memory limit"),value:E(pn)(t.php.memoryLimit)},null,8,["label","value"])]),b("div",P5,[b("table",null,[b("tbody",null,[b("tr",null,[b("td",null,L(E(F)("serverinfo","Max execution time:")),1),b("td",R5,L(t.php.maxExecutionTime)+" "+L(E(F)("serverinfo","seconds")),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Upload max size:")),1),b("td",L5,L(E(pn)(t.php.uploadMaxFilesize)),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Post max size:")),1),b("td",D5,L(E(pn)(t.php.postMaxSize)),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","SAPI:")),1),b("td",N5,L(t.php.sapi),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Extensions:")),1),b("td",O5,[nt(E(Hn),{class:"extensions-button",variant:"tertiary",size:"small",onClick:s[0]||(s[0]=r=>n.value=!0)},{default:Tt(()=>[Rt(L(i.value),1)]),_:1})])]),t.phpinfo?(D(),z("tr",$5,[b("td",null,L(E(F)("serverinfo","PHP Info:")),1),b("td",null,[b("a",{class:"info",target:"_blank",rel:"noopener noreferrer",href:t.phpinfoUrl},L(E(F)("serverinfo","Show phpinfo")),9,B5)])])):bt("",!0)])])]),t.fpm!==!1?(D(),z(Et,{key:0},[nt(Ye,{icon:y5,title:E(F)("serverinfo","FPM worker pool")},null,8,["title"]),b("div",F5,[b("table",null,[b("tbody",null,[b("tr",null,[b("td",null,L(E(F)("serverinfo","Pool name:")),1),b("td",j5,L(t.fpm.pool),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Pool type:")),1),b("td",U5,L(t.fpm["process-manager"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Start time:")),1),b("td",V5,L(t.fpm["start-time"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Accepted connections:")),1),b("td",I5,L(t.fpm["accepted-conn"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Total processes:")),1),b("td",z5,L(t.fpm["total-processes"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Active processes:")),1),b("td",H5,L(t.fpm["active-processes"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Idle processes:")),1),b("td",J5,L(t.fpm["idle-processes"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Listen queue:")),1),b("td",W5,L(t.fpm["listen-queue"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Slow requests:")),1),b("td",G5,L(t.fpm["slow-requests"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Max listen queue:")),1),b("td",q5,L(t.fpm["max-listen-queue"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Max active processes:")),1),b("td",K5,L(t.fpm["max-active-processes"]),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Max children reached:")),1),b("td",X5,L(t.fpm["max-children-reached"]),1)])])])])],64)):bt("",!0),n.value?(D(),xt(T5,{key:1,extensions:t.php.extensions,onClose:s[1]||(s[1]=r=>n.value=!1)},null,8,["extensions"])):bt("",!0)],64))}}),Z5=Jt(Y5,[["__scopeId","data-v-1f664f3e"]]),Q5={name:"GaugeIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},M5=["aria-hidden","aria-label"],tL=["fill","width","height"],eL={d:"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12C20,14.4 19,16.5 17.3,18C15.9,16.7 14,16 12,16C10,16 8.2,16.7 6.7,18C5,16.5 4,14.4 4,12A8,8 0 0,1 12,4M14,5.89C13.62,5.9 13.26,6.15 13.1,6.54L11.81,9.77L11.71,10C11,10.13 10.41,10.6 10.14,11.26C9.73,12.29 10.23,13.45 11.26,13.86C12.29,14.27 13.45,13.77 13.86,12.74C14.12,12.08 14,11.32 13.57,10.76L13.67,10.5L14.96,7.29L14.97,7.26C15.17,6.75 14.92,6.17 14.41,5.96C14.28,5.91 14.15,5.89 14,5.89M10,6A1,1 0 0,0 9,7A1,1 0 0,0 10,8A1,1 0 0,0 11,7A1,1 0 0,0 10,6M7,9A1,1 0 0,0 6,10A1,1 0 0,0 7,11A1,1 0 0,0 8,10A1,1 0 0,0 7,9M17,9A1,1 0 0,0 16,10A1,1 0 0,0 17,11A1,1 0 0,0 18,10A1,1 0 0,0 17,9Z"},nL={key:0};function iL(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon gauge-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",eL,[n.title?(D(),z("title",nL,L(n.title),1)):bt("",!0)])],8,tL))],16,M5)}const oL=Jt(Q5,[["render",iL]]),sL={class:"resource-usage"},rL=Pt({__name:"ResourceOverviewSection",props:{cpuload:{type:[Array,Boolean]},cpunum:{},memTotal:{},memFree:{},swapTotal:{},swapFree:{}},setup(t){const e=t;function n(o,s,r){return s==="N/A"||r==="N/A"||r<=0?null:{label:o,detail:F("serverinfo","{used} of {total}",{used:wn(s),total:wn(r)}),percentage:Math.round(s/r*100)}}const i=ct(()=>{const o=e.memTotal,s=e.swapTotal;return[e.cpuload===!1||e.cpunum<=0?null:{label:F("serverinfo","CPU"),detail:(e.cpuload[0]/e.cpunum*100).toFixed(1)+" %",percentage:Math.min(100,Math.round(e.cpuload[0]/e.cpunum*100))},n(F("serverinfo","Memory"),o==="N/A"||e.memFree==="N/A"?"N/A":o-e.memFree,o),n(F("serverinfo","Swap"),s==="N/A"||e.swapFree==="N/A"?"N/A":s-e.swapFree,s)].filter(r=>r!==null)});return(o,s)=>(D(),z(Et,null,[nt(Ye,{icon:oL,title:E(F)("serverinfo","Resource usage")},null,8,["title"]),b("div",sL,[(D(!0),z(Et,null,mi(i.value,r=>(D(),xt(H1,te({key:r.label},{ref_for:!0},r),null,16))),128))])],64))}}),aL=Jt(rL,[["__scopeId","data-v-ff265f31"]]),lL={},uL={class:"section section-skeleton","aria-busy":"true"};function cL(t,e){return D(),z("div",uL,[...e[0]||(e[0]=[b("div",{class:"skeleton-bar skeleton-title"},null,-1),b("div",{class:"skeleton-bar skeleton-chart"},null,-1)])])}const Qe=Jt(lL,[["render",cL],["__scopeId","data-v-9a2b13f0"]]),dL={name:"ShareVariantIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},hL=["aria-hidden","aria-label"],fL=["fill","width","height"],pL={d:"M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z"},gL={key:0};function mL(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon share-variant-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",pL,[n.title?(D(),z("title",gL,L(n.title),1)):bt("",!0)])],8,fL))],16,hL)}const vL=Jt(dL,[["render",mL]]),yL={class:"section network-infos"},bL={class:"row row--cards"},_L={class:"infobox"},wL={class:"interface-wrapper"},xL={class:"info"},EL={class:"info"},SL={class:"info"},AL={class:"info"},CL={class:"info"},TL={class:"info"},kL={class:"info"},PL=Pt({__name:"SharesSection",props:{shares:{}},setup(t){return(e,n)=>(D(),z("div",yL,[nt(Ye,{icon:vL,title:E(F)("serverinfo","Shares")},null,8,["title"]),b("div",bL,[b("div",null,[b("div",_L,[b("div",wL,[t.shares.num_shares_user>0?(D(),z(Et,{key:0},[Rt(L(E(F)("serverinfo","Users:"))+" ",1),b("span",xL,L(t.shares.num_shares_user),1),n[0]||(n[0]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_shares_groups>0?(D(),z(Et,{key:1},[Rt(L(E(F)("serverinfo","Groups:"))+" ",1),b("span",EL,L(t.shares.num_shares_groups),1),n[1]||(n[1]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_shares_link>0?(D(),z(Et,{key:2},[Rt(L(E(F)("serverinfo","Links:"))+" ",1),b("span",SL,L(t.shares.num_shares_link),1),n[2]||(n[2]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_shares_mail>0?(D(),z(Et,{key:3},[Rt(L(E(F)("serverinfo","Emails:"))+" ",1),b("span",AL,L(t.shares.num_shares_mail),1),n[3]||(n[3]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_fed_shares_sent>0?(D(),z(Et,{key:4},[Rt(L(E(F)("serverinfo","Federated sent:"))+" ",1),b("span",CL,L(t.shares.num_fed_shares_sent),1),n[4]||(n[4]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_fed_shares_received>0?(D(),z(Et,{key:5},[Rt(L(E(F)("serverinfo","Federated received:"))+" ",1),b("span",TL,L(t.shares.num_fed_shares_received),1),n[5]||(n[5]=b("br",null,null,-1))],64)):bt("",!0),t.shares.num_shares_room>0?(D(),z(Et,{key:6},[Rt(L(E(F)("serverinfo","Talk conversations:"))+" ",1),b("span",kL,L(t.shares.num_shares_room),1),n[6]||(n[6]=b("br",null,null,-1))],64)):bt("",!0)])])])])]))}}),RL={name:"MonitorIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},LL=["aria-hidden","aria-label"],DL=["fill","width","height"],NL={d:"M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"},OL={key:0};function $L(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon monitor-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",NL,[n.title?(D(),z("title",OL,L(n.title),1)):bt("",!0)])],8,DL))],16,LL)}const BL=Jt(RL,[["render",$L]]),FL={class:"server-info-table"},jL={class:"info"},UL={class:"info"},VL={class:"info"},IL={class:"info"},zL=Pt({__name:"SystemSection",props:{hostname:{},osname:{},cpu:{},servertime:{},uptime:{}},setup(t){return(e,n)=>(D(),z(Et,null,[nt(Ye,{icon:BL,title:t.hostname},null,8,["title"]),b("div",FL,[b("table",null,[b("tbody",null,[b("tr",null,[b("td",null,L(E(F)("serverinfo","Operating System:")),1),b("td",jL,L(t.osname),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","CPU:")),1),b("td",UL,L(E(F)("serverinfo","{name} ({threads} threads)",{name:t.cpu.name,threads:t.cpu.threads})),1)]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Server time:")),1),b("td",null,[b("span",VL,L(t.servertime),1)])]),b("tr",null,[b("td",null,L(E(F)("serverinfo","Uptime:")),1),b("td",null,[b("span",IL,L(t.uptime),1)])])])])])],64))}}),HL={name:"ThermometerIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},JL=["aria-hidden","aria-label"],WL=["fill","width","height"],GL={d:"M15 13V5A3 3 0 0 0 9 5V13A5 5 0 1 0 15 13M12 4A1 1 0 0 1 13 5V8H11V5A1 1 0 0 1 12 4Z"},qL={key:0};function KL(t,e,n,i,o,s){return D(),z("span",te(t.$attrs,{"aria-hidden":n.title?null:"true","aria-label":n.title,class:"material-design-icon thermometer-icon",role:"img",onClick:e[0]||(e[0]=r=>t.$emit("click",r))}),[(D(),z("svg",{fill:n.fillColor,class:"material-design-icon__svg",width:n.size,height:n.size,viewBox:"0 0 24 24"},[b("path",GL,[n.title?(D(),z("title",qL,L(n.title),1)):bt("",!0)])],8,WL))],16,JL)}const XL=Jt(HL,[["render",KL]]),YL={class:"server-info-table"},ZL={class:"info temp"},QL=Pt({__name:"ThermalSection",props:{thermalzones:{}},setup(t){return(e,n)=>(D(),z(Et,null,[nt(Ye,{icon:XL,title:E(F)("serverinfo","Temperature")},null,8,["title"]),b("div",YL,[b("table",null,[b("tbody",null,[(D(!0),z(Et,null,mi(t.thermalzones,i=>(D(),z("tr",{key:i.zone},[b("td",null,L(i.type)+":",1),b("td",null,[b("span",ZL,L(Math.round(i.temp)),1),n[0]||(n[0]=Rt("°C",-1))])]))),128))])])])],64))}}),ML=Jt(QL,[["__scopeId","data-v-cb3096fd"]]);function J1(t,e){return function(){return t.apply(e,arguments)}}const{toString:tD}=Object.prototype,{getPrototypeOf:Yo}=Object,{iterator:Sr,toStringTag:W1}=Symbol,nl=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),pr=(t,e)=>{let n=t;const i=[];for(;n!=null&&n!==Object.prototype;){if(i.indexOf(n)!==-1)return!1;if(i.push(n),nl(n,e))return!0;n=Yo(n)}return!1},eD=(t,e)=>t!=null&&pr(t,e)?t[e]:void 0,bd=(t=>e=>{const n=tD.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),kn=t=>(t=t.toLowerCase(),e=>bd(e)===t),Bl=t=>e=>typeof e===t,{isArray:vo}=Array,Zo=Bl("undefined");function es(t){return t!==null&&!Zo(t)&&t.constructor!==null&&!Zo(t.constructor)&&en(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const G1=kn("ArrayBuffer");function nD(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&G1(t.buffer),e}const iD=Bl("string"),en=Bl("function"),q1=Bl("number"),ns=t=>t!==null&&typeof t=="object",oD=t=>t===!0||t===!1,va=t=>{if(!ns(t))return!1;const e=Yo(t);return(e===null||e===Object.prototype||Yo(e)===null)&&!pr(t,W1)&&!pr(t,Sr)},sD=t=>{if(!ns(t)||es(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},rD=kn("Date"),aD=kn("File"),lD=t=>!!(t&&typeof t.uri<"u"),uD=t=>t&&typeof t.getParts<"u",cD=kn("Blob"),dD=kn("FileList"),hD=t=>ns(t)&&en(t.pipe);function fD(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof Ws<"u"?Ws:{}}const n0=fD(),i0=typeof n0.FormData<"u"?n0.FormData:void 0,pD=t=>{if(!t)return!1;if(i0&&t instanceof i0)return!0;const e=Yo(t);if(!e||e===Object.prototype||!en(t.append))return!1;const n=bd(t);return n==="formdata"||n==="object"&&en(t.toString)&&t.toString()==="[object FormData]"},gD=kn("URLSearchParams"),[mD,vD,yD,bD]=["ReadableStream","Request","Response","Headers"].map(kn),_D=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ar(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let i,o;if(typeof t!="object"&&(t=[t]),vo(t))for(i=0,o=t.length;i0;)if(o=n[i],e===o.toLowerCase())return o;return null}const ro=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ws,X1=t=>!Zo(t)&&t!==ro;function Pc(...t){const{caseless:e,skipUndefined:n}=X1(this)&&this||{},i={},o=(s,r)=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;const a=e&&typeof r=="string"&&K1(i,r)||r,l=nl(i,a)?i[a]:void 0;va(l)&&va(s)?i[a]=Pc(l,s):va(s)?i[a]=Pc({},s):vo(s)?i[a]=s.slice():(!n||!Zo(s))&&(i[a]=s)};for(let s=0,r=t.length;s(Ar(e,(o,s)=>{n&&en(o)?Object.defineProperty(t,s,{__proto__:null,value:J1(o,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,s,{__proto__:null,value:o,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),t),xD=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),ED=(t,e,n,i)=>{t.prototype=Object.create(e.prototype,i),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},SD=(t,e,n,i)=>{let o,s,r;const a={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)r=o[s],(!i||i(r,t,e))&&!a[r]&&(e[r]=t[r],a[r]=!0);t=n!==!1&&Yo(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},AD=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const i=t.indexOf(e,n);return i!==-1&&i===n},CD=t=>{if(!t)return null;if(vo(t))return t;let e=t.length;if(!q1(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},TD=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Yo(Uint8Array)),kD=(t,e)=>{const n=(t&&t[Sr]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},PD=(t,e)=>{let n;const i=[];for(;(n=t.exec(e))!==null;)i.push(n);return i},RD=kn("HTMLFormElement"),LD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:DD}=Object.prototype,ND=kn("RegExp"),Y1=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),i={};Ar(n,(o,s)=>{let r;(r=e(o,s,t))!==!1&&(i[s]=r||o)}),Object.defineProperties(t,i)},OD=t=>{Y1(t,(e,n)=>{if(en(t)&&["arguments","caller","callee"].includes(n))return!1;const i=t[n];if(en(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$D=(t,e)=>{const n={},i=o=>{o.forEach(s=>{n[s]=!0})};return vo(t)?i(t):i(String(t).split(e)),n},BD=()=>{},FD=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function jD(t){return!!(t&&en(t.append)&&t[W1]==="FormData"&&t[Sr])}const UD=t=>{const e=new WeakSet,n=i=>{if(ns(i)){if(e.has(i))return;if(es(i))return i;if(!("toJSON"in i)){e.add(i);const o=vo(i)?[]:{};return Ar(i,(s,r)=>{const a=n(s);!Zo(a)&&(o[r]=a)}),e.delete(i),o}}return i};return n(t)},VD=kn("AsyncFunction"),ID=t=>t&&(ns(t)||en(t))&&en(t.then)&&en(t.catch),Z1=((t,e)=>t?setImmediate:e?((n,i)=>(ro.addEventListener("message",({source:o,data:s})=>{o===ro&&s===n&&i.length&&i.shift()()},!1),o=>{i.push(o),ro.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",en(ro.postMessage)),zD=typeof queueMicrotask<"u"?queueMicrotask.bind(ro):typeof yc<"u"&&yc.nextTick||Z1,Q1=t=>t!=null&&en(t[Sr]),HD=t=>t!=null&&pr(t,Sr)&&Q1(t),N={isArray:vo,isArrayBuffer:G1,isBuffer:es,isFormData:pD,isArrayBufferView:nD,isString:iD,isNumber:q1,isBoolean:oD,isObject:ns,isPlainObject:va,isEmptyObject:sD,isReadableStream:mD,isRequest:vD,isResponse:yD,isHeaders:bD,isUndefined:Zo,isDate:rD,isFile:aD,isReactNativeBlob:lD,isReactNative:uD,isBlob:cD,isRegExp:ND,isFunction:en,isStream:hD,isURLSearchParams:gD,isTypedArray:TD,isFileList:dD,forEach:Ar,merge:Pc,extend:wD,trim:_D,stripBOM:xD,inherits:ED,toFlatObject:SD,kindOf:bd,kindOfTest:kn,endsWith:AD,toArray:CD,forEachEntry:kD,matchAll:PD,isHTMLForm:RD,hasOwnProperty:nl,hasOwnProp:nl,hasOwnInPrototypeChain:pr,getSafeProp:eD,reduceDescriptors:Y1,freezeMethods:OD,toObjectSet:$D,toCamelCase:LD,noop:BD,toFiniteNumber:FD,findKey:K1,global:ro,isContextDefined:X1,isSpecCompliantForm:jD,toJSONObject:UD,isAsyncFn:VD,isThenable:ID,setImmediate:Z1,asap:zD,isIterable:Q1,isSafeIterable:HD},JD=N.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),WD=t=>{const e={};let n,i,o;return t&&t.split(` +`).forEach(function(s){o=s.indexOf(":"),n=s.substring(0,o).trim().toLowerCase(),i=s.substring(o+1).trim(),!(!n||e[n]&&JD[n])&&(n==="set-cookie"?e[n]?e[n].push(i):e[n]=[i]:e[n]=e[n]?e[n]+", "+i:i)}),e};function GD(t){let e=0,n=t.length;for(;ee;){const i=t.charCodeAt(n-1);if(i!==9&&i!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}const qD=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),KD=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function _d(t,e){return N.isArray(t)?t.map(n=>_d(n,e)):GD(String(t).replace(e,""))}const XD=t=>_d(t,qD),YD=t=>_d(t,KD);function M1(t){const e=Object.create(null);return N.forEach(t.toJSON(),(n,i)=>{e[i]=YD(n)}),e}const o0=Symbol("internals");function _s(t){return t&&String(t).trim().toLowerCase()}function ya(t){return t===!1||t==null?t:N.isArray(t)?t.map(ya):XD(String(t))}function ZD(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(t);)e[i[1]]=i[2];return e}const QD=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function Fu(t,e,n,i,o){if(N.isFunction(i))return i.call(this,e,n);if(o&&(e=n),!!N.isString(e)){if(N.isString(i))return e.indexOf(i)!==-1;if(N.isRegExp(i))return i.test(e)}}function MD(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,i)=>n.toUpperCase()+i)}function tN(t,e){const n=N.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(t,i+n,{__proto__:null,value:function(o,s,r){return this[i].call(this,e,o,s,r)},configurable:!0})})}let Ve=class{constructor(t){t&&this.set(t)}set(t,e,n){const i=this;function o(r,a,l){const c=_s(a);if(!c)return;const u=N.findKey(i,c);(!u||i[u]===void 0||l===!0||l===void 0&&i[u]!==!1)&&(i[u||a]=ya(r))}const s=(r,a)=>N.forEach(r,(l,c)=>o(l,c,a));if(N.isPlainObject(t)||t instanceof this.constructor)s(t,e);else if(N.isString(t)&&(t=t.trim())&&!QD(t))s(WD(t),e);else if(N.isObject(t)&&N.isSafeIterable(t)){let r=Object.create(null),a,l;for(const c of t){if(!N.isArray(c))throw new TypeError("Object iterator must return a key-value pair");l=c[0],N.hasOwnProp(r,l)?(a=r[l],r[l]=N.isArray(a)?[...a,c[1]]:[a,c[1]]):r[l]=c[1]}s(r,e)}else t!=null&&o(e,t,n);return this}get(t,e){if(t=_s(t),t){const n=N.findKey(this,t);if(n){const i=this[n];if(!e)return i;if(e===!0)return ZD(i);if(N.isFunction(e))return e.call(this,i,n);if(N.isRegExp(e))return e.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=_s(t),t){const n=N.findKey(this,t);return!!(n&&this[n]!==void 0&&(!e||Fu(this,this[n],n,e)))}return!1}delete(t,e){const n=this;let i=!1;function o(s){if(s=_s(s),s){const r=N.findKey(n,s);r&&(!e||Fu(n,n[r],r,e))&&(delete n[r],i=!0)}}return N.isArray(t)?t.forEach(o):o(t),i}clear(t){const e=Object.keys(this);let n=e.length,i=!1;for(;n--;){const o=e[n];(!t||Fu(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const e=this,n={};return N.forEach(this,(i,o)=>{const s=N.findKey(n,o);if(s){e[s]=ya(i),delete e[o];return}const r=t?MD(o):String(o).trim();r!==o&&delete e[o],e[r]=ya(i),n[r]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return N.forEach(this,(n,i)=>{n!=null&&n!==!1&&(e[i]=t&&N.isArray(n)?n.join(", "):n)}),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,e])=>t+": "+e).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const n=new this(t);return e.forEach(i=>n.set(i)),n}static accessor(t){const e=(this[o0]=this[o0]={accessors:{}}).accessors,n=this.prototype;function i(o){const s=_s(o);e[s]||(tN(n,o),e[s]=!0)}return N.isArray(t)?t.forEach(i):i(t),this}};Ve.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),N.reduceDescriptors(Ve.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(i){this[n]=i}}}),N.freezeMethods(Ve);const eN="[REDACTED ****]";function nN(t){if(N.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(N.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function iN(t,e){const n=new Set(e.map(s=>String(s).toLowerCase())),i=[],o=s=>{if(s===null||typeof s!="object"||N.isBuffer(s))return s;if(i.indexOf(s)!==-1)return;s instanceof Ve&&(s=s.toJSON()),i.push(s);let r;if(N.isArray(s))r=[],s.forEach((a,l)=>{const c=o(a);N.isUndefined(c)||(r[l]=c)});else{if(!N.isPlainObject(s)&&nN(s))return i.pop(),s;r=Object.create(null);for(const[a,l]of Object.entries(s)){const c=n.has(a.toLowerCase())?eN:o(l);N.isUndefined(c)||(r[a]=c)}}return i.pop(),r};return o(t)}let ht=class tv extends Error{static from(e,n,i,o,s,r){const a=new tv(e.message,n||e.code,i,o,s);return Object.defineProperty(a,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),a.name=e.name,e.status!=null&&a.status==null&&(a.status=e.status),r&&Object.assign(a,r),a}constructor(e,n,i,o,s){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),i&&(this.config=i),o&&(this.request=o),s&&(this.response=s,this.status=s.status)}toJSON(){const e=this.config,n=e&&N.hasOwnProp(e,"redact")?e.redact:void 0,i=N.isArray(n)&&n.length>0?iN(e,n):N.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:i,code:this.code,status:this.status}}};ht.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",ht.ERR_BAD_OPTION="ERR_BAD_OPTION",ht.ECONNABORTED="ECONNABORTED",ht.ETIMEDOUT="ETIMEDOUT",ht.ECONNREFUSED="ECONNREFUSED",ht.ERR_NETWORK="ERR_NETWORK",ht.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",ht.ERR_DEPRECATED="ERR_DEPRECATED",ht.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",ht.ERR_BAD_REQUEST="ERR_BAD_REQUEST",ht.ERR_CANCELED="ERR_CANCELED",ht.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",ht.ERR_INVALID_URL="ERR_INVALID_URL",ht.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const oN=null,ev=100;function Rc(t){return N.isPlainObject(t)||N.isArray(t)}function nv(t){return N.endsWith(t,"[]")?t.slice(0,-2):t}function ju(t,e,n){return t?t.concat(e).map(function(i,o){return i=nv(i),!n&&o?"["+i+"]":i}).join(n?".":""):e}function sN(t){return N.isArray(t)&&!t.some(Rc)}const rN=N.toFlatObject(N,{},null,function(t){return/^is[A-Z]/.test(t)});function Fl(t,e,n){if(!N.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=N.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(_,S){return!N.isUndefined(S[_])});const i=n.metaTokens,o=n.visitor||y,s=n.dots,r=n.indexes,a=n.Blob||typeof Blob<"u"&&Blob,l=n.maxDepth===void 0?ev:n.maxDepth,c=a&&N.isSpecCompliantForm(e),u=[];if(!N.isFunction(o))throw new TypeError("visitor must be a function");function d(_){if(_===null)return"";if(N.isDate(_))return _.toISOString();if(N.isBoolean(_))return _.toString();if(!c&&N.isBlob(_))throw new ht("Blob is not supported. Use a Buffer instead.");if(N.isArrayBuffer(_)||N.isTypedArray(_)){if(c&&typeof a=="function")return new a([_]);if(typeof qh<"u")return qh.from(_);throw new ht("Blob is not supported. Use a Buffer instead.",ht.ERR_NOT_SUPPORT)}return _}function f(_){if(_>l)throw new ht("Object is too deeply nested ("+_+" levels). Max depth: "+l,ht.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(_,S){if(l===1/0)return JSON.stringify(_);const P=[];return JSON.stringify(_,function(A,O){if(!N.isObject(O))return O;for(;P.length&&P[P.length-1]!==this;)P.pop();return P.push(O),f(S+P.length-1),O})}function y(_,S,P){let A=_;if(N.isReactNative(e)&&N.isReactNativeBlob(_))return e.append(ju(P,S,s),d(_)),!1;if(_&&!P&&typeof _=="object"){if(N.endsWith(S,"{}"))S=i?S:S.slice(0,-2),_=p(_,1);else if(N.isArray(_)&&sN(_)||(N.isFileList(_)||N.endsWith(S,"[]"))&&(A=N.toArray(_)))return S=nv(S),A.forEach(function(O,U){!(N.isUndefined(O)||O===null)&&e.append(r===!0?ju([S],U,s):r===null?S:S+"[]",d(O))}),!1}return Rc(_)?!0:(e.append(ju(P,S,s),d(_)),!1)}const m=Object.assign(rN,{defaultVisitor:y,convertValue:d,isVisitable:Rc});function x(_,S,P=0){if(!N.isUndefined(_)){if(f(P),u.indexOf(_)!==-1)throw new Error("Circular reference detected in "+S.join("."));u.push(_),N.forEach(_,function(A,O){(!(N.isUndefined(A)||A===null)&&o.call(e,A,N.isString(O)?O.trim():O,S,m))===!0&&x(A,S?S.concat(O):[O],P+1)}),u.pop()}}if(!N.isObject(t))throw new TypeError("data must be an object");return x(t),e}function s0(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function wd(t,e){this._pairs=[],t&&Fl(t,this,e)}const r0=wd.prototype;r0.append=function(t,e){this._pairs.push([t,e])},r0.toString=function(t){const e=t?n=>t.call(this,n,s0):s0;return this._pairs.map(function(n){return e(n[0])+"="+e(n[1])},"").join("&")};function aN(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function iv(t,e,n){if(!e)return t;t=t||"";const i=N.isFunction(n)?{serialize:n}:n,o=N.getSafeProp(i,"encode")||aN,s=N.getSafeProp(i,"serialize");let r;if(s?r=s(e,i):r=N.isURLSearchParams(e)?e.toString():new wd(e,i).toString(o),r){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+r}return t}class a0{constructor(){this.handlers=[]}use(e,n,i){return this.handlers.push({fulfilled:e,rejected:n,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){N.forEach(this.handlers,function(n){n!==null&&e(n)})}}const xd={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},lN=typeof URLSearchParams<"u"?URLSearchParams:wd,uN=typeof FormData<"u"?FormData:null,cN=typeof Blob<"u"?Blob:null,dN={isBrowser:!0,classes:{URLSearchParams:lN,FormData:uN,Blob:cN},protocols:["http","https","file","blob","url","data"]},Ed=typeof window<"u"&&typeof document<"u",Lc=typeof navigator=="object"&&navigator||void 0,hN=Ed&&(!Lc||["ReactNative","NativeScript","NS"].indexOf(Lc.product)<0),fN=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",pN=Ed&&window.location.href||"http://localhost",gN=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ed,hasStandardBrowserEnv:hN,hasStandardBrowserWebWorkerEnv:fN,navigator:Lc,origin:pN},Symbol.toStringTag,{value:"Module"})),Te={...gN,...dN};function mN(t,e){return Fl(t,new Te.classes.URLSearchParams,{visitor:function(n,i,o,s){return Te.isNode&&N.isBuffer(n)?(this.append(i,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}const l0=ev;function ov(t){if(t>l0)throw new ht("FormData field is too deeply nested ("+t+" levels). Max depth: "+l0,ht.ERR_FORM_DATA_DEPTH_EXCEEDED)}function vN(t){const e=[],n=/\w+|\[(\w*)]/g;let i;for(;(i=n.exec(t))!==null;)ov(e.length),e.push(i[0]==="[]"?"":i[1]||i[0]);return e}function yN(t){const e={},n=Object.keys(t);let i;const o=n.length;let s;for(i=0;i=n.length;return r=!r&&N.isArray(o)?o.length:r,l?(N.hasOwnProp(o,r)?o[r]=N.isArray(o[r])?o[r].concat(i):[o[r],i]:o[r]=i,!a):((!N.hasOwnProp(o,r)||!N.isObject(o[r]))&&(o[r]=[]),e(n,i,o[r],s)&&N.isArray(o[r])&&(o[r]=yN(o[r])),!a)}if(N.isFormData(t)&&N.isFunction(t.entries)){const n={};return N.forEachEntry(t,(i,o)=>{e(vN(i),o,n,0)}),n}return null}const Oo=(t,e)=>t!=null&&N.hasOwnProp(t,e)?t[e]:void 0;function bN(t,e,n){if(N.isString(t))try{return(e||JSON.parse)(t),N.trim(t)}catch(i){if(i.name!=="SyntaxError")throw i}return(n||JSON.stringify)(t)}const Cr={transitional:xd,adapter:["xhr","http","fetch"],transformRequest:[function(t,e){const n=e.getContentType()||"",i=n.indexOf("application/json")>-1,o=N.isObject(t);if(o&&N.isHTMLForm(t)&&(t=new FormData(t)),N.isFormData(t))return i?JSON.stringify(sv(t)):t;if(N.isArrayBuffer(t)||N.isBuffer(t)||N.isStream(t)||N.isFile(t)||N.isBlob(t)||N.isReadableStream(t))return t;if(N.isArrayBufferView(t))return t.buffer;if(N.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let s;if(o){const r=Oo(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return mN(t,r).toString();if((s=N.isFileList(t))||n.indexOf("multipart/form-data")>-1){const a=Oo(this,"env"),l=a&&a.FormData;return Fl(s?{"files[]":t}:t,l&&new l,r)}}return o||i?(e.setContentType("application/json",!1),bN(t)):t}],transformResponse:[function(t){const e=Oo(this,"transitional")||Cr.transitional,n=e&&e.forcedJSONParsing,i=Oo(this,"responseType"),o=i==="json";if(N.isResponse(t)||N.isReadableStream(t))return t;if(t&&N.isString(t)&&(n&&!i||o)){const s=!(e&&e.silentJSONParsing)&&o;try{return JSON.parse(t,Oo(this,"parseReviver"))}catch(r){if(s)throw r.name==="SyntaxError"?ht.from(r,ht.ERR_BAD_RESPONSE,this,null,Oo(this,"response")):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Te.classes.FormData,Blob:Te.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};N.forEach(["delete","get","head","post","put","patch","query"],t=>{Cr.headers[t]={}});function Uu(t,e){const n=this||Cr,i=e||n,o=Ve.from(i.headers);let s=i.data;return N.forEach(t,function(r){s=r.call(n,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function rv(t){return!!(t&&t.__CANCEL__)}let Tr=class extends ht{constructor(t,e,n){super(t??"canceled",ht.ERR_CANCELED,e,n),this.name="CanceledError",this.__CANCEL__=!0}};function av(t,e,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?t(n):e(new ht("Request failed with status code "+n.status,n.status>=400&&n.status<500?ht.ERR_BAD_REQUEST:ht.ERR_BAD_RESPONSE,n.config,n.request,n))}function _N(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function wN(t,e){t=t||10;const n=new Array(t),i=new Array(t);let o=0,s=0,r;return e=e!==void 0?e:1e3,function(a){const l=Date.now(),c=i[s];r||(r=l),n[o]=a,i[o]=l;let u=s,d=0;for(;u!==o;)d+=n[u++],u=u%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),l-r{n=l,o=null,s&&(clearTimeout(s),s=null),t(...a)};return[(...a)=>{const l=Date.now(),c=l-n;c>=i?r(a,l):(o=a,s||(s=setTimeout(()=>{s=null,r(o)},i-c)))},()=>o&&r(o)]}const il=(t,e,n=3)=>{let i=0;const o=wN(50,250);return xN(s=>{if(!s||typeof s.loaded!="number")return;const r=s.loaded,a=s.lengthComputable?s.total:void 0,l=a!=null?Math.min(r,a):r,c=Math.max(0,l-i),u=o(c);i=Math.max(i,l);const d={loaded:l,total:a,progress:a?l/a:void 0,bytes:c,rate:u||void 0,estimated:u&&a?(a-l)/u:void 0,event:s,lengthComputable:a!=null,[e?"download":"upload"]:!0};t(d)},n)},u0=(t,e)=>{const n=t!=null;return[i=>e[0]({lengthComputable:n,total:t,loaded:i}),e[1]]},c0=t=>(...e)=>N.asap(()=>t(...e)),EN=Te.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Te.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Te.origin),Te.navigator&&/(msie|trident)/i.test(Te.navigator.userAgent)):()=>!0,SN=Te.hasStandardBrowserEnv?{write(t,e,n,i,o,s,r){if(typeof document>"u")return;const a=[`${t}=${encodeURIComponent(e)}`];N.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),N.isString(i)&&a.push(`path=${i}`),N.isString(o)&&a.push(`domain=${o}`),s===!0&&a.push("secure"),N.isString(r)&&a.push(`SameSite=${r}`),document.cookie=a.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;nt instanceof Ve?{...t}:t;function yo(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function i(u,d,f,p){return N.isPlainObject(u)&&N.isPlainObject(d)?N.merge.call({caseless:p},u,d):N.isPlainObject(d)?N.merge({},d):N.isArray(d)?d.slice():d}function o(u,d,f,p){if(N.isUndefined(d)){if(!N.isUndefined(u))return i(void 0,u,f,p)}else return i(u,d,f,p)}function s(u,d){if(!N.isUndefined(d))return i(void 0,d)}function r(u,d){if(N.isUndefined(d)){if(!N.isUndefined(u))return i(void 0,u)}else return i(void 0,d)}function a(u){const d=N.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!N.isUndefined(d))if(N.isPlainObject(d)){if(N.hasOwnProp(d,u))return d[u]}else return;const f=N.hasOwnProp(t,"transitional")?t.transitional:void 0;if(N.isPlainObject(f)&&N.hasOwnProp(f,u))return f[u]}function l(u,d,f){if(N.hasOwnProp(e,f))return i(u,d);if(N.hasOwnProp(t,f))return i(void 0,u)}const c={url:s,method:s,data:s,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,allowedSocketPaths:r,responseEncoding:r,validateStatus:l,headers:(u,d,f)=>o(h0(u),h0(d),f,!0)};return N.forEach(Object.keys({...t,...e}),function(u){if(u==="__proto__"||u==="constructor"||u==="prototype")return;const d=N.hasOwnProp(c,u)?c[u]:o,f=N.hasOwnProp(t,u)?t[u]:void 0,p=N.hasOwnProp(e,u)?e[u]:void 0,y=d(f,p,u);N.isUndefined(y)&&d!==l||(n[u]=y)}),N.hasOwnProp(e,"validateStatus")&&N.isUndefined(e.validateStatus)&&a("validateStatusUndefinedResolves")===!1&&(N.hasOwnProp(t,"validateStatus")?n.validateStatus=i(void 0,t.validateStatus):delete n.validateStatus),n}const LN=["content-type","content-length"];function DN(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([i,o])=>{LN.includes(i.toLowerCase())&&t.set(i,o)})}const NN=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function uv(t){const e=yo({},t),n=f=>N.hasOwnProp(e,f)?e[f]:void 0,i=n("data");let o=n("withXSRFToken");const s=n("xsrfHeaderName"),r=n("xsrfCookieName");let a=n("headers");const l=n("auth"),c=n("baseURL"),u=n("allowAbsoluteUrls"),d=n("url");if(e.headers=a=Ve.from(a),e.url=iv(lv(c,d,u,e),n("params"),n("paramsSerializer")),l){const f=N.getSafeProp(l,"username")||"",p=N.getSafeProp(l,"password")||"";try{a.set("Authorization","Basic "+btoa(f+":"+(p?NN(p):"")))}catch(y){throw ht.from(y,ht.ERR_BAD_OPTION_VALUE,t)}}if(N.isFormData(i)&&(Te.hasStandardBrowserEnv||Te.hasStandardBrowserWebWorkerEnv||N.isReactNative(i)?a.setContentType(void 0):N.isFunction(i.getHeaders)&&DN(a,i.getHeaders(),n("formDataHeaderPolicy"))),Te.hasStandardBrowserEnv&&(N.isFunction(o)&&(o=o(e)),o===!0||o==null&&EN(e.url))){const f=s&&r&&SN.read(r);f&&a.set(s,f)}return e}const ON=typeof XMLHttpRequest<"u",$N=ON&&function(t){return new Promise(function(e,n){const i=uv(t);let o=i.data;const s=Ve.from(i.headers).normalize();let{responseType:r,onUploadProgress:a,onDownloadProgress:l}=i,c,u,d,f,p;function y(){f&&f(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let m=new XMLHttpRequest;m.open(i.method.toUpperCase(),i.url,!0),m.timeout=i.timeout;function x(){if(!m)return;const S=Ve.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders()),P={data:!r||r==="text"||r==="json"?m.responseText:m.response,status:m.status,statusText:m.statusText,headers:S,config:t,request:m};av(function(A){e(A),y()},function(A){n(A),y()},P),m=null}"onloadend"in m?m.onloadend=x:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.startsWith("file:"))||setTimeout(x)},m.onabort=function(){m&&(n(new ht("Request aborted",ht.ECONNABORTED,t,m)),y(),m=null)},m.onerror=function(S){const P=S&&S.message?S.message:"Network Error",A=new ht(P,ht.ERR_NETWORK,t,m);A.event=S||null,n(A),y(),m=null},m.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const P=i.transitional||xd;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),n(new ht(S,P.clarifyTimeoutError?ht.ETIMEDOUT:ht.ECONNABORTED,t,m)),y(),m=null},o===void 0&&s.setContentType(null),"setRequestHeader"in m&&N.forEach(M1(s),function(S,P){m.setRequestHeader(P,S)}),N.isUndefined(i.withCredentials)||(m.withCredentials=!!i.withCredentials),r&&r!=="json"&&(m.responseType=i.responseType),l&&([d,p]=il(l,!0),m.addEventListener("progress",d)),a&&m.upload&&([u,f]=il(a),m.upload.addEventListener("progress",u),m.upload.addEventListener("loadend",f)),(i.cancelToken||i.signal)&&(c=S=>{m&&(n(!S||S.type?new Tr(null,t,m):S),m.abort(),y(),m=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const _=_N(i.url);if(_&&!Te.protocols.includes(_)){n(new ht("Unsupported protocol "+_+":",ht.ERR_BAD_REQUEST,t)),y();return}m.send(o||null)})},BN=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let i=!1;const o=function(l){if(!i){i=!0,r();const c=l instanceof Error?l:this.reason;n.abort(c instanceof ht?c:new Tr(c instanceof Error?c.message:c))}};let s=e&&setTimeout(()=>{s=null,o(new ht(`timeout of ${e}ms exceeded`,ht.ETIMEDOUT))},e);const r=()=>{t&&(s&&clearTimeout(s),s=null,t.forEach(l=>{l.unsubscribe?l.unsubscribe(o):l.removeEventListener("abort",o)}),t=null)};t.forEach(l=>l.addEventListener("abort",o,{once:!0}));const{signal:a}=n;return a.unsubscribe=()=>N.asap(r),a},FN=function*(t,e){let n=t.byteLength;if(n{const o=jN(t,e);let s=0,r,a=l=>{r||(r=!0,i&&i(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await o.next();if(c){a(),l.close();return}let d=u.byteLength;if(n){let f=s+=d;n(f)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),o.return()}},{highWaterMark:2})},ol=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,VN=(t,e,n)=>e+2d>=2&&i.charCodeAt(d-2)===37&&i.charCodeAt(d-1)===51&&(i.charCodeAt(d)===68||i.charCodeAt(d)===100);l>=0&&(i.charCodeAt(l)===61?(a++,l--):c(l)&&(a++,l-=3)),a===1&&l>=0&&(i.charCodeAt(l)===61||c(l))&&a++;const u=Math.floor(s/4)*3-(a||0);return u>0?u:0}let o=0;for(let s=0,r=i.length;s=55296&&a<=56319&&s+1=56320&&l<=57343?(o+=4,s++):o+=3}else o+=3}return o}const Sd="1.18.1",p0=64*1024,{isFunction:ia}=N,zN=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),g0=t=>{if(!N.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},m0=(t,...e)=>{try{return!!t(...e)}catch{return!1}},HN=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},JN=t=>{const e=N.global!==void 0&&N.global!==null?N.global:globalThis,{ReadableStream:n,TextEncoder:i}=e;t=N.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:o,Request:s,Response:r}=t,a=o?ia(o):typeof fetch=="function",l=ia(s),c=ia(r);if(!a)return!1;const u=a&&ia(n),d=a&&(typeof i=="function"?(_=>S=>_.encode(S))(new i):async _=>new Uint8Array(await new s(_).arrayBuffer())),f=l&&u&&m0(()=>{let _=!1;const S=new s(Te.origin,{body:new n,method:"POST",get duplex(){return _=!0,"half"}}),P=S.headers.has("Content-Type");return S.body!=null&&S.body.cancel(),_&&!P}),p=c&&u&&m0(()=>N.isReadableStream(new r("").body)),y={stream:p&&(_=>_.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(_=>{!y[_]&&(y[_]=(S,P)=>{let A=S&&S[_];if(A)return A.call(S);throw new ht(`Response type '${_}' is not supported`,ht.ERR_NOT_SUPPORT,P)})});const m=async _=>{if(_==null)return 0;if(N.isBlob(_))return _.size;if(N.isSpecCompliantForm(_))return(await new s(Te.origin,{method:"POST",body:_}).arrayBuffer()).byteLength;if(N.isArrayBufferView(_)||N.isArrayBuffer(_))return _.byteLength;if(N.isURLSearchParams(_)&&(_=_+""),N.isString(_))return(await d(_)).byteLength},x=async(_,S)=>N.toFiniteNumber(_.getContentLength())??m(S);return async _=>{let{url:S,method:P,data:A,signal:O,cancelToken:U,timeout:V,onDownloadProgress:J,onUploadProgress:q,responseType:I,headers:et,withCredentials:T="same-origin",fetchOptions:j,maxContentLength:Q,maxBodyLength:M}=uv(_);const Z=N.isNumber(Q)&&Q>-1,rt=N.isNumber(M)&&M>-1,lt=At=>N.hasOwnProp(_,At)?_[At]:void 0;let ft=o||fetch;I=I?(I+"").toLowerCase():"text";let pt=BN([O,U&&U.toAbortSignal()],V),St=null;const gt=pt&&pt.unsubscribe&&(()=>{pt.unsubscribe()});let qt,Lt=null;const $t=()=>new ht("Request body larger than maxBodyLength limit",ht.ERR_BAD_REQUEST,_,St);try{let At;const ne=lt("auth");if(ne){const B=N.getSafeProp(ne,"username")||"",ot=N.getSafeProp(ne,"password")||"";At={username:B,password:ot}}if(HN(S)){const B=new URL(S,Te.origin);if(!At&&(B.username||B.password)){const ot=g0(B.username),st=g0(B.password);At={username:ot,password:st}}(B.username||B.password)&&(B.username="",B.password="",S=B.href)}if(At&&(et.delete("authorization"),et.set("Authorization","Basic "+btoa(zN((At.username||"")+":"+(At.password||""))))),Z&&typeof S=="string"&&S.startsWith("data:")&&IN(S)>Q)throw new ht("maxContentLength size of "+Q+" exceeded",ht.ERR_BAD_RESPONSE,_,St);if(rt&&P!=="get"&&P!=="head"){const B=await m(A);if(typeof B=="number"&&isFinite(B)&&(qt=B,B>M))throw $t()}const nn=rt&&(N.isReadableStream(A)||N.isStream(A)),vn=(B,ot,st)=>f0(B,p0,it=>{if(rt&&it>M)throw Lt=$t();ot&&ot(it)},st);if(f&&P!=="get"&&P!=="head"&&(q||nn)){if(qt=qt??await x(et,A),qt!==0||nn){let B=new s(S,{method:"POST",body:A,duplex:"half"}),ot;if(N.isFormData(A)&&(ot=B.headers.get("content-type"))&&et.setContentType(ot),B.body){const[st,it]=q&&u0(qt,il(c0(q)))||[];A=vn(B.body,st,it)}}}else if(nn&&!l&&u&&P!=="get"&&P!=="head")A=vn(A);else if(nn&&l&&!f&&P!=="get"&&P!=="head")throw new ht("Stream request bodies are not supported by the current fetch implementation",ht.ERR_NOT_SUPPORT,_,St);N.isString(T)||(T=T?"include":"omit");const yn=l&&"credentials"in s.prototype;if(N.isFormData(A)){const B=et.getContentType();B&&/^multipart\/form-data/i.test(B)&&!/boundary=/i.test(B)&&et.delete("content-type")}et.set("User-Agent","axios/"+Sd,!1);const C={...j,signal:pt,method:P.toUpperCase(),headers:M1(et.normalize()),body:A,duplex:"half",credentials:yn?T:void 0};St=l&&new s(S,C);let k=await(l?ft(St,j):ft(S,C));const W=Ve.from(k.headers);if(Z){const B=N.toFiniteNumber(W.getContentLength());if(B!=null&&B>Q)throw new ht("maxContentLength size of "+Q+" exceeded",ht.ERR_BAD_RESPONSE,_,St)}const K=p&&(I==="stream"||I==="response");if(p&&k.body&&(J||Z||K&>)){const B={};["status","statusText","headers"].forEach(ut=>{B[ut]=k[ut]});const ot=N.toFiniteNumber(W.getContentLength()),[st,it]=J&&u0(ot,il(c0(J),!0))||[];let tt=0;const mt=ut=>{if(Z&&(tt=ut,tt>Q))throw new ht("maxContentLength size of "+Q+" exceeded",ht.ERR_BAD_RESPONSE,_,St);st&&st(ut)};k=new r(f0(k.body,p0,mt,()=>{it&&it(),gt&>()}),B)}I=I||"text";let X=await y[N.findKey(y,I)||"text"](k,_);if(Z&&!p&&!K){let B;if(X!=null&&(typeof X.byteLength=="number"?B=X.byteLength:typeof X.size=="number"?B=X.size:typeof X=="string"&&(B=typeof i=="function"?new i().encode(X).byteLength:X.length)),typeof B=="number"&&B>Q)throw new ht("maxContentLength size of "+Q+" exceeded",ht.ERR_BAD_RESPONSE,_,St)}return!K&>&>(),await new Promise((B,ot)=>{av(B,ot,{data:X,headers:Ve.from(k.headers),status:k.status,statusText:k.statusText,config:_,request:St})})}catch(At){if(gt&>(),pt&&pt.aborted&&pt.reason instanceof ht){const ne=pt.reason;throw ne.config=_,St&&(ne.request=St),At!==ne&&Object.defineProperty(ne,"cause",{__proto__:null,value:At,writable:!0,enumerable:!1,configurable:!0}),ne}if(Lt)throw St&&!Lt.request&&(Lt.request=St),Lt;if(At instanceof ht)throw St&&!At.request&&(At.request=St),At;if(At&&At.name==="TypeError"&&/Load failed|fetch/i.test(At.message)){const ne=new ht("Network Error",ht.ERR_NETWORK,_,St,At&&At.response);throw Object.defineProperty(ne,"cause",{__proto__:null,value:At.cause||At,writable:!0,enumerable:!1,configurable:!0}),ne}throw ht.from(At,At&&At.code,_,St,At&&At.response)}}},WN=new Map,cv=t=>{let e=t&&t.env||{};const{fetch:n,Request:i,Response:o}=e,s=[i,o,n];let r=s.length,a=r,l,c,u=WN;for(;a--;)l=s[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:JN(e)),u=c;return c};cv();const Ad={http:oN,xhr:$N,fetch:{get:cv}};N.forEach(Ad,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const v0=t=>`- ${t}`,GN=t=>N.isFunction(t)||t===null||t===!1;function qN(t,e){t=N.isArray(t)?t:[t];const{length:n}=t;let i,o;const s={};for(let r=0;r`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?r.length>1?`since : `+r.map(v0).join(` -`):" "+v0(r[0]):"as no adapter specified";throw new dt("There is no suitable adapter to dispatch the request "+a,dt.ERR_NOT_SUPPORT)}return o}const uv={getAdapter:DN,adapters:Sd};function Uu(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Tr(null,t)}function y0(t){return Uu(t),t.headers=Ue.from(t.headers),t.data=ju.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),uv.getAdapter(t.adapter||Cr.adapter,t)(t).then(function(e){Uu(t),t.response=e;try{e.data=ju.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=Ue.from(e.headers),e},function(e){if(!ov(e)&&(Uu(t),e&&e.response)){t.response=e.response;try{e.response.data=ju.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=Ue.from(e.response.headers)}return Promise.reject(e)})}const ol={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{ol[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const b0={};ol.transitional=function(t,e,n){function i(o,s){return"[Axios v"+Ad+"] Transitional option '"+o+"'"+s+(n?". "+n:"")}return(o,s,r)=>{if(t===!1)throw new dt(i(s," has been removed"+(e?" in "+e:"")),dt.ERR_DEPRECATED);return e&&!b0[s]&&(b0[s]=!0,console.warn(i(s," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(o,s,r):!0}},ol.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function NN(t,e,n){if(typeof t!="object"||t===null)throw new dt("options must be an object",dt.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const s=i[o],r=Object.prototype.hasOwnProperty.call(e,s)?e[s]:void 0;if(r){const a=t[s],l=a===void 0||r(a,s,t);if(l!==!0)throw new dt("option "+s+" must be "+l,dt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new dt("Unknown option "+s,dt.ERR_BAD_OPTION)}}const ya={assertOptions:NN,validators:ol},Le=ya.validators;let ho=class{constructor(t){this.defaults=t||{},this.interceptors={request:new a0,response:new a0}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const s=i.stack.indexOf(` +`):" "+v0(r[0]):"as no adapter specified";throw new ht("There is no suitable adapter to dispatch the request "+a,ht.ERR_NOT_SUPPORT)}return o}const dv={getAdapter:qN,adapters:Ad};function Vu(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Tr(null,t)}function y0(t){return Vu(t),t.headers=Ve.from(t.headers),t.data=Uu.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),dv.getAdapter(t.adapter||Cr.adapter,t)(t).then(function(e){Vu(t),t.response=e;try{e.data=Uu.call(t,t.transformResponse,e)}finally{delete t.response}return e.headers=Ve.from(e.headers),e},function(e){if(!rv(e)&&(Vu(t),e&&e.response)){t.response=e.response;try{e.response.data=Uu.call(t,t.transformResponse,e.response)}finally{delete t.response}e.response.headers=Ve.from(e.response.headers)}return Promise.reject(e)})}const sl={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{sl[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const b0={};sl.transitional=function(t,e,n){function i(o,s){return"[Axios v"+Sd+"] Transitional option '"+o+"'"+s+(n?". "+n:"")}return(o,s,r)=>{if(t===!1)throw new ht(i(s," has been removed"+(e?" in "+e:"")),ht.ERR_DEPRECATED);return e&&!b0[s]&&(b0[s]=!0,console.warn(i(s," has been deprecated since v"+e+" and will be removed in the near future"))),t?t(o,s,r):!0}},sl.spelling=function(t){return(e,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function KN(t,e,n){if(typeof t!="object"||t===null)throw new ht("options must be an object",ht.ERR_BAD_OPTION_VALUE);const i=Object.keys(t);let o=i.length;for(;o-- >0;){const s=i[o],r=Object.prototype.hasOwnProperty.call(e,s)?e[s]:void 0;if(r){const a=t[s],l=a===void 0||r(a,s,t);if(l!==!0)throw new ht("option "+s+" must be "+l,ht.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ht("Unknown option "+s,ht.ERR_BAD_OPTION)}}const ba={assertOptions:KN,validators:sl},De=ba.validators;let fo=class{constructor(t){this.defaults=t||{},this.interceptors={request:new a0,response:new a0}}async request(t,e){try{return await this._request(t,e)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const s=i.stack.indexOf(` `);return s===-1?"":i.stack.slice(s+1)})();try{if(!n.stack)n.stack=o;else if(o){const s=o.indexOf(` `),r=s===-1?-1:o.indexOf(` `,s+1),a=r===-1?"":o.slice(r+1);String(n.stack).endsWith(a)||(n.stack+=` -`+o)}}catch{}}throw n}}_request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=vo(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:o}=e;n!==void 0&&ya.assertOptions(n,{silentJSONParsing:Le.transitional(Le.boolean),forcedJSONParsing:Le.transitional(Le.boolean),clarifyTimeoutError:Le.transitional(Le.boolean),legacyInterceptorReqResOrdering:Le.transitional(Le.boolean),advertiseZstdAcceptEncoding:Le.transitional(Le.boolean),validateStatusUndefinedResolves:Le.transitional(Le.boolean)},!1),i!=null&&(D.isFunction(i)?e.paramsSerializer={serialize:i}:ya.assertOptions(i,{encode:Le.function,serialize:Le.function},!0)),e.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),ya.assertOptions(e,{baseUrl:Le.spelling("baseURL"),withXsrfToken:Le.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=o&&D.merge(o.common,o[e.method]);o&&D.forEach(["delete","get","head","post","put","patch","query","common"],p=>{delete o[p]}),e.headers=Ue.concat(s,o);const r=[];let a=!0;this.interceptors.request.forEach(function(p){if(typeof p.runWhen=="function"&&p.runWhen(e)===!1)return;a=a&&p.synchronous;const y=e.transitional||xd;y&&y.legacyInterceptorReqResOrdering?r.unshift(p.fulfilled,p.rejected):r.push(p.fulfilled,p.rejected)});const l=[];this.interceptors.response.forEach(function(p){l.push(p.fulfilled,p.rejected)});let c,u=0,d;if(!a){const p=[y0.bind(this),void 0];for(p.unshift(...r),p.push(...l),d=p.length,c=Promise.resolve(e);u{if(!i._listeners)return;let s=i._listeners.length;for(;s-- >0;)i._listeners[s](o);i._listeners=null}),this.promise.then=o=>{let s;const r=new Promise(a=>{i.subscribe(a),s=a}).then(o);return r.cancel=function(){i.unsubscribe(s)},r},e(function(o,s,r){i.reason||(i.reason=new Tr(o,s,r),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new cv(function(n){e=n}),cancel:e}}};function $N(t){return function(e){return t.apply(null,e)}}function BN(t){return D.isObject(t)&&t.isAxiosError===!0}const Lc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Lc).forEach(([t,e])=>{Lc[e]=t});function dv(t){const e=new ho(t),n=z1(ho.prototype.request,e);return D.extend(n,ho.prototype,e,{allOwnKeys:!0}),D.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return dv(vo(t,i))},n}const ce=dv(Cr);ce.Axios=ho,ce.CanceledError=Tr,ce.CancelToken=ON,ce.isCancel=ov,ce.VERSION=Ad,ce.toFormData=$l,ce.AxiosError=dt,ce.Cancel=ce.CanceledError,ce.all=function(t){return Promise.all(t)},ce.spread=$N,ce.isAxiosError=BN,ce.mergeConfig=vo,ce.AxiosHeaders=Ue,ce.formToJSON=t=>iv(D.isHTMLForm(t)?new FormData(t):t),ce.getAdapter=uv.getAdapter,ce.HttpStatusCode=Lc,ce.default=ce;const{Axios:oO,AxiosError:sO,CanceledError:rO,isCancel:aO,CancelToken:lO,VERSION:uO,all:cO,Cancel:dO,isAxiosError:Cd,spread:hO,toFormData:fO,AxiosHeaders:pO,HttpStatusCode:gO,formToJSON:mO,getAdapter:vO,mergeConfig:yO,create:bO}=ce;function FN(){const t=ce.create({headers:{requesttoken:LE()??"","X-Requested-With":"XMLHttpRequest"}});return NE(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:ce.CancelToken,isCancel:ce.isCancel})}const _0="_nextcloudCsrfTokenReloaded";function jN(t){return async e=>{if(!Cd(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL;if(n&&!(_0 in n)&&i?.status===412&&i?.data?.message==="CSRF check failed"){console.warn(`Request to ${s} failed because of a CSRF mismatch. Fetching a new token.`);const r=await DE();return t.defaults.headers.requesttoken=r,t({...n,[_0]:!0,headers:{...n.headers,requesttoken:r}})}throw e}}const w0="_nextcloudMaintenanceModeRetryDelay";function UN(t){return async e=>{if(!Cd(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL,r=i?.status,a=i?.headers;let l=n?.[w0]??1;if(r===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:s}),e;return console.warn(`Request to ${s} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(c=>{setTimeout(c,l*1e3)}),t({...n,[w0]:l})}throw e}}async function VN(t){if(Cd(t)){const{config:e,response:n,request:i}=t,o=i?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${o} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const Mi=FN();Mi.interceptors.response.use(t=>t,jN(Mi)),Mi.interceptors.response.use(t=>t,UN(Mi)),Mi.interceptors.response.use(t=>t,VN);function x0(t,e=2e3){const n=ge(null),i=ge(0);let o=null,s=!1;async function r(){try{const a=await Mi.get(Jc(t));n.value=a.data,i.value++}catch{}finally{s||(o=setTimeout(r,e))}}return o=setTimeout(r,0),Wn(()=>{s=!0,o!==null&&(clearTimeout(o),o=null)}),{data:n,tick:i}}function IN(){const t=ge(null),e=ge(!0),n=ge(!1);async function i(){try{const o=await Mi.get(Jc("/apps/serverinfo/data"));t.value=o.data}catch{n.value=!0}finally{e.value=!1}}return i(),{data:t,loading:e,error:n}}const zN={class:"server-info-wrapper"},HN={class:"section server-infos-two"},JN={class:"row"},WN={class:"section server-infos-two"},GN={class:"row"},qN={key:3,class:"section"},KN={class:"section php-database"},XN={class:"row"},YN={class:"section server-infos-two"},ZN={class:"row"},QN={class:"section server-infos-two"},MN={class:"row"},tO={class:"section php-database"},eO={class:"row"},nO=Rt({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const{data:e}=IN(),{data:n,tick:i}=x0("/apps/serverinfo/update"),{data:o}=x0("/apps/serverinfo/periodic",6e4),s=ht(()=>{const r=n.value?.cpu.load;return Array.isArray(r)&&r.length>0?r:!1});return(r,a)=>(O(),J("div",zN,[E(e)?(O(),J(At,{key:0},[w("div",HN,[w("div",JN,[w("div",null,[ot(TL,{hostname:E(e).hostname,osname:E(e).osname,cpu:E(e).cpu,servertime:E(n)?.servertime??"",uptime:E(n)?.uptime??""},null,8,["hostname","osname","cpu","servertime","uptime"])]),w("div",null,[E(n)?(O(),Ct(G5,{key:0,cpuload:s.value,cpunum:E(e).cpu.threads,memTotal:E(n).memory.total,memFree:E(n).memory.free,swapTotal:E(n).memory.swap_total,swapFree:E(n).memory.swap_free},null,8,["cpuload","cpunum","memTotal","memFree","swapTotal","swapFree"])):(O(),Ct(Ze,{key:1}))])])]),w("div",WN,[w("div",GN,[w("div",null,[E(n)?(O(),Ct(uk,{key:0,cpuload:s.value,cpunum:E(e).cpu.threads,tick:E(i)},null,8,["cpuload","cpunum","tick"])):(O(),Ct(Ze,{key:1}))]),w("div",null,[E(n)?(O(),Ct(uR,{key:0,memTotal:E(n).memory.total,memFree:E(n).memory.free,swapTotal:E(n).memory.swap_total,swapFree:E(n).memory.swap_free,tick:E(i)},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(O(),Ct(Ze,{key:1}))])])]),ot(Yk,{disks:E(e).diskinfo,freespace:E(e).freeSpace,storage:E(e).storage},null,8,["disks","freespace","storage"]),ot(LP,{networkinfo:E(e).networkinfo,interfaces:E(e).networkinterfaces},null,8,["networkinfo","interfaces"]),E(o)?(O(),Ct(xS,{key:0,cron:E(o).cron,jobs:E(o).backgroundJobs},null,8,["cron","jobs"])):(O(),Ct(Ze,{key:1})),ot(vw,{activeUsers:E(e).activeUsers,numUsers:E(e).storage.num_users},null,8,["activeUsers","numUsers"]),E(e).shares.num_shares>0?(O(),Ct(pL,{key:2,shares:E(e).shares},null,8,["shares"])):_t("",!0),!E(n)||E(n).thermalzones.length>0?(O(),J("div",qN,[E(n)?(O(),Ct(jL,{key:1,thermalzones:E(n).thermalzones},null,8,["thermalzones"])):(O(),Ct(Ze,{key:0}))])):_t("",!0),w("div",KN,[w("div",XN,[w("div",null,[ot(x5,{php:E(e).php,fpm:E(e).fpm,phpinfo:E(e).phpinfo,phpinfoUrl:E(e).phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),w("div",null,[ot(wk,{database:E(e).database},null,8,["database"])])]),ot(VP,{extensions:E(e).php.extensions},null,8,["extensions"])]),ot(fP,{ocs:E(e).ocs},null,8,["ocs"])],64)):(O(),J(At,{key:1},[w("div",YN,[w("div",ZN,[w("div",null,[ot(Ze)]),w("div",null,[ot(Ze)])])]),w("div",QN,[w("div",MN,[w("div",null,[ot(Ze)]),w("div",null,[ot(Ze)])])]),ot(Ze),ot(Ze),w("div",tO,[w("div",eO,[w("div",null,[ot(Ze)]),w("div",null,[ot(Ze)])]),ot(Ze)])],64))]))}});u_(nO).mount("#serverinfo-settings"); +`+o)}}catch{}}throw n}}_request(t,e){typeof t=="string"?(e=e||{},e.url=t):e=t||{},e=yo(this.defaults,e);const{transitional:n,paramsSerializer:i,headers:o}=e;n!==void 0&&ba.assertOptions(n,{silentJSONParsing:De.transitional(De.boolean),forcedJSONParsing:De.transitional(De.boolean),clarifyTimeoutError:De.transitional(De.boolean),legacyInterceptorReqResOrdering:De.transitional(De.boolean),advertiseZstdAcceptEncoding:De.transitional(De.boolean),validateStatusUndefinedResolves:De.transitional(De.boolean)},!1),i!=null&&(N.isFunction(i)?e.paramsSerializer={serialize:i}:ba.assertOptions(i,{encode:De.function,serialize:De.function},!0)),e.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?e.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:e.allowAbsoluteUrls=!0),ba.assertOptions(e,{baseUrl:De.spelling("baseURL"),withXsrfToken:De.spelling("withXSRFToken")},!0),e.method=(e.method||this.defaults.method||"get").toLowerCase();let s=o&&N.merge(o.common,o[e.method]);o&&N.forEach(["delete","get","head","post","put","patch","query","common"],p=>{delete o[p]}),e.headers=Ve.concat(s,o);const r=[];let a=!0;this.interceptors.request.forEach(function(p){if(typeof p.runWhen=="function"&&p.runWhen(e)===!1)return;a=a&&p.synchronous;const y=e.transitional||xd;y&&y.legacyInterceptorReqResOrdering?r.unshift(p.fulfilled,p.rejected):r.push(p.fulfilled,p.rejected)});const l=[];this.interceptors.response.forEach(function(p){l.push(p.fulfilled,p.rejected)});let c,u=0,d;if(!a){const p=[y0.bind(this),void 0];for(p.unshift(...r),p.push(...l),d=p.length,c=Promise.resolve(e);u{if(!i._listeners)return;let s=i._listeners.length;for(;s-- >0;)i._listeners[s](o);i._listeners=null}),this.promise.then=o=>{let s;const r=new Promise(a=>{i.subscribe(a),s=a}).then(o);return r.cancel=function(){i.unsubscribe(s)},r},e(function(o,s,r){i.reason||(i.reason=new Tr(o,s,r),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=i=>{e.abort(i)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new hv(function(n){e=n}),cancel:e}}};function YN(t){return function(e){return t.apply(null,e)}}function ZN(t){return N.isObject(t)&&t.isAxiosError===!0}const Dc={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Dc).forEach(([t,e])=>{Dc[e]=t});function fv(t){const e=new fo(t),n=J1(fo.prototype.request,e);return N.extend(n,fo.prototype,e,{allOwnKeys:!0}),N.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return fv(yo(t,i))},n}const ce=fv(Cr);ce.Axios=fo,ce.CanceledError=Tr,ce.CancelToken=XN,ce.isCancel=rv,ce.VERSION=Sd,ce.toFormData=Fl,ce.AxiosError=ht,ce.Cancel=ce.CanceledError,ce.all=function(t){return Promise.all(t)},ce.spread=YN,ce.isAxiosError=ZN,ce.mergeConfig=yo,ce.AxiosHeaders=Ve,ce.formToJSON=t=>sv(N.isHTMLForm(t)?new FormData(t):t),ce.getAdapter=dv.getAdapter,ce.HttpStatusCode=Dc,ce.default=ce;const{Axios:EO,AxiosError:SO,CanceledError:AO,isCancel:CO,CancelToken:TO,VERSION:kO,all:PO,Cancel:RO,isAxiosError:Cd,spread:LO,toFormData:DO,AxiosHeaders:NO,HttpStatusCode:OO,formToJSON:$O,getAdapter:BO,mergeConfig:FO,create:jO}=ce;function QN(){const t=ce.create({headers:{requesttoken:NE()??"","X-Requested-With":"XMLHttpRequest"}});return $E(e=>{t.defaults.headers.requesttoken=e}),Object.assign(t,{CancelToken:ce.CancelToken,isCancel:ce.isCancel})}const _0="_nextcloudCsrfTokenReloaded";function MN(t){return async e=>{if(!Cd(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL;if(n&&!(_0 in n)&&i?.status===412&&i?.data?.message==="CSRF check failed"){console.warn(`Request to ${s} failed because of a CSRF mismatch. Fetching a new token.`);const r=await OE();return t.defaults.headers.requesttoken=r,t({...n,[_0]:!0,headers:{...n.headers,requesttoken:r}})}throw e}}const w0="_nextcloudMaintenanceModeRetryDelay";function tO(t){return async e=>{if(!Cd(e))throw e;const{config:n,response:i,request:o}=e,s=o?.responseURL,r=i?.status,a=i?.headers;let l=n?.[w0]??1;if(r===503&&a?.["x-nextcloud-maintenance-mode"]==="1"&&n?.retryIfMaintenanceMode){if(l*=2,l>32)throw console.error("Retry delay exceeded one minute, giving up.",{responseURL:s}),e;return console.warn(`Request to ${s} failed because of maintenance mode. Retrying in ${l}s`),await new Promise(c=>{setTimeout(c,l*1e3)}),t({...n,[w0]:l})}throw e}}async function eO(t){if(Cd(t)){const{config:e,response:n,request:i}=t,o=i?.responseURL;n?.status===401&&n?.data?.message==="Current user is not logged in"&&e?.reloadExpiredSession&&globalThis.location?.reload&&(console.error(`Request to ${o} failed because the user session expired. Reloading the page …`),globalThis.OC?.reload?globalThis.OC.reload():globalThis.location.reload())}throw t}const to=QN();to.interceptors.response.use(t=>t,MN(to)),to.interceptors.response.use(t=>t,tO(to)),to.interceptors.response.use(t=>t,eO);function x0(t,e=2e3){const n=fe(null),i=fe(0);let o=null,s=!1;async function r(){try{const a=await to.get(Wc(t));n.value=a.data,i.value++}catch{}finally{s||(o=setTimeout(r,e))}}return o=setTimeout(r,0),qn(()=>{s=!0,o!==null&&(clearTimeout(o),o=null)}),{data:n,tick:i}}function nO(){const t=fe(null),e=fe(!0),n=fe(!1);async function i(){try{const o=await to.get(Wc("/apps/serverinfo/data"));t.value=o.data}catch{n.value=!0}finally{e.value=!1}}return i(),{data:t,loading:e,error:n}}const iO={class:"server-info-wrapper"},oO={class:"section server-infos-two"},sO={class:"row"},rO={class:"section server-infos-two"},aO={class:"row"},lO={key:3,class:"section"},uO={class:"section php-opcache"},cO={class:"row"},dO={class:"section"},hO={class:"row"},fO={class:"section server-infos-two"},pO={class:"row"},gO={class:"section server-infos-two"},mO={class:"row"},vO={class:"section php-opcache"},yO={class:"row"},bO={class:"section"},_O={class:"row"},wO=Pt({name:"ServerInfo",__name:"SettingsAdmin",setup(t){const{data:e}=nO(),{data:n,tick:i}=x0("/apps/serverinfo/update"),{data:o}=x0("/apps/serverinfo/periodic",6e4),s=ct(()=>{const r=n.value?.cpu.load;return Array.isArray(r)&&r.length>0?r:!1});return(r,a)=>(D(),z("div",iO,[E(e)?(D(),z(Et,{key:0},[b("div",oO,[b("div",sO,[b("div",null,[nt(zL,{hostname:E(e).hostname,osname:E(e).osname,cpu:E(e).cpu,servertime:E(n)?.servertime??"",uptime:E(n)?.uptime??""},null,8,["hostname","osname","cpu","servertime","uptime"])]),b("div",null,[E(n)?(D(),xt(aL,{key:0,cpuload:s.value,cpunum:E(e).cpu.threads,memTotal:E(n).memory.total,memFree:E(n).memory.free,swapTotal:E(n).memory.swap_total,swapFree:E(n).memory.swap_free},null,8,["cpuload","cpunum","memTotal","memFree","swapTotal","swapFree"])):(D(),xt(Qe,{key:1}))])])]),b("div",rO,[b("div",aO,[b("div",null,[E(n)?(D(),xt(ck,{key:0,cpuload:s.value,cpunum:E(e).cpu.threads,tick:E(i)},null,8,["cpuload","cpunum","tick"])):(D(),xt(Qe,{key:1}))]),b("div",null,[E(n)?(D(),xt(cP,{key:0,memTotal:E(n).memory.total,memFree:E(n).memory.free,swapTotal:E(n).memory.swap_total,swapFree:E(n).memory.swap_free,tick:E(i)},null,8,["memTotal","memFree","swapTotal","swapFree","tick"])):(D(),xt(Qe,{key:1}))])])]),nt(Zk,{disks:E(e).diskinfo,freespace:E(e).freeSpace,storage:E(e).storage},null,8,["disks","freespace","storage"]),nt(DR,{networkinfo:E(e).networkinfo,interfaces:E(e).networkinterfaces},null,8,["networkinfo","interfaces"]),E(o)?(D(),xt(E4,{key:0,cron:E(o).cron,jobs:E(o).backgroundJobs},null,8,["cron","jobs"])):(D(),xt(Qe,{key:1})),nt(bw,{activeUsers:E(e).activeUsers,numUsers:E(e).storage.num_users},null,8,["activeUsers","numUsers"]),E(e).shares.num_shares>0?(D(),xt(PL,{key:2,shares:E(e).shares},null,8,["shares"])):bt("",!0),!E(n)||E(n).thermalzones.length>0?(D(),z("div",lO,[E(n)?(D(),xt(ML,{key:1,thermalzones:E(n).thermalzones},null,8,["thermalzones"])):(D(),xt(Qe,{key:0}))])):bt("",!0),b("div",uO,[b("div",cO,[b("div",null,[nt(Z5,{php:E(e).php,fpm:E(e).fpm,phpinfo:E(e).phpinfo,phpinfoUrl:E(e).phpinfoUrl},null,8,["php","fpm","phpinfo","phpinfoUrl"])]),b("div",null,[nt(d5,{opcache:E(e).opcache},null,8,["opcache"])])])]),b("div",dO,[b("div",hO,[b("div",null,[nt(xk,{database:E(e).database},null,8,["database"])])])]),nt(pR,{ocs:E(e).ocs},null,8,["ocs"])],64)):(D(),z(Et,{key:1},[b("div",fO,[b("div",pO,[b("div",null,[nt(Qe)]),b("div",null,[nt(Qe)])])]),b("div",gO,[b("div",mO,[b("div",null,[nt(Qe)]),b("div",null,[nt(Qe)])])]),nt(Qe),nt(Qe),b("div",vO,[b("div",yO,[b("div",null,[nt(Qe)]),b("div",null,[nt(Qe)])])]),b("div",bO,[b("div",_O,[b("div",null,[nt(Qe)])])])],64))]))}});d_(wO).mount("#serverinfo-settings"); //# sourceMappingURL=serverinfo-main.mjs.map diff --git a/js/serverinfo-main.mjs.map b/js/serverinfo-main.mjs.map index 32d06042..65b1f545 100644 --- a/js/serverinfo-main.mjs.map +++ b/js/serverinfo-main.mjs.map @@ -1 +1 @@ -{"version":3,"file":"serverinfo-main.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../src/components/SectionHeading.vue","../src/components/ActiveUsersSection.vue","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-wdIzZwir.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi-CpchYUUV.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-BoqDmOCa.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcNoteCard-mI7qVZ9j.mjs","../node_modules/vue-material-design-icons/Update.vue","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs","../node_modules/vue-router/dist/useApi-CROJJdhE.js","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-Djlh582y.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton-jvoYS2my.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-B87bEPLq.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions-BzPO2c4h.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-C-wDqSrv.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal-DiDvgcU8.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog-D617YI0t.mjs","../src/components/JobStatusIndicator.vue","../src/utils.ts","../src/components/JobRunDialog.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../src/components/JobRunsTable.vue","../src/components/SlowJobsTable.vue","../src/components/StatTile.vue","../src/components/BackgroundJobsSection.vue","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/chart.js/dist/chart.js","../node_modules/vue-chartjs/dist/index.js","../node_modules/vue-material-design-icons/Chip.vue","../src/components/CpuChartSection.vue","../node_modules/vue-material-design-icons/Database.vue","../src/components/DatabaseSection.vue","../node_modules/vue-material-design-icons/Harddisk.vue","../src/components/DiskSection.vue","../node_modules/vue-material-design-icons/Memory.vue","../src/components/MemoryChartSection.vue","../node_modules/@nextcloud/vue/dist/chunks/NcFormBox-Bmqar8nn.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem-Cm8aZaVJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxButton-G_PkUiQy.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy-6F-qWHq0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch-DSXiQcnq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormGroup-N7qIFAwN.mjs","../node_modules/vue-material-design-icons/Connection.vue","../src/components/MonitoringSection.vue","../node_modules/vue-material-design-icons/Lan.vue","../src/components/NetworkSection.vue","../node_modules/vue-material-design-icons/Puzzle.vue","../src/components/PhpExtensionsSection.vue","../node_modules/vue-material-design-icons/Cogs.vue","../node_modules/vue-material-design-icons/LanguagePhp.vue","../src/components/PhpSection.vue","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-C-ane-Ni.mjs","../node_modules/vue-material-design-icons/Gauge.vue","../src/components/ResourceOverviewSection.vue","../src/components/SectionSkeleton.vue","../node_modules/vue-material-design-icons/ShareVariant.vue","../src/components/SharesSection.vue","../node_modules/vue-material-design-icons/Monitor.vue","../src/components/SystemSection.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../src/components/ThermalSection.vue","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/axios/dist/client.js","../node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","../node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","../node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","../node_modules/@nextcloud/axios/dist/index.js","../src/composables/useLiveData.ts","../src/composables/useStaticData.ts","../src/views/SettingsAdmin.vue","../src/main.ts"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\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 on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const 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 = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate ","\n\n\n\n\n\n","\n\n\n\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (غير مرئي)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (diwelus)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (αόρατο)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (kaŝita)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nähtamatu)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ikusezina)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} مخفی\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (näkymätön)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (dofheicthe)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisíbel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (נסתר)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidljivo)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograničeno)\"] }, \"Select a tag\": { \"v\": [\"Odaberi oznaku\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (láthatatlan)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (tidak terlihat)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ósýnilegt)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisibile)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(숨김)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ບໍ່ສະແດງ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nematoma)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymą\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neredzams)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидливо)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"mn\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (үл харагдах)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (хязгаарлагдмал)\"] }, \"Select a tag\": { \"v\": [\"Шошго сонгох\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ကွယ်ဝှက်ထား)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (onzichtbaar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (niewidoczna)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invizibil)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимое)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditeľný)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidno)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидљиво)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (osynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (görünmez)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимий)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ko'rinmas)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隐藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t1 = [{ \"l\": \"ar\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"لون بالقيمة الست عشرية {hex}\"] }, \"Back\": { \"v\": [\"عودة\"] }, \"Choose\": { \"v\": [\"إختَر\"] }, \"Color picker\": { \"v\": [\"لاقط الألوان\"] }, \"More options\": { \"v\": [\"خيارات أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoyer\"] }, \"Color picker\": { \"v\": [\"Selector de colores\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"br\", \"t\": { \"Choose\": { \"v\": [\"Dibab\"] } } }, { \"l\": \"ca\", \"t\": { \"Choose\": { \"v\": [\"Tria\"] } } }, { \"l\": \"cs\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] }, \"No color\": { \"v\": [\"Žádná barva\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] } } }, { \"l\": \"da\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farve med en HEX-værdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbage\"] }, \"Choose\": { \"v\": [\"Vælg\"] }, \"Color picker\": { \"v\": [\"Farvevælger\"] }, \"More options\": { \"v\": [\"Flere muligheder\"] }, \"No color\": { \"v\": [\"Ingen farve\"] } } }, { \"l\": \"de\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Weitere Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Mehr Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"el\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ένα χρώμα με τιμή HEX {hex}\"] }, \"Back\": { \"v\": [\"Επιστροφή\"] }, \"Choose\": { \"v\": [\"Επιλογή\"] }, \"Color picker\": { \"v\": [\"Επιλογέας χρώματος\"] }, \"More options\": { \"v\": [\"Περισσότερες επιλογές\"] }, \"No color\": { \"v\": [\"Χωρίς χρώμα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"A colour with a HEX value {hex}\"] }, \"Back\": { \"v\": [\"Back\"] }, \"Choose\": { \"v\": [\"Choose\"] }, \"Color picker\": { \"v\": [\"Colour picker\"] }, \"More options\": { \"v\": [\"More options\"] }, \"No color\": { \"v\": [\"No colour\"] } } }, { \"l\": \"eo\", \"t\": { \"Choose\": { \"v\": [\"Elektu\"] } } }, { \"l\": \"es\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoger\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Värv kuueteistkümnendarvuna {hex}\"] }, \"Back\": { \"v\": [\"Tagasi\"] }, \"Choose\": { \"v\": [\"Tee valik\"] }, \"Color picker\": { \"v\": [\"Värvivalija\"] }, \"More options\": { \"v\": [\"Rohkem valikuid\"] }, \"No color\": { \"v\": [\"Värv puudub\"] } } }, { \"l\": \"eu\", \"t\": { \"Back\": { \"v\": [\"Atzera\"] }, \"Choose\": { \"v\": [\"Aukeratu\"] }, \"More options\": { \"v\": [\"Aukera gehiago\"] } } }, { \"l\": \"fa\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"رنگی با مقدار مبنای هشت {hex}\"] }, \"Back\": { \"v\": [\"بازگشت\"] }, \"Choose\": { \"v\": [\"انتخاب کنید\"] }, \"Color picker\": { \"v\": [\"انتخاب‌گر رنگ\"] }, \"More options\": { \"v\": [\"گزینه‌های بیشتر\"] } } }, { \"l\": \"fi\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Väri heksa-arvolla {hex}\"] }, \"Back\": { \"v\": [\"Takaisin\"] }, \"Choose\": { \"v\": [\"Valitse\"] }, \"Color picker\": { \"v\": [\"Värivalitsin\"] }, \"More options\": { \"v\": [\"Lisää vaihtoehtoja\"] } } }, { \"l\": \"fr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Une couleur de valeur HEX {hex}\"] }, \"Back\": { \"v\": [\"Retour\"] }, \"Choose\": { \"v\": [\"Choisir\"] }, \"Color picker\": { \"v\": [\"Sélecteur de couleurs\"] }, \"More options\": { \"v\": [\"Plus d'options\"] }, \"No color\": { \"v\": [\"Sans couleur\"] } } }, { \"l\": \"ga\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Dath le luach HEX {hex}\"] }, \"Back\": { \"v\": [\"Ar ais\"] }, \"Choose\": { \"v\": [\"Roghnaigh\"] }, \"Color picker\": { \"v\": [\"Roghnóir dathanna\"] }, \"More options\": { \"v\": [\"Tuilleadh roghanna\"] }, \"No color\": { \"v\": [\"Gan dath\"] } } }, { \"l\": \"gl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Unha cor cun valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoller\"] }, \"Color picker\": { \"v\": [\"Selector de cores\"] }, \"More options\": { \"v\": [\"Máis opcións\"] }, \"No color\": { \"v\": [\"Sen cor\"] } } }, { \"l\": \"he\", \"t\": { \"Back\": { \"v\": [\"חזרה\"] }, \"Choose\": { \"v\": [\"בחירה\"] }, \"More options\": { \"v\": [\"אפשרויות נוספות\"] } } }, { \"l\": \"hr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Boja s HEX vrijednošću {hex}\"] }, \"Back\": { \"v\": [\"Natrag\"] }, \"Choose\": { \"v\": [\"Odaberi\"] }, \"Color picker\": { \"v\": [\"Odabir boje\"] }, \"More options\": { \"v\": [\"Više mogućnosti\"] }, \"No color\": { \"v\": [\"Bez boje\"] } } }, { \"l\": \"hu\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Szín ezzel a HEX értékkel: {hex}\"] }, \"Back\": { \"v\": [\"Vissza\"] }, \"Choose\": { \"v\": [\"Válassszon\"] }, \"Color picker\": { \"v\": [\"Színválasztó\"] }, \"More options\": { \"v\": [\"További lehetőségek\"] }, \"No color\": { \"v\": [\"Nincs szín\"] } } }, { \"l\": \"id\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Warna dengan nilai HEX {hex}\"] }, \"Back\": { \"v\": [\"Kembali\"] }, \"Choose\": { \"v\": [\"Pilih\"] }, \"Color picker\": { \"v\": [\"Pemilih warna\"] }, \"More options\": { \"v\": [\"Opsi lainnya\"] }, \"No color\": { \"v\": [\"Tanpa warna\"] } } }, { \"l\": \"is\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Litur með HEX-gildi {hex}\"] }, \"Back\": { \"v\": [\"Til baka\"] }, \"Choose\": { \"v\": [\"Velja\"] }, \"Color picker\": { \"v\": [\"Litaplokkari\"] }, \"More options\": { \"v\": [\"Fleiri valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un colore con un valore HEX {hex}\"] }, \"Back\": { \"v\": [\"Indietro\"] }, \"Choose\": { \"v\": [\"Scegli\"] }, \"More options\": { \"v\": [\"Altre opzioni\"] } } }, { \"l\": \"ja\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] }, \"No color\": { \"v\": [\"色なし\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] } } }, { \"l\": \"ko\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 값이 {hex}인 색상\"] }, \"Back\": { \"v\": [\"뒤로\"] }, \"Choose\": { \"v\": [\"선택\"] }, \"Color picker\": { \"v\": [\"색상 선택기\"] }, \"More options\": { \"v\": [\"옵션 더 보기\"] }, \"No color\": { \"v\": [\"색 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ສີທີ່ມີຄ່າ HEX {hex}\"] }, \"Back\": { \"v\": [\"ກັບຄືນ\"] }, \"Choose\": { \"v\": [\"ເລືອກ\"] }, \"Color picker\": { \"v\": [\"ໂຕເລືອກສີ\"] }, \"More options\": { \"v\": [\"ຕົວເລືອກເພີ່ມເຕີມ\"] }, \"No color\": { \"v\": [\"ບໍ່ມີສີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Spalva, kurios HEX reikšmė yra {hex}\"] }, \"Back\": { \"v\": [\"Atgal\"] }, \"Choose\": { \"v\": [\"Pasirinkti\"] }, \"Color picker\": { \"v\": [\"Spalvos parinkiklis\"] }, \"More options\": { \"v\": [\"Daugiau parinkčių\"] }, \"No color\": { \"v\": [\"Be spalvos\"] } } }, { \"l\": \"lv\", \"t\": { \"Choose\": { \"v\": [\"Izvēlēties\"] } } }, { \"l\": \"mk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја со HEX вредност {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Избери\"] }, \"Color picker\": { \"v\": [\"Избор на боја\"] }, \"More options\": { \"v\": [\"Повеќе опции\"] }, \"No color\": { \"v\": [\"Без боја\"] } } }, { \"l\": \"mn\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} HEX утгатай өнгө\"] }, \"Back\": { \"v\": [\"Буцах\"] }, \"Choose\": { \"v\": [\"Сонгох\"] }, \"Color picker\": { \"v\": [\"Өнгө сонгогч\"] }, \"More options\": { \"v\": [\"Нэмэлт сонголтууд\"] }, \"No color\": { \"v\": [\"Өнгөгүй\"] } } }, { \"l\": \"my\", \"t\": { \"Choose\": { \"v\": [\"ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farge med en HEX-verdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbake\"] }, \"Choose\": { \"v\": [\"Velg\"] }, \"Color picker\": { \"v\": [\"Fargevelger\"] }, \"More options\": { \"v\": [\"Flere alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Een kleur met een HEX-waarde {hex}\"] }, \"Back\": { \"v\": [\"Terug\"] }, \"Choose\": { \"v\": [\"Kiezen\"] }, \"Color picker\": { \"v\": [\"Kleurkiezer\"] }, \"More options\": { \"v\": [\"Meer opties\"] }, \"No color\": { \"v\": [\"Geen kleur\"] } } }, { \"l\": \"oc\", \"t\": { \"Choose\": { \"v\": [\"Causir\"] } } }, { \"l\": \"pl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Kolor o wartości HEX {hex}\"] }, \"Back\": { \"v\": [\"Wstecz\"] }, \"Choose\": { \"v\": [\"Wybierz\"] }, \"Color picker\": { \"v\": [\"Wybierz kolor\"] }, \"More options\": { \"v\": [\"Więcej opcji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Voltar\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"Seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] }, \"No color\": { \"v\": [\"Sem cor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com o valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Anterior\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] } } }, { \"l\": \"ro\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"O culoare în HEX value {hex}\"] }, \"Back\": { \"v\": [\"Înapoi\"] }, \"Choose\": { \"v\": [\"Alegeți\"] }, \"More options\": { \"v\": [\"Mai multe opțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Цвет в HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Выберите\"] }, \"Color picker\": { \"v\": [\"Выбор цвета\"] }, \"More options\": { \"v\": [\"Больше опций\"] }, \"No color\": { \"v\": [\"Без цвета\"] } } }, { \"l\": \"sk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Farba s hodnotou HEX {hex}\"] }, \"Back\": { \"v\": [\"Späť\"] }, \"Choose\": { \"v\": [\"Vybrať\"] }, \"Color picker\": { \"v\": [\"Výber farby\"] }, \"More options\": { \"v\": [\"Viac možností\"] } } }, { \"l\": \"sl\", \"t\": { \"Choose\": { \"v\": [\"Izbor\"] } } }, { \"l\": \"sr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја са HEX вредности {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Изаберите\"] }, \"Color picker\": { \"v\": [\"Бирач боје\"] }, \"More options\": { \"v\": [\"Још опција\"] }, \"No color\": { \"v\": [\"Без боје\"] } } }, { \"l\": \"sv\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En färg med ett HEX-värde {hex}\"] }, \"Back\": { \"v\": [\"Tillbaka\"] }, \"Choose\": { \"v\": [\"Välj\"] }, \"Color picker\": { \"v\": [\"Färgväljare\"] }, \"More options\": { \"v\": [\"Fler alternativ\"] }, \"No color\": { \"v\": [\"Ingen färg\"] } } }, { \"l\": \"tr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} onaltılık değeri ile bir renk \"] }, \"Back\": { \"v\": [\"Geri\"] }, \"Choose\": { \"v\": [\"Seçin\"] }, \"Color picker\": { \"v\": [\"Renk seçici\"] }, \"More options\": { \"v\": [\"Diğer seçenekler\"] }, \"No color\": { \"v\": [\"Renk yok\"] } } }, { \"l\": \"uk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Колір у форматі HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Виберіть\"] }, \"Color picker\": { \"v\": [\"Вибір кольору\"] }, \"More options\": { \"v\": [\"Більше об'єктів\"] } } }, { \"l\": \"uz\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX qiymatiga ega rang {hex}\"] }, \"Back\": { \"v\": [\"Orqaga\"] }, \"Choose\": { \"v\": [\"Tanlang\"] }, \"Color picker\": { \"v\": [\"Rang tanlagich\"] }, \"More options\": { \"v\": [\"Boshqa variantlar\"] }, \"No color\": { \"v\": [\"Rangsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"以16进制 {hex} 表示的颜色为\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"选择\"] }, \"Color picker\": { \"v\": [\"颜色拾取器\"] }, \"More options\": { \"v\": [\"更多选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"具有 HEX 值 {hex}的顏色 \"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"顏色選擇器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"無顏色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 值為 {hex} 的顏色\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"色彩挑選器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"沒有顏色\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hr\", \"t\": { \"a few seconds ago\": { \"v\": [\"prije nekoliko sekundi\"] }, \"sec. ago\": { \"v\": [\"prije nek. sek.\"] }, \"seconds ago\": { \"v\": [\"prije nek. sek.\"] } } }, { \"l\": \"hu\", \"t\": { \"a few seconds ago\": { \"v\": [\"néhány másodperce\"] }, \"sec. ago\": { \"v\": [\"másodperce\"] }, \"seconds ago\": { \"v\": [\"másodperce\"] } } }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"a few seconds ago\": { \"v\": [\"prieš keletą sekundžių\"] }, \"sec. ago\": { \"v\": [\"prieš sek.\"] }, \"seconds ago\": { \"v\": [\"prieš sekundes\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"mn\", \"t\": { \"a few seconds ago\": { \"v\": [\"хэдхэн секундын өмнө\"] }, \"sec. ago\": { \"v\": [\"сек. өмнө\"] }, \"seconds ago\": { \"v\": [\"секундын өмнө\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوه‌ای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Noir\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Blanc\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Crna\"] }, \"Blue Violet\": { \"v\": [\"Plavoljubičasta\"] }, \"Boston Blue\": { \"v\": [\"Bostonsko plava\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Zlatna\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud plava\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ljubičasta\"] }, \"Rosy brown\": { \"v\": [\"Ružičastosmeđa\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Bijela\"] } } }, { \"l\": \"hu\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Fekete\"] }, \"Blue Violet\": { \"v\": [\"Kék ibolya\"] }, \"Boston Blue\": { \"v\": [\"Boston kék\"] }, \"Deluge\": { \"v\": [\"Özönvíz\"] }, \"Feldspar\": { \"v\": [\"Földpát\"] }, \"Gold\": { \"v\": [\"Arany\"] }, \"Mariner\": { \"v\": [\"Tengerész\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud kék\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rózsás barna\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Fehér\"] } } }, { \"l\": \"id\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Hitam\"] }, \"Blue Violet\": { \"v\": [\"Ungu kebiruan\"] }, \"Boston Blue\": { \"v\": [\"Biru Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Emas\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ungu\"] }, \"Rosy brown\": { \"v\": [\"Cokelat kemerahan\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Putih\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Black\": { \"v\": [\"검정\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] }, \"White\": { \"v\": [\"하양\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Acapulco\": { \"v\": ['\"Acapulco\"'] }, \"Black\": { \"v\": [\"Juoda\"] }, \"Blue Violet\": { \"v\": [\"Mėlyna-violetinė\"] }, \"Boston Blue\": { \"v\": ['\"Boston Blue\"'] }, \"Deluge\": { \"v\": ['\"Deluge\"'] }, \"Feldspar\": { \"v\": ['\"Feldspar\"'] }, \"Gold\": { \"v\": [\"Auksas\"] }, \"Mariner\": { \"v\": ['\"Mariner\"'] }, \"Nextcloud blue\": { \"v\": ['\"Nextcloud\" mėlyna'] }, \"Olivine\": { \"v\": ['\"Olivine\"'] }, \"Purple\": { \"v\": [\"Violetinė\"] }, \"Rosy brown\": { \"v\": [\"Rožiniai rudas\"] }, \"Whiskey\": { \"v\": ['\"Whiskey\"'] }, \"White\": { \"v\": [\"Balta\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"mn\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Хар\"] }, \"Blue Violet\": { \"v\": [\"Цэнхэр ягаан\"] }, \"Boston Blue\": { \"v\": [\"Бостон цэнхэр\"] }, \"Deluge\": { \"v\": [\"Делюж\"] }, \"Feldspar\": { \"v\": [\"Фельдспар\"] }, \"Gold\": { \"v\": [\"Алтан\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud цэнхэр\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Нил ягаан\"] }, \"Rosy brown\": { \"v\": [\"Ягаан бор\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Цагаан\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Черный\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Белый\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Svart\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Fältspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Vit\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنش‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hr\", \"t\": { \"Actions\": { \"v\": [\"Radnje\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"mn\", \"t\": { \"Actions\": { \"v\": [\"Үйлдлүүд\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیت‌ها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخاب‌گر شکلک\"] }, \"Flags\": { \"v\": [\"پرچم‌ها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلک‌ها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکان‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hr\", \"t\": { \"Activities\": { \"v\": [\"Aktivnosti\"] }, \"Animals & Nature\": { \"v\": [\"Životinje i priroda\"] }, \"Custom\": { \"v\": [\"Prlagođeno\"] }, \"Dark skin tone\": { \"v\": [\"Tamna nijansa\"] }, \"Emoji picker\": { \"v\": [\"Odabir emojija\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana i piće\"] }, \"Frequently used\": { \"v\": [\"Često korišteno\"] }, \"Light skin tone\": { \"v\": [\"Svjetla nijansa\"] }, \"Medium dark skin tone\": { \"v\": [\"Srednje tamna nijansa\"] }, \"Medium light skin tone\": { \"v\": [\"Srednje svjetla nijansa\"] }, \"Medium skin tone\": { \"v\": [\"Srednja nijansa\"] }, \"Neutral skin color\": { \"v\": [\"Neutralna nijansa\"] }, \"Objects\": { \"v\": [\"Objekti\"] }, \"People & Body\": { \"v\": [\"Ljudi i tijelo\"] }, \"Pick an emoji\": { \"v\": [\"Odaberi emoji\"] }, \"Search emoji\": { \"v\": [\"Traži emoji\"] }, \"Search results\": { \"v\": [\"Rezultati pretraživanja\"] }, \"Selected\": { \"v\": [\"Odabrano\"] }, \"Skin tone\": { \"v\": [\"Nijansa\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlići i emocije\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Putovanja i mjesta\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Dark skin tone\": { \"v\": [\"Sötét bőrtónus\"] }, \"Emoji picker\": { \"v\": [\"Emodzsiválasztó\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Light skin tone\": { \"v\": [\"Világos bőrtónus\"] }, \"Medium dark skin tone\": { \"v\": [\"Közepesen sötét bőrtónus\"] }, \"Medium light skin tone\": { \"v\": [\"Közepesen világos bőrtónus\"] }, \"Medium skin tone\": { \"v\": [\"Közepes bőrtónus\"] }, \"Neutral skin color\": { \"v\": [\"Semleges bőrszín\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search emoji\": { \"v\": [\"Emodzsi keresése\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Selected\": { \"v\": [\"Kijelölve\"] }, \"Skin tone\": { \"v\": [\"Bőrtónus\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Dark skin tone\": { \"v\": [\"Warna kulit gelap\"] }, \"Emoji picker\": { \"v\": [\"Pemilih emoji\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Light skin tone\": { \"v\": [\"Warna kulit terang\"] }, \"Medium dark skin tone\": { \"v\": [\"Warna kulit sedang gelap\"] }, \"Medium light skin tone\": { \"v\": [\"Warna kulit sedang terang\"] }, \"Medium skin tone\": { \"v\": [\"Warna kulit sedang\"] }, \"Neutral skin color\": { \"v\": [\"Warna kulit netral\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Skin tone\": { \"v\": [\"Warna kulit\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Dark skin tone\": { \"v\": [\"Tamsios odos atspalvis\"] }, \"Emoji picker\": { \"v\": [\"Emociukų parinkiklis\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Light skin tone\": { \"v\": [\"Šviesus odos tonas\"] }, \"Medium dark skin tone\": { \"v\": [\"Vidutinio tamsumo odos tonas\"] }, \"Medium light skin tone\": { \"v\": [\"Vidutinio šviesumo odos tonas\"] }, \"Medium skin tone\": { \"v\": [\"Vidutinis odos tonas\"] }, \"Neutral skin color\": { \"v\": [\"Neutrali odos spalva\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti emociuką\"] }, \"Search emoji\": { \"v\": [\"Ieškoti emociukų\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Selected\": { \"v\": [\"Pasirinkta\"] }, \"Skin tone\": { \"v\": [\"Odos tonas\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"mn\", \"t\": { \"Activities\": { \"v\": [\"Үйл ажиллагаа\"] }, \"Animals & Nature\": { \"v\": [\"Амьтан & Байгаль\"] }, \"Custom\": { \"v\": [\"Тусгай\"] }, \"Dark skin tone\": { \"v\": [\"Бараан арьсны өнгө\"] }, \"Emoji picker\": { \"v\": [\"Эможи сонгогч\"] }, \"Flags\": { \"v\": [\"Тугнууд\"] }, \"Food & Drink\": { \"v\": [\"Хоол & Ундаа\"] }, \"Frequently used\": { \"v\": [\"Байнга хэрэглэдэг\"] }, \"Light skin tone\": { \"v\": [\"Цайвар арьсны өнгө\"] }, \"Medium dark skin tone\": { \"v\": [\"Дунд бараан арьсны өнгө\"] }, \"Medium light skin tone\": { \"v\": [\"Дунд цайвар арьсны өнгө\"] }, \"Medium skin tone\": { \"v\": [\"Дунд арьсны өнгө\"] }, \"Neutral skin color\": { \"v\": [\"Саарал арьсны өнгө\"] }, \"Objects\": { \"v\": [\"Объектууд\"] }, \"People & Body\": { \"v\": [\"Хүмүүс & Бие\"] }, \"Pick an emoji\": { \"v\": [\"Эможи сонгох\"] }, \"Search emoji\": { \"v\": [\"Эможи хайх\"] }, \"Search results\": { \"v\": [\"Хайлтын үр дүн\"] }, \"Selected\": { \"v\": [\"Сонгосон\"] }, \"Skin tone\": { \"v\": [\"Арьсны өнгө\"] }, \"Smileys & Emotion\": { \"v\": [\"Инээмсэглэл & Сэтгэл хөдлөл\"] }, \"Symbols\": { \"v\": [\"Тэмдэгтүүд\"] }, \"Travel & Places\": { \"v\": [\"Аялал & Газрууд\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژه‌های موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj u projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Povežite stavke s projektom kako biste ih lakše pronašli\"] }, \"Failed to add the item to the project\": { \"v\": [\"Neuspjelo dodavanje stavke u projekt\"] }, \"Failed to create a project\": { \"v\": [\"Neuspjelo stvaranje projekta\"] }, \"Failed to rename the project\": { \"v\": [\"Neuspjelo preimenovanje projekta\"] }, \"Type to search for existing projects\": { \"v\": [\"Upišite za pretraživanje postojećih projekata\"] } } }, { \"l\": \"hu\", \"t\": { \"Add to a project\": { \"v\": [\"Hozzáadás egy projekthez\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Kapcsoljon elemeket egy projekthez, hogy könnyebben megtalálhatók legyenek\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nem sikerült az elem projekthez adása\"] }, \"Failed to create a project\": { \"v\": [\"Nem sikerült a projekt létrehozása\"] }, \"Failed to rename the project\": { \"v\": [\"Nem sikerült a projekt átnevezése\"] }, \"Type to search for existing projects\": { \"v\": [\"Gépeljen a meglévő projektek kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Add to a project\": { \"v\": [\"Tambahkan ke proyek\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Hubungkan item ke proyek agar lebih mudah ditemukan\"] }, \"Failed to add the item to the project\": { \"v\": [\"Gagal menambahkan item ke proyek\"] }, \"Failed to create a project\": { \"v\": [\"Gagal membuat proyek\"] }, \"Failed to rename the project\": { \"v\": [\"Gagal mengganti nama proyek\"] }, \"Type to search for existing projects\": { \"v\": [\"Ketik untuk mencari proyek yang sudah ada\"] } } }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Add to a project\": { \"v\": [\"Pridėti prie projekto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Priskirkite elementus prie projekto, kad juos būtų lengviau rasti\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepavyko pridėti elemento prie projekto\"] }, \"Failed to create a project\": { \"v\": [\"Nepavyko sukurti projekto\"] }, \"Failed to rename the project\": { \"v\": [\"Nepavyko pervadinti projekto\"] }, \"Type to search for existing projects\": { \"v\": [\"Įveskite tekstą, kad surastumėte esamus projektus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"mn\", \"t\": { \"Add to a project\": { \"v\": [\"Төсөлд нэмэх\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Хялбар олохын тулд зүйлсийг төсөлтэй холбоно уу\"] }, \"Failed to add the item to the project\": { \"v\": [\"Зүйлийг төсөлд нэмж чадсангүй\"] }, \"Failed to create a project\": { \"v\": [\"Төсөл үүсгэж чадсангүй\"] }, \"Failed to rename the project\": { \"v\": [\"Төслийн нэрийг солиж чадсангүй\"] }, \"Type to search for existing projects\": { \"v\": [\"Одоо байгаа төслүүдийг хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t7 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Mezerník\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Slet\"] }, \"Enter\": { \"v\": [\"Indtast\"] }, \"Escape\": { \"v\": [\"Afbrud\"] }, \"Shift\": { \"v\": [\"Skift\"] }, \"Space\": { \"v\": [\"Mellemrum\"] }, \"Tab\": { \"v\": [\"Faneblad\"] } } }, { \"l\": \"de\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Eingabe\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"el\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Kustutusklahv\"] }, \"Enter\": { \"v\": [\"Sisestusklahv\"] }, \"Escape\": { \"v\": [\"Esc-klahv\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Tühikuklahv\"] }, \"Tab\": { \"v\": [\"Tabulaator\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Suppr\"] }, \"Enter\": { \"v\": [\"Entrée\"] }, \"Escape\": { \"v\": [\"Echap\"] }, \"Shift\": { \"v\": [\"Maj\"] }, \"Space\": { \"v\": [\"Espace\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ga\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Scrios\"] }, \"Enter\": { \"v\": [\"Iontráil\"] }, \"Escape\": { \"v\": [\"Éalú\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spás\"] }, \"Tab\": { \"v\": [\"Táb\"] } } }, { \"l\": \"gl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Eliminar\"] }, \"Enter\": { \"v\": [\"Intro\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Maiús.\"] }, \"Space\": { \"v\": [\"Espazo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Obriši\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"hu\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Törlés\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Szóköz\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"id\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Hapus\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spasi\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lo\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ລຶບ\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Ištrinti\"] }, \"Enter\": { \"v\": [\"Įvesti\"] }, \"Escape\": { \"v\": [\"Išeiti\"] }, \"Shift\": { \"v\": ['\"Shift\"'] }, \"Space\": { \"v\": ['\"Space\"'] }, \"Tab\": { \"v\": ['\"Tab\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Избриши\"] }, \"Enter\": { \"v\": [\"Ентер\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Празно место\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"mn\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Устгах\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Excluir\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Barra de espaço\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Пробел\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Обриши\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sv\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"tr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"O'chirish\"] }, \"Enter\": { \"v\": [\"Kirish\"] }, \"Escape\": { \"v\": [\"Orqaga\"] }, \"Shift\": { \"v\": [\"Yuqorigi\"] }, \"Space\": { \"v\": [\"Bo'shliq\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"空白鍵\"] }, \"Tab\": { \"v\": [\"Tab鍵\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hr\", \"t\": { \"Any link\": { \"v\": [\"Bilo koja poveznica\"] } } }, { \"l\": \"hu\", \"t\": { \"Any link\": { \"v\": [\"Bármely hivatkozás\"] } } }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Any link\": { \"v\": [\"Bet kuri nuoroda\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Any link\": { \"v\": [\"Аливаа холбоос\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemi haldajaga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Sve što je podijeljeno s istom grupom ljudi prikazat će se ovdje\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Pogreška pri dohvaćanju povezanih resursa. Ako imate pitanja, obratite se svom administratoru sustava.\"] }, \"Related resources\": { \"v\": [\"Povezani resursi\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hiba a kapcsolódó erőforrások lekérése során. Ha kérdése van, vegye fel a kapcsolatot a rendszergazdával.\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Čia bus rodomi visi įrašai, kuriais pasidalinta su ta pačia žmonių grupe\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kilo klaida gaunant susijusius išteklius. Jei turite klausimų, kreipkitės į sistemos administratorių.\"] }, \"Related resources\": { \"v\": [\"Susiję ištekliai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"mn\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Ижил бүлэг хүмүүстэй хуваалцсан бүх зүйл энд харагдана\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Холбогдох нөөцүүдийг авахад алдаа гарлаа. Асуулт байвал системийн администратортай холбогдоно уу.\"] }, \"Related resources\": { \"v\": [\"Холбогдох нөөцүүд\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Tunnuspilt: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Tunnuspilt: {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar od {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar od {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avataras\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} avataras, {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-ийн аватар\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}-ийн аватар, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برون‌خط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"away\": { \"v\": [\"odsutan\"] }, \"busy\": { \"v\": [\"zauzet\"] }, \"do not disturb\": { \"v\": [\"ne smetaj\"] }, \"invisible\": { \"v\": [\"nevidljiv\"] }, \"offline\": { \"v\": [\"izvan mreže\"] }, \"online\": { \"v\": [\"na mreži\"] } } }, { \"l\": \"hu\", \"t\": { \"away\": { \"v\": [\"távol\"] }, \"busy\": { \"v\": [\"foglalt\"] }, \"do not disturb\": { \"v\": [\"ne zavarjanak\"] }, \"invisible\": { \"v\": [\"láthatatlan\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"busy\": { \"v\": [\"sibuk\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"invisible\": { \"v\": [\"tidak terlihat\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"away\": { \"v\": [\"pasišalinęs\"] }, \"busy\": { \"v\": [\"užsiėmęs\"] }, \"do not disturb\": { \"v\": [\"netrukdyti\"] }, \"invisible\": { \"v\": [\"nematomas\"] }, \"offline\": { \"v\": [\"neprisijungęs\"] }, \"online\": { \"v\": [\"prisijungęs\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"mn\", \"t\": { \"away\": { \"v\": [\"хол байна\"] }, \"busy\": { \"v\": [\"завгүй\"] }, \"do not disturb\": { \"v\": [\"бүү саад бол\"] }, \"invisible\": { \"v\": [\"үл харагдах\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutivalija\"] }, \"Smart Picker\": { \"v\": [\"Nutivalija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخاب‌گر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Natrag na odabir pružatelja\"] }, \"Close Smart Picker\": { \"v\": [\"Zatvori pametni odabir\"] }, \"Smart Picker\": { \"v\": [\"Pametni odabir\"] } } }, { \"l\": \"hu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Vissza a szolgáltatóválasztáshoz\"] }, \"Close Smart Picker\": { \"v\": [\"Okos választó bezárása\"] }, \"Smart Picker\": { \"v\": [\"Okos választó\"] } } }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Grįžti į teikėjo pasirinkimą\"] }, \"Close Smart Picker\": { \"v\": [\"Uždaryti „Smart Picker“\"] }, \"Smart Picker\": { \"v\": ['\"Smart Picker\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"mn\", \"t\": { \"Back to provider selection\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн сонголт руу буцах\"] }, \"Close Smart Picker\": { \"v\": [\"Ухаалаг сонгогчийг хаах\"] }, \"Smart Picker\": { \"v\": [\"Ухаалаг сонгогч\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t13 = [{ \"l\": \"ar\", \"t\": { \"Calendar icon\": { \"v\": [\"أيقونة التقويم\"] }, \"Cancel\": { \"v\": [\"إلغاء\"] }, \"Clear value\": { \"v\": [\"مَحو القيمة\"] }, \"Close time Picker\": { \"v\": [\"إغلاق لاقط الوقت\"] }, \"Datepicker input\": { \"v\": [\"مُدخَلات لاقط التاريخ\"] }, \"Datepicker menu\": { \"v\": [\"قائمة لاقط التاريخ\"] }, \"Decrement hours\": { \"v\": [\"إنقاص الساعات\"] }, \"Decrement minutes\": { \"v\": [\"إنقاص الدقائق\"] }, \"Decrement seconds\": { \"v\": [\"إنقاص الثواني\"] }, \"Increment hours\": { \"v\": [\"زيادة الساعات\"] }, \"Increment minutes\": { \"v\": [\"زيادة الدقائق\"] }, \"Increment seconds\": { \"v\": [\"زيادة الثواني\"] }, \"Month picker\": { \"v\": [\"لاقط الشهر\"] }, \"Month picker overlay\": { \"v\": [\"تراكب لاقط الشهر\"] }, \"Next month\": { \"v\": [\"الشهر القادم\"] }, \"Next year\": { \"v\": [\"السنة القادمة\"] }, \"Now\": { \"v\": [\"الآن\"] }, \"Open hours overlay\": { \"v\": [\"فتح تراكب الساعات \"] }, \"Open minutes overlay\": { \"v\": [\"فتح تراكب الدقائق\"] }, \"Open months overlay\": { \"v\": [\"فتح تراكب الشهور\"] }, \"Open seconds overlay\": { \"v\": [\"فتح تراكب الثواني\"] }, \"Open time picker\": { \"v\": [\"فتح لاقط الوقت\"] }, \"Open years overlay\": { \"v\": [\"فتح تراكب السنوات\"] }, \"Pick\": { \"v\": [\"إلتقاط\"] }, \"Previous month\": { \"v\": [\"الشهر الماضي\"] }, \"Previous year\": { \"v\": [\"السنة الماضية\"] }, \"Select date\": { \"v\": [\"إختيار التاريخ\"] }, \"Select date and time\": { \"v\": [\"إختيار التاريخ والوقت\"] }, \"Select month\": { \"v\": [\"إختيار الشهر\"] }, \"Select time\": { \"v\": [\"إختيار الوقت\"] }, \"Select time range\": { \"v\": [\"إختيار المدى الزمني\"] }, \"Select week\": { \"v\": [\"إختيار الأسبوع\"] }, \"Select year\": { \"v\": [\"إختيار السنة\"] }, \"Switch AM/PM mode\": { \"v\": [\"تبديل وضعية صباحاً/مساءً\"] }, \"Time picker\": { \"v\": [\"لاقط الوقت\"] }, \"Toggle overlay\": { \"v\": [\"تبديل التراكب\"] }, \"W\": { \"v\": [\"أ\"] }, \"Year picker\": { \"v\": [\"لاقط السنة\"] }, \"Year picker overlay\": { \"v\": [\"تراكب لاقط السنة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendáře\"] }, \"Cancel\": { \"v\": [\"Storno\"] }, \"Clear value\": { \"v\": [\"Vyčistit hodnotu\"] }, \"Close time Picker\": { \"v\": [\"Zavřít výběr času\"] }, \"Datepicker input\": { \"v\": [\"Vstup výběru data\"] }, \"Datepicker menu\": { \"v\": [\"Nabídka výběru data\"] }, \"Decrement hours\": { \"v\": [\"Snížit hodiny\"] }, \"Decrement minutes\": { \"v\": [\"Snížit minuty\"] }, \"Decrement seconds\": { \"v\": [\"Snížit sekundy\"] }, \"Increment hours\": { \"v\": [\"Zvýšit hodiny\"] }, \"Increment minutes\": { \"v\": [\"Zvýšit minuty\"] }, \"Increment seconds\": { \"v\": [\"Zvýšit sekundy\"] }, \"Month picker\": { \"v\": [\"Výběr měsíce\"] }, \"Month picker overlay\": { \"v\": [\"Překryvné okno výběru měsíce\"] }, \"Next month\": { \"v\": [\"Příští měsíc\"] }, \"Next year\": { \"v\": [\"Příští rok\"] }, \"Now\": { \"v\": [\"Nyní\"] }, \"Open hours overlay\": { \"v\": [\"Otevřít překryvné okno hodin\"] }, \"Open minutes overlay\": { \"v\": [\"Otevřít překryvné okno minut\"] }, \"Open months overlay\": { \"v\": [\"Otevřít překryvné okno měsíců\"] }, \"Open seconds overlay\": { \"v\": [\"Otevřít překryvné okno sekund\"] }, \"Open time picker\": { \"v\": [\"Otevřít výběr času\"] }, \"Open years overlay\": { \"v\": [\"Otevřít překryvné okno roku\"] }, \"Pick\": { \"v\": [\"Vybrat\"] }, \"Previous month\": { \"v\": [\"Předchozí měsíc\"] }, \"Previous year\": { \"v\": [\"Předchozí rok\"] }, \"Select date\": { \"v\": [\"Vybrat datum\"] }, \"Select date and time\": { \"v\": [\"Vybrat datum a čas\"] }, \"Select month\": { \"v\": [\"Vybrat měsíc\"] }, \"Select time\": { \"v\": [\"Vybrat čas\"] }, \"Select time range\": { \"v\": [\"Vybrat časový rozsah\"] }, \"Select week\": { \"v\": [\"Vybrat týden\"] }, \"Select year\": { \"v\": [\"Vybrat rok\"] }, \"Switch AM/PM mode\": { \"v\": [\"Přepnout režim dopo/odpoledne\"] }, \"Time picker\": { \"v\": [\"Výběr času\"] }, \"Time zone\": { \"v\": [\"Časové pásmo\"] }, \"Toggle overlay\": { \"v\": [\"Vyp/zap. překryvné okno\"] }, \"W\": { \"v\": [\"T\"] }, \"Year picker\": { \"v\": [\"Výběr roku\"] }, \"Year picker overlay\": { \"v\": [\"Překryvné okno výběru roku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Annullér\"] }, \"Clear value\": { \"v\": [\"Klar værdi\"] }, \"Close time Picker\": { \"v\": [\"Nærtid Picker\"] }, \"Datepicker input\": { \"v\": [\"Datapicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datapicker menu\"] }, \"Decrement hours\": { \"v\": [\"Formindsk timer\"] }, \"Decrement minutes\": { \"v\": [\"Formindsk minutter\"] }, \"Decrement seconds\": { \"v\": [\"Formindsk sekunder\"] }, \"Increment hours\": { \"v\": [\"Forøg timer\"] }, \"Increment minutes\": { \"v\": [\"Forøg minutter\"] }, \"Increment seconds\": { \"v\": [\"Forøg sekunder\"] }, \"Month picker\": { \"v\": [\"Månedsvælger\"] }, \"Month picker overlay\": { \"v\": [\"Måneder vælger overlay\"] }, \"Next month\": { \"v\": [\"Næste måned\"] }, \"Next year\": { \"v\": [\"Næste år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Åbne timer overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Åbn minutter overlay\"] }, \"Open months overlay\": { \"v\": [\"Åbne måneder overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Åbne sekunder overlay\"] }, \"Open time picker\": { \"v\": [\"Åbent tidsvælger\"] }, \"Open years overlay\": { \"v\": [\"Åbne år overlay\"] }, \"Pick\": { \"v\": [\"Vælg\"] }, \"Previous month\": { \"v\": [\"Forrige måned\"] }, \"Previous year\": { \"v\": [\"Foregående år\"] }, \"Select date\": { \"v\": [\"Vælg dato\"] }, \"Select date and time\": { \"v\": [\"Vælg dato og tidspunkt\"] }, \"Select month\": { \"v\": [\"Vælg måned\"] }, \"Select time\": { \"v\": [\"Vælg tid\"] }, \"Select time range\": { \"v\": [\"Vælg tidsinterval\"] }, \"Select week\": { \"v\": [\"Vælg uge\"] }, \"Select year\": { \"v\": [\"Vælg år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Skift AM/PM-tilstand\"] }, \"Time picker\": { \"v\": [\"Tidsvælger\"] }, \"Time zone\": { \"v\": [\"Tidszone\"] }, \"Toggle overlay\": { \"v\": [\"Slå overlay til / fra\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"År vælger\"] }, \"Year picker overlay\": { \"v\": [\"År vælger overlay\"] } } }, { \"l\": \"de\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Calendar icon\": { \"v\": [\"Εικονίδιο ημερολογίου\"] }, \"Cancel\": { \"v\": [\"Ακύρωση\"] }, \"Clear value\": { \"v\": [\"Εκκαθάριση αξίας\"] }, \"Close time Picker\": { \"v\": [\"Κλείσιμο επιλογέα ώρας\"] }, \"Datepicker input\": { \"v\": [\"Εισαγωγή ημερομηνίας\"] }, \"Datepicker menu\": { \"v\": [\"Μενού επιλογής ημερομηνίας\"] }, \"Decrement hours\": { \"v\": [\"Μείωση ωρών\"] }, \"Decrement minutes\": { \"v\": [\"Μείωση λεπτών\"] }, \"Decrement seconds\": { \"v\": [\"Μείωση δευτερολέπτων\"] }, \"Increment hours\": { \"v\": [\"Αύξηση ωρών\"] }, \"Increment minutes\": { \"v\": [\"Αύξηση λεπτών\"] }, \"Increment seconds\": { \"v\": [\"Αύξηση δευτερολέπτων\"] }, \"Month picker\": { \"v\": [\"Επιλογή μήνα\"] }, \"Month picker overlay\": { \"v\": [\"Επικάλυψη επιλογής μήνα\"] }, \"Next month\": { \"v\": [\"Επόμενος μήνας\"] }, \"Next year\": { \"v\": [\"Επόμενο έτος\"] }, \"Now\": { \"v\": [\"Τώρα\"] }, \"Open hours overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ωρών\"] }, \"Open minutes overlay\": { \"v\": [\"Άνοιγμα επικάλυψης λεπτών\"] }, \"Open months overlay\": { \"v\": [\"Άνοιγμα επικάλυψης μηνών\"] }, \"Open seconds overlay\": { \"v\": [\"Άνοιγμα επικάλυψης δευτερολέπτων\"] }, \"Open time picker\": { \"v\": [\"Άνοιγμα επιλογέα ώρας\"] }, \"Open years overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ετών\"] }, \"Pick\": { \"v\": [\"Επιλογή\"] }, \"Previous month\": { \"v\": [\"Προηγούμενος μήνας\"] }, \"Previous year\": { \"v\": [\"Προηγούμενο έτος\"] }, \"Select date\": { \"v\": [\"Επιλογή ημερομηνίας\"] }, \"Select date and time\": { \"v\": [\"Επιλογή ημερομηνίας και ώρας\"] }, \"Select month\": { \"v\": [\"Επιλογή μήνα\"] }, \"Select time\": { \"v\": [\"Επιλογή ώρας\"] }, \"Select time range\": { \"v\": [\"Επιλογή χρονικού διαστήματος\"] }, \"Select week\": { \"v\": [\"Επιλογή εβδομάδας\"] }, \"Select year\": { \"v\": [\"Επιλογή έτους\"] }, \"Switch AM/PM mode\": { \"v\": [\"Εναλλαγή λειτουργίας AM/PM\"] }, \"Time picker\": { \"v\": [\"Επιλογή ώρας\"] }, \"Toggle overlay\": { \"v\": [\"Εναλλαγή επικάλυψης\"] }, \"W\": { \"v\": [\"Τε\"] }, \"Year picker\": { \"v\": [\"Επιλογέας έτους\"] }, \"Year picker overlay\": { \"v\": [\"Επικάλυψη επιλογέα έτους\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Calendar icon\": { \"v\": [\"Calendar icon\"] }, \"Cancel\": { \"v\": [\"Cancel\"] }, \"Clear value\": { \"v\": [\"Clear value\"] }, \"Close time Picker\": { \"v\": [\"Close time Picker\"] }, \"Datepicker input\": { \"v\": [\"Datepicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datepicker menu\"] }, \"Decrement hours\": { \"v\": [\"Decrement hours\"] }, \"Decrement minutes\": { \"v\": [\"Decrement minutes\"] }, \"Decrement seconds\": { \"v\": [\"Decrement seconds\"] }, \"Increment hours\": { \"v\": [\"Increment hours\"] }, \"Increment minutes\": { \"v\": [\"Increment minutes\"] }, \"Increment seconds\": { \"v\": [\"Increment seconds\"] }, \"Month picker\": { \"v\": [\"Month picker\"] }, \"Month picker overlay\": { \"v\": [\"Month picker overlay\"] }, \"Next month\": { \"v\": [\"Next month\"] }, \"Next year\": { \"v\": [\"Next year\"] }, \"Now\": { \"v\": [\"Now\"] }, \"Open hours overlay\": { \"v\": [\"Open hours overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Open minutes overlay\"] }, \"Open months overlay\": { \"v\": [\"Open months overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Open seconds overlay\"] }, \"Open time picker\": { \"v\": [\"Open time picker\"] }, \"Open years overlay\": { \"v\": [\"Open years overlay\"] }, \"Pick\": { \"v\": [\"Pick\"] }, \"Previous month\": { \"v\": [\"Previous month\"] }, \"Previous year\": { \"v\": [\"Previous year\"] }, \"Select date\": { \"v\": [\"Select date\"] }, \"Select date and time\": { \"v\": [\"Select date and time\"] }, \"Select month\": { \"v\": [\"Select month\"] }, \"Select time\": { \"v\": [\"Select time\"] }, \"Select time range\": { \"v\": [\"Select time range\"] }, \"Select week\": { \"v\": [\"Select week\"] }, \"Select year\": { \"v\": [\"Select year\"] }, \"Switch AM/PM mode\": { \"v\": [\"Switch AM/PM mode\"] }, \"Time picker\": { \"v\": [\"Time picker\"] }, \"Time zone\": { \"v\": [\"Time zone\"] }, \"Toggle overlay\": { \"v\": [\"Toggle overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Year picker\"] }, \"Year picker overlay\": { \"v\": [\"Year picker overlay\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendriikoon\"] }, \"Cancel\": { \"v\": [\"Katkesta\"] }, \"Clear value\": { \"v\": [\"Kustuta väärtus\"] }, \"Close time Picker\": { \"v\": [\"Sulge ajavalija\"] }, \"Datepicker input\": { \"v\": [\"Kuupäevavalija sisend\"] }, \"Datepicker menu\": { \"v\": [\"Kuupäevavalija menüü\"] }, \"Decrement hours\": { \"v\": [\"Vähenda tunde\"] }, \"Decrement minutes\": { \"v\": [\"Vähenda minuteid\"] }, \"Decrement seconds\": { \"v\": [\"Vähenda sekundeid\"] }, \"Increment hours\": { \"v\": [\"Suurenda tunde\"] }, \"Increment minutes\": { \"v\": [\"Suurenda minuteid\"] }, \"Increment seconds\": { \"v\": [\"Suurenda sekundeid\"] }, \"Month picker\": { \"v\": [\"Kuupäevavalija\"] }, \"Month picker overlay\": { \"v\": [\"Kuupäevavalija ülekatteaken\"] }, \"Next month\": { \"v\": [\"Järgmine kuu\"] }, \"Next year\": { \"v\": [\"Järgmine aasta\"] }, \"Now\": { \"v\": [\"Praegu\"] }, \"Open hours overlay\": { \"v\": [\"Ava tundide vaade\"] }, \"Open minutes overlay\": { \"v\": [\"Ava minutite vaade\"] }, \"Open months overlay\": { \"v\": [\"Ava kuude vaade\"] }, \"Open seconds overlay\": { \"v\": [\"Ava sekundite vaade\"] }, \"Open time picker\": { \"v\": [\"Ava ajavalija\"] }, \"Open years overlay\": { \"v\": [\"Ava aastate vaade\"] }, \"Pick\": { \"v\": [\"Vali\"] }, \"Previous month\": { \"v\": [\"Eelmine kuu\"] }, \"Previous year\": { \"v\": [\"Eelmine aasta\"] }, \"Select date\": { \"v\": [\"Vali kuupäev\"] }, \"Select date and time\": { \"v\": [\"Vali kuupäev ja kellaaeg\"] }, \"Select month\": { \"v\": [\"Vali kuu\"] }, \"Select time\": { \"v\": [\"Vali aeg\"] }, \"Select time range\": { \"v\": [\"Vali ajavahemik\"] }, \"Select week\": { \"v\": [\"Vali nädal\"] }, \"Select year\": { \"v\": [\"Vali aasta\"] }, \"Switch AM/PM mode\": { \"v\": [\"Vaheta AM/PM kuvamist\"] }, \"Time picker\": { \"v\": [\"Ajavalija\"] }, \"Time zone\": { \"v\": [\"Ajavöönd\"] }, \"Toggle overlay\": { \"v\": [\"Lülita ülekatteaken sisse/välja\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Aastavalija\"] }, \"Year picker overlay\": { \"v\": [\"Aastavavalija ülekatteaken\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Calendar icon\": { \"v\": [\"Icône de calendrier\"] }, \"Cancel\": { \"v\": [\"Annuler\"] }, \"Clear value\": { \"v\": [\"Effacer la valeur\"] }, \"Close time Picker\": { \"v\": [\"Fermer le sélecteur de temps\"] }, \"Datepicker input\": { \"v\": [\"Entrée du sélecteur de date\"] }, \"Datepicker menu\": { \"v\": [\"Menu du sélecteur de date\"] }, \"Decrement hours\": { \"v\": [\"Diminuer les heures\"] }, \"Decrement minutes\": { \"v\": [\"Diminuer les minutes\"] }, \"Decrement seconds\": { \"v\": [\"Diminuer les secondes\"] }, \"Increment hours\": { \"v\": [\"Augmenter les heures\"] }, \"Increment minutes\": { \"v\": [\"Augmenter les minutes\"] }, \"Increment seconds\": { \"v\": [\"Augmenter les secondes\"] }, \"Month picker\": { \"v\": [\"Sélecteur de mois\"] }, \"Month picker overlay\": { \"v\": [\"Superposition du sélecteur de mois\"] }, \"Next month\": { \"v\": [\"Mois prochain\"] }, \"Next year\": { \"v\": [\"Année prochaine\"] }, \"Now\": { \"v\": [\"Maintenant\"] }, \"Open hours overlay\": { \"v\": [\"Superposition des heures d'ouverture\"] }, \"Open minutes overlay\": { \"v\": [\"Superposition des minutes d'ouverture\"] }, \"Open months overlay\": { \"v\": [\"Superposition des mois ouverts\"] }, \"Open seconds overlay\": { \"v\": [\"Superposition des secondes ouvertes\"] }, \"Open time picker\": { \"v\": [\"Ouvrir le sélecteur de temps\"] }, \"Open years overlay\": { \"v\": [\"Superposition des années ouvertes\"] }, \"Pick\": { \"v\": [\"Choisir\"] }, \"Previous month\": { \"v\": [\"Mois précédent\"] }, \"Previous year\": { \"v\": [\"Année précédente\"] }, \"Select date\": { \"v\": [\"Sélectionnez la date\"] }, \"Select date and time\": { \"v\": [\"Sélectionnez la date et l'heure\"] }, \"Select month\": { \"v\": [\"Sélectionnez le mois\"] }, \"Select time\": { \"v\": [\"Sélectionnez l'heure\"] }, \"Select time range\": { \"v\": [\"Sélectionnez la plage horaire\"] }, \"Select week\": { \"v\": [\"Sélectionnez la semaine\"] }, \"Select year\": { \"v\": [\"Sélectionnez l'année\"] }, \"Switch AM/PM mode\": { \"v\": [\"Basculer le mode Matin/Après-midi\"] }, \"Time picker\": { \"v\": [\"Sélecteur de temps\"] }, \"Time zone\": { \"v\": [\"Fuseau horaire\"] }, \"Toggle overlay\": { \"v\": [\"Basculer la superposition\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Sélecteur d'année\"] }, \"Year picker overlay\": { \"v\": [\"Superposition du sélecteur d’année\"] } } }, { \"l\": \"ga\", \"t\": { \"Calendar icon\": { \"v\": [\"Deilbhín féilire\"] }, \"Cancel\": { \"v\": [\"Cealaigh\"] }, \"Clear value\": { \"v\": [\"Luach soiléir\"] }, \"Close time Picker\": { \"v\": [\"Roghnóir am dúnta\"] }, \"Datepicker input\": { \"v\": [\"Ionchur datepicker\"] }, \"Datepicker menu\": { \"v\": [\"Roghchlár datepicker\"] }, \"Decrement hours\": { \"v\": [\"Laghdaigh uaireanta\"] }, \"Decrement minutes\": { \"v\": [\"Laghdaigh nóiméid \"] }, \"Decrement seconds\": { \"v\": [\"Laghdaigh soicind\"] }, \"Increment hours\": { \"v\": [\"Méadaigh uaireanta\"] }, \"Increment minutes\": { \"v\": [\"Méadaigh nóiméid\"] }, \"Increment seconds\": { \"v\": [\"Méadaigh soicind\"] }, \"Month picker\": { \"v\": [\"Roghnóir míosa\"] }, \"Month picker overlay\": { \"v\": [\"Forleagan roghnóir míosa\"] }, \"Next month\": { \"v\": [\"An mhí seo chugainn\"] }, \"Next year\": { \"v\": [\"An bhliain seo chugainn\"] }, \"Now\": { \"v\": [\"Anois\"] }, \"Open hours overlay\": { \"v\": [\"Forleagan uaireanta oscailte\"] }, \"Open minutes overlay\": { \"v\": [\"Forleagan nóiméad oscailte\"] }, \"Open months overlay\": { \"v\": [\"Forleagan míonna oscailte\"] }, \"Open seconds overlay\": { \"v\": [\"Soicind oscailte forleagan\"] }, \"Open time picker\": { \"v\": [\"Roghnóir am oscailte\"] }, \"Open years overlay\": { \"v\": [\"Forleagan blianta oscailte\"] }, \"Pick\": { \"v\": [\"Pioc\"] }, \"Previous month\": { \"v\": [\"An mhí roimhe sin\"] }, \"Previous year\": { \"v\": [\"Bhliain roimhe sin\"] }, \"Select date\": { \"v\": [\"Roghnaigh dáta\"] }, \"Select date and time\": { \"v\": [\"Roghnaigh dáta agus am\"] }, \"Select month\": { \"v\": [\"Roghnaigh mí\"] }, \"Select time\": { \"v\": [\"Roghnaigh am\"] }, \"Select time range\": { \"v\": [\"Roghnaigh raon ama\"] }, \"Select week\": { \"v\": [\"Roghnaigh seachtain\"] }, \"Select year\": { \"v\": [\"Roghnaigh bliain\"] }, \"Switch AM/PM mode\": { \"v\": [\"Athraigh mód AM/PM\"] }, \"Time picker\": { \"v\": [\"Roghnóir ama\"] }, \"Time zone\": { \"v\": [\"Crios ama\"] }, \"Toggle overlay\": { \"v\": [\"Scoránaigh forleagan\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Roghnóir bliana\"] }, \"Year picker overlay\": { \"v\": [\"Forleagan roghnóir bliana\"] } } }, { \"l\": \"gl\", \"t\": { \"Calendar icon\": { \"v\": [\"Icona do calendario\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar o valor\"] }, \"Close time Picker\": { \"v\": [\"Pechar o Selector de hora\"] }, \"Datepicker input\": { \"v\": [\"Entrada do selector de datas\"] }, \"Datepicker menu\": { \"v\": [\"Menú do selector de datas\"] }, \"Decrement hours\": { \"v\": [\"Diminuír as horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuír os minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuír os segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar as horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar os minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar os segundos\"] }, \"Month picker\": { \"v\": [\"Selector de mes\"] }, \"Month picker overlay\": { \"v\": [\"Superposición do selector de mes\"] }, \"Next month\": { \"v\": [\"Próximo mes\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir a superposición de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir a superposición de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir a superposición de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir a superposición de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir o selector de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir a superposición de anos\"] }, \"Pick\": { \"v\": [\"Escoller\"] }, \"Previous month\": { \"v\": [\"Mes pasado\"] }, \"Previous year\": { \"v\": [\"Ano pasado\"] }, \"Select date\": { \"v\": [\"Seleccione a data\"] }, \"Select date and time\": { \"v\": [\"Seleccione a data e a hora\"] }, \"Select month\": { \"v\": [\"Seleccione o mes\"] }, \"Select time\": { \"v\": [\"Seleccione a hora\"] }, \"Select time range\": { \"v\": [\" Seleccione o intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Seleccione a semana\"] }, \"Select year\": { \"v\": [\"Seleccione o ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar o modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Selector de hora\"] }, \"Time zone\": { \"v\": [\"Fuso horario\"] }, \"Toggle overlay\": { \"v\": [\"Alternar a sobreposición\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Selector de ano\"] }, \"Year picker overlay\": { \"v\": [\"Superposición do selector de ano\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendara\"] }, \"Cancel\": { \"v\": [\"Otkaži\"] }, \"Clear value\": { \"v\": [\"Očisti vrijednost\"] }, \"Close time Picker\": { \"v\": [\"Zatvori odabir vremena\"] }, \"Datepicker input\": { \"v\": [\"Unos birača datuma\"] }, \"Datepicker menu\": { \"v\": [\"Izbornik birača datuma\"] }, \"Decrement hours\": { \"v\": [\"Smanji sate\"] }, \"Decrement minutes\": { \"v\": [\"Smanji minute\"] }, \"Decrement seconds\": { \"v\": [\"Smanji sekunde\"] }, \"Increment hours\": { \"v\": [\"Povećaj sate\"] }, \"Increment minutes\": { \"v\": [\"Povećaj minute\"] }, \"Increment seconds\": { \"v\": [\"Povećaj sekunde\"] }, \"Month picker\": { \"v\": [\"Odabir mjeseca\"] }, \"Month picker overlay\": { \"v\": [\"Sloj za odabir mjeseca\"] }, \"Next month\": { \"v\": [\"Sljedeći mjesec\"] }, \"Next year\": { \"v\": [\"Sljedeća godina\"] }, \"Now\": { \"v\": [\"Sada\"] }, \"Open hours overlay\": { \"v\": [\"Otvori sloj za odabir sati\"] }, \"Open minutes overlay\": { \"v\": [\"Otvori sloj za odabir minuta\"] }, \"Open months overlay\": { \"v\": [\"Otvori sloj za odabir mjeseci\"] }, \"Open seconds overlay\": { \"v\": [\"Otvori sloj za odabir sekundi\"] }, \"Open time picker\": { \"v\": [\"Otvori birač vremena\"] }, \"Open years overlay\": { \"v\": [\"Otvori sloj za odabir godina\"] }, \"Pick\": { \"v\": [\"Odaberi\"] }, \"Previous month\": { \"v\": [\"Prethodni mjesec\"] }, \"Previous year\": { \"v\": [\"Prethodna godina\"] }, \"Select date\": { \"v\": [\"Odaberi datum\"] }, \"Select date and time\": { \"v\": [\"Odaberi datum i vrijeme\"] }, \"Select month\": { \"v\": [\"Odaberi mjesec\"] }, \"Select time\": { \"v\": [\"Odaberi vrijeme\"] }, \"Select time range\": { \"v\": [\"Odaberi vremenski raspon\"] }, \"Select week\": { \"v\": [\"Odaberi tjedan\"] }, \"Select year\": { \"v\": [\"Odaberi godinu\"] }, \"Switch AM/PM mode\": { \"v\": [\"Prebaci AM/PM način\"] }, \"Time picker\": { \"v\": [\"Odabir vremena\"] }, \"Time zone\": { \"v\": [\"Vremenska zona\"] }, \"Toggle overlay\": { \"v\": [\"Uključi/isključi sloj\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Odabir godine\"] }, \"Year picker overlay\": { \"v\": [\"Sloj za odabir godine\"] } } }, { \"l\": \"hu\", \"t\": { \"Calendar icon\": { \"v\": [\"Naptárikon\"] }, \"Cancel\": { \"v\": [\"Mégse\"] }, \"Clear value\": { \"v\": [\"Érték törlése\"] }, \"Close time Picker\": { \"v\": [\"Időválasztó bezárása\"] }, \"Datepicker input\": { \"v\": [\"Dátumválasztó bemenet\"] }, \"Datepicker menu\": { \"v\": [\"Dátumválasztó menü\"] }, \"Decrement hours\": { \"v\": [\"Órák csökkentése\"] }, \"Decrement minutes\": { \"v\": [\"Percek csökkentése\"] }, \"Decrement seconds\": { \"v\": [\"Másodpercek csökkentése\"] }, \"Increment hours\": { \"v\": [\"Órák növelése\"] }, \"Increment minutes\": { \"v\": [\"Percek növelése\"] }, \"Increment seconds\": { \"v\": [\"Másodpercek növelése\"] }, \"Month picker\": { \"v\": [\"Hónapválasztó\"] }, \"Month picker overlay\": { \"v\": [\"Hónapválasztó átfedés\"] }, \"Next month\": { \"v\": [\"Következő hónap\"] }, \"Next year\": { \"v\": [\"Következő év\"] }, \"Now\": { \"v\": [\"Most\"] }, \"Open hours overlay\": { \"v\": [\"Órák átfedésének megnyitása\"] }, \"Open minutes overlay\": { \"v\": [\"Percek átfedésének megnyitása\"] }, \"Open months overlay\": { \"v\": [\"Hónapok átfedésének megnyitása\"] }, \"Open seconds overlay\": { \"v\": [\"Másodpercek átfedésének megnyitása\"] }, \"Open time picker\": { \"v\": [\"Időválasztó megnyitása\"] }, \"Open years overlay\": { \"v\": [\"Évek átfedésének megnyitása\"] }, \"Pick\": { \"v\": [\"Válasszon\"] }, \"Previous month\": { \"v\": [\"Előző hónap\"] }, \"Previous year\": { \"v\": [\"Előző év\"] }, \"Select date\": { \"v\": [\"Válasszon dátumot\"] }, \"Select date and time\": { \"v\": [\"Válasszon dátumot és időt\"] }, \"Select month\": { \"v\": [\"Válasszon hónapot\"] }, \"Select time\": { \"v\": [\"Válasszon időt\"] }, \"Select time range\": { \"v\": [\"Válasszon időszakot\"] }, \"Select week\": { \"v\": [\"Válasszon hetet\"] }, \"Select year\": { \"v\": [\"Válasszon évet\"] }, \"Switch AM/PM mode\": { \"v\": [\"Váltás de./du. módra\"] }, \"Time picker\": { \"v\": [\"Időválasztó\"] }, \"Time zone\": { \"v\": [\"Időzóna\"] }, \"Toggle overlay\": { \"v\": [\"Átfedés be/ki\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Évválasztó\"] }, \"Year picker overlay\": { \"v\": [\"Évválasztó átfedés\"] } } }, { \"l\": \"id\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikon kalender\"] }, \"Cancel\": { \"v\": [\"Batal\"] }, \"Clear value\": { \"v\": [\"Hapus nilai\"] }, \"Close time Picker\": { \"v\": [\"Tutup pemilih waktu\"] }, \"Datepicker input\": { \"v\": [\"Input pemilih tanggal\"] }, \"Datepicker menu\": { \"v\": [\"Menu pemilih tanggal\"] }, \"Decrement hours\": { \"v\": [\"Kurangi jam\"] }, \"Decrement minutes\": { \"v\": [\"Kurangi menit\"] }, \"Decrement seconds\": { \"v\": [\"Kurangi detik\"] }, \"Increment hours\": { \"v\": [\"Tambah jam\"] }, \"Increment minutes\": { \"v\": [\"Tambah menit\"] }, \"Increment seconds\": { \"v\": [\"Tambah detik\"] }, \"Month picker\": { \"v\": [\"Pemilih bulan\"] }, \"Month picker overlay\": { \"v\": [\"Overlay pemilih bulan\"] }, \"Next month\": { \"v\": [\"Bulan berikutnya\"] }, \"Next year\": { \"v\": [\"Tahun berikutnya\"] }, \"Now\": { \"v\": [\"Sekarang\"] }, \"Open hours overlay\": { \"v\": [\"Buka overlay jam\"] }, \"Open minutes overlay\": { \"v\": [\"Buka overlay menit\"] }, \"Open months overlay\": { \"v\": [\"Buka overlay bulan\"] }, \"Open seconds overlay\": { \"v\": [\"Buka overlay detik\"] }, \"Open time picker\": { \"v\": [\"Buka pemilih waktu\"] }, \"Open years overlay\": { \"v\": [\"Buka overlay tahun\"] }, \"Pick\": { \"v\": [\"Pilih\"] }, \"Previous month\": { \"v\": [\"Bulan sebelumnya\"] }, \"Previous year\": { \"v\": [\"Tahun sebelumnya\"] }, \"Select date\": { \"v\": [\"Pilih tanggal\"] }, \"Select date and time\": { \"v\": [\"Pilih tanggal dan waktu\"] }, \"Select month\": { \"v\": [\"Pilih bulan\"] }, \"Select time\": { \"v\": [\"Pilih waktu\"] }, \"Select time range\": { \"v\": [\"Pilih rentang waktu\"] }, \"Select week\": { \"v\": [\"Pilih minggu\"] }, \"Select year\": { \"v\": [\"Pilih tahun\"] }, \"Switch AM/PM mode\": { \"v\": [\"Ganti mode AM/PM\"] }, \"Time picker\": { \"v\": [\"Pemilih waktu\"] }, \"Time zone\": { \"v\": [\"Zona waktu\"] }, \"Toggle overlay\": { \"v\": [\"Alihkan overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Pemilih tahun\"] }, \"Year picker overlay\": { \"v\": [\"Overlay pemilih tahun\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Calendar icon\": { \"v\": [\"カレンダーのアイコン\"] }, \"Cancel\": { \"v\": [\"キャンセル\"] }, \"Clear value\": { \"v\": [\"値をクリア\"] }, \"Close time Picker\": { \"v\": [\"時間ピッカーを閉じる\"] }, \"Datepicker input\": { \"v\": [\"データピッカー入力\"] }, \"Datepicker menu\": { \"v\": [\"データピッカーメニュー\"] }, \"Decrement hours\": { \"v\": [\"時間を減らす\"] }, \"Decrement minutes\": { \"v\": [\"分を減らす\"] }, \"Decrement seconds\": { \"v\": [\"秒を減らす\"] }, \"Increment hours\": { \"v\": [\"時間を増やす\"] }, \"Increment minutes\": { \"v\": [\"分を増やす\"] }, \"Increment seconds\": { \"v\": [\"秒を増やす\"] }, \"Month picker\": { \"v\": [\"月ピッカー\"] }, \"Month picker overlay\": { \"v\": [\"月ピッカーオーバーレイ\"] }, \"Next month\": { \"v\": [\"次月\"] }, \"Next year\": { \"v\": [\"次年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"時間オーバーレイを開く\"] }, \"Open minutes overlay\": { \"v\": [\"分オーバーレイを開く\"] }, \"Open months overlay\": { \"v\": [\"月オーバーレイを開く\"] }, \"Open seconds overlay\": { \"v\": [\"秒オーバーレイを開く\"] }, \"Open time picker\": { \"v\": [\"時間ピッカーを開く\"] }, \"Open years overlay\": { \"v\": [\"年オーバーレイを開く\"] }, \"Pick\": { \"v\": [\"選択\"] }, \"Previous month\": { \"v\": [\"前月\"] }, \"Previous year\": { \"v\": [\"前年\"] }, \"Select date\": { \"v\": [\"日付を選択\"] }, \"Select date and time\": { \"v\": [\"日付と時刻を選択\"] }, \"Select month\": { \"v\": [\"月を選択\"] }, \"Select time\": { \"v\": [\"時刻を選択\"] }, \"Select time range\": { \"v\": [\"時間範囲を選択\"] }, \"Select week\": { \"v\": [\"週を選択\"] }, \"Select year\": { \"v\": [\"年を選択\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PMモードの切り替え\"] }, \"Time picker\": { \"v\": [\"時刻ピッカー\"] }, \"Time zone\": { \"v\": [\"タイムゾーン\"] }, \"Toggle overlay\": { \"v\": [\"オーバーレイの切り替え\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年ピッカー\"] }, \"Year picker overlay\": { \"v\": [\"年ピッカーオーバーレイ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Calendar icon\": { \"v\": [\"캘린더 아이콘\"] }, \"Cancel\": { \"v\": [\"취소\"] }, \"Clear value\": { \"v\": [\"값 지우기\"] }, \"Close time Picker\": { \"v\": [\"시간 선택기 닫기\"] }, \"Datepicker input\": { \"v\": [\"날짜 선택기 입력\"] }, \"Datepicker menu\": { \"v\": [\"날짜 입력기 메뉴\"] }, \"Decrement hours\": { \"v\": [\"시 감소\"] }, \"Decrement minutes\": { \"v\": [\"분 감소\"] }, \"Decrement seconds\": { \"v\": [\"초 감소\"] }, \"Increment hours\": { \"v\": [\"시 증가\"] }, \"Increment minutes\": { \"v\": [\"분 증가\"] }, \"Increment seconds\": { \"v\": [\"초 증가\"] }, \"Month picker\": { \"v\": [\"월 선택기\"] }, \"Month picker overlay\": { \"v\": [\"월 선택기 오버레이\"] }, \"Next month\": { \"v\": [\"다음 달\"] }, \"Next year\": { \"v\": [\"다음 해\"] }, \"Now\": { \"v\": [\"현재\"] }, \"Open hours overlay\": { \"v\": [\"시 오버레이 열기\"] }, \"Open minutes overlay\": { \"v\": [\"분 오버레이 열기\"] }, \"Open months overlay\": { \"v\": [\"월 오버레이 열기\"] }, \"Open seconds overlay\": { \"v\": [\"초 오버레이 열기\"] }, \"Open time picker\": { \"v\": [\"시간 선택기 열기\"] }, \"Open years overlay\": { \"v\": [\"년 오버레이 열기\"] }, \"Pick\": { \"v\": [\"선택\"] }, \"Previous month\": { \"v\": [\"이전 달\"] }, \"Previous year\": { \"v\": [\"이전 해\"] }, \"Select date\": { \"v\": [\"날짜 선택\"] }, \"Select date and time\": { \"v\": [\"날짜와 시간 선택\"] }, \"Select month\": { \"v\": [\"월 선택\"] }, \"Select time\": { \"v\": [\"시간 선택\"] }, \"Select time range\": { \"v\": [\"시간 구간 선택\"] }, \"Select week\": { \"v\": [\"주 선택\"] }, \"Select year\": { \"v\": [\"년도 선택\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM 모드 전환\"] }, \"Time picker\": { \"v\": [\"시간 선택기\"] }, \"Time zone\": { \"v\": [\"시간대\"] }, \"Toggle overlay\": { \"v\": [\"오버레이 토글\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"년도 선택기\"] }, \"Year picker overlay\": { \"v\": [\"년도 선택기 오버레이\"] } } }, { \"l\": \"lo\", \"t\": { \"Calendar icon\": { \"v\": [\"ໄອຄອນປະຕິທິນ\"] }, \"Cancel\": { \"v\": [\"ຍົກເລີກ\"] }, \"Clear value\": { \"v\": [\"ລຶບຄ່າ\"] }, \"Close time Picker\": { \"v\": [\"ປິດໂຕເລືອກເວລາ\"] }, \"Datepicker input\": { \"v\": [\"ຊ່ອງປ້ອນວັນທີ\"] }, \"Datepicker menu\": { \"v\": [\"ເມນູໂຕເລືອກວັນທີ\"] }, \"Decrement hours\": { \"v\": [\"ຫຼຸດຊົ່ວໂມງ\"] }, \"Decrement minutes\": { \"v\": [\"ຫຼຸດນາທີ\"] }, \"Decrement seconds\": { \"v\": [\"ຫຼຸດວິນາທີ\"] }, \"Increment hours\": { \"v\": [\"ເພີ່ມຊົ່ວໂມງ\"] }, \"Increment minutes\": { \"v\": [\"ເພີ່ມນາທີ\"] }, \"Increment seconds\": { \"v\": [\"ເພີ່ມວິນາທີ\"] }, \"Month picker\": { \"v\": [\"ໂຕເລືອກເດືອນ\"] }, \"Month picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກເດືອນ\"] }, \"Next month\": { \"v\": [\"ເດືອນໜ້າ\"] }, \"Next year\": { \"v\": [\"ປີໜ້າ\"] }, \"Now\": { \"v\": [\"ຕອນນີ້\"] }, \"Open hours overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກຊົ່ວໂມງ\"] }, \"Open minutes overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກນາທີ\"] }, \"Open months overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກເດືອນ\"] }, \"Open seconds overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກວິນາທີ\"] }, \"Open time picker\": { \"v\": [\"ເປີດໂຕເລືອກເວລາ\"] }, \"Open years overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກປີ\"] }, \"Pick\": { \"v\": [\"ເລືອກ\"] }, \"Previous month\": { \"v\": [\"ເດືອນກ່ອນ\"] }, \"Previous year\": { \"v\": [\"ປີກ່ອນ\"] }, \"Select date\": { \"v\": [\"ເລືອກວັນທີ\"] }, \"Select date and time\": { \"v\": [\"ເລືອກວັນທີ ແລະ ເວລາ\"] }, \"Select month\": { \"v\": [\"ເລືອກເດືອນ\"] }, \"Select time\": { \"v\": [\"ເລືອກເວລາ\"] }, \"Select time range\": { \"v\": [\"ເລືອກຊ່ວງເວລາ\"] }, \"Select week\": { \"v\": [\"ເລືອກອາທິດ\"] }, \"Select year\": { \"v\": [\"ເລືອກປີ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ສະຫຼັບໂໝດ AM/PM\"] }, \"Time picker\": { \"v\": [\"ໂຕເລືອກເວລາ\"] }, \"Time zone\": { \"v\": [\"ເຂດເວລາ\"] }, \"Toggle overlay\": { \"v\": [\"ສະຫຼັບໜ້າຕ່າງ\"] }, \"W\": { \"v\": [\"ອ\"] }, \"Year picker\": { \"v\": [\"ໂຕເລືອກປີ\"] }, \"Year picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກປີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendoriaus piktograma\"] }, \"Cancel\": { \"v\": [\"Atsisakyti\"] }, \"Clear value\": { \"v\": [\"Aiški vertė\"] }, \"Close time Picker\": { \"v\": [\"Uždaryti laiko pasirinkimo langą\"] }, \"Datepicker input\": { \"v\": [\"Datos rinkiklio įvestis\"] }, \"Datepicker menu\": { \"v\": [\"Datos rinkiklio meniu\"] }, \"Decrement hours\": { \"v\": [\"Sumažinkite valandas\"] }, \"Decrement minutes\": { \"v\": [\"Sumažinkite minutes\"] }, \"Decrement seconds\": { \"v\": [\"Sumažinkite sekundes\"] }, \"Increment hours\": { \"v\": [\"Padidinkite valandas\"] }, \"Increment minutes\": { \"v\": [\"Padidinkite minutes\"] }, \"Increment seconds\": { \"v\": [\"Padidinkite sekundes\"] }, \"Month picker\": { \"v\": [\"Mėnesio pasirinkimas\"] }, \"Month picker overlay\": { \"v\": [\"Mėnesio parinkiklio langas\"] }, \"Next month\": { \"v\": [\"Kitą mėnesį\"] }, \"Next year\": { \"v\": [\"Kiti metai\"] }, \"Now\": { \"v\": [\"Dabar\"] }, \"Open hours overlay\": { \"v\": [\"Atidaryti valandų pasirinkimą\"] }, \"Open minutes overlay\": { \"v\": [\"Atidaryti minučių pasirinkimą\"] }, \"Open months overlay\": { \"v\": [\"Atidaryti mėnesių pasirinkimą\"] }, \"Open seconds overlay\": { \"v\": [\"Atidaryti sekundžių pasirinkimą\"] }, \"Open time picker\": { \"v\": [\"Atverti laiko pasirinkimo langą\"] }, \"Open years overlay\": { \"v\": [\"Atidaryti metų pasirinkimą\"] }, \"Pick\": { \"v\": [\"Pasirinkti\"] }, \"Previous month\": { \"v\": [\"Ankstesnis mėnesis\"] }, \"Previous year\": { \"v\": [\"Ankstesni metai\"] }, \"Select date\": { \"v\": [\"Pasirinkti datą\"] }, \"Select date and time\": { \"v\": [\"Pasirinkti datą ir laiką\"] }, \"Select month\": { \"v\": [\"Pasirinkti mėnesį\"] }, \"Select time\": { \"v\": [\"Pasirinkti laiką\"] }, \"Select time range\": { \"v\": [\"Pasirinkti laikotarpį\"] }, \"Select week\": { \"v\": [\"Pasirinkti savaitę\"] }, \"Select year\": { \"v\": [\"Pasirinkti metus\"] }, \"Switch AM/PM mode\": { \"v\": [\"Perjungti AM/PM režimą\"] }, \"Time picker\": { \"v\": [\"Laiko parinkiklis\"] }, \"Time zone\": { \"v\": [\"Laiko juosta\"] }, \"Toggle overlay\": { \"v\": [\"Perjungti pasirinkimo langą\"] }, \"W\": { \"v\": ['\"W\"'] }, \"Year picker\": { \"v\": [\"Metų parinkiklis\"] }, \"Year picker overlay\": { \"v\": [\"Metų pasirinkimo langas\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона за календар\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Исчисти вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори избирач на време\"] }, \"Datepicker input\": { \"v\": [\"Поле за избор на датум\"] }, \"Datepicker menu\": { \"v\": [\"Мени за избор на датум\"] }, \"Decrement hours\": { \"v\": [\"Намали часови\"] }, \"Decrement minutes\": { \"v\": [\"Намали минути\"] }, \"Decrement seconds\": { \"v\": [\"Намали секунди\"] }, \"Increment hours\": { \"v\": [\"Зголеми часови\"] }, \"Increment minutes\": { \"v\": [\"Зголеми минути\"] }, \"Increment seconds\": { \"v\": [\"Зголеми секунди\"] }, \"Month picker\": { \"v\": [\"Избор на месец\"] }, \"Month picker overlay\": { \"v\": [\"Надолжен избор на месец\"] }, \"Next month\": { \"v\": [\"Следен месец\"] }, \"Next year\": { \"v\": [\"Следна година\"] }, \"Now\": { \"v\": [\"Сега\"] }, \"Open hours overlay\": { \"v\": [\"Отвори преклоп за часови\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори преклоп за минути\"] }, \"Open months overlay\": { \"v\": [\"Отвори преклоп за месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори преклоп за секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори избор на време\"] }, \"Open years overlay\": { \"v\": [\"Отвори преклоп за години\"] }, \"Pick\": { \"v\": [\"Избери\"] }, \"Previous month\": { \"v\": [\"Предходен месец\"] }, \"Previous year\": { \"v\": [\"Предходна година\"] }, \"Select date\": { \"v\": [\"Избери датум\"] }, \"Select date and time\": { \"v\": [\"Избери датум и време\"] }, \"Select month\": { \"v\": [\"Избери месец\"] }, \"Select time\": { \"v\": [\"Избери време\"] }, \"Select time range\": { \"v\": [\"Избери времески опсег\"] }, \"Select week\": { \"v\": [\"Избери недела\"] }, \"Select year\": { \"v\": [\"Избери година\"] }, \"Switch AM/PM mode\": { \"v\": [\"Смени AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Избирач на време\"] }, \"Time zone\": { \"v\": [\"Временска зона\"] }, \"Toggle overlay\": { \"v\": [\"Вклучи/исклучи преклоп\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Избор на година\"] }, \"Year picker overlay\": { \"v\": [\"Надолжен избор на година\"] } } }, { \"l\": \"mn\", \"t\": { \"Calendar icon\": { \"v\": [\"Календарийн дүрс\"] }, \"Cancel\": { \"v\": [\"Цуцлах\"] }, \"Clear value\": { \"v\": [\"Утгыг цэвэрлэх\"] }, \"Close time Picker\": { \"v\": [\"Цаг сонгогчийг хаах\"] }, \"Datepicker input\": { \"v\": [\"Огноо сонгогчийн оролт\"] }, \"Datepicker menu\": { \"v\": [\"Огноо сонгогчийн цэс\"] }, \"Decrement hours\": { \"v\": [\"Цагийг бууруулах\"] }, \"Decrement minutes\": { \"v\": [\"Минутыг бууруулах\"] }, \"Decrement seconds\": { \"v\": [\"Секундыг бууруулах\"] }, \"Increment hours\": { \"v\": [\"Цагийг нэмэгдүүлэх\"] }, \"Increment minutes\": { \"v\": [\"Минутыг нэмэгдүүлэх\"] }, \"Increment seconds\": { \"v\": [\"Секундыг нэмэгдүүлэх\"] }, \"Month picker\": { \"v\": [\"Сар сонгогч\"] }, \"Month picker overlay\": { \"v\": [\"Сар сонгогчийн давхарга\"] }, \"Next month\": { \"v\": [\"Дараа сар\"] }, \"Next year\": { \"v\": [\"Дараа жил\"] }, \"Now\": { \"v\": [\"Одоо\"] }, \"Open hours overlay\": { \"v\": [\"Цагийн давхаргыг нээх\"] }, \"Open minutes overlay\": { \"v\": [\"Минутын давхаргыг нээх\"] }, \"Open months overlay\": { \"v\": [\"Сарын давхаргыг нээх\"] }, \"Open seconds overlay\": { \"v\": [\"Секундын давхаргыг нээх\"] }, \"Open time picker\": { \"v\": [\"Цаг сонгогчийг нээх\"] }, \"Open years overlay\": { \"v\": [\"Жилийн давхаргыг нээх\"] }, \"Pick\": { \"v\": [\"Сонгох\"] }, \"Previous month\": { \"v\": [\"Өмнөх сар\"] }, \"Previous year\": { \"v\": [\"Өмнөх жил\"] }, \"Select date\": { \"v\": [\"Огноо сонгох\"] }, \"Select date and time\": { \"v\": [\"Огноо, цаг сонгох\"] }, \"Select month\": { \"v\": [\"Сар сонгох\"] }, \"Select time\": { \"v\": [\"Цаг сонгох\"] }, \"Select time range\": { \"v\": [\"Цагийн хүрээ сонгох\"] }, \"Select week\": { \"v\": [\"Долоо хоног сонгох\"] }, \"Select year\": { \"v\": [\"Жил сонгох\"] }, \"Switch AM/PM mode\": { \"v\": [\"ҮӨ/ҮХ горимыг солих\"] }, \"Time picker\": { \"v\": [\"Цаг сонгогч\"] }, \"Time zone\": { \"v\": [\"Цагийн бүс\"] }, \"Toggle overlay\": { \"v\": [\"Давхаргыг сэлгэх\"] }, \"W\": { \"v\": [\"Д\"] }, \"Year picker\": { \"v\": [\"Жил сонгогч\"] }, \"Year picker overlay\": { \"v\": [\"Жил сонгогчийн давхарга\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalender-pictogram\"] }, \"Cancel\": { \"v\": [\"Annuleren\"] }, \"Clear value\": { \"v\": [\"Waarde wissen\"] }, \"Close time Picker\": { \"v\": [\"Tijdkiezer sluiten\"] }, \"Datepicker input\": { \"v\": [\"Datumkiezer invoer\"] }, \"Datepicker menu\": { \"v\": [\"Datumkiezer menu\"] }, \"Decrement hours\": { \"v\": [\"Uren verminderen\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verminderen\"] }, \"Decrement seconds\": { \"v\": [\"Seconden verminderen\"] }, \"Increment hours\": { \"v\": [\"Uren vermeerderen\"] }, \"Increment minutes\": { \"v\": [\"Minuten vermeerderen\"] }, \"Increment seconds\": { \"v\": [\"Seconden vermeerderen\"] }, \"Month picker\": { \"v\": [\"Maandkiezer\"] }, \"Month picker overlay\": { \"v\": [\"Maandkiezer-overlay\"] }, \"Next month\": { \"v\": [\"Volgende maand\"] }, \"Next year\": { \"v\": [\"Volgend jaar\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Uren-overlay openen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-overlay openen\"] }, \"Open months overlay\": { \"v\": [\"Maanden-overlay openen\"] }, \"Open seconds overlay\": { \"v\": [\"Seconden-overlay openen\"] }, \"Open time picker\": { \"v\": [\"Tijdkiezer openen\"] }, \"Open years overlay\": { \"v\": [\"Jaren-overlay openen\"] }, \"Pick\": { \"v\": [\"Kiezen\"] }, \"Previous month\": { \"v\": [\"Vorige maand\"] }, \"Previous year\": { \"v\": [\"Vorig jaar\"] }, \"Select date\": { \"v\": [\"Selecteer datum\"] }, \"Select date and time\": { \"v\": [\"Selecteer datum en tijd\"] }, \"Select month\": { \"v\": [\"Selecteer maand\"] }, \"Select time\": { \"v\": [\"Selecteer tijd\"] }, \"Select time range\": { \"v\": [\"Selecteer tijdsbereik\"] }, \"Select week\": { \"v\": [\"Selecteer week\"] }, \"Select year\": { \"v\": [\"Selecteer jaar\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM-modus wisselen\"] }, \"Time picker\": { \"v\": [\"Tijdkiezer\"] }, \"Time zone\": { \"v\": [\"Tijdzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay wisselen\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jaarkiezer\"] }, \"Year picker overlay\": { \"v\": [\"Jaarkiezer-overlay\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar Seletor de tempo\"] }, \"Datepicker input\": { \"v\": [\"entrada do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de meses\"] }, \"Month picker overlay\": { \"v\": [\"Sobreposição do seletor de meses\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir sobreposição de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir sobreposição de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir sobreposição de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir sobreposição de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de tempo\"] }, \"Open years overlay\": { \"v\": [\"Abrir sobreposição de anos\"] }, \"Pick\": { \"v\": [\"Escolher\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecione data\"] }, \"Select date and time\": { \"v\": [\"Selecione data e hora\"] }, \"Select month\": { \"v\": [\"Selecione mês\"] }, \"Select time\": { \"v\": [\"Selecione hora\"] }, \"Select time range\": { \"v\": [\"Selecione intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Selecione semana\"] }, \"Select year\": { \"v\": [\"Selecione ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de tempo\"] }, \"Time zone\": { \"v\": [\"Fuso horário\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Sobreposição do seletor de ano\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar seletor de hora\"] }, \"Datepicker input\": { \"v\": [\"Campo do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"Menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de mês\"] }, \"Month picker overlay\": { \"v\": [\"Janela do seletor de mês\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir janela de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir janela de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir janela de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir janela de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir janela de anos\"] }, \"Pick\": { \"v\": [\"Selecionar\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecionar data\"] }, \"Select date and time\": { \"v\": [\"Selecionar data e hora\"] }, \"Select month\": { \"v\": [\"Selecionar mês\"] }, \"Select time\": { \"v\": [\"Selecionar hora\"] }, \"Select time range\": { \"v\": [\"Selecionar intervalo de horas\"] }, \"Select week\": { \"v\": [\"Selecionar semana\"] }, \"Select year\": { \"v\": [\"Selecionar ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de hora\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Janela do seletor de ano\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Отмена\"] }, \"Clear value\": { \"v\": [\"Очистить значение\"] }, \"Close time Picker\": { \"v\": [\"Закрыть выбор времени\"] }, \"Datepicker input\": { \"v\": [\"Поле выбора даты\"] }, \"Datepicker menu\": { \"v\": [\"Меню выбора даты\"] }, \"Decrement hours\": { \"v\": [\"Уменьшить количество часов\"] }, \"Decrement minutes\": { \"v\": [\"Уменьшить количество минут\"] }, \"Decrement seconds\": { \"v\": [\"Уменьшить количество секунд\"] }, \"Increment hours\": { \"v\": [\"Увеличить количество часов\"] }, \"Increment minutes\": { \"v\": [\"Увеличить количество минут\"] }, \"Increment seconds\": { \"v\": [\"Увеличить количество секунд\"] }, \"Month picker\": { \"v\": [\"Выбор месяца\"] }, \"Month picker overlay\": { \"v\": [\"Окно выбора месяца\"] }, \"Next month\": { \"v\": [\"Следующий месяц\"] }, \"Next year\": { \"v\": [\"Следующий год\"] }, \"Now\": { \"v\": [\"Сейчас\"] }, \"Open hours overlay\": { \"v\": [\"Открыть окно выбора часов\"] }, \"Open minutes overlay\": { \"v\": [\"Открыть окно выбора минут\"] }, \"Open months overlay\": { \"v\": [\"Открыть окно выбора месяца\"] }, \"Open seconds overlay\": { \"v\": [\"Открыть окно выбора секунд\"] }, \"Open time picker\": { \"v\": [\"Открыть средство выбора времени\"] }, \"Open years overlay\": { \"v\": [\"Открыть окно выбора года\"] }, \"Pick\": { \"v\": [\"Выбор\"] }, \"Previous month\": { \"v\": [\"Предыдущий месяц\"] }, \"Previous year\": { \"v\": [\"Предыдущий год\"] }, \"Select date\": { \"v\": [\"Выбрать дату\"] }, \"Select date and time\": { \"v\": [\"Выбрать дату и время\"] }, \"Select month\": { \"v\": [\"Выбрать месяц\"] }, \"Select time\": { \"v\": [\"Выбрать время\"] }, \"Select time range\": { \"v\": [\"Выбрать временной диапазон\"] }, \"Select week\": { \"v\": [\"Выбрать неделю\"] }, \"Select year\": { \"v\": [\"Выбрать год\"] }, \"Switch AM/PM mode\": { \"v\": [\"Переключение режима AM/PM\"] }, \"Time picker\": { \"v\": [\"Выбор времени\"] }, \"Time zone\": { \"v\": [\"Часовой пояс\"] }, \"Toggle overlay\": { \"v\": [\"Переключить панель\"] }, \"W\": { \"v\": [\"Н\"] }, \"Year picker\": { \"v\": [\"Выбор года\"] }, \"Year picker overlay\": { \"v\": [\"Окно выбора года\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона календара\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Обриши вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори бирач времена\"] }, \"Datepicker input\": { \"v\": [\"Улаз бирача датума\"] }, \"Datepicker menu\": { \"v\": [\"Мени бирача датума\"] }, \"Decrement hours\": { \"v\": [\"Умањи сате\"] }, \"Decrement minutes\": { \"v\": [\"Умањи минуте\"] }, \"Decrement seconds\": { \"v\": [\"Умањи секунде\"] }, \"Increment hours\": { \"v\": [\"Увећај сате\"] }, \"Increment minutes\": { \"v\": [\"Увећај минуте\"] }, \"Increment seconds\": { \"v\": [\"Увећај секунде\"] }, \"Month picker\": { \"v\": [\"Бирач месеца\"] }, \"Month picker overlay\": { \"v\": [\"Маска бирача месеца\"] }, \"Next month\": { \"v\": [\"Наредни месец\"] }, \"Next year\": { \"v\": [\"Наредна година\"] }, \"Now\": { \"v\": [\"Сада\"] }, \"Open hours overlay\": { \"v\": [\"Отвори маску сати\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори маску минута\"] }, \"Open months overlay\": { \"v\": [\"Отвори маску месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори маску секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори бирач времена\"] }, \"Open years overlay\": { \"v\": [\"Отвори маску година\"] }, \"Pick\": { \"v\": [\"Изабери\"] }, \"Previous month\": { \"v\": [\"Претходни месец\"] }, \"Previous year\": { \"v\": [\"Претходна година\"] }, \"Select date\": { \"v\": [\"Изаберите датум\"] }, \"Select date and time\": { \"v\": [\"Изаберите датум и време\"] }, \"Select month\": { \"v\": [\"Изаберите месец\"] }, \"Select time\": { \"v\": [\"Изаберите време\"] }, \"Select time range\": { \"v\": [\"Изаберите опсег времена\"] }, \"Select week\": { \"v\": [\"Изаберите недељу\"] }, \"Select year\": { \"v\": [\"Изаберите годину\"] }, \"Switch AM/PM mode\": { \"v\": [\"Укљ./Искљ. AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Бирач времена\"] }, \"Toggle overlay\": { \"v\": [\"Укљ./Искљ. маску\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Бирач године\"] }, \"Year picker overlay\": { \"v\": [\"Маска бирача године\"] } } }, { \"l\": \"sv\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Avbryt\"] }, \"Clear value\": { \"v\": [\"Rensa värde\"] }, \"Close time Picker\": { \"v\": [\"Stäng tidsväljaren\"] }, \"Datepicker input\": { \"v\": [\"Inmatning för datumväljare\"] }, \"Datepicker menu\": { \"v\": [\"Datumväljarmeny\"] }, \"Decrement hours\": { \"v\": [\"Minska timmar\"] }, \"Decrement minutes\": { \"v\": [\"Minska minuter\"] }, \"Decrement seconds\": { \"v\": [\"Minska sekunder\"] }, \"Increment hours\": { \"v\": [\"Öka timmar\"] }, \"Increment minutes\": { \"v\": [\"Öka minuter\"] }, \"Increment seconds\": { \"v\": [\"Öka sekunder\"] }, \"Month picker\": { \"v\": [\"Månadsväljare\"] }, \"Month picker overlay\": { \"v\": [\"Månadsväljarens panel\"] }, \"Next month\": { \"v\": [\"Nästa månad\"] }, \"Next year\": { \"v\": [\"Nästa år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Öppna timmespanel\"] }, \"Open minutes overlay\": { \"v\": [\"Öppna minutpanel\"] }, \"Open months overlay\": { \"v\": [\"Öppna månadspanel\"] }, \"Open seconds overlay\": { \"v\": [\"Öppna sekundpanel\"] }, \"Open time picker\": { \"v\": [\"Öppna tidsväljaren\"] }, \"Open years overlay\": { \"v\": [\"Öppna årspanel\"] }, \"Pick\": { \"v\": [\"Välj\"] }, \"Previous month\": { \"v\": [\"Föregående månad\"] }, \"Previous year\": { \"v\": [\"Föregående år\"] }, \"Select date\": { \"v\": [\"Välj datum\"] }, \"Select date and time\": { \"v\": [\"Välj datum och tid\"] }, \"Select month\": { \"v\": [\"Välj månad\"] }, \"Select time\": { \"v\": [\"Välj tid\"] }, \"Select time range\": { \"v\": [\"Välj tidsintervall\"] }, \"Select week\": { \"v\": [\"Välj vecka\"] }, \"Select year\": { \"v\": [\"Välj år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Växla mellan AM/PM-läge\"] }, \"Time picker\": { \"v\": [\"Tidsväljare\"] }, \"Time zone\": { \"v\": [\"Tidszon\"] }, \"Toggle overlay\": { \"v\": [\"Växla panel\"] }, \"W\": { \"v\": [\"V\"] }, \"Year picker\": { \"v\": [\"Årsväljare\"] }, \"Year picker overlay\": { \"v\": [\"Årsväljarens panel\"] } } }, { \"l\": \"tr\", \"t\": { \"Calendar icon\": { \"v\": [\"Takvim simgesi\"] }, \"Cancel\": { \"v\": [\"İptal\"] }, \"Clear value\": { \"v\": [\"Değeri temizle\"] }, \"Close time Picker\": { \"v\": [\"Zaman seçiciyi kapat\"] }, \"Datepicker input\": { \"v\": [\"Tarih seçici girişi\"] }, \"Datepicker menu\": { \"v\": [\"Tarih seçici menüsü\"] }, \"Decrement hours\": { \"v\": [\"Azalma saati\"] }, \"Decrement minutes\": { \"v\": [\"Azalma dakikası\"] }, \"Decrement seconds\": { \"v\": [\"Azalma saniyesi\"] }, \"Increment hours\": { \"v\": [\"Artma saati\"] }, \"Increment minutes\": { \"v\": [\"Artma dakikası\"] }, \"Increment seconds\": { \"v\": [\"Artma saniyesi\"] }, \"Month picker\": { \"v\": [\"Ay seçici\"] }, \"Month picker overlay\": { \"v\": [\"Ay seçici kaplaması\"] }, \"Next month\": { \"v\": [\"Sonraki ay\"] }, \"Next year\": { \"v\": [\"Sonraki yıl\"] }, \"Now\": { \"v\": [\"Şimdi\"] }, \"Open hours overlay\": { \"v\": [\"Açık saatler kaplaması\"] }, \"Open minutes overlay\": { \"v\": [\"Dakika kaplamasını aç\"] }, \"Open months overlay\": { \"v\": [\"Ay kaplamasını aç\"] }, \"Open seconds overlay\": { \"v\": [\"Saniye kaplamasını aç\"] }, \"Open time picker\": { \"v\": [\"Saat seçiciyi aç\"] }, \"Open years overlay\": { \"v\": [\"Yıl kaplamasını aç\"] }, \"Pick\": { \"v\": [\"Seçin\"] }, \"Previous month\": { \"v\": [\"Önceki ay\"] }, \"Previous year\": { \"v\": [\"Önceki yıl\"] }, \"Select date\": { \"v\": [\"Tarih seçin\"] }, \"Select date and time\": { \"v\": [\"Tarih ve saat seçin\"] }, \"Select month\": { \"v\": [\"Ay seçin\"] }, \"Select time\": { \"v\": [\"Saat seçin\"] }, \"Select time range\": { \"v\": [\"Saat aralığı seçin\"] }, \"Select week\": { \"v\": [\"Hafta seçin\"] }, \"Select year\": { \"v\": [\"Yıl seçin\"] }, \"Switch AM/PM mode\": { \"v\": [\"ÖÖ/ÖS kipine geç\"] }, \"Time picker\": { \"v\": [\"Saat seçici\"] }, \"Time zone\": { \"v\": [\"Saat dilimi\"] }, \"Toggle overlay\": { \"v\": [\"Kaplamayı aç/kapat\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yıl seçici\"] }, \"Year picker overlay\": { \"v\": [\"Yıl seçici kaplaması\"] } } }, { \"l\": \"uk\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Скасувати\"] }, \"Clear value\": { \"v\": [\"Очистити значення\"] }, \"Close time Picker\": { \"v\": [\"Закрити вибір часу\"] }, \"Datepicker input\": { \"v\": [\"Вибір дати\"] }, \"Datepicker menu\": { \"v\": [\"Меню вибору дати\"] }, \"Decrement hours\": { \"v\": [\"Зменшення годин\"] }, \"Decrement minutes\": { \"v\": [\"Зменшення хвилин\"] }, \"Decrement seconds\": { \"v\": [\"Зменшення секунд\"] }, \"Increment hours\": { \"v\": [\"Збільшення годин\"] }, \"Increment minutes\": { \"v\": [\"Збільшення хвилин\"] }, \"Increment seconds\": { \"v\": [\"Збільшення секунд\"] }, \"Month picker\": { \"v\": [\"Вибір місяця\"] }, \"Month picker overlay\": { \"v\": [\"Напис вибору місяця\"] }, \"Next month\": { \"v\": [\"Наступний місяць\"] }, \"Next year\": { \"v\": [\"Наступний рік\"] }, \"Now\": { \"v\": [\"Зараз\"] }, \"Open hours overlay\": { \"v\": [\"Відкрити напис годин\"] }, \"Open minutes overlay\": { \"v\": [\"Відкрити напис хвилин\"] }, \"Open months overlay\": { \"v\": [\"Відкрити напис місяців\"] }, \"Open seconds overlay\": { \"v\": [\"Відкрити напис секунд\"] }, \"Open time picker\": { \"v\": [\"Відкрити вибір часу\"] }, \"Open years overlay\": { \"v\": [\"Відкрити напис років\"] }, \"Pick\": { \"v\": [\"Вибрати\"] }, \"Previous month\": { \"v\": [\"Попередній місяць\"] }, \"Previous year\": { \"v\": [\"Попередній рік\"] }, \"Select date\": { \"v\": [\"Вибрати дату\"] }, \"Select date and time\": { \"v\": [\"Вибрати дату та час\"] }, \"Select month\": { \"v\": [\"Вибрати місяць\"] }, \"Select time\": { \"v\": [\"Вибрати час\"] }, \"Select time range\": { \"v\": [\"Вибрати проміжок часу\"] }, \"Select week\": { \"v\": [\"Вибрати тиждень\"] }, \"Select year\": { \"v\": [\"Вибрати рік\"] }, \"Switch AM/PM mode\": { \"v\": [\"Перемкнути показ по полудні/до полудня\"] }, \"Time picker\": { \"v\": [\"Вибір часу\"] }, \"Toggle overlay\": { \"v\": [\"Перемкнути напис\"] }, \"W\": { \"v\": [\"Тиж.\"] }, \"Year picker\": { \"v\": [\"Вибір року\"] }, \"Year picker overlay\": { \"v\": [\"Напис вибору року\"] } } }, { \"l\": \"uz\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendar belgisi\"] }, \"Cancel\": { \"v\": [\"Bekor qilish\"] }, \"Clear value\": { \"v\": [\"Qiymatni tozalash\"] }, \"Close time Picker\": { \"v\": [\"Vaqtni tanlash vositasini yopish\"] }, \"Datepicker input\": { \"v\": [\"Sana tanlash vositasi kiritish\"] }, \"Datepicker menu\": { \"v\": [\"Sana tanlash menyusi\"] }, \"Decrement hours\": { \"v\": [\"Ish vaqtini qisqartirish\"] }, \"Decrement minutes\": { \"v\": [\"Daqiqalarni kamaytirish\"] }, \"Decrement seconds\": { \"v\": [\"Soniyalarni kamaytirish\"] }, \"Increment hours\": { \"v\": [\"Ish soatlarini oshirish\"] }, \"Increment minutes\": { \"v\": [\"Daqiqalarni oshiring\"] }, \"Increment seconds\": { \"v\": [\"Soniyalarni ko'paytirish\"] }, \"Month picker\": { \"v\": [\"Oyni tanlovchi\"] }, \"Month picker overlay\": { \"v\": [\"Oyni tanlash vositasi qoplamasi\"] }, \"Next month\": { \"v\": [\"Keyingi oy\"] }, \"Next year\": { \"v\": [\"Keyingi yil\"] }, \"Now\": { \"v\": [\"Hozir\"] }, \"Open hours overlay\": { \"v\": [\"Ochiq ish soatlari\"] }, \"Open minutes overlay\": { \"v\": [\"Ochiq daqiqalar qoplamasi\"] }, \"Open months overlay\": { \"v\": [\"Ochiq oylik qoplama\"] }, \"Open seconds overlay\": { \"v\": [\"Ochiq soniyalar qoplamasi\"] }, \"Open time picker\": { \"v\": [\"Vaqt tanlagichni ochish\"] }, \"Open years overlay\": { \"v\": [\"Yillar qoplamasini ochish\"] }, \"Pick\": { \"v\": [\"Tanlash\"] }, \"Previous month\": { \"v\": [\"Oldingi oy\"] }, \"Previous year\": { \"v\": [\"O'tgan yil\"] }, \"Select date\": { \"v\": [\"Sana tanlang\"] }, \"Select date and time\": { \"v\": [\"Sana va vaqtni tanlang\"] }, \"Select month\": { \"v\": [\"Oyni tanlang\"] }, \"Select time\": { \"v\": [\"Oyni tanlang\"] }, \"Select time range\": { \"v\": [\"Vaqt oralig'ini tanlang\"] }, \"Select week\": { \"v\": [\"Haftani tanlang\"] }, \"Select year\": { \"v\": [\"Yilni tanlang\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM rejimini almashtiring\"] }, \"Time picker\": { \"v\": [\"Vaqtni tanlovchi\"] }, \"Time zone\": { \"v\": [\"Vaqt mintaqasi\"] }, \"Toggle overlay\": { \"v\": [\"Qoplamani almashtirish\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yilni tanlovchi\"] }, \"Year picker overlay\": { \"v\": [\"Yilni tanlash vositasi\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"週\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnita muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Cancel changes\": { \"v\": [\"Otkaži promjene\"] }, \"Confirm changes\": { \"v\": [\"Potvrdi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Cancel changes\": { \"v\": [\"Atsisakyti pakeitimų\"] }, \"Confirm changes\": { \"v\": [\"Patvirtinti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Cancel changes\": { \"v\": [\"Өөрчлөлтийг цуцлах\"] }, \"Confirm changes\": { \"v\": [\"Өөрчлөлтийг баталгаажуулах\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hr\", \"t\": { \"Change name\": { \"v\": [\"Promjeni naziv\"] }, \"Close sidebar\": { \"v\": [\"Zatvori bočnu traku\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Otvori bočnu traku\"] } } }, { \"l\": \"hu\", \"t\": { \"Change name\": { \"v\": [\"Név módosítása\"] }, \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] }, \"Open sidebar\": { \"v\": [\"Oldalsáv megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Buka bilah sisi\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Change name\": { \"v\": [\"Pakeisti vardą\"] }, \"Close sidebar\": { \"v\": [\"Užverti šoninę juostą\"] }, \"Favorite\": { \"v\": [\"Mėgstamiausias\"] }, \"Open sidebar\": { \"v\": [\"Atverti šoninę juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"mn\", \"t\": { \"Change name\": { \"v\": [\"Нэр солих\"] }, \"Close sidebar\": { \"v\": [\"Хажуугийн самбарыг хаах\"] }, \"Favorite\": { \"v\": [\"Дуртай\"] }, \"Open sidebar\": { \"v\": [\"Хажуугийн самбарыг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear search\": { \"v\": [\"Očisti pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear search\": { \"v\": [\"Keresés törlése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear search\": { \"v\": [\"Išvalyti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear search\": { \"v\": [\"Хайлтыг цэвэрлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenda valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجه‌ای\"] }, \"Options\": { \"v\": [\"گزینه‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear selected\": { \"v\": [\"Očisti odabir\"] }, \"Deselect {option}\": { \"v\": [\"Odznači {option}\"] }, \"No results\": { \"v\": [\"Nema rezultata\"] }, \"Options\": { \"v\": [\"Mogućnosti\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear selected\": { \"v\": [\"Kijelölés törlése\"] }, \"Deselect {option}\": { \"v\": [\"{option} kijelölésének megszüntetése\"] }, \"No results\": { \"v\": [\"Nincs találat\"] }, \"Options\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] }, \"Options\": { \"v\": [\"Opsi\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear selected\": { \"v\": [\"Išvalyti pasirinkimą\"] }, \"Deselect {option}\": { \"v\": [\"Panaikinkite {option} pasirinkimą\"] }, \"No results\": { \"v\": [\"Nėra rezultatų\"] }, \"Options\": { \"v\": [\"Parinktys\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear selected\": { \"v\": [\"Сонголтыг цэвэрлэх\"] }, \"Deselect {option}\": { \"v\": [\"{option}-г сонголтоос хасах\"] }, \"No results\": { \"v\": [\"Үр дүн алга\"] }, \"Options\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t18 = [{ \"l\": \"ar\", \"t\": { \"Clear text\": { \"v\": [\"محو النص\"] }, \"Save changes\": { \"v\": [\"حفظ التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear text\": { \"v\": [\"Borrar el testu\"] }, \"Save changes\": { \"v\": [\"Guardar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Clear text\": { \"v\": [\"Netejar text\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Clear text\": { \"v\": [\"Ryd tekst\"] }, \"Save changes\": { \"v\": [\"Gem ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"el\", \"t\": { \"Clear text\": { \"v\": [\"Εκκαθάριση κειμένου\"] }, \"Save changes\": { \"v\": [\"Αποθήκευση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear text\": { \"v\": [\"Clear text\"] }, \"Save changes\": { \"v\": [\"Save changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear text\": { \"v\": [\"Kustuta tekst\"] }, \"Save changes\": { \"v\": [\"Salvesta muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear text\": { \"v\": [\"Garbitu testua\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear text\": { \"v\": [\"پاک کردن متن\"] }, \"Save changes\": { \"v\": [\"ذخیرهٔ تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear text\": { \"v\": [\"Tyhjennä teksti\"] }, \"Save changes\": { \"v\": [\"Tallenna muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear text\": { \"v\": [\"Effacer le texte\"] }, \"Save changes\": { \"v\": [\"Sauvegarder les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear text\": { \"v\": [\"Glan téacs\"] }, \"Save changes\": { \"v\": [\"Sabháil na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear text\": { \"v\": [\"Limpar o texto\"] }, \"Save changes\": { \"v\": [\"Gardar os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Clear text\": { \"v\": [\"פינוי טקסט\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear text\": { \"v\": [\"Očisti tekst\"] }, \"Save changes\": { \"v\": [\"Spremi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear text\": { \"v\": [\"Szöveg törlése\"] }, \"Save changes\": { \"v\": [\"Változtatások mentése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear text\": { \"v\": [\"Bersihkan teks\"] }, \"Save changes\": { \"v\": [\"Simpan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Clear text\": { \"v\": [\"Hreinsa texta\"] }, \"Save changes\": { \"v\": [\"Vista breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Clear text\": { \"v\": [\"Cancella il testo\"] }, \"Save changes\": { \"v\": [\"Salva le modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear text\": { \"v\": [\"텍스트 지우기\"] }, \"Save changes\": { \"v\": [\"변경 사항 저장\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear text\": { \"v\": [\"ລຶບຂໍ້ຄວາມ\"] }, \"Save changes\": { \"v\": [\"ບັນທຶກການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear text\": { \"v\": [\"Išvalyti tekstą\"] }, \"Save changes\": { \"v\": [\"Įrašyti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear text\": { \"v\": [\"Исчисти текст\"] }, \"Save changes\": { \"v\": [\"Зачувај промени\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear text\": { \"v\": [\"Текстийг цэвэрлэх\"] }, \"Save changes\": { \"v\": [\"Өөрчлөлтийг хадгалах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear text\": { \"v\": [\"Fjern tekst\"] }, \"Save changes\": { \"v\": [\"Lagre endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear text\": { \"v\": [\"Tekst wissen\"] }, \"Save changes\": { \"v\": [\"Wijzigingen opslaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear text\": { \"v\": [\"Wyczyść tekst\"] }, \"Save changes\": { \"v\": [\"Zapisz zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Salvar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Gravar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear text\": { \"v\": [\"Șterge textul\"] }, \"Save changes\": { \"v\": [\"Salvează modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear text\": { \"v\": [\"Очистить текст\"] }, \"Save changes\": { \"v\": [\"Сохранить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear text\": { \"v\": [\"Vamazať text\"] }, \"Save changes\": { \"v\": [\"Uložiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Clear text\": { \"v\": [\"Počisti besedilo\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear text\": { \"v\": [\"Обриши текст\"] }, \"Save changes\": { \"v\": [\"Сачувај измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear text\": { \"v\": [\"Ta bort text\"] }, \"Save changes\": { \"v\": [\"Spara ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear text\": { \"v\": [\"Metni temizle\"] }, \"Save changes\": { \"v\": [\"Değişiklikleri kaydet\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear text\": { \"v\": [\"Очистити текст\"] }, \"Save changes\": { \"v\": [\"Зберегти зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear text\": { \"v\": [\"Matnni tozalash\"] }, \"Save changes\": { \"v\": [\"O'zgarishlarni saqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存修改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear text\": { \"v\": [\"清除文字\"] }, \"Save changes\": { \"v\": [\"儲存變更\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hr\", \"t\": { \"Close\": { \"v\": [\"Zatvori\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"mn\", \"t\": { \"Close\": { \"v\": [\"Хаах\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t20 = [{ \"l\": \"ar\", \"t\": { \"Close navigation\": { \"v\": [\"إغلاق التصفح\"] }, \"Open navigation\": { \"v\": [\"فتح التنقُّل\"] } } }, { \"l\": \"ast\", \"t\": { \"Close navigation\": { \"v\": [\"Zarrar la navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir la navegación\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close navigation\": { \"v\": [\"Tanca la navegació\"] }, \"Open navigation\": { \"v\": [\"Obre la navegació\"] } } }, { \"l\": \"cs\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"da\", \"t\": { \"Close navigation\": { \"v\": [\"Luk navigation\"] }, \"Open navigation\": { \"v\": [\"Åben navigation\"] } } }, { \"l\": \"de\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Close navigation\": { \"v\": [\"Κλείσιμο πλοήγησης\"] }, \"Open navigation\": { \"v\": [\"Άνοιγμα πλοήγησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close navigation\": { \"v\": [\"Close navigation\"] }, \"Open navigation\": { \"v\": [\"Open navigation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close navigation\": { \"v\": [\"Sulge navigatsioon\"] }, \"Open navigation\": { \"v\": [\"Ava liikumisvaade\"] } } }, { \"l\": \"eu\", \"t\": { \"Close navigation\": { \"v\": [\"Itxi nabigazioa\"] }, \"Open navigation\": { \"v\": [\"Ireki nabigazioa\"] } } }, { \"l\": \"fa\", \"t\": { \"Close navigation\": { \"v\": [\"بستن بخش ناوبری\"] }, \"Open navigation\": { \"v\": [\"باز کردن بخش ناوبری\"] } } }, { \"l\": \"fi\", \"t\": { \"Close navigation\": { \"v\": [\"Sulje navigaatio\"] } } }, { \"l\": \"fr\", \"t\": { \"Close navigation\": { \"v\": [\"Fermer la navigation\"] }, \"Open navigation\": { \"v\": [\"Ouvrir la navigation\"] } } }, { \"l\": \"ga\", \"t\": { \"Close navigation\": { \"v\": [\"Dún nascleanúint\"] }, \"Open navigation\": { \"v\": [\"Oscail nascleanúint\"] } } }, { \"l\": \"gl\", \"t\": { \"Close navigation\": { \"v\": [\"Pechar a navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir a navegación\"] } } }, { \"l\": \"he\", \"t\": { \"Close navigation\": { \"v\": [\"סגירת הניווט\"] }, \"Open navigation\": { \"v\": [\"פתיחת ניווט\"] } } }, { \"l\": \"hr\", \"t\": { \"Close navigation\": { \"v\": [\"Zatvori navigaciju\"] }, \"Open navigation\": { \"v\": [\"Otvori navigaciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Close navigation\": { \"v\": [\"Navigáció bezárása\"] }, \"Open navigation\": { \"v\": [\"Navigáció megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Close navigation\": { \"v\": [\"Tutup navigasi\"] }, \"Open navigation\": { \"v\": [\"Buka navigasi\"] } } }, { \"l\": \"is\", \"t\": { \"Close navigation\": { \"v\": [\"Loka leiðsagnarsleða\"] } } }, { \"l\": \"it\", \"t\": { \"Close navigation\": { \"v\": [\"Chiudi la navigazione\"] }, \"Open navigation\": { \"v\": [\"Apri la navigazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Close navigation\": { \"v\": [\"탐색 닫기\"] }, \"Open navigation\": { \"v\": [\"탐색 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close navigation\": { \"v\": [\"ປິດການນຳທາງ\"] }, \"Open navigation\": { \"v\": [\"ເປີດການນຳທາງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close navigation\": { \"v\": [\"Užverti naršymą\"] }, \"Open navigation\": { \"v\": [\"Atverti naršymą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигација\"] }, \"Open navigation\": { \"v\": [\"Отвори навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Close navigation\": { \"v\": [\"Навигацийг хаах\"] }, \"Open navigation\": { \"v\": [\"Навигацийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Close navigation\": { \"v\": [\"Lukk navigasjon\"] }, \"Open navigation\": { \"v\": [\"Åpne navigasjon\"] } } }, { \"l\": \"nl\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatie sluiten\"] }, \"Open navigation\": { \"v\": [\"Navigatie openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Close navigation\": { \"v\": [\"Zamknij nawigację\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"ro\", \"t\": { \"Close navigation\": { \"v\": [\"Închideți navigarea\"] }, \"Open navigation\": { \"v\": [\"Deschideți navigația\"] } } }, { \"l\": \"ru\", \"t\": { \"Close navigation\": { \"v\": [\"Закрыть навигацию\"] }, \"Open navigation\": { \"v\": [\"Открыть навигацию\"] } } }, { \"l\": \"sk\", \"t\": { \"Close navigation\": { \"v\": [\"Zavrieť navigáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Close navigation\": { \"v\": [\"Zapri krmarjenje\"] }, \"Open navigation\": { \"v\": [\"Odpri krmarjenje\"] } } }, { \"l\": \"sr\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигацију\"] }, \"Open navigation\": { \"v\": [\"Отвори навигацију\"] } } }, { \"l\": \"sv\", \"t\": { \"Close navigation\": { \"v\": [\"Stäng navigering\"] }, \"Open navigation\": { \"v\": [\"Öppna navigering\"] } } }, { \"l\": \"tr\", \"t\": { \"Close navigation\": { \"v\": [\"Gezinmeyi kapat\"] }, \"Open navigation\": { \"v\": [\"Gezinmeyi aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Close navigation\": { \"v\": [\"Закрити навігацію\"] }, \"Open navigation\": { \"v\": [\"Перейти до навігації\"] } } }, { \"l\": \"uz\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatsiyani yopish\"] }, \"Open navigation\": { \"v\": [\"Navigatsiyani oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close navigation\": { \"v\": [\"关闭导航\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Ahenda menüü\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Collapse menu\": { \"v\": [\"Sakrij izbornik\"] }, \"Open menu\": { \"v\": [\"Otvori izbornik\"] } } }, { \"l\": \"hu\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü összecsukása\"] }, \"Open menu\": { \"v\": [\"Menü megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Collapse menu\": { \"v\": [\"Suskleisti meniu\"] }, \"Open menu\": { \"v\": [\"Atverti meniu\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"mn\", \"t\": { \"Collapse menu\": { \"v\": [\"Цэсийг хураах\"] }, \"Open menu\": { \"v\": [\"Цэсийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Copied\": { \"v\": [\"Kopieret\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiér til udklipsholderen\"] } } }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Copied\": { \"v\": [\"Copié\"] }, \"Copy to clipboard\": { \"v\": [\"Copier dans le presse-papiers\"] } } }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Copied\": { \"v\": [\"Kopirano\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiraj u međuspremnik\"] } } }, { \"l\": \"hu\", \"t\": { \"Copied\": { \"v\": [\"Másolva\"] }, \"Copy to clipboard\": { \"v\": [\"Vágólapra másolás\"] } } }, { \"l\": \"id\", \"t\": { \"Copied\": { \"v\": [\"Disalin\"] }, \"Copy to clipboard\": { \"v\": [\"Salin ke clipboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Copied\": { \"v\": [\"복사됨\"] }, \"Copy to clipboard\": { \"v\": [\"클립보드로 복사\"] } } }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Copied\": { \"v\": [\"Nukopijuota\"] }, \"Copy to clipboard\": { \"v\": [\"Kopijuoti į iškarpinę\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Copied\": { \"v\": [\"Копирано\"] }, \"Copy to clipboard\": { \"v\": [\"Копирај во клипбоард\"] } } }, { \"l\": \"mn\", \"t\": { \"Copied\": { \"v\": [\"Хуулагдлаа\"] }, \"Copy to clipboard\": { \"v\": [\"Санах ой руу хуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Copied\": { \"v\": [\"Gekopieerd\"] }, \"Copy to clipboard\": { \"v\": [\"Kopieer naar klembord\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Copied\": { \"v\": [\"Скопировано\"] }, \"Copy to clipboard\": { \"v\": [\"Скопировать в буфер\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Copied\": { \"v\": [\"Kopierad\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiera till urklipp\"] } } }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Copied\": { \"v\": [\"Nusxalandi\"] }, \"Copy to clipboard\": { \"v\": [\"Buferga nusxalash\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Edit item\": { \"v\": [\"Uredi stavku\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Edit item\": { \"v\": [\"Taisyti elementą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"mn\", \"t\": { \"Edit item\": { \"v\": [\"Зүйлийг засварлах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t24 = [{ \"l\": \"ar\", \"t\": { \"Enable interactive view\": { \"v\": [\"تمكين المنظور التفاعلي\"] } } }, { \"l\": \"ast\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar la vista interactiva\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enable interactive view\": { \"v\": [\"Zapnout interaktivní zobrazení\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"de\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"el\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ενεργοποίηση διαδραστικής προβολής\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enable interactive view\": { \"v\": [\"Enable interactive view\"] }, \"Widget height\": { \"v\": [\"Widget height\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Lülita interaktiivne vaade sisse\"] }, \"Widget height\": { \"v\": [\"Vidina kõrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Enable interactive view\": { \"v\": [\"فعال‌سازی نمای تعاملی\"] } } }, { \"l\": \"fi\", \"t\": { \"Enable interactive view\": { \"v\": [\"Näytä vuorovaikutteinen näkymä\"] } } }, { \"l\": \"fr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activer la vue interactive\"] } } }, { \"l\": \"ga\", \"t\": { \"Enable interactive view\": { \"v\": [\"Cumasaigh amharc idirghníomhach\"] }, \"Widget height\": { \"v\": [\"Airde an ghiuirléid\"] } } }, { \"l\": \"gl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar a vista interactiva\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Omogući interaktivni prikaz\"] } } }, { \"l\": \"hu\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktív nézet engedélyezése\"] } } }, { \"l\": \"id\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktifkan tampilan interaktif\"] } } }, { \"l\": \"is\", \"t\": { \"Enable interactive view\": { \"v\": [\"Virkja gagnvirka sýn\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] }, \"Widget height\": { \"v\": [\"ウィジェットの高さ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] } } }, { \"l\": \"ko\", \"t\": { \"Enable interactive view\": { \"v\": [\"대화형 보기 활성화\"] } } }, { \"l\": \"lo\", \"t\": { \"Enable interactive view\": { \"v\": [\"ເປີດໃຊ້ງານມຸມມອງໂຕ້ຕອບ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Įgalinti interaktyvų vaizdą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Овозможи интерактивен приказ\"] } } }, { \"l\": \"mn\", \"t\": { \"Enable interactive view\": { \"v\": [\"Интерактив харагдацыг идэвхжүүлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"nl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interactieve weergave inschakelen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Włącz widok interaktywny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar visualização interativa\"] }, \"Widget height\": { \"v\": [\"Altura do widget\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar vista interativa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Enable interactive view\": { \"v\": [\"Включить интерактивный просмотр\"] } } }, { \"l\": \"sk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Povoliť interaktívny pohľad\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Укључи интерактивни приказ\"] } } }, { \"l\": \"sv\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktivera interaktiv vy\"] }, \"Widget height\": { \"v\": [\"Widget höjd\"] } } }, { \"l\": \"tr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Etkileşimli görünümü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Увімкнути інтерактивний перегляд\"] } } }, { \"l\": \"uz\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktiv ko'rinishni yoqing\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enable interactive view\": { \"v\": [\"启用交互视窗\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動視圖\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動檢視\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hr\", \"t\": { \"Enter link\": { \"v\": [\"Unesi poveznicu\"] } } }, { \"l\": \"hu\", \"t\": { \"Enter link\": { \"v\": [\"Adja meg a hivatkozást\"] } } }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enter link\": { \"v\": [\"Įvesti nuorodą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Enter link\": { \"v\": [\"Холбоос оруулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t26 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"External documentation\": { \"v\": [\"Externí dokumentace\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"External documentation\": { \"v\": [\"Ekstern dokumentation\"] } } }, { \"l\": \"de\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"el\", \"t\": { \"External documentation\": { \"v\": [\"Εξωτερική τεκμηρίωση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"External documentation\": { \"v\": [\"External documentation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentatsioon välises allikas\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"External documentation\": { \"v\": [\"Documentation externe\"] } } }, { \"l\": \"ga\", \"t\": { \"External documentation\": { \"v\": [\"Doiciméadú seachtrach\"] } } }, { \"l\": \"gl\", \"t\": { \"External documentation\": { \"v\": [\"Documentación externa\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"External documentation\": { \"v\": [\"Vanjska dokumentacija\"] } } }, { \"l\": \"hu\", \"t\": { \"External documentation\": { \"v\": [\"Külső dokumentáció\"] } } }, { \"l\": \"id\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentasi eksternal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"External documentation\": { \"v\": [\"外部ドキュメント\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"External documentation\": { \"v\": [\"외부 문서\"] } } }, { \"l\": \"lo\", \"t\": { \"External documentation\": { \"v\": [\"ເອກະສານພາຍນອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"External documentation\": { \"v\": [\"Išorinė dokumentacija\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"External documentation\": { \"v\": [\"Надворешна документација\"] } } }, { \"l\": \"mn\", \"t\": { \"External documentation\": { \"v\": [\"Гадаад баримт бичиг\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"External documentation\": { \"v\": [\"Externe documentatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"External documentation\": { \"v\": [\"Documentação externa\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"External documentation\": { \"v\": [\"Внешняя документация\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"External documentation\": { \"v\": [\"Спољна документација\"] } } }, { \"l\": \"sv\", \"t\": { \"External documentation\": { \"v\": [\"Extern dokumentation\"] } } }, { \"l\": \"tr\", \"t\": { \"External documentation\": { \"v\": [\"Dış belgeler\"] } } }, { \"l\": \"uk\", \"t\": { \"External documentation\": { \"v\": [\"Зовнішня документація\"] } } }, { \"l\": \"uz\", \"t\": { \"External documentation\": { \"v\": [\"Tashqi hujjatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }];\nconst t27 = [{ \"l\": \"ar\", \"t\": { \"Go back to the list\": { \"v\": [\"عودة إلى القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la llista\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna a la llista\"] } } }, { \"l\": \"cs\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"da\", \"t\": { \"Go back to the list\": { \"v\": [\"Tilbage til listen\"] } } }, { \"l\": \"de\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"el\", \"t\": { \"Go back to the list\": { \"v\": [\"Επιστροφή στην αρχική λίστα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Go back to the list\": { \"v\": [\"Go back to the list\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Go back to the list\": { \"v\": [\"Regresar a la lista\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Go back to the list\": { \"v\": [\"Tagasi nimekirja juurde\"] } } }, { \"l\": \"eu\", \"t\": { \"Go back to the list\": { \"v\": [\"Bueltatu zerrendara\"] } } }, { \"l\": \"fa\", \"t\": { \"Go back to the list\": { \"v\": [\"برگشت به لیست\"] } } }, { \"l\": \"fi\", \"t\": { \"Go back to the list\": { \"v\": [\"Takaisin listaan\"] } } }, { \"l\": \"fr\", \"t\": { \"Go back to the list\": { \"v\": [\"Retourner à la liste\"] } } }, { \"l\": \"ga\", \"t\": { \"Go back to the list\": { \"v\": [\"Téigh ar ais go dtí an liosta\"] } } }, { \"l\": \"gl\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver á lista\"] } } }, { \"l\": \"he\", \"t\": { \"Go back to the list\": { \"v\": [\"חזרה לרשימה\"] } } }, { \"l\": \"hr\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrati se na popis\"] } } }, { \"l\": \"hu\", \"t\": { \"Go back to the list\": { \"v\": [\"Ugrás vissza a listához\"] } } }, { \"l\": \"id\", \"t\": { \"Go back to the list\": { \"v\": [\"Kembali ke daftar\"] } } }, { \"l\": \"is\", \"t\": { \"Go back to the list\": { \"v\": [\"Fara til baka í listann\"] } } }, { \"l\": \"it\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna all'elenco\"] } } }, { \"l\": \"ja\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ko\", \"t\": { \"Go back to the list\": { \"v\": [\"목록으로 돌아가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Go back to the list\": { \"v\": [\"ກັບໄປທີ່ລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Go back to the list\": { \"v\": [\"Grįžti į sąrašą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Go back to the list\": { \"v\": [\"Врати се на листата\"] } } }, { \"l\": \"mn\", \"t\": { \"Go back to the list\": { \"v\": [\"Жагсаалт руу буцах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tilbake til listen\"] } } }, { \"l\": \"nl\", \"t\": { \"Go back to the list\": { \"v\": [\"Ga terug naar de lijst\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Go back to the list\": { \"v\": [\"Powrót do listy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"ro\", \"t\": { \"Go back to the list\": { \"v\": [\"Întoarceți-vă la listă\"] } } }, { \"l\": \"ru\", \"t\": { \"Go back to the list\": { \"v\": [\"Вернуться к списку\"] } } }, { \"l\": \"sk\", \"t\": { \"Go back to the list\": { \"v\": [\"Späť na zoznam\"] } } }, { \"l\": \"sl\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrni se na seznam\"] } } }, { \"l\": \"sr\", \"t\": { \"Go back to the list\": { \"v\": [\"Назад на листу\"] } } }, { \"l\": \"sv\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tillbaka till listan\"] } } }, { \"l\": \"tr\", \"t\": { \"Go back to the list\": { \"v\": [\"Listeye dön\"] } } }, { \"l\": \"uk\", \"t\": { \"Go back to the list\": { \"v\": [\"Повернутися до списку\"] } } }, { \"l\": \"uz\", \"t\": { \"Go back to the list\": { \"v\": [\"Ro'yxatga qayting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Go back to the list\": { \"v\": [\"返回至列表\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Go back to the list\": { \"v\": [\"返回清單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Go back to the list\": { \"v\": [\"回到清單\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Hide details\": { \"v\": [\"Sakrij detalje\"] }, \"Rename project\": { \"v\": [\"Preimenuj projekt\"] }, \"Show details\": { \"v\": [\"Prikaži detalje\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide details\": { \"v\": [\"Részletek elrejtése\"] }, \"Rename project\": { \"v\": [\"Projekt átnevezése\"] }, \"Show details\": { \"v\": [\"Részletek megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide details\": { \"v\": [\"Sembunyikan detail\"] }, \"Rename project\": { \"v\": [\"Ganti nama proyek\"] }, \"Show details\": { \"v\": [\"Tampilkan detail\"] } } }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide details\": { \"v\": [\"Slėpti detales\"] }, \"Rename project\": { \"v\": [\"Pervadinti projektą\"] }, \"Show details\": { \"v\": [\"Rodyti detales\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide details\": { \"v\": [\"Дэлгэрэнгүйг нуух\"] }, \"Rename project\": { \"v\": [\"Төслийн нэр солих\"] }, \"Show details\": { \"v\": [\"Дэлгэрэнгүйг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t29 = [{ \"l\": \"ar\", \"t\": { \"Hide password\": { \"v\": [\"إخفاء كلمة المرور\"] }, \"Password is secure\": { \"v\": [\"كلمة المرور آمنة\"] }, \"Show password\": { \"v\": [\"أظهِر كلمة المرور\"] } } }, { \"l\": \"ast\", \"t\": { \"Hide password\": { \"v\": [\"Anubrir la contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña ye segura\"] }, \"Show password\": { \"v\": [\"Amosar la contraseña\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Hide password\": { \"v\": [\"Amagar contrasenya\"] }, \"Password is secure\": { \"v\": [\"Contrasenya segura
\"] }, \"Show password\": { \"v\": [\"Mostrar contrasenya\"] } } }, { \"l\": \"cs\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"da\", \"t\": { \"Hide password\": { \"v\": [\"Skjul kodeord\"] }, \"Password is secure\": { \"v\": [\"Kodeordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis kodeord\"] } } }, { \"l\": \"de\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide password\": { \"v\": [\"Απόκρυψη συνθηματικού\"] }, \"Password is secure\": { \"v\": [\"Το συνθηματικό είναι ασφαλές\"] }, \"Show password\": { \"v\": [\"Εμφάνιση κωδικού πρόσβασης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide password\": { \"v\": [\"Hide password\"] }, \"Password is secure\": { \"v\": [\"Password is secure\"] }, \"Show password\": { \"v\": [\"Show password\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide password\": { \"v\": [\"Peida salasõna\"] }, \"Password is secure\": { \"v\": [\"Salasõna on turvaline\"] }, \"Show password\": { \"v\": [\"Näita salasõna\"] } } }, { \"l\": \"eu\", \"t\": { \"Hide password\": { \"v\": [\"Ezkutatu pasahitza\"] }, \"Password is secure\": { \"v\": [\"Pasahitza segurua da\"] }, \"Show password\": { \"v\": [\"Erakutsi pasahitza\"] } } }, { \"l\": \"fa\", \"t\": { \"Hide password\": { \"v\": [\"پنهان کردن رمز عبور\"] }, \"Password is secure\": { \"v\": [\"گذرواژه امن است\"] }, \"Show password\": { \"v\": [\"نمایش گذرواژه\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide password\": { \"v\": [\"Piilota salasana\"] }, \"Password is secure\": { \"v\": [\"Salasana on turvallinen\"] }, \"Show password\": { \"v\": [\"Näytä salasana\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide password\": { \"v\": [\"Cacher le mot de passe\"] }, \"Password is secure\": { \"v\": [\"Le mot de passe est sécurisé\"] }, \"Show password\": { \"v\": [\"Afficher le mot de passe\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide password\": { \"v\": [\"Folaigh pasfhocal\"] }, \"Password is secure\": { \"v\": [\"Tá pasfhocal slán\"] }, \"Show password\": { \"v\": [\"Taispeáin pasfhocal\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide password\": { \"v\": [\"Agochar o contrasinal\"] }, \"Password is secure\": { \"v\": [\"O contrasinal é seguro\"] }, \"Show password\": { \"v\": [\"Amosar o contrasinal\"] } } }, { \"l\": \"he\", \"t\": { \"Hide password\": { \"v\": [\"הסתרת סיסמה\"] }, \"Password is secure\": { \"v\": [\"הסיסמה מאובטחת\"] }, \"Show password\": { \"v\": [\"הצגת סיסמה\"] } } }, { \"l\": \"hr\", \"t\": { \"Hide password\": { \"v\": [\"Sakrij lozinku\"] }, \"Password is secure\": { \"v\": [\"Lozinka je zaštićena\"] }, \"Show password\": { \"v\": [\"Prikaži lozinku\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide password\": { \"v\": [\"Jelszó elrejtése\"] }, \"Password is secure\": { \"v\": [\"A jelszó biztonságos\"] }, \"Show password\": { \"v\": [\"Jelszó megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide password\": { \"v\": [\"Sembunyikan sandi\"] }, \"Password is secure\": { \"v\": [\"Kata sandi sudah aman\"] }, \"Show password\": { \"v\": [\"Tampilkan sandi\"] } } }, { \"l\": \"is\", \"t\": { \"Hide password\": { \"v\": [\"Fela lykilorð\"] }, \"Password is secure\": { \"v\": [\"Lykilorðið er öruggt\"] }, \"Show password\": { \"v\": [\"Birta lykilorð\"] } } }, { \"l\": \"it\", \"t\": { \"Hide password\": { \"v\": [\"Nascondi la password\"] }, \"Password is secure\": { \"v\": [\"La password è sicura\"] }, \"Show password\": { \"v\": [\"Mostra la password\"] } } }, { \"l\": \"ja\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Hide password\": { \"v\": [\"암호 숨기기\"] }, \"Password is secure\": { \"v\": [\"암호가 안전합니다.\"] }, \"Show password\": { \"v\": [\"암호 표시\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide password\": { \"v\": [\"ເຊື່ອງລະຫັດຜ່ານ\"] }, \"Password is secure\": { \"v\": [\"ລະຫັດຜ່ານປອດໄພ\"] }, \"Show password\": { \"v\": [\"ສະແດງລະຫັດຜ່ານ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide password\": { \"v\": [\"Slėpti slaptažodį\"] }, \"Password is secure\": { \"v\": [\"Slaptažodis yra saugus\"] }, \"Show password\": { \"v\": [\"Rodyti slaptažodį\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide password\": { \"v\": [\"Сокриј лозинка\"] }, \"Password is secure\": { \"v\": [\"Лозинката е безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинка\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide password\": { \"v\": [\"Нууц үгийг нуух\"] }, \"Password is secure\": { \"v\": [\"Нууц үг найдвартай байна\"] }, \"Show password\": { \"v\": [\"Нууц үгийг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide password\": { \"v\": [\"Skjul passord\"] }, \"Password is secure\": { \"v\": [\"Passordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis passord\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide password\": { \"v\": [\"Wachtwoord verbergen\"] }, \"Password is secure\": { \"v\": [\"Wachtwoord is veilig\"] }, \"Show password\": { \"v\": [\"Wachtwoord weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide password\": { \"v\": [\"Ukryj hasło\"] }, \"Password is secure\": { \"v\": [\"Hasło jest bezpieczne\"] }, \"Show password\": { \"v\": [\"Pokaż hasło\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar senha\"] }, \"Password is secure\": { \"v\": [\"A senha é segura\"] }, \"Show password\": { \"v\": [\"Mostrar senha\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar palavra-passe\"] }, \"Password is secure\": { \"v\": [\"A palavra-passe é segura\"] }, \"Show password\": { \"v\": [\"Mostrar palavra-passe\"] } } }, { \"l\": \"ro\", \"t\": { \"Hide password\": { \"v\": [\"Ascunde parola\"] }, \"Password is secure\": { \"v\": [\"Parola este sigură\"] }, \"Show password\": { \"v\": [\"Arată parola\"] } } }, { \"l\": \"ru\", \"t\": { \"Hide password\": { \"v\": [\"Скрыть пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль надежный\"] }, \"Show password\": { \"v\": [\"Показать пароль\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide password\": { \"v\": [\"Skryť heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobraziť heslo\"] } } }, { \"l\": \"sl\", \"t\": { \"Hide password\": { \"v\": [\"Skrij geslo\"] }, \"Password is secure\": { \"v\": [\"Geslo je varno\"] }, \"Show password\": { \"v\": [\"Pokaži geslo\"] } } }, { \"l\": \"sr\", \"t\": { \"Hide password\": { \"v\": [\"Сакриј лозинку\"] }, \"Password is secure\": { \"v\": [\"Лозинка је безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинку\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide password\": { \"v\": [\"Göm lösenordet\"] }, \"Password is secure\": { \"v\": [\"Lössenordet är säkert\"] }, \"Show password\": { \"v\": [\"Visa lösenordet\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide password\": { \"v\": [\"Parolayı gizle\"] }, \"Password is secure\": { \"v\": [\"Parola güvenli\"] }, \"Show password\": { \"v\": [\"Parolayı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide password\": { \"v\": [\"Приховати пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль безпечний\"] }, \"Show password\": { \"v\": [\"Показати пароль\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide password\": { \"v\": [\"Parolni yashirish\"] }, \"Password is secure\": { \"v\": [\"Parol xavfsiz\"] }, \"Show password\": { \"v\": [\"Parolni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide password\": { \"v\": [\"隐藏密码\"] }, \"Password is secure\": { \"v\": [\"密码安全\"] }, \"Show password\": { \"v\": [\"显示密码\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼是安全的\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼安全\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }];\nconst t30 = [{ \"l\": \"ar\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"مساعدة في التنقل باستعمال لوحة المفاتيح\"] }, \"Skip to app navigation\": { \"v\": [\"تجاوَز إلى التنقل في التطبيق\"] }, \"Skip to main content\": { \"v\": [\"تجاوَز إلى المحتوى الرئيسي\"] } } }, { \"l\": \"ast\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de la navegación pente'l tecláu\"] }, \"Skip to app navigation\": { \"v\": [\"Dir a la navegación d'aplicaciones\"] }, \"Skip to main content\": { \"v\": [\"Dir al conteníu principal\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"da\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjælp til tastaturnavigation\"] }, \"Skip to app navigation\": { \"v\": [\"Spring til app navigation\"] }, \"Skip to main content\": { \"v\": [\"Spring til hovedindhold\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"el\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Βοήθεια πλοήγησης με πληκτρολόγιο\"] }, \"Skip to app navigation\": { \"v\": [\"Μετάβαση στην πλοήγηση της εφαρμογής\"] }, \"Skip to main content\": { \"v\": [\"Μετάβαση στο κύριο περιεχόμενο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Keyboard navigation help\"] }, \"Skip to app navigation\": { \"v\": [\"Skip to app navigation\"] }, \"Skip to main content\": { \"v\": [\"Skip to main content\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de apps\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klahvistiku kasutuse abiteave\"] }, \"Skip to app navigation\": { \"v\": [\"Suundu rakenduses liikumise valikute juurde\"] }, \"Skip to main content\": { \"v\": [\"Suundu põhisisu juurde\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"راهنمای ناوبری صفحه کلید\"] }, \"Skip to app navigation\": { \"v\": [\"رفتن به پیمایش برنامه\"] }, \"Skip to main content\": { \"v\": [\"رفتن به محتوای اصلی\"] } } }, { \"l\": \"fi\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Näppäimistönavigoinnin ohje\"] }, \"Skip to app navigation\": { \"v\": [\"Siirry sovelluksen navigaatioon\"] }, \"Skip to main content\": { \"v\": [\"Siirry pääsisältöön\"] } } }, { \"l\": \"fr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aide à la navigation du clavier\"] }, \"Skip to app navigation\": { \"v\": [\"Passer à l'app navigation\"] }, \"Skip to main content\": { \"v\": [\"Passer au contenu principal\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Cabhair le nascleanúint méarchláir\"] }, \"Skip to app navigation\": { \"v\": [\"Téigh ar aghaidh chuig nascleanúint aip\"] }, \"Skip to main content\": { \"v\": [\"Téigh ar aghaidh chuig an bpríomhábhar\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Axuda á navegación co teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir á navegación da aplicación\"] }, \"Skip to main content\": { \"v\": [\"Ir ao contido principal\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoć za navigaciju tipkovnicom\"] }, \"Skip to app navigation\": { \"v\": [\"Preskoči na navigaciju aplikacije\"] }, \"Skip to main content\": { \"v\": [\"Preskoči na glavni sadržaj\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Billentyűzetes navigáció súgója\"] }, \"Skip to app navigation\": { \"v\": [\"Ugrás az alkalmazásnavigációhoz\"] }, \"Skip to main content\": { \"v\": [\"Ugrás a fő tartalomhoz\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Bantuan navigasi keyboard\"] }, \"Skip to app navigation\": { \"v\": [\"Lewati ke navigasi aplikasi\"] }, \"Skip to main content\": { \"v\": [\"Lewati ke konten utama\"] } } }, { \"l\": \"is\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aðstoð við rötun á lyklaborði\"] }, \"Skip to app navigation\": { \"v\": [\"Sleppa og fara í flakk innan forrits\"] }, \"Skip to main content\": { \"v\": [\"Sleppa og fara í meginefni\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ko\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"키보드 탐색 도움말\"] }, \"Skip to app navigation\": { \"v\": [\"앱 탐색으로 건너뛰기\"] }, \"Skip to main content\": { \"v\": [\"본 내용으로 건너뛰기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ການຊ່ວຍເຫຼືອການນຳທາງດ້ວຍຄີບອດ\"] }, \"Skip to app navigation\": { \"v\": [\"ຂ້າມໄປທີ່ການນຳທາງຂອງແອັບ\"] }, \"Skip to main content\": { \"v\": [\"ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatūros navigacijos pagalba\"] }, \"Skip to app navigation\": { \"v\": [\"Pereiti prie programėlės naršymo\"] }, \"Skip to main content\": { \"v\": [\"Pereiti prie pagrindinio turinio\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Навигација со тастатура\"] }, \"Skip to app navigation\": { \"v\": [\"Прескокни на навигација на апликацијата\"] }, \"Skip to main content\": { \"v\": [\"Прескокни на главна содржина\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Гарын навигацийн тусламж\"] }, \"Skip to app navigation\": { \"v\": [\"Аппын навигаци руу алгасах\"] }, \"Skip to main content\": { \"v\": [\"Үндсэн агуулга руу алгасах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjelp for tastaturnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hopp til appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hopp til hovedinnhold\"] } } }, { \"l\": \"nl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hulp voor toetsenbordnavigatie\"] }, \"Skip to app navigation\": { \"v\": [\"Doorgaan naar app-navigatie\"] }, \"Skip to main content\": { \"v\": [\"Naar hoofdinhoud gaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc w nawigacji za pomocą klawiatury\"] }, \"Skip to app navigation\": { \"v\": [\"Przewiń do nawigacji\"] }, \"Skip to main content\": { \"v\": [\"Przewiń do głównych treści\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda para navegação pelo teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir para navegação de aplicativo\"] }, \"Skip to main content\": { \"v\": [\"Ir para conteúdo principal\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda à navegação no teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar para navegação da app\"] }, \"Skip to main content\": { \"v\": [\"Saltar para conteúdo principal\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Справка по навигации с помощью клавиатуры\"] }, \"Skip to app navigation\": { \"v\": [\"Перейти к навигации по приложению\"] }, \"Skip to main content\": { \"v\": [\"Перейти к основному содержанию\"] } } }, { \"l\": \"sk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc pri navigácii pomocou klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Preskočiť na navigáciu v aplikácii\"] }, \"Skip to main content\": { \"v\": [\"Preskočiť na hlavný obsah\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Помоћ за навигацију тастатуром\"] }, \"Skip to app navigation\": { \"v\": [\"Прескочи на навигацију апликацијом\"] }, \"Skip to main content\": { \"v\": [\"Прескочи на главни садржај\"] } } }, { \"l\": \"sv\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjälp med tangentbordsnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hoppa till appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hoppa till huvudinnehåll\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klavye ile gezinme yardımı\"] }, \"Skip to app navigation\": { \"v\": [\"Uygulama gezinmesine git\"] }, \"Skip to main content\": { \"v\": [\"Ana içeriğe git\"] } } }, { \"l\": \"uk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Допомога з навігацією клавішами\"] }, \"Skip to app navigation\": { \"v\": [\"Пропустити навігацію по застосунках\"] }, \"Skip to main content\": { \"v\": [\"Перейти одразу до головного вмісту\"] } } }, { \"l\": \"uz\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatura navigatsiyasi yordami\"] }, \"Skip to app navigation\": { \"v\": [\"Ilova navigatsiyasiga oʻtish\"] }, \"Skip to main content\": { \"v\": [\"Asosiy tarkibga o'tish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"键盘导航栏帮助\"] }, \"Skip to app navigation\": { \"v\": [\"跳转至应用程序导航页\"] }, \"Skip to main content\": { \"v\": [\"跳转至主要内容\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航幫助\"] }, \"Skip to app navigation\": { \"v\": [\"跳至應用程式導航\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航說明\"] }, \"Skip to app navigation\": { \"v\": [\"略過應用程式導覽\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }];\nconst t31 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klávesové zkratky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturgenveje\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Keyboard shortcuts\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klahvistiku kiirklahvid\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Raccourcis clavier\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Aicearraí méarchláir\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atallos de teclado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tipkovnički prečaci\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Gyorsbillentyűk\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Shortcut keyboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"キーボードショートカット\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"키보드 바로가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ທາງລັດຄີບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Spartieji klavišai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Кратенки со тастатура\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Гарын товчлол\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Toetsenbord sneltoetsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atalhos de teclado\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Комбинации клавиш\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tangentbordsgenvägar\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klavye kısayolları\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klaviatura yorliqlari\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Učitaj još „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Izravna poveznica {options}\"] }, \"Start typing to search\": { \"v\": [\"Počnite tipkati za pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"További „{options}” betöltése\"] }, \"Raw link {options}\": { \"v\": [\"Nyers hivatkozás: {options}\"] }, \"Start typing to search\": { \"v\": [\"Kezdjen gépelni a kereséshez\"] } } }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Įkelti daugiau \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Neapdorota nuoroda {options}\"] }, \"Start typing to search\": { \"v\": [\"Rašykite norėdami atlikti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"mn\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Илүү ихийг ачаалах \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Түүхий холбоос {options}\"] }, \"Start typing to search\": { \"v\": [\"Хайхын тулд бичиж эхлэнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t33 = [{ \"l\": \"ar\", \"t\": { \"Loading …\": { \"v\": [\"التحميل جارٍ ...\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Loading …\": { \"v\": [\"Načítání …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Loading …\": { \"v\": [\"Indlæser ...\"] } } }, { \"l\": \"de\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"el\", \"t\": { \"Loading …\": { \"v\": [\"Φόρτωση  …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Loading …\": { \"v\": [\"Loading …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Loading …\": { \"v\": [\"Laadin…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Loading …\": { \"v\": [\"در حال بارگذاری ...\"] } } }, { \"l\": \"fi\", \"t\": { \"Loading …\": { \"v\": [\"Ladataan ...\"] } } }, { \"l\": \"fr\", \"t\": { \"Loading …\": { \"v\": [\"Chargement...\"] } } }, { \"l\": \"ga\", \"t\": { \"Loading …\": { \"v\": [\"Ag lódáil …\"] } } }, { \"l\": \"gl\", \"t\": { \"Loading …\": { \"v\": [\"Cargando…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Loading …\": { \"v\": [\"Učitavanje …\"] } } }, { \"l\": \"hu\", \"t\": { \"Loading …\": { \"v\": [\"Betöltés…\"] } } }, { \"l\": \"id\", \"t\": { \"Loading …\": { \"v\": [\"Memuat …\"] } } }, { \"l\": \"is\", \"t\": { \"Loading …\": { \"v\": [\"Hleð inn …\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Loading …\": { \"v\": [\"読み込み中 …\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Loading …\": { \"v\": [\"로딩 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Loading …\": { \"v\": [\"ກຳລັງໂຫຼດ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Loading …\": { \"v\": [\"Įkeliama …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Loading …\": { \"v\": [\"Вчитување …\"] } } }, { \"l\": \"mn\", \"t\": { \"Loading …\": { \"v\": [\"Ачаалж байна …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Loading …\": { \"v\": [\"Laster inn...\"] } } }, { \"l\": \"nl\", \"t\": { \"Loading …\": { \"v\": [\"Laden …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Loading …\": { \"v\": [\"Wczytywanie…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Loading …\": { \"v\": [\"Carregando …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Loading …\": { \"v\": [\"A carregar...\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Loading …\": { \"v\": [\"Загрузка …\"] } } }, { \"l\": \"sk\", \"t\": { \"Loading …\": { \"v\": [\"Nahrávam ...\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Loading …\": { \"v\": [\"Учитава се…\"] } } }, { \"l\": \"sv\", \"t\": { \"Loading …\": { \"v\": [\"Laddar …\"] } } }, { \"l\": \"tr\", \"t\": { \"Loading …\": { \"v\": [\"Yükleniyor…\"] } } }, { \"l\": \"uk\", \"t\": { \"Loading …\": { \"v\": [\"Завантаження …\"] } } }, { \"l\": \"uz\", \"t\": { \"Loading …\": { \"v\": [\"Yuklanmoqda...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Loading …\": { \"v\": [\"加载中...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Loading …\": { \"v\": [\"加載中 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Loading …\": { \"v\": [\"載入中......\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum…\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائه‌دهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Écrire un message…\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znakova\"] }, \"No link provider found\": { \"v\": [\"Nije pronađen nijedan pružatelj poveznica\"] }, \"Write a message …\": { \"v\": [\"Napiši poruku …\"] } } }, { \"l\": \"hu\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n karakteres üzenetkorlát elérve\", \"%n karakteres üzenetkorlát elérve\"] }, \"No link provider found\": { \"v\": [\"Nem található hivatkozásszolgáltató\"] }, \"Write a message …\": { \"v\": [\"Írjon egy üzenetet…\"] } } }, { \"l\": \"id\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Batas pesan %n karakter telah tercapai\"] }, \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan …\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 쓰는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Pasiektas %n pranešimo simbolio skaičiaus limitas\", \"Pasiektas %n pranešimų simbolių skaičiaus limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\"] }, \"No link provider found\": { \"v\": [\"Nerasta nuorodų teikėjo\"] }, \"Write a message …\": { \"v\": [\"Rašyti žinutę  …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"mn\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\", \"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\"] }, \"No link provider found\": { \"v\": [\"Холбоосын үйлчилгээ үзүүлэгч олдсонгүй\"] }, \"Write a message …\": { \"v\": [\"Зурвас бичих …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Meddelandebegränsning på %n tecken har uppnåtts\", \"Meddelandebegränsning på %n tecken har uppnåtts\"] }, \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel…\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hr\", \"t\": { \"More items …\": { \"v\": [\"Još stavki …\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek…\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya …\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"더 많은 아이템 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"More items …\": { \"v\": [\"Daugiau elementų …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"mn\", \"t\": { \"More items …\": { \"v\": [\"Илүү олон зүйлс …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t36 = [{ \"l\": \"ar\", \"t\": { \"Next\": { \"v\": [\"التالي\"] }, \"Pause slideshow\": { \"v\": [\"تجميد عرض الشرائح\"] }, \"Previous\": { \"v\": [\"السابق\"] }, \"Start slideshow\": { \"v\": [\"إبدإ العرض\"] } } }, { \"l\": \"ast\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Posar la presentación de diapositives\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Aniciar la presentación de diapositives\"] } } }, { \"l\": \"br\", \"t\": { \"Next\": { \"v\": [\"Da heul\"] }, \"Pause slideshow\": { \"v\": [\"Arsav an diaporama\"] }, \"Previous\": { \"v\": [\"A-raok\"] }, \"Start slideshow\": { \"v\": [\"Kregiñ an diaporama\"] } } }, { \"l\": \"ca\", \"t\": { \"Next\": { \"v\": [\"Següent\"] }, \"Pause slideshow\": { \"v\": [\"Atura la presentació\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Inicia la presentació\"] } } }, { \"l\": \"cs\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"da\", \"t\": { \"Next\": { \"v\": [\"Videre\"] }, \"Pause slideshow\": { \"v\": [\"Suspender fremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start fremvisning\"] } } }, { \"l\": \"de\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"el\", \"t\": { \"Next\": { \"v\": [\"Επόμενο\"] }, \"Pause slideshow\": { \"v\": [\"Παύση προβολής διαφανειών\"] }, \"Previous\": { \"v\": [\"Προηγούμενο\"] }, \"Start slideshow\": { \"v\": [\"Έναρξη προβολής διαφανειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Next\": { \"v\": [\"Next\"] }, \"Pause slideshow\": { \"v\": [\"Pause slideshow\"] }, \"Previous\": { \"v\": [\"Previous\"] }, \"Start slideshow\": { \"v\": [\"Start slideshow\"] } } }, { \"l\": \"eo\", \"t\": { \"Next\": { \"v\": [\"Sekva\"] }, \"Pause slideshow\": { \"v\": [\"Payzi bildprezenton\"] }, \"Previous\": { \"v\": [\"Antaŭa\"] }, \"Start slideshow\": { \"v\": [\"Komenci bildprezenton\"] } } }, { \"l\": \"es\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Next\": { \"v\": [\"Edasi\"] }, \"Pause slideshow\": { \"v\": [\"Slaidiesitluse paus\"] }, \"Previous\": { \"v\": [\"Eelmine\"] }, \"Start slideshow\": { \"v\": [\"Alusta slaidiesitust\"] } } }, { \"l\": \"eu\", \"t\": { \"Next\": { \"v\": [\"Hurrengoa\"] }, \"Pause slideshow\": { \"v\": [\"Pausatu diaporama\"] }, \"Previous\": { \"v\": [\"Aurrekoa\"] }, \"Start slideshow\": { \"v\": [\"Hasi diaporama\"] } } }, { \"l\": \"fa\", \"t\": { \"Next\": { \"v\": [\"بعدی\"] }, \"Pause slideshow\": { \"v\": [\"توقف نمایش اسلاید\"] }, \"Previous\": { \"v\": [\"قبلی\"] }, \"Start slideshow\": { \"v\": [\"شروع نمایش اسلاید\"] } } }, { \"l\": \"fi\", \"t\": { \"Next\": { \"v\": [\"Seuraava\"] }, \"Pause slideshow\": { \"v\": [\"Keskeytä diaesitys\"] }, \"Previous\": { \"v\": [\"Edellinen\"] }, \"Start slideshow\": { \"v\": [\"Aloita diaesitys\"] } } }, { \"l\": \"fr\", \"t\": { \"Next\": { \"v\": [\"Suivant\"] }, \"Pause slideshow\": { \"v\": [\"Mettre le diaporama en pause\"] }, \"Previous\": { \"v\": [\"Précédent\"] }, \"Start slideshow\": { \"v\": [\"Démarrer le diaporama\"] } } }, { \"l\": \"ga\", \"t\": { \"Next\": { \"v\": [\"Ar aghaidh\"] }, \"Pause slideshow\": { \"v\": [\"Cuir taispeántas sleamhnán ar sos\"] }, \"Previous\": { \"v\": [\"Roimhe Seo\"] }, \"Start slideshow\": { \"v\": [\"Tosaigh taispeántas sleamhnán\"] } } }, { \"l\": \"gl\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar o diaporama\"] }, \"Previous\": { \"v\": [\"Anterir\"] }, \"Start slideshow\": { \"v\": [\"Iniciar o diaporama\"] } } }, { \"l\": \"he\", \"t\": { \"Next\": { \"v\": [\"הבא\"] }, \"Pause slideshow\": { \"v\": [\"השהיית מצגת\"] }, \"Previous\": { \"v\": [\"הקודם\"] }, \"Start slideshow\": { \"v\": [\"התחלת המצגת\"] } } }, { \"l\": \"hr\", \"t\": { \"Next\": { \"v\": [\"Sljedeće\"] }, \"Pause slideshow\": { \"v\": [\"Pauziraj dijaprojekciju\"] }, \"Previous\": { \"v\": [\"Prethodno\"] }, \"Start slideshow\": { \"v\": [\"Pokreni dijaprojekciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Next\": { \"v\": [\"Következő\"] }, \"Pause slideshow\": { \"v\": [\"Diavetítés szüneteltetése\"] }, \"Previous\": { \"v\": [\"Előző\"] }, \"Start slideshow\": { \"v\": [\"Diavetítés indítása\"] } } }, { \"l\": \"id\", \"t\": { \"Next\": { \"v\": [\"Selanjutnya\"] }, \"Pause slideshow\": { \"v\": [\"Jeda tayangan slide\"] }, \"Previous\": { \"v\": [\"Sebelumnya\"] }, \"Start slideshow\": { \"v\": [\"Mulai salindia\"] } } }, { \"l\": \"is\", \"t\": { \"Next\": { \"v\": [\"Næsta\"] }, \"Pause slideshow\": { \"v\": [\"Gera hlé á skyggnusýningu\"] }, \"Previous\": { \"v\": [\"Fyrri\"] }, \"Start slideshow\": { \"v\": [\"Byrja skyggnusýningu\"] } } }, { \"l\": \"it\", \"t\": { \"Next\": { \"v\": [\"Successivo\"] }, \"Pause slideshow\": { \"v\": [\"Presentazione in pausa\"] }, \"Previous\": { \"v\": [\"Precedente\"] }, \"Start slideshow\": { \"v\": [\"Avvia presentazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ko\", \"t\": { \"Next\": { \"v\": [\"다음\"] }, \"Pause slideshow\": { \"v\": [\"슬라이드쇼 일시정지\"] }, \"Previous\": { \"v\": [\"이전\"] }, \"Start slideshow\": { \"v\": [\"슬라이드쇼 시작\"] } } }, { \"l\": \"lo\", \"t\": { \"Next\": { \"v\": [\"ຕໍ່ໄປ\"] }, \"Pause slideshow\": { \"v\": [\"ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ\"] }, \"Previous\": { \"v\": [\"ກ່ອນໜ້າ\"] }, \"Start slideshow\": { \"v\": [\"ເລີ່ມສະໄລ້ໂຊ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Next\": { \"v\": [\"Kitas\"] }, \"Pause slideshow\": { \"v\": [\"Pristabdyti skaidrių rodymą\"] }, \"Previous\": { \"v\": [\"Ankstesnis\"] }, \"Start slideshow\": { \"v\": [\"Pradėti skaidrių rodymą\"] } } }, { \"l\": \"lv\", \"t\": { \"Next\": { \"v\": [\"Nākamais\"] }, \"Pause slideshow\": { \"v\": [\"Pauzēt slaidrādi\"] }, \"Previous\": { \"v\": [\"Iepriekšējais\"] }, \"Start slideshow\": { \"v\": [\"Sākt slaidrādi\"] } } }, { \"l\": \"mk\", \"t\": { \"Next\": { \"v\": [\"Следно\"] }, \"Pause slideshow\": { \"v\": [\"Пузирај слајдшоу\"] }, \"Previous\": { \"v\": [\"Предходно\"] }, \"Start slideshow\": { \"v\": [\"Стартувај слајдшоу\"] } } }, { \"l\": \"mn\", \"t\": { \"Next\": { \"v\": [\"Дараах\"] }, \"Pause slideshow\": { \"v\": [\"Слайд шоуг түр зогсоох\"] }, \"Previous\": { \"v\": [\"Өмнөх\"] }, \"Start slideshow\": { \"v\": [\"Слайд шоуг эхлүүлэх\"] } } }, { \"l\": \"my\", \"t\": { \"Next\": { \"v\": [\"နောက်သို့ဆက်ရန်\"] }, \"Pause slideshow\": { \"v\": [\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\"] }, \"Previous\": { \"v\": [\"ယခင်\"] }, \"Start slideshow\": { \"v\": [\"စလိုက်ရှိုးအား စတင်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Next\": { \"v\": [\"Neste\"] }, \"Pause slideshow\": { \"v\": [\"Pause lysbildefremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start lysbildefremvisning\"] } } }, { \"l\": \"nl\", \"t\": { \"Next\": { \"v\": [\"Volgende\"] }, \"Pause slideshow\": { \"v\": [\"Diavoorstelling pauzeren\"] }, \"Previous\": { \"v\": [\"Vorige\"] }, \"Start slideshow\": { \"v\": [\"Diavoorstelling starten\"] } } }, { \"l\": \"oc\", \"t\": { \"Next\": { \"v\": [\"Seguent\"] }, \"Pause slideshow\": { \"v\": [\"Metre en pausa lo diaporama\"] }, \"Previous\": { \"v\": [\"Precedent\"] }, \"Start slideshow\": { \"v\": [\"Lançar lo diaporama\"] } } }, { \"l\": \"pl\", \"t\": { \"Next\": { \"v\": [\"Następny\"] }, \"Pause slideshow\": { \"v\": [\"Wstrzymaj pokaz slajdów\"] }, \"Previous\": { \"v\": [\"Poprzedni\"] }, \"Start slideshow\": { \"v\": [\"Rozpocznij pokaz slajdów\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Next\": { \"v\": [\"Próximo\"] }, \"Pause slideshow\": { \"v\": [\"Pausar apresentação de slides\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar apresentação de slides\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar diaporama\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar diaporama\"] } } }, { \"l\": \"ro\", \"t\": { \"Next\": { \"v\": [\"Următorul\"] }, \"Pause slideshow\": { \"v\": [\"Pauză prezentare de diapozitive\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Începeți prezentarea de diapozitive\"] } } }, { \"l\": \"ru\", \"t\": { \"Next\": { \"v\": [\"Следующее\"] }, \"Pause slideshow\": { \"v\": [\"Приостановить показ слйдов\"] }, \"Previous\": { \"v\": [\"Предыдущее\"] }, \"Start slideshow\": { \"v\": [\"Начать показ слайдов\"] } } }, { \"l\": \"sk\", \"t\": { \"Next\": { \"v\": [\"Ďalej\"] }, \"Pause slideshow\": { \"v\": [\"Pozastaviť prezentáciu\"] }, \"Previous\": { \"v\": [\"Predchádzajúce\"] }, \"Start slideshow\": { \"v\": [\"Začať prezentáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Next\": { \"v\": [\"Naslednji\"] }, \"Pause slideshow\": { \"v\": [\"Ustavi predstavitev\"] }, \"Previous\": { \"v\": [\"Predhodni\"] }, \"Start slideshow\": { \"v\": [\"Začni predstavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Next\": { \"v\": [\"Следеће\"] }, \"Pause slideshow\": { \"v\": [\"Паузирај слајд шоу\"] }, \"Previous\": { \"v\": [\"Претходно\"] }, \"Start slideshow\": { \"v\": [\"Покрени слајд шоу\"] } } }, { \"l\": \"sv\", \"t\": { \"Next\": { \"v\": [\"Nästa\"] }, \"Pause slideshow\": { \"v\": [\"Pausa bildspelet\"] }, \"Previous\": { \"v\": [\"Föregående\"] }, \"Start slideshow\": { \"v\": [\"Starta bildspelet\"] } } }, { \"l\": \"tr\", \"t\": { \"Next\": { \"v\": [\"Sonraki\"] }, \"Pause slideshow\": { \"v\": [\"Slayt sunumunu duraklat\"] }, \"Previous\": { \"v\": [\"Önceki\"] }, \"Start slideshow\": { \"v\": [\"Slayt sunumunu başlat\"] } } }, { \"l\": \"uk\", \"t\": { \"Next\": { \"v\": [\"Вперед\"] }, \"Pause slideshow\": { \"v\": [\"Пауза у показі слайдів\"] }, \"Previous\": { \"v\": [\"Назад\"] }, \"Start slideshow\": { \"v\": [\"Почати показ слайдів\"] } } }, { \"l\": \"uz\", \"t\": { \"Next\": { \"v\": [\"Keyingi\"] }, \"Pause slideshow\": { \"v\": [\"Slayd-shouni to'xtatib turish\"] }, \"Previous\": { \"v\": [\"Oldingi\"] }, \"Start slideshow\": { \"v\": [\"Slayd-shouni boshlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Next\": { \"v\": [\"下一个\"] }, \"Pause slideshow\": { \"v\": [\"暂停幻灯片\"] }, \"Previous\": { \"v\": [\"上一个\"] }, \"Start slideshow\": { \"v\": [\"开始幻灯片\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hr\", \"t\": { \"No emoji found\": { \"v\": [\"Nije pronađen nijedan emoji\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta emociukių\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"mn\", \"t\": { \"No emoji found\": { \"v\": [\"Эможи олдсонгүй\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvori poveznicu za \"{resourceName}\"'] } } }, { \"l\": \"hu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"A(z) „{resourceName}” hivatkozásának megnyitása\"] } } }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Atidaryti nuorodą į „{resourceName}“\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"mn\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" руу холбоос нээх'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Please choose a date\": { \"v\": [\"Zvolte datum\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Please choose a date\": { \"v\": [\"Vælg en dato\"] } } }, { \"l\": \"de\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"el\", \"t\": { \"Please choose a date\": { \"v\": [\"Παρακαλώ επιλέξτε μια ημερομηνία\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Please choose a date\": { \"v\": [\"Please choose a date\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Please choose a date\": { \"v\": [\"Palun vali kuupäev\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Please choose a date\": { \"v\": [\"Veuillez choisir une date\"] } } }, { \"l\": \"ga\", \"t\": { \"Please choose a date\": { \"v\": [\"Roghnaigh dáta le do thoil\"] } } }, { \"l\": \"gl\", \"t\": { \"Please choose a date\": { \"v\": [\"Escolla unha data\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Please choose a date\": { \"v\": [\"Molimo odaberite datum\"] } } }, { \"l\": \"hu\", \"t\": { \"Please choose a date\": { \"v\": [\"Válasszon egy dátumot\"] } } }, { \"l\": \"id\", \"t\": { \"Please choose a date\": { \"v\": [\"Silakan pilih tanggal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Please choose a date\": { \"v\": [\"日付を選択してください\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Please choose a date\": { \"v\": [\"날짜를 선택해주세요\"] } } }, { \"l\": \"lo\", \"t\": { \"Please choose a date\": { \"v\": [\"ກະລຸນາເລືອກວັນທີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Please choose a date\": { \"v\": [\"Pasirinkite datą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Please choose a date\": { \"v\": [\"Избери датум\"] } } }, { \"l\": \"mn\", \"t\": { \"Please choose a date\": { \"v\": [\"Огноо сонгоно уу\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Please choose a date\": { \"v\": [\"Kies een datum\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Please choose a date\": { \"v\": [\"Выберите дату\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Please choose a date\": { \"v\": [\"Молимо вас да изаберете датум\"] } } }, { \"l\": \"sv\", \"t\": { \"Please choose a date\": { \"v\": [\"Välj ett datum\"] } } }, { \"l\": \"tr\", \"t\": { \"Please choose a date\": { \"v\": [\"Lütfen bir tarih seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Please choose a date\": { \"v\": [\"Виберіть дату\"] } } }, { \"l\": \"uz\", \"t\": { \"Please choose a date\": { \"v\": [\"Iltimos, sanani tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Provider icon\": { \"v\": [\"Szolgáltató ikonja\"] } } }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Provider icon\": { \"v\": [\"Tiekėjo piktograma\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"mn\", \"t\": { \"Provider icon\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн дүрс\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Related team resources\": { \"v\": [\"Povezani timski resursi\"] }, \"View team\": { \"v\": [\"Prikaži tim\"] } } }, { \"l\": \"hu\", \"t\": { \"Related team resources\": { \"v\": [\"Kapcsolódó csapaterőforrások\"] }, \"View team\": { \"v\": [\"Csapat megtekintése\"] } } }, { \"l\": \"id\", \"t\": { \"Related team resources\": { \"v\": [\"Sumber daya team terkait\"] }, \"View team\": { \"v\": [\"Lihat team\"] } } }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Related team resources\": { \"v\": [\"Susiję komandos ištekliai\"] }, \"View team\": { \"v\": [\"Peržiūrėti komandą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"mn\", \"t\": { \"Related team resources\": { \"v\": [\"Багийн холбогдох нөөцүүд\"] }, \"View team\": { \"v\": [\"Багийг харах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t43 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Search\": { \"v\": [\"Traži\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"mn\", \"t\": { \"Search\": { \"v\": [\"Хайх\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t44 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Search …\": { \"v\": [\"Hledat …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Search …\": { \"v\": [\"Søg ...\"] } } }, { \"l\": \"de\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"el\", \"t\": { \"Search …\": { \"v\": [\"Αναζήτηση …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search …\": { \"v\": [\"Search …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Search …\": { \"v\": [\"Otsi…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Search …\": { \"v\": [\"Rechercher…\"] } } }, { \"l\": \"ga\", \"t\": { \"Search …\": { \"v\": [\"Cuardaigh …\"] } } }, { \"l\": \"gl\", \"t\": { \"Search …\": { \"v\": [\"Buscar…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Search …\": { \"v\": [\"Traži …\"] } } }, { \"l\": \"hu\", \"t\": { \"Search …\": { \"v\": [\"Keresés…\"] } } }, { \"l\": \"id\", \"t\": { \"Search …\": { \"v\": [\"Cari …\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Search …\": { \"v\": [\"検索…\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Search …\": { \"v\": [\"찾는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Search …\": { \"v\": [\"ຄົ້ນຫາ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search …\": { \"v\": [\"Ieškoti …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search …\": { \"v\": [\"Барај…\"] } } }, { \"l\": \"mn\", \"t\": { \"Search …\": { \"v\": [\"Хайх …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Search …\": { \"v\": [\"Zoeken …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Search …\": { \"v\": [\"Pesquisar …\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Search …\": { \"v\": [\"Поиск …\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Search …\": { \"v\": [\"Претражи…\"] } } }, { \"l\": \"sv\", \"t\": { \"Search …\": { \"v\": [\"Sök …\"] } } }, { \"l\": \"tr\", \"t\": { \"Search …\": { \"v\": [\"Ara…\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Search …\": { \"v\": [\"Izlash...\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Search …\": { \"v\": [\"搜尋 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search …\": { \"v\": [\"搜尋......\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Type to search time zone\": { \"v\": [\"أكتُب للبحث عن منطقة زمنية\"] } } }, { \"l\": \"ast\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar fusos horarios\"] }, \"Type to search time zone\": { \"v\": [\"Escribi pa buscar un fusu horariu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escriviu per cercar la zona horària\"] } } }, { \"l\": \"cs\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"da\", \"t\": { \"Search for time zone\": { \"v\": [\"Søg efter tidszone\"] }, \"Type to search time zone\": { \"v\": [\"Indtast for at søge efter tidszone\"] } } }, { \"l\": \"de\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Type to search time zone\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search for time zone\": { \"v\": [\"Search for time zone\"] }, \"Type to search time zone\": { \"v\": [\"Type to search time zone\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar huso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar un huso horario\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escribe para buscar la zona horaria\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search for time zone\": { \"v\": [\"Otsi ajavööndit\"] }, \"Type to search time zone\": { \"v\": [\"Ajavööndi otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Idatzi ordu-zona bat bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { \"Search for time zone\": { \"v\": [\"جستجو برای منطقهٔ زمانی\"] }, \"Type to search time zone\": { \"v\": [\"برای جستجوی منطقه زمانی تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Search for time zone\": { \"v\": [\"Etsi aikavyöhykettä\"] }, \"Type to search time zone\": { \"v\": [\"Kirjoita etsiäksesi aikavyöhykettä\"] } } }, { \"l\": \"fr\", \"t\": { \"Search for time zone\": { \"v\": [\"Rechercher le fuseau horaire\"] }, \"Type to search time zone\": { \"v\": [\"Saisissez les premiers lettres pour rechercher un fuseau horaire\"] } } }, { \"l\": \"ga\", \"t\": { \"Search for time zone\": { \"v\": [\"Cuardaigh crios ama\"] }, \"Type to search time zone\": { \"v\": [\"Clóscríobh chun crios ama a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar por fuso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar o fuso horario\"] } } }, { \"l\": \"he\", \"t\": { \"Type to search time zone\": { \"v\": [\"יש להקליד כדי לחפש אזור זמן\"] } } }, { \"l\": \"hr\", \"t\": { \"Search for time zone\": { \"v\": [\"Pretraži vremensku zonu\"] }, \"Type to search time zone\": { \"v\": [\"Upišite za pretraživanje vremenske zone\"] } } }, { \"l\": \"hu\", \"t\": { \"Search for time zone\": { \"v\": [\"Időzóna keresése\"] }, \"Type to search time zone\": { \"v\": [\"Gépeljen az időzóna kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Search for time zone\": { \"v\": [\"Cari zona waktu\"] }, \"Type to search time zone\": { \"v\": [\"Ketik untuk mencari zona waktu\"] } } }, { \"l\": \"is\", \"t\": { \"Search for time zone\": { \"v\": [\"Leita að tímabelti\"] }, \"Type to search time zone\": { \"v\": [\"Skrifaðu til að leita að tímabelti\"] } } }, { \"l\": \"it\", \"t\": { \"Search for time zone\": { \"v\": [\"Ricerca del fuso orario\"] }, \"Type to search time zone\": { \"v\": [\"Digita per cercare un fuso orario\"] } } }, { \"l\": \"ja\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ko\", \"t\": { \"Search for time zone\": { \"v\": [\"시간대 찾기\"] }, \"Type to search time zone\": { \"v\": [\"입력하여 시간대를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search for time zone\": { \"v\": [\"ຄົ້ນຫາເຂດເວລາ\"] }, \"Type to search time zone\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາເຂດເວລາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search for time zone\": { \"v\": [\"Ieškoti laiko juostų\"] }, \"Type to search time zone\": { \"v\": [\"Įveskite, kad surastumėte laiko juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search for time zone\": { \"v\": [\"Барај временска зона\"] }, \"Type to search time zone\": { \"v\": [\"Напишете за да пребарате временска зона\"] } } }, { \"l\": \"mn\", \"t\": { \"Search for time zone\": { \"v\": [\"Цагийн бүс хайх\"] }, \"Type to search time zone\": { \"v\": [\"Цагийн бүс хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": { \"Type to search time zone\": { \"v\": [\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Search for time zone\": { \"v\": [\"Søk etter tidssone\"] }, \"Type to search time zone\": { \"v\": [\"Tast for å søke etter tidssone\"] } } }, { \"l\": \"nl\", \"t\": { \"Search for time zone\": { \"v\": [\"Zoeken naar tijdzone\"] }, \"Type to search time zone\": { \"v\": [\"Typ om een tijdzone te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search for time zone\": { \"v\": [\"Szukaj strefy czasowej\"] }, \"Type to search time zone\": { \"v\": [\"Wpisz, aby wyszukać strefę czasową\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search for time zone\": { \"v\": [\"Pesquisar fuso horário\"] }, \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"ro\", \"t\": { \"Search for time zone\": { \"v\": [\"Căutare zonă de timp\"] }, \"Type to search time zone\": { \"v\": [\"Tastați pentru a căuta fusul orar\"] } } }, { \"l\": \"ru\", \"t\": { \"Search for time zone\": { \"v\": [\"Поиск часового пояса\"] }, \"Type to search time zone\": { \"v\": [\"Введите для поиска часового пояса\"] } } }, { \"l\": \"sk\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhľadať časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Začníte písať pre vyhľadávanie časovej zóny\"] } } }, { \"l\": \"sl\", \"t\": { \"Type to search time zone\": { \"v\": [\"Vpišite niz za iskanje časovnega pasu\"] } } }, { \"l\": \"sr\", \"t\": { \"Type to search time zone\": { \"v\": [\"Куцајте да претражите временске зоне\"] } } }, { \"l\": \"sv\", \"t\": { \"Search for time zone\": { \"v\": [\"Sök efter tidszon\"] }, \"Type to search time zone\": { \"v\": [\"Skriv för att välja tidszon\"] } } }, { \"l\": \"tr\", \"t\": { \"Search for time zone\": { \"v\": [\"Saat dilimi ara\"] }, \"Type to search time zone\": { \"v\": [\"Saat dilimi aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Введіть для пошуку часовий пояс\"] } } }, { \"l\": \"uz\", \"t\": { \"Search for time zone\": { \"v\": [\"Vaqt mintaqasini qidirish\"] }, \"Type to search time zone\": { \"v\": [\"Vaqt mintaqasini qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索时区\"] }, \"Type to search time zone\": { \"v\": [\"打字以搜索时区\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索時區\"] }, \"Type to search time zone\": { \"v\": [\"鍵入以搜索時區\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search for time zone\": { \"v\": [\"搜尋時區\"] }, \"Type to search time zone\": { \"v\": [\"輸入以搜尋時區\"] } } }];\nconst t46 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Select provider\": { \"v\": [\"Odaberi pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Select provider\": { \"v\": [\"Válasszon szolgáltatót\"] } } }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Select provider\": { \"v\": [\"Pasirinkti tiekėją\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"mn\", \"t\": { \"Select provider\": { \"v\": [\"Үйлчилгээ үзүүлэгч сонгох\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t47 = [{ \"l\": \"ar\", \"t\": { \"Settings\": { \"v\": [\"الإعدادات\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"br\", \"t\": { \"Settings\": { \"v\": [\"Arventennoù\"] } } }, { \"l\": \"ca\", \"t\": { \"Settings\": { \"v\": [\"Paràmetres\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"el\", \"t\": { \"Settings\": { \"v\": [\"Ρυθμίσεις\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings\": { \"v\": [\"Settings\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings\": { \"v\": [\"Agordo\"] } } }, { \"l\": \"es\", \"t\": { \"Settings\": { \"v\": [\"Ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings\": { \"v\": [\"Seadistused\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings\": { \"v\": [\"Ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings\": { \"v\": [\"تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings\": { \"v\": [\"Asetukset\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings\": { \"v\": [\"Socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings\": { \"v\": [\"Axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings\": { \"v\": [\"הגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings\": { \"v\": [\"Postavke\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Settings\": { \"v\": [\"Pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings\": { \"v\": [\"Stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings\": { \"v\": [\"Impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings\": { \"v\": [\"선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings\": { \"v\": [\"ການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings\": { \"v\": [\"Nustatymai\"] } } }, { \"l\": \"lv\", \"t\": { \"Settings\": { \"v\": [\"Iestatījumi\"] } } }, { \"l\": \"mk\", \"t\": { \"Settings\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"Settings\": { \"v\": [\"ချိန်ညှိချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings\": { \"v\": [\"Innstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings\": { \"v\": [\"Instellingen\"] } } }, { \"l\": \"oc\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"pl\", \"t\": { \"Settings\": { \"v\": [\"Ustawienia\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings\": { \"v\": [\"Configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings\": { \"v\": [\"Definições\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings\": { \"v\": [\"Setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings\": { \"v\": [\"Параметры\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings\": { \"v\": [\"Nastavenia\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings\": { \"v\": [\"Nastavitve\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings\": { \"v\": [\"Поставке\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings\": { \"v\": [\"Inställningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings\": { \"v\": [\"Ayarlar\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings\": { \"v\": [\"Налаштування\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings\": { \"v\": [\"Sozlamalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings\": { \"v\": [\"设置\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Settings navigation\": { \"v\": [\"إعدادات التّصفُّح\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación pela configuración\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegació d'opcions\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings navigation\": { \"v\": [\"Naviger i indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"el\", \"t\": { \"Settings navigation\": { \"v\": [\"Πλοήγηση ρυθμίσεων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings navigation\": { \"v\": [\"Settings navigation\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings navigation\": { \"v\": [\"Agorda navigado\"] } } }, { \"l\": \"es\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación por ajustes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings navigation\": { \"v\": [\"Liikumine seadistustes\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings navigation\": { \"v\": [\"Nabigazio ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings navigation\": { \"v\": [\"ناوبری تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings navigation\": { \"v\": [\"Asetusten navigointi\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigation dans les paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings navigation\": { \"v\": [\"Nascleanúint socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación polos axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings navigation\": { \"v\": [\"ניווט בהגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigacija postavki\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigáció a beállításokban\"] } } }, { \"l\": \"id\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasi pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings navigation\": { \"v\": [\"Flakk um stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigazione delle impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings navigation\": { \"v\": [\"세팅 탐색\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings navigation\": { \"v\": [\"ການນຳທາງການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings navigation\": { \"v\": [\"Naršymas nustatymuose\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Settings navigation\": { \"v\": [\"Параметри за навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings navigation\": { \"v\": [\"Тохиргооны навигаци\"] } } }, { \"l\": \"my\", \"t\": { \"Settings navigation\": { \"v\": [\"ချိန်ညှိချက်အညွှန်း\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasjonsinstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings navigation\": { \"v\": [\"Instellingen navigatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Settings navigation\": { \"v\": [\"Ustawienia nawigacji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigare setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings navigation\": { \"v\": [\"Навигация по настройкам\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigácia v nastaveniach\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings navigation\": { \"v\": [\"Krmarjenje nastavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings navigation\": { \"v\": [\"Кретање по подешавањима\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings navigation\": { \"v\": [\"Inställningsmeny\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings navigation\": { \"v\": [\"Gezinme ayarları\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings navigation\": { \"v\": [\"Навігація у налаштуваннях\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings navigation\": { \"v\": [\"Sozlamalar navigatsiyasi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings navigation\": { \"v\": [\"设置向导\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hr\", \"t\": { \"Submit\": { \"v\": [\"Pošalji\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"mn\", \"t\": { \"Submit\": { \"v\": [\"Илгээх\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nije moguće pretražiti grupu\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"mn\", \"t\": { \"Unable to search the group\": { \"v\": [\"Бүлгийг хайж чадсангүй\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t51 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Undo changes\": { \"v\": [\"Poništi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Undo changes\": { \"v\": [\"Atšaukti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Undo changes\": { \"v\": [\"Өөрчлөлтийг буцаах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nconst t52 = [{ \"l\": \"ar\", \"t\": { \"User status: {status}\": { \"v\": [\"حالة المستخدِم: {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"User status: {status}\": { \"v\": [\"Estáu del usuariu: {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"da\", \"t\": { \"User status: {status}\": { \"v\": [\"Brugerstatus: {status}\"] } } }, { \"l\": \"de\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"el\", \"t\": { \"User status: {status}\": { \"v\": [\"Κατάσταση χρήστη: {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"User status: {status}\": { \"v\": [\"User status: {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"User status: {status}\": { \"v\": [\"Estatus del usuario: {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"User status: {status}\": { \"v\": [\"Kasutaja olek: {status}\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"User status: {status}\": { \"v\": [\"وضعیت کاربر: {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"User status: {status}\": { \"v\": [\"Käyttäjän tila: {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"User status: {status}\": { \"v\": [\"Statut de l'utilisateur : {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"User status: {status}\": { \"v\": [\"Stádas úsáideora: {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do usuario: {status}\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"User status: {status}\": { \"v\": [\"Status korisnika: {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"User status: {status}\": { \"v\": [\"Felhasználó állapota: {status}\"] } } }, { \"l\": \"id\", \"t\": { \"User status: {status}\": { \"v\": [\"Status pengguna: {status}\"] } } }, { \"l\": \"is\", \"t\": { \"User status: {status}\": { \"v\": [\"Staða notanda: {status}\"] } } }, { \"l\": \"it\", \"t\": { \"User status: {status}\": { \"v\": [\"Stato dell'utente: {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ko\", \"t\": { \"User status: {status}\": { \"v\": [\"사용자 상태: {status}\"] } } }, { \"l\": \"lo\", \"t\": { \"User status: {status}\": { \"v\": [\"ສະຖານະຜູ້ໃຊ້: {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"User status: {status}\": { \"v\": [\"Naudotojo būsena: {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус: {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"User status: {status}\": { \"v\": [\"Хэрэглэгчийн төлөв: {status}\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"User status: {status}\": { \"v\": [\"Brukerstatus: {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"User status: {status}\": { \"v\": [\"Gebruikersstatus: {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"User status: {status}\": { \"v\": [\"Status użytkownika: {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"User status: {status}\": { \"v\": [\"Status do usuário: {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do utilizador: {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"User status: {status}\": { \"v\": [\"Status utilizator: {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус пользователя: {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav užívateľa: {status}\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус корисника: {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"User status: {status}\": { \"v\": [\"Användarstatus: {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"User status: {status}\": { \"v\": [\"Kullanıcı durumu: {status}\"] } } }, { \"l\": \"uk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус користувача: {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"User status: {status}\": { \"v\": [\"Foydalanuvchi holati: {status}\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"User status: {status}\": { \"v\": [\"用户状态:{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"User status: {status}\": { \"v\": [\"用戶狀態:{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"User status: {status}\": { \"v\": [\"使用者狀態:{status}\"] } } }];\nexport {\n t32 as $,\n t19 as A,\n t47 as B,\n t44 as C,\n t36 as D,\n t26 as E,\n t4 as F,\n t27 as G,\n t30 as H,\n t48 as I,\n t34 as J,\n n as K,\n t28 as L,\n t6 as M,\n t21 as N,\n t23 as O,\n t20 as P,\n t52 as Q,\n t11 as R,\n t38 as S,\n t42 as T,\n t9 as U,\n t15 as V,\n t8 as W,\n t46 as X,\n t41 as Y,\n t24 as Z,\n t25 as _,\n t as a,\n t12 as a0,\n t51 as b,\n t18 as c,\n t2 as d,\n t22 as e,\n t33 as f,\n t17 as g,\n t45 as h,\n t50 as i,\n t0 as j,\n t14 as k,\n t49 as l,\n t10 as m,\n t29 as n,\n t7 as o,\n t31 as p,\n t43 as q,\n register as r,\n t37 as s,\n t3 as t,\n t16 as u,\n t5 as v,\n t1 as w,\n t40 as x,\n t13 as y,\n t35 as z\n};\n//# sourceMappingURL=_l10n-wdIzZwir.mjs.map\n","import { formatRelativeTime, getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { computed, toValue, ref, watchEffect, onUnmounted, readonly } from \"vue\";\nimport { r as register, d as t2, a as t } from \"../../chunks/_l10n-wdIzZwir.mjs\";\nregister(t2);\nconst FEW_SECONDS_AGO = {\n long: t(\"a few seconds ago\"),\n short: t(\"seconds ago\"),\n // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n narrow: t(\"sec. ago\")\n // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n};\nfunction useFormatRelativeTime(timestamp = Date.now(), opts = {}) {\n let timeoutId;\n const date = computed(() => new Date(toValue(timestamp)));\n const options = computed(() => {\n const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);\n return {\n ...language && { language },\n ...relativeTime2 && { relativeTime: relativeTime2 },\n ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || \"long\"] : false\n };\n });\n const relativeTime = ref(\"\");\n watchEffect(() => updateRelativeTime());\n function updateRelativeTime() {\n relativeTime.value = formatRelativeTime(date.value, options.value);\n if (toValue(opts).update !== false) {\n const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());\n const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;\n timeoutId = window.setTimeout(updateRelativeTime, interval);\n }\n }\n onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));\n return readonly(relativeTime);\n}\nfunction useFormatTime(timestamp, opts) {\n const options = computed(() => ({\n locale: getCanonicalLocale(),\n format: { dateStyle: \"short\", timeStyle: \"medium\" },\n ...toValue(opts)\n }));\n const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));\n return computed(() => formatter.value.format(toValue(timestamp)));\n}\nexport {\n useFormatRelativeTime,\n useFormatTime\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, computed, toRef, openBlock, createElementBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": __props.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs.map\n","var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"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\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"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\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"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\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"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\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiClock as A,\n mdiCalendarBlank as B,\n mdiCog as C,\n mdiCogOutline as D,\n mdiPause as E,\n mdiPlay as F,\n mdiMenuOpen as G,\n mdiMenu as H,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiRadioboxMarked as f,\n mdiRadioboxBlank as g,\n mdiCheckboxMarked as h,\n mdiCheckboxBlankOutline as i,\n mdiAlertCircleOutline as j,\n mdiAlert as k,\n mdiInformation as l,\n mdiArrowRight as m,\n mdiCheckboxMarkedCircle as n,\n mdiAlertDecagram as o,\n mdiCreation as p,\n mdiEyeOff as q,\n mdiEye as r,\n mdiOpenInNew as s,\n mdiArrowTopRight as t,\n mdiCloseCircleOutline as u,\n mdiArrowLeft as v,\n mdiDotsHorizontal as w,\n mdiChevronUp as x,\n mdiChevronDown as y,\n mdiChevronLeft as z\n};\n//# sourceMappingURL=mdi-CpchYUUV.mjs.map\n","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst major = Number.parseInt(majorVersion ?? \"34\");\nconst isLegacy = major < 32;\nconst isLegacy34 = major < 34;\nexport {\n isLegacy as a,\n isLegacy34 as i\n};\n//# sourceMappingURL=legacy-BoqDmOCa.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, openBlock, createElementBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": __props.name ? void 0 : \"true\",\n \"aria-label\": __props.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": __props.directional,\n \"icon-vue--inline\": __props.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: __props.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-g8ubWhoz.mjs.map\n","import '../assets/NcNoteCard-DfescGKl.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { k as mdiAlert, l as mdiInformation, n as mdiCheckboxMarkedCircle, o as mdiAlertDecagram } from \"./mdi-CpchYUUV.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"notecard__heading\"\n};\nconst _hoisted_3 = { class: \"notecard__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcNoteCard\",\n props: {\n heading: { default: void 0 },\n showAlert: { type: Boolean },\n text: { default: void 0 },\n type: { default: \"warning\" }\n },\n setup(__props) {\n const props = __props;\n const shouldShowAlert = computed(() => props.showAlert || props.type === \"error\");\n const iconPath = computed(() => {\n switch (props.type) {\n case \"error\":\n return mdiAlertDecagram;\n case \"success\":\n return mdiCheckboxMarkedCircle;\n case \"info\":\n return mdiInformation;\n case \"warning\":\n default:\n return mdiAlert;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"notecard\", {\n [`notecard--${__props.type}`]: __props.type,\n \"notecard--legacy\": unref(isLegacy)\n }]),\n role: shouldShowAlert.value ? \"alert\" : \"note\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createVNode(unref(NcIconSvgWrapper), {\n path: iconPath.value,\n class: normalizeClass([\"notecard__icon\", { \"notecard__icon--heading\": __props.heading }]),\n inline: \"\"\n }, null, 8, [\"path\", \"class\"])\n ], true),\n createElementVNode(\"div\", null, [\n __props.heading ? (openBlock(), createElementBlock(\"p\", _hoisted_2, toDisplayString(__props.heading), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(__props.text), 1)\n ], true)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-6be9fa31\"]]);\nexport {\n NcNoteCard as N\n};\n//# sourceMappingURL=NcNoteCard-mI7qVZ9j.mjs.map\n","\n\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get = typeof fn === \"function\" ? fn : fn.get;\n\tconst set = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset === null || set === void 0 || set(v);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n//#endregion\n//#region createDisposableDirective/index.ts\n/**\n* Utility for authoring disposable directives. Reactive effects created within `mounted` directive hook will be tracked and automatically disposed when directive is unmounted.\n*\n* @see https://vueuse.org/createDisposableDirective\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createDisposableDirective(origin = {}) {\n\tfunction isFunc(fn) {\n\t\treturn typeof fn === \"function\";\n\t}\n\tconst normalisedOrigin = isFunc(origin) ? {\n\t\tmounted: origin,\n\t\tupdated: origin\n\t} : origin;\n\tconst { mounted, unmounted } = normalisedOrigin;\n\tif (!isFunc(mounted)) return origin;\n\tconst scopeWeakMap = /* @__PURE__ */ new WeakMap();\n\treturn {\n\t\t...normalisedOrigin,\n\t\tmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get;\n\t\t\tconst scope = (_scopeWeakMap$get = scopeWeakMap.get(el)) !== null && _scopeWeakMap$get !== void 0 ? _scopeWeakMap$get : effectScope();\n\t\t\tscopeWeakMap.set(el, scope);\n\t\t\tscope.run(() => {\n\t\t\t\tmounted === null || mounted === void 0 || mounted(el, binding, vNode, prevNode);\n\t\t\t});\n\t\t},\n\t\tunmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get2;\n\t\t\t(_scopeWeakMap$get2 = scopeWeakMap.get(el)) === null || _scopeWeakMap$get2 === void 0 || _scopeWeakMap$get2.stop();\n\t\t\tscopeWeakMap.delete(el);\n\t\t\tif (isFunc(unmounted)) unmounted(el, binding, vNode, prevNode);\n\t\t}\n\t};\n}\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n//#endregion\n//#region createInjectionState/index.ts\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef\n* @example createRef(1, false) // ShallowRef\n* @example createRef(1, true) // Ref\n* @example createRef(\"string\") // ShallowRef\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.hasOwn(val, key);\nconst isIOS = /* #__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n//#endregion\n//#region utils/filters.ts\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\tif (\"cancel\" in filter) Object.assign(wrapper, {\n\t\tcancel: filter.cancel,\n\t\tflush: filter.flush,\n\t\tisPending: filter.isPending\n\t});\n\treturn wrapper;\n}\nconst bypassFilter = (invoke) => {\n\treturn invoke();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tlet lastResolve = noop;\n\tconst _pending = shallowRef(false);\n\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst handler = (invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\treturn Promise.resolve(invoke());\n\t\t}\n\t\t_pending.value = true;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastResolve = resolve;\n\t\t\tlastInvoker = invoke;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn Object.assign(handler, {\n\t\tcancel: () => {\n\t\t\tif (timer) {\n\t\t\t\t_clearTimeout(timer);\n\t\t\t\ttimer = void 0;\n\t\t\t}\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\tlastResolve = noop;\n\t\t},\n\t\tflush: () => {\n\t\t\tif (_pending.value) {\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = void 0;\n\t\t\t\t}\n\t\t\t\tif (maxTimer) {\n\t\t\t\t\tclearTimeout(maxTimer);\n\t\t\t\t\tmaxTimer = void 0;\n\t\t\t\t}\n\t\t\t\t_pending.value = false;\n\t\t\t\tconst resolve = lastResolve;\n\t\t\t\tlastRejector = noop;\n\t\t\t\tlastResolve = noop;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}\n\t\t},\n\t\tisPending: shallowReadonly(_pending)\n\t});\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(reject, ms, reason);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref;\n}\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounced, function with isPending, cancel, and flush properties.\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set(v, false);\n\treturn extendRef(ref, {\n\t\tget,\n\t\tset,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref, value] = args;\n\t\tref.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n//#endregion\n//#region watchPausable/index.ts\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\", ...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nconst pausableWatch = watchPausable;\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(watchPausable(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(watchPausable(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value) => element[key] === toValue(value);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value) => element === toValue(value));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get = () => count.value;\n\tconst set = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget,\n\t\tset,\n\t\treset\n\t};\n}\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count, ...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res;\n\t\tignoreUpdates(() => {\n\t\t\tres = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n//#endregion\n//#region whenever/index.ts\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createDisposableDirective, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\nexport * from \"@vueuse/shared\";\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true, name = \"ReusableTemplate\" } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({\n\t\tname: `${name}.define`,\n\t\tsetup(_, { slots }) {\n\t\t\treturn () => {\n\t\t\t\trender.value = slots.default;\n\t\t\t};\n\t\t}\n\t});\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tname: `${name}.reuse`,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index = instances.value.indexOf(props);\n\t\t\tif (index !== -1) instances.value.splice(index, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target) => {\n\t\t\tif (typeof target === \"string\") return Array.from(window.document.querySelectorAll(target)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target) {\n\t\tconst vm = toValue(target);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target, event) {\n\t\tconst vm = toValue(target);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tlet activeEl = window.document.activeElement;\n\t\t\t\twhile (activeEl === null || activeEl === void 0 ? void 0 : activeEl.shadowRoot) activeEl = activeEl.shadowRoot.activeElement;\n\t\t\t\tif ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window = defaultWindow, document = window === null || window === void 0 ? void 0 : window.document, flush = \"sync\" } = options;\n\tif (!window || !document) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed, ev);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document = defaultDocument, isTypedCharValid: isTypedCharValidFn = isTypedCharValid, isFocusedElementEditable: isFocusedElementEditableFn = isFocusedElementEditable } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditableFn() && isTypedCharValidFn(event)) callback(event);\n\t};\n\tif (document) useEventListener(document, \"keydown\", keydown, { passive: true });\n}\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window === null || window === void 0 ? void 0 : window.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document === null || document === void 0 ? void 0 : document.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document });\n\ttrigger();\n\treturn activeElement;\n}\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\tconst limit = toValue(fpsLimit);\n\t\treturn limit ? 1e3 / limit : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp) {\n\t\tif (!isActive.value || !window) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp;\n\t\tconst delta = timestamp - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window) {\n\t\t\twindow.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window) window.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay > 0) await promiseTimeout(delay);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst events = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"bluetooth\" in navigator);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator === null || navigator === void 0 ? void 0 : navigator.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: shallowReadonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tconst queryStrings = toValue(query).split(\",\");\n\t\t\tmatches.value = queryStrings.some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window) return false;\n\t\treturn window.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue(a)) && match(\"max\", getValue(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"BroadcastChannel\" in window);\n\tconst isClosed = shallowRef(false);\n\tconst channel = shallowRef();\n\tconst data = shallowRef();\n\tconst error = shallowRef(null);\n\tconst post = (data) => {\n\t\tif (channel.value) channel.value.postMessage(data);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state, length } = (window === null || window === void 0 ? void 0 : window.history) || {};\n\t\tconst { origin } = (window === null || window === void 0 ? void 0 : window.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window === null || window === void 0 || (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tfor (const [key, ref] of objectEntries(refs)) watch(ref, (value) => {\n\t\tif (!(window === null || window === void 0 ? void 0 : window.location) || window.location[key] === value) return;\n\t\twindow.location[key] = value;\n\t});\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (newSourceValue, cachedValue) => newSourceValue === cachedValue, options) {\n\tconst { deepRefs = true, ...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"permissions\" in navigator);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst copyPending = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tlet lastLegacyId = 0;\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value) {\n\t\tconst resolvedValue = value !== null && value !== void 0 ? value : toValue(source);\n\t\tif (isSupported.value && resolvedValue != null) {\n\t\t\tcopyPending.value = true;\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tconst clipboardItem = createClipboardItem(resolvedValue);\n\t\t\t\tawait navigator.clipboard.write([clipboardItem]);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) if (typeof resolvedValue === \"string\") {\n\t\t\t\ttext.value = resolvedValue;\n\t\t\t\tlegacyCopy(resolvedValue);\n\t\t\t} else {\n\t\t\t\tconst currentId = ++lastLegacyId;\n\t\t\t\tconst resolvedText = await resolvedValue();\n\t\t\t\tif (resolvedText != null && currentId === lastLegacyId) {\n\t\t\t\t\ttext.value = resolvedText;\n\t\t\t\t\tlegacyCopy(resolvedText);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t\tcopyPending.value = false;\n\t\t}\n\t}\n\tfunction createClipboardItem(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\ttext.value = value;\n\t\t\treturn new ClipboardItem({ \"text/plain\": value });\n\t\t} else return new ClipboardItem({ \"text/plain\": value().then((resolvedText = \"\") => {\n\t\t\ttext.value = resolvedText;\n\t\t\treturn new Blob([resolvedText], { type: \"text/plain\" });\n\t\t}) });\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tcopyPending: shallowReadonly(copyPending),\n\t\tisSupported,\n\t\ttext: shallowReadonly(text),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy\n\t};\n}\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst content = shallowRef([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* #__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector, attribute, value) => {\n\t\tconst el = typeof selector === \"string\" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n//#endregion\n//#region useCountdown/index.ts\nfunction getDefaultScheduler$8(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = 1e3, immediate = false } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn (cb) => useIntervalFn(cb, 1e3, { immediate: false });\n}\n/**\n* Reactive countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options = {}) {\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst { scheduler = getDefaultScheduler$8(options), onTick, onComplete } = options;\n\tconst controls = scheduler(() => {\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\tonTick === null || onTick === void 0 || onTick();\n\t\tif (remaining.value <= 0) {\n\t\t\tcontrols.pause();\n\t\t\tonComplete === null || onComplete === void 0 || onComplete();\n\t\t}\n\t});\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tcontrols.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!controls.isActive.value) {\n\t\t\tif (remaining.value > 0) controls.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tcontrols.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: controls.pause,\n\t\tresume,\n\t\tisActive: controls.isActive\n\t};\n}\n//#endregion\n//#region useCssSupports/index.ts\nfunction useCssSupports(...args) {\n\tlet options = {};\n\tif (typeof toValue(args.at(-1)) === \"object\") options = args.pop();\n\tconst [prop, value] = args;\n\tconst { window = defaultWindow, ssrValue = false } = options;\n\tconst isMounted = useMounted();\n\treturn { isSupported: computed(() => {\n\t\tif (!isClient || !isMounted.value) return ssrValue;\n\t\treturn args.length === 2 ? window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop), toValue(value)) : window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop));\n\t}) };\n}\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tconst value = (_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();\n\t\t\tvariable.value = value || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index < 0) index = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === \"dark\", defaultHandler, mode);\n\t\t\telse defaultHandler(mode);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window) {\n\t\t\tconst onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n\t\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\t\tacceleration.value = {\n\t\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t\t};\n\t\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t\t};\n\t\t\t\trotationRate.value = {\n\t\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t\t};\n\t\t\t\tinterval.value = event.interval;\n\t\t\t});\n\t\t\tuseEventListener(window, \"devicemotion\", onDeviceMotion, { passive: true });\n\t\t}\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"DeviceOrientationEvent\" in window);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window && isSupported.value) useEventListener(window, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window) stop = watchImmediate(query, () => pixelRatio.value = window.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: shallowReadonly(pixelRatio),\n\t\tstop\n\t};\n}\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated } = options;\n\tconst devices = shallowRef([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator.mediaDevices.enumerateDevices();\n\t\tonUpdated === null || onUpdated === void 0 || onUpdated(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator === null || navigator === void 0 || (_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tif (!document) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document.visibilityState);\n\tuseEventListener(document, \"visibilitychange\", () => {\n\t\tvisibility.value = document.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n//#endregion\n//#region useDraggable/index.ts\nconst defaultScrollConfig = {\n\tspeed: 2,\n\tmargin: 30,\n\tdirection: \"both\"\n};\nfunction clampContainerScroll(container) {\n\tif (container.scrollLeft > container.scrollWidth - container.clientWidth) container.scrollLeft = Math.max(0, container.scrollWidth - container.clientWidth);\n\tif (container.scrollTop > container.scrollHeight - container.clientHeight) container.scrollTop = Math.max(0, container.scrollHeight - container.clientHeight);\n}\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue, _toValue2, _toValue3, _scrollConfig$directi;\n\tconst { pointerTypes, preventDefault, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0], restrictInView, autoScroll = false } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst scrollConfig = toValue(autoScroll);\n\tconst scrollSettings = typeof scrollConfig === \"object\" ? {\n\t\tspeed: (_toValue2 = toValue(scrollConfig.speed)) !== null && _toValue2 !== void 0 ? _toValue2 : defaultScrollConfig.speed,\n\t\tmargin: (_toValue3 = toValue(scrollConfig.margin)) !== null && _toValue3 !== void 0 ? _toValue3 : defaultScrollConfig.margin,\n\t\tdirection: (_scrollConfig$directi = scrollConfig.direction) !== null && _scrollConfig$directi !== void 0 ? _scrollConfig$directi : defaultScrollConfig.direction\n\t} : defaultScrollConfig;\n\tconst getScrollAxisValues = (value) => typeof value === \"number\" ? [value, value] : [value.x, value.y];\n\tconst handleAutoScroll = (container, targetRect, position) => {\n\t\tconst { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n\t\tconst [marginX, marginY] = getScrollAxisValues(scrollSettings.margin);\n\t\tconst [speedX, speedY] = getScrollAxisValues(scrollSettings.speed);\n\t\tlet deltaX = 0;\n\t\tlet deltaY = 0;\n\t\tif (scrollSettings.direction === \"x\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.x < marginX && scrollLeft > 0) deltaX = -speedX;\n\t\t\telse if (position.x + targetRect.width > clientWidth - marginX && scrollLeft < scrollWidth - clientWidth) deltaX = speedX;\n\t\t}\n\t\tif (scrollSettings.direction === \"y\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.y < marginY && scrollTop > 0) deltaY = -speedY;\n\t\t\telse if (position.y + targetRect.height > clientHeight - marginY && scrollTop < scrollHeight - clientHeight) deltaY = speedY;\n\t\t}\n\t\tif (deltaX || deltaY) container.scrollBy({\n\t\t\tleft: deltaX,\n\t\t\ttop: deltaY,\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t};\n\tlet autoScrollInterval = null;\n\tconst startAutoScroll = () => {\n\t\tconst container = toValue(containerElement);\n\t\tif (container && !autoScrollInterval) autoScrollInterval = setInterval(() => {\n\t\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\t\tconst { x, y } = position.value;\n\t\t\tconst relativePosition = {\n\t\t\t\tx: x - container.scrollLeft,\n\t\t\t\ty: y - container.scrollTop\n\t\t\t};\n\t\t\tif (relativePosition.x >= 0 && relativePosition.y >= 0) {\n\t\t\t\thandleAutoScroll(container, targetRect, relativePosition);\n\t\t\t\trelativePosition.x += container.scrollLeft;\n\t\t\t\trelativePosition.y += container.scrollTop;\n\t\t\t\tposition.value = relativePosition;\n\t\t\t}\n\t\t}, 1e3 / 60);\n\t};\n\tconst stopAutoScroll = () => {\n\t\tif (autoScrollInterval) {\n\t\t\tclearInterval(autoScrollInterval);\n\t\t\tautoScrollInterval = null;\n\t\t}\n\t};\n\tconst isPointerNearEdge = (pointer, container, margin, targetRect) => {\n\t\tconst [marginX, marginY] = typeof margin === \"number\" ? [margin, margin] : [margin.x, margin.y];\n\t\tconst { clientWidth, clientHeight } = container;\n\t\treturn pointer.x < marginX || pointer.x + targetRect.width > clientWidth - marginX || pointer.y < marginY || pointer.y + targetRect.height > clientHeight - marginY;\n\t};\n\tconst checkAutoScroll = () => {\n\t\tif (toValue(options.disabled) || !pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (!container) return;\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst { x, y } = position.value;\n\t\tconst relativePosition = {\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t};\n\t\tif (isPointerNearEdge(relativePosition, container, scrollSettings.margin, targetRect)) startAutoScroll();\n\t\telse stopAutoScroll();\n\t};\n\tif (toValue(autoScroll)) watch(position, checkAutoScroll);\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + (autoScroll ? 0 : container.scrollLeft) : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + (autoScroll ? 0 : container.scrollTop) : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (container instanceof HTMLElement) clampContainerScroll(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tif (toValue(autoScroll) && container) {\n\t\t\tif (autoScrollInterval === null) handleAutoScroll(container, targetRect, {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t});\n\t\t\tx += container.scrollLeft;\n\t\t\ty += container.scrollTop;\n\t\t}\n\t\tif (container && (restrictInView || autoScroll)) {\n\t\t\tif (axis !== \"y\") {\n\t\t\t\tconst relativeX = x - container.scrollLeft;\n\t\t\t\tif (relativeX < 0) x = container.scrollLeft;\n\t\t\t\telse if (relativeX > container.clientWidth - targetRect.width) x = container.clientWidth - targetRect.width + container.scrollLeft;\n\t\t\t}\n\t\t\tif (axis !== \"x\") {\n\t\t\t\tconst relativeY = y - container.scrollTop;\n\t\t\t\tif (relativeY < 0) y = container.scrollTop;\n\t\t\t\telse if (relativeY > container.clientHeight - targetRect.height) y = container.clientHeight - targetRect.height + container.scrollTop;\n\t\t\t}\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tif (autoScroll) stopAutoScroll();\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, [\"pointerup\", \"pointercancel\"], end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `\n left: ${position.value.x}px;\n top: ${position.value.y}px;\n ${autoScroll ? \"text-wrap: nowrap;\" : \"\"}\n `)\n\t};\n}\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst types = Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type);\n\t\t\tconst dataTypesValid = checkDataTypes(types);\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n//#endregion\n//#region useElementByPoint/index.ts\nfunction getDefaultScheduler$7(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (cb) => useRafFn(cb, { immediate }) : (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document = defaultDocument, multiple, scheduler = getDefaultScheduler$7(options) } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document && \"elementsFromPoint\" in document;\n\t\treturn document && \"elementFromPoint\" in document;\n\t});\n\tconst element = shallowRef(null);\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...scheduler(() => {\n\t\t\tvar _document$elementsFro, _document$elementFrom;\n\t\t\telement.value = toValue(multiple) ? (_document$elementsFro = document === null || document === void 0 ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document === null || document === void 0 ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t\t})\n\t};\n}\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n//#endregion\n//#region useElementOverflow/index.ts\n/**\n* react a dom's overflow state\n* @see https://vueuse.org/useElementOverflow\n* @param target\n* @param option\n*/\nfunction useElementOverflow(target, option = {}) {\n\tconst { observeMutation = false, onUpdated, window = defaultWindow } = option;\n\tconst isXOverflowed = shallowRef(false);\n\tconst isYOverflowed = shallowRef(false);\n\tfunction update(htmlEl) {\n\t\tisXOverflowed.value = htmlEl.scrollWidth > htmlEl.offsetWidth;\n\t\tisYOverflowed.value = htmlEl.scrollHeight > htmlEl.offsetHeight;\n\t}\n\tconst onResizeUpdated = onUpdated;\n\tconst targetEl = computed(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (!el || el instanceof SVGElement) return void 0;\n\t\treturn el;\n\t});\n\tconst targets = () => {\n\t\tconst el = targetEl.value;\n\t\tif (!el || el instanceof SVGElement) return [];\n\t\treturn [el, ...Array.from(el.children).filter((i) => i instanceof HTMLElement)];\n\t};\n\tuseResizeObserver(targets, (entries, observer) => {\n\t\tconst el = targetEl.value;\n\t\tif (el) update(el);\n\t\tonResizeUpdated === null || onResizeUpdated === void 0 || onResizeUpdated(entries, observer);\n\t}, { window });\n\tif (observeMutation) {\n\t\tconst onMutationUpdated = onUpdated;\n\t\tuseMutationObserver(targets, (entries, observer) => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el) update(el);\n\t\t\tonMutationUpdated === null || onMutationUpdated === void 0 || onMutationUpdated(entries, observer);\n\t\t}, {\n\t\t\twindow,\n\t\t\t...typeof observeMutation === \"object\" ? observeMutation : {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true\n\t\t\t}\n\t\t});\n\t}\n\treturn {\n\t\tisXOverflowed: shallowReadonly(isXOverflowed),\n\t\tisYOverflowed: shallowReadonly(isYOverflowed),\n\t\tstop,\n\t\tupdate: () => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el && window) update(el);\n\t\t}\n\t};\n}\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele && \"offsetWidth\" in ele) if (box === \"content-box\" && window) {\n\t\t\tconst cs = window.getComputedStyle(ele);\n\t\t\tconst padX = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t\t\tconst padY = Number.parseFloat(cs.paddingTop) + Number.parseFloat(cs.paddingBottom);\n\t\t\tconst bdX = Number.parseFloat(cs.borderLeftWidth) + Number.parseFloat(cs.borderRightWidth);\n\t\t\tconst bdY = Number.parseFloat(cs.borderTopWidth) + Number.parseFloat(cs.borderBottomWidth);\n\t\t\twidth.value = ele.offsetWidth - padX - bdX;\n\t\t\theight.value = ele.offsetHeight - padY - bdY;\n\t\t} else {\n\t\t\twidth.value = ele.offsetWidth;\n\t\t\theight.value = ele.offsetHeight;\n\t\t}\n\t\telse if (ele) {\n\t\t\twidth.value = initialSize.width;\n\t\t\theight.value = initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects changes to a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin, threshold = 0, window = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"IntersectionObserver\" in window);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\ttoValue(rootMargin),\n\t\tisActive.value\n\t], ([targets, root, rootMargin]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementVisibility/index.ts\nfunction useElementVisibility(element, options = {}) {\n\tconst { window = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst isVisible = shallowRef(initialValue);\n\tconst observerController = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = isVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\tisVisible.value = isIntersecting;\n\t\tif (once) watchOnce(isVisible, () => {\n\t\t\tobserverController.stop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow,\n\t\tthreshold,\n\t\trootMargin\n\t});\n\treturn options.controls ? {\n\t\t...observerController,\n\t\tisVisible\n\t} : isVisible;\n}\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tfunction on(listener) {\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\ttryOnScopeDispose(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document === null || document === void 0 ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document === null || document === void 0 ? void 0 : document.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument === null || document === void 0 || document.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tif (currentExecuteCounter === executeCounter) {\n\t\t\t\terror.value = errorData;\n\t\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\t}\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch]) => refetch && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: shallowReadonly(isFinished),\n\t\tisFetching: shallowReadonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch]) => refetch && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document ? document.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tconst result = event.target;\n\t\t\t\tfiles.value = result.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options.multiple);\n\t\tel.accept = toValue(options.accept);\n\t\tel.webkitdirectory = toValue(options.directory);\n\t\tif (hasOwn(options, \"capture\")) el.capture = toValue(options.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document === null || document === void 0 ? void 0 : document.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document && m in document);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document === null || document === void 0 ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document && document[fullscreenEnabled.value] != null) return document[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[fullscreenEnabled.value]) != null) return Boolean(target[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document === null || document === void 0 ? void 0 : document[exitMethod.value]) != null) await document[exitMethod.value]();\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[exitMethod.value]) != null) await target[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target = targetRef.value;\n\t\tif (requestMethod.value && (target === null || target === void 0 ? void 0 : target[requestMethod.value]) != null) {\n\t\t\tawait target[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getGamepads\" in navigator);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) {\n\t\t\tif (!gamepad) continue;\n\t\t\tconst index = gamepads.value.findIndex((x) => x.index === gamepad.index);\n\t\t\tif (index > -1) gamepads.value[index] = stateFromGamepad(gamepad);\n\t\t}\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"geolocation\" in navigator);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = shallowRef({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator) navigator.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events = defaultEvents$1, window = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window) {\n\t\tconst document = window.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events) useEventListener(window, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document, \"visibilitychange\", () => {\n\t\t\tif (document.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x) {\n\t\t\tscrollTo(x, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y) {\n\t\t\tscrollTo(void 0, y);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window) return;\n\t\tconst eventTarget = (_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target;\n\t\tsetArrivedState(eventTarget);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = shallowRef();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value || promise.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\tpromise.value = null;\n\t\t\tnextTick(() => checkAndLoad());\n\t\t});\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t}));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events = defaultEvents, document = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document) events.forEach((listenerEvent) => {\n\t\tuseEventListener(document, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);\n}\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = /* @__PURE__ */ new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (!key) return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key of values) {\n\t\t\tusedKeys.add(key);\n\t\t\tsetRefs(key, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key) => {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = shallowRef([]);\n\tconst tracks = shallowRef([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = Boolean(document && \"pictureInPictureEnabled\" in document);\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src, type, media }) => {\n\t\t\tconst source = document.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n//#endregion\n//#region useMemory/index.ts\nfunction getDefaultScheduler$6(options) {\n\tif (\"interval\" in options || \"immediate\" in options || \"immediateCallback\" in options) {\n\t\tconst { interval = 1e3, immediate, immediateCallback } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, {\n\t\t\timmediate,\n\t\t\timmediateCallback\n\t\t});\n\t}\n\treturn useIntervalFn;\n}\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = shallowRef();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { scheduler = getDefaultScheduler$6 } = options;\n\t\tscheduler(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window = defaultWindow, target = window, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window) {\n\t\t\t_prevScrollX = window.scrollX;\n\t\t\t_prevScrollY = window.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window === null || window === void 0 ? void 0 : window.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"language\" in navigator);\n\tconst language = shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tif (navigator) language.value = navigator.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"connection\" in navigator);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator) return;\n\t\tisOnline.value = navigator.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window) {\n\t\tuseEventListener(window, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: shallowReadonly(isOnline),\n\t\tsaveData: shallowReadonly(saveData),\n\t\tofflineAt: shallowReadonly(offlineAt),\n\t\tonlineAt: shallowReadonly(onlineAt),\n\t\tdownlink: shallowReadonly(downlink),\n\t\tdownlinkMax: shallowReadonly(downlinkMax),\n\t\teffectiveType: shallowReadonly(effectiveType),\n\t\trtt: shallowReadonly(rtt),\n\t\ttype: shallowReadonly(type)\n\t};\n}\n//#endregion\n//#region useNow/index.ts\nfunction getDefaultScheduler$5(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (fn) => useRafFn(fn, { immediate }) : (fn) => useIntervalFn(fn, interval, options);\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, scheduler = getDefaultScheduler$5(options) } = options;\n\tconst now = shallowRef(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = scheduler(update);\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn shallowReadonly(url);\n}\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value) {\n\t\t\t_value.value = clamp(value, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window) return;\n\t\tevent = event || window.event;\n\t\tconst from = event.relatedTarget || event.toElement;\n\t\tisLeft.value = !from;\n\t};\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n\tconst screenOrientation = isSupported.value ? window.screen.orientation : {};\n\tconst orientation = shallowRef(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = -(y.value - height.value / 2) / height.value;\n\t\t\t\treturn mouseRollAdjust(value);\n\t\t\t}\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = (x.value - width.value / 2) / width.value;\n\t\t\t\treturn mouseTiltAdjust(value);\n\t\t\t}\n\t\t}),\n\t\tsource\n\t};\n}\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window = defaultWindow, immediate = true, ...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"PerformanceObserver\" in window);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* #__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document && \"pointerLockElement\" in document);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"pointerup\", \"pointercancel\"], (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: shallowReadonly(isSwiping),\n\t\tdirection: shallowReadonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tif (!window) return shallowRef([\"en\"]);\n\tconst navigator = window.navigator;\n\tconst value = shallowRef(navigator.languages);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tvalue.value = navigator.languages;\n\t}, { passive: true });\n\treturn value;\n}\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the \n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Formats a size in megabytes to a human-readable string.\n *\n * @param mb size in megabytes\n */\nexport function formatMegabytes(mb: number): string {\n\tconst units = ['MB', 'GB', 'TB', 'PB', 'EB']\n\tlet value = mb\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(2) + ' ' + units[i]\n}\n\n/**\n * Adds alpha to a CSS color string (handles #RRGGBB and rgb()).\n *\n * @param color base colour as #RRGGBB or rgb(...)\n * @param alpha opacity between 0 and 1\n */\nexport function withAlpha(color: string, alpha: number): string {\n\tif (color.startsWith('#') && color.length === 7) {\n\t\tconst r = parseInt(color.slice(1, 3), 16)\n\t\tconst g = parseInt(color.slice(3, 5), 16)\n\t\tconst b = parseInt(color.slice(5, 7), 16)\n\t\treturn `rgba(${r}, ${g}, ${b}, ${alpha})`\n\t}\n\tif (color.startsWith('rgb(')) {\n\t\treturn color.replace('rgb(', 'rgba(').replace(')', `, ${alpha})`)\n\t}\n\treturn color\n}\n\n/**\n * Formats a size in bytes to a human-readable string.\n *\n * @param bytes size in bytes\n */\nexport function formatBytes(bytes: number): string {\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\tlet value = Math.abs(bytes)\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(1) + ' ' + units[i]\n}\n\n/**\n * Reads a themed colour from the active theme's CSS custom properties, so that\n * canvas drawing (which cannot resolve `var(...)` itself) follows light/dark\n * mode and custom themes.\n *\n * @param name custom property name, including the leading dashes\n * @param fallback colour to use when the property is not set\n */\nexport function cssColor(name: string, fallback: string): string {\n\treturn getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim() || fallback\n}\n\n/**\n * The themed primary accent colour.\n */\nexport function primaryColor(): string {\n\treturn cssColor('--color-primary-element', '#3681c3')\n}\n\n/**\n * Shortens a job class for a table column: for an `OCA\\` job the second segment\n * is the app id, so `OCA\\Talk\\BackgroundJob\\RemoveEmptyRooms` becomes\n * \"Talk RemoveEmptyRooms\".\n *\n * @param className fully qualified class name\n */\nexport function jobName(className: string): string {\n\tconst parts = className.split('\\\\')\n\tconst name = parts.pop() ?? className\n\treturn parts[0] === 'OCA' && parts[1] ? `${parts[1]} ${name}` : name\n}\n\n/**\n * @param duration run time in milliseconds, null when the job reported none\n */\nexport function formatDuration(duration: number | null): string {\n\tif (duration === null) {\n\t\treturn '–'\n\t}\n\tif (duration < 1000) {\n\t\t// TRANSLATORS: {duration} is a number of milliseconds, e.g. \"412 ms\"\n\t\treturn t('serverinfo', '{duration} ms', { duration })\n\t}\n\t// TRANSLATORS: {duration} is a number of seconds with one decimal, e.g. \"1.4 s\"\n\treturn t('serverinfo', '{duration} s', { duration: (duration / 1000).toFixed(1) })\n}\n\n/**\n * @param memoryPeak peak memory in kilobytes, base 10 as the job runner reports it\n */\nexport function formatKilobytes(memoryPeak: number | null): string {\n\treturn memoryPeak === null ? '–' : formatBytes(memoryPeak * 1000)\n}\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { Chart as Chart$1, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\nimport { version, isProxy, toRaw, defineComponent, ref, shallowRef, onMounted, onUnmounted, watch, nextTick, h } from 'vue';\n\nconst CommonProps = {\n data: {\n type: Object,\n required: true\n },\n options: {\n type: Object,\n default: ()=>({})\n },\n plugins: {\n type: Array,\n default: ()=>[]\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n updateMode: {\n type: String,\n default: undefined\n }\n};\nconst A11yProps = {\n ariaLabel: {\n type: String\n },\n ariaDescribedby: {\n type: String\n }\n};\nconst Props = {\n type: {\n type: String,\n required: true\n },\n destroyDelay: {\n type: Number,\n default: 0 // No delay by default\n },\n ...CommonProps,\n ...A11yProps\n};\n\nconst compatProps = version[0] === \"2\" ? (internals, props)=>Object.assign(internals, {\n attrs: props\n }) : (internals, props)=>Object.assign(internals, props);\nfunction toRawIfProxy(obj) {\n return isProxy(obj) ? toRaw(obj) : obj;\n}\nfunction cloneProxy(obj) {\n let src = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : obj;\n return isProxy(src) ? new Proxy(obj, {}) : obj;\n}\nfunction setOptions(chart, nextOptions) {\n const options = chart.options;\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets, datasetIdKey) {\n const addedDatasets = [];\n currentData.datasets = nextDatasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction cloneData(data, datasetIdKey) {\n const nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"index\", {\n intersect: true\n }, false);\n}\n\nconst Chart = defineComponent({\n props: Props,\n setup (props, param) {\n let { expose , slots } = param;\n const canvasRef = ref(null);\n const chartRef = shallowRef(null);\n expose({\n chart: chartRef\n });\n const renderChart = ()=>{\n if (!canvasRef.value) return;\n const { type , data , options , plugins , datasetIdKey } = props;\n const clonedData = cloneData(data, datasetIdKey);\n const proxiedData = cloneProxy(clonedData, data);\n chartRef.value = new Chart$1(canvasRef.value, {\n type,\n data: proxiedData,\n options: {\n ...options\n },\n plugins\n });\n };\n const destroyChart = ()=>{\n const chart = toRaw(chartRef.value);\n if (chart) {\n if (props.destroyDelay > 0) {\n setTimeout(()=>{\n chart.destroy();\n chartRef.value = null;\n }, props.destroyDelay);\n } else {\n chart.destroy();\n chartRef.value = null;\n }\n }\n };\n const update = (chart)=>{\n chart.update(props.updateMode);\n };\n onMounted(renderChart);\n onUnmounted(destroyChart);\n watch([\n ()=>props.options,\n ()=>props.data\n ], (param, param1)=>{\n let [nextOptionsProxy, nextDataProxy] = param, [prevOptionsProxy, prevDataProxy] = param1;\n const chart = toRaw(chartRef.value);\n if (!chart) {\n return;\n }\n let shouldUpdate = false;\n if (nextOptionsProxy) {\n const nextOptions = toRawIfProxy(nextOptionsProxy);\n const prevOptions = toRawIfProxy(prevOptionsProxy);\n if (nextOptions && nextOptions !== prevOptions) {\n setOptions(chart, nextOptions);\n shouldUpdate = true;\n }\n }\n if (nextDataProxy) {\n const nextLabels = toRawIfProxy(nextDataProxy.labels);\n const prevLabels = toRawIfProxy(prevDataProxy.labels);\n const nextDatasets = toRawIfProxy(nextDataProxy.datasets);\n const prevDatasets = toRawIfProxy(prevDataProxy.datasets);\n if (nextLabels !== prevLabels) {\n setLabels(chart.config.data, nextLabels);\n shouldUpdate = true;\n }\n if (nextDatasets && nextDatasets !== prevDatasets) {\n setDatasets(chart.config.data, nextDatasets, props.datasetIdKey);\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n nextTick(()=>{\n update(chart);\n });\n }\n }, {\n deep: true\n });\n return ()=>{\n return h(\"canvas\", {\n role: \"img\",\n \"aria-label\": props.ariaLabel,\n \"aria-describedby\": props.ariaDescribedby,\n ref: canvasRef\n }, [\n h(\"p\", {}, [\n slots.default ? slots.default() : \"\"\n ])\n ]);\n };\n }\n});\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return defineComponent({\n props: CommonProps,\n setup (props, param) {\n let { expose } = param;\n const ref = shallowRef(null);\n const reforwardRef = (chartRef)=>{\n ref.value = chartRef?.chart;\n };\n expose({\n chart: ref\n });\n return ()=>{\n return h(Chart, compatProps({\n ref: reforwardRef\n }, {\n type,\n ...props\n }));\n };\n }\n });\n}\nconst Bar = /* #__PURE__ */ createTypedChart(\"bar\", BarController);\nconst Doughnut = /* #__PURE__ */ createTypedChart(\"doughnut\", DoughnutController);\nconst Line = /* #__PURE__ */ createTypedChart(\"line\", LineController);\nconst Pie = /* #__PURE__ */ createTypedChart(\"pie\", PieController);\nconst PolarArea = /* #__PURE__ */ createTypedChart(\"polarArea\", PolarAreaController);\nconst Radar = /* #__PURE__ */ createTypedChart(\"radar\", RadarController);\nconst Bubble = /* #__PURE__ */ createTypedChart(\"bubble\", BubbleController);\nconst Scatter = /* #__PURE__ */ createTypedChart(\"scatter\", ScatterController);\n\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, createTypedChart, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };\n//# sourceMappingURL=index.js.map\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","import '../assets/NcFormBox-TRgICDO3.css';\nimport { defineComponent, useCssModule, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from \"vue\";\nimport { N as NC_FORM_BOX_CONTEXT_KEY } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBox\",\n props: {\n row: { type: Boolean }\n },\n setup(__props) {\n const style = useCssModule();\n provide(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: true,\n formBoxItemClass: style.ncFormBox__item\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.ncFormBox, __props.row ? _ctx.$style.ncFormBox_row : _ctx.$style.ncFormBox_col])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n itemClass: _ctx.$style.ncFormBox__item\n })\n ], 2);\n };\n }\n});\nconst ncFormBox = \"_ncFormBox_s7kf-\";\nconst ncFormBox_row = \"_ncFormBox_row_GzYuE\";\nconst ncFormBox__item = \"_ncFormBox__item_691pI\";\nconst ncFormBox_col = \"_ncFormBox_col_Lt4lg\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_JPsV1\",\n ncFormBox,\n ncFormBox_row,\n ncFormBox__item,\n ncFormBox_col\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBox as N\n};\n//# sourceMappingURL=NcFormBox-Bmqar8nn.mjs.map\n","import '../assets/NcFormBoxItem-CABDVZLe.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { u as useNcFormBox } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcFormBoxItem\",\n props: {\n tag: {},\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n class: { default: () => void 0 },\n itemClasses: { default: () => void 0 }\n },\n emits: [\"click\"],\n setup(__props) {\n const slots = useSlots();\n const { formBoxItemClass } = useNcFormBox();\n const descriptionId = createElementId();\n const hasDescription = () => !!__props.description || !!slots.description;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n __props.class,\n _ctx.$style.formBoxItem,\n unref(formBoxItemClass),\n {\n [_ctx.$style.formBoxItem_inverted]: __props.invertedAccent && hasDescription(),\n [_ctx.$style.formBoxItem_legacy]: unref(isLegacy)\n }\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__content)\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(__props.tag), mergeProps({\n class: [_ctx.$style.formBoxItem__element, __props.itemClasses]\n }, _ctx.$attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", { descriptionId: unref(descriptionId) }, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Label is missing\"), 1)\n ])\n ]),\n _: 3\n }, 16, [\"class\"])),\n hasDescription() ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: normalizeClass(_ctx.$style.formBoxItem__description)\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 10, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\", { descriptionId: unref(descriptionId) }, () => [\n _cache[1] || (_cache[1] = createTextVNode(\" ⚠️ Icon is missing \", -1))\n ])\n ], 2)\n ], 2);\n };\n }\n});\nconst formBoxItem = \"_formBoxItem_Gp-TA\";\nconst formBoxItem__description = \"_formBoxItem__description_UqZJ1\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_dP9aJ\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_BU-i-\";\nconst formBoxItem__element = \"_formBoxItem__element_jHCux\";\nconst formBoxItem__content = \"_formBoxItem__content_UKovC\";\nconst formBoxItem__icon = \"_formBoxItem__icon_AvkP3\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_8BFGk\",\n formBoxItem,\n formBoxItem__description,\n formBoxItem_legacy,\n formBoxItem_inverted,\n formBoxItem__element,\n formBoxItem__content,\n formBoxItem__icon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxItem as N\n};\n//# sourceMappingURL=NcFormBoxItem-Cm8aZaVJ.mjs.map\n","import '../assets/NcFormBoxButton-ClkxmO-H.css';\nimport { reactive, inject, computed, defineComponent, toRef, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { s as mdiOpenInNew, t as mdiArrowTopRight } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { routerKey } from \"vue-router\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useButtonLink(options) {\n const props = reactive(options);\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const isLink = computed(() => tag.value === \"RouterLink\" || tag.value === \"a\");\n const isHyperLink = computed(() => tag.value === \"a\");\n const isRouterLink = computed(() => tag.value === \"RouterLink\");\n const isButton = computed(() => tag.value === \"button\");\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\",\n ...props.additionalAttrs?.(\"RouterLink\") ?? {}\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href,\n target: props.target,\n download: props.download || void 0,\n rel: \"nofollow noreferrer noopener\",\n ...props.additionalAttrs?.(\"a\") ?? {}\n };\n } else if (tag.value === \"button\") {\n return {\n type: props.type || \"button\",\n disabled: props.disabled,\n ...props.additionalAttrs?.(\"button\") ?? {}\n };\n }\n });\n return {\n tag,\n isLink,\n isHyperLink,\n isRouterLink,\n isButton,\n attrs\n };\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxButton\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n to: { default: () => void 0 },\n href: { default: () => void 0 },\n target: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n },\n emits: [\"click\"],\n setup(__props) {\n const { tag, attrs, isLink } = useButtonLink({\n to: toRef(() => __props.to),\n href: toRef(() => __props.href),\n target: toRef(() => __props.target),\n disabled: toRef(() => __props.disabled)\n });\n const icon = computed(() => {\n if (isLink.value) {\n return __props.target === \"_blank\" ? mdiOpenInNew : mdiArrowTopRight;\n }\n return void 0;\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, mergeProps({\n tag: unref(tag),\n itemClasses: [\n \"button-vue\",\n /* Reset server's global HTML button styles */\n _ctx.$style.formBoxButton\n ],\n invertedAccent: __props.invertedAccent\n }, unref(attrs), {\n tabindex: \"0\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), createSlots({ _: 2 }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0,\n _ctx.$slots.icon || icon.value ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n icon.value ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: icon.value,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n key: \"2\"\n } : void 0\n ]), 1040, [\"tag\", \"itemClasses\", \"invertedAccent\"]);\n };\n }\n});\nconst formBoxButton = \"_formBoxButton_E8Xfr\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_MaIxG\",\n formBoxButton\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxButton as N\n};\n//# sourceMappingURL=NcFormBoxButton-G_PkUiQy.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-6F-qWHq0.mjs.map\n","import { defineComponent, openBlock, createBlock, unref, createSlots, withCtx, createVNode, createTextVNode, toDisplayString, createElementVNode, renderSlot } from \"vue\";\nimport { whenever } from \"@vueuse/core\";\nimport { N as NcFormBoxButton } from \"./NcFormBoxButton-G_PkUiQy.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { u as useCopy } from \"./useCopy-6F-qWHq0.mjs\";\nconst _hoisted_1 = { class: \"hidden-visually\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxCopyButton\",\n props: {\n label: { default: () => void 0 },\n value: {},\n disabled: { type: Boolean, default: false }\n },\n emits: [\"copy\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const { isCopied, copy, icon, altText } = useCopy(() => __props.value);\n whenever(isCopied, () => emit(\"copy\"));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxButton, {\n disabled: __props.disabled,\n invertedAccent: \"\",\n onClick: unref(copy)\n }, createSlots({\n description: withCtx(() => [\n createTextVNode(toDisplayString(__props.value), 1)\n ]),\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, toDisplayString(unref(altText)), 1),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"disabled\", \"onClick\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map\n","import '../assets/NcIconToggleSwitch-zUXkaJHv.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `\n\t\n\t\n`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v6bd152af\": color.value,\n \"v16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: __props.size,\n inline: __props.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_IKWaj\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_63AMQ\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-CRvGt4su.mjs.map\n","import '../assets/NcFormBoxSwitch-NCjook_Z.css';\nimport { defineComponent, useModel, watch, openBlock, createBlock, unref, createSlots, withCtx, withDirectives, createElementVNode, normalizeClass, vModelCheckbox, createVNode, renderSlot, createTextVNode, toDisplayString, mergeModels } from \"vue\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CRvGt4su.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-describedby\", \"disabled\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxSwitch\",\n props: /* @__PURE__ */ mergeModels({\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ required: true } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"enable\", \"disable\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const inputId = createElementId();\n watch(modelValue, () => {\n if (modelValue.value) {\n emit(\"enable\");\n } else {\n emit(\"disable\");\n }\n }, {\n // defineModel emits update:modelValue synchronously\n // Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n flush: \"sync\"\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, {\n tag: \"label\",\n for: unref(inputId)\n }, createSlots({\n icon: withCtx(({ descriptionId }) => [\n withDirectives(createElementVNode(\"input\", {\n id: unref(inputId),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: normalizeClass(_ctx.$style.formBoxSwitch__input),\n type: \"checkbox\",\n role: \"switch\",\n \"aria-describedby\": descriptionId,\n disabled: __props.disabled\n }, null, 10, _hoisted_1), [\n [vModelCheckbox, modelValue.value]\n ]),\n createVNode(NcIconToggleSwitch, {\n checked: modelValue.value,\n inline: \"\"\n }, null, 8, [\"checked\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"for\"]);\n };\n }\n});\nconst formBoxSwitch__input = \"_formBoxSwitch__input_n8432\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v0XYD\",\n formBoxSwitch__input\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxSwitch as N\n};\n//# sourceMappingURL=NcFormBoxSwitch-DSXiQcnq.mjs.map\n","import '../assets/NcFormGroup-eh8-PBGB.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-describedby\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormGroup\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n hideLabel: { type: Boolean, default: false },\n hideDescription: { type: Boolean, default: false },\n noGap: { type: Boolean, default: false }\n },\n setup(__props) {\n const slots = useSlots();\n const id = `nc-form-group-${createElementId()}`;\n const descriptionId = `${id}-description`;\n const hasDescription = () => !!__props.description || !!slots.description;\n const getDescriptionId = () => hasDescription() ? descriptionId : void 0;\n const hasContentOnly = () => __props.hideLabel && (!hasDescription() || __props.hideDescription);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"fieldset\", {\n class: normalizeClass([_ctx.$style.formGroup, { [_ctx.$style.formGroup_noGap]: __props.noGap }]),\n \"aria-describedby\": getDescriptionId()\n }, [\n createElementVNode(\"legend\", {\n class: normalizeClass([_ctx.$style.formGroup__label, { \"hidden-visually\": __props.hideLabel }])\n }, [\n renderSlot(_ctx.$slots, \"label\", {}, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Missing label\"), 1)\n ])\n ], 2),\n hasDescription() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: descriptionId,\n class: normalizeClass([_ctx.$style.formGroup__description, { \"hidden-visually\": __props.hideDescription }])\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([_ctx.$style.formGroup__content, { [_ctx.$style.formGroup__content_only]: hasContentOnly() }])\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ], 10, _hoisted_1);\n };\n }\n});\nconst formGroup = \"_formGroup_P4ub1\";\nconst formGroup_noGap = \"_formGroup_noGap_I25Tm\";\nconst formGroup__label = \"_formGroup__label_dvGhm\";\nconst formGroup__description = \"_formGroup__description_rqVc0\";\nconst formGroup__content = \"_formGroup__content_fnqsg\";\nconst formGroup__content_only = \"_formGroup__content_only_G-Ivq\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_2NWOj\",\n formGroup,\n formGroup_noGap,\n formGroup__label,\n formGroup__description,\n formGroup__content,\n formGroup__content_only\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormGroup as N\n};\n//# sourceMappingURL=NcFormGroup-N7qIFAwN.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n","\n\n\n\n","import '../assets/NcProgressBar-B6wveIA1.css';\nimport { defineComponent, useCssVars, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"progress-bar-container\"\n};\nconst _hoisted_6 = [\"value\"];\nconst _hoisted_7 = {\n key: 0,\n class: \"progress-bar__value\"\n};\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" },\n showValue: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v3a86fec2\": _ctx.color,\n \"v57442460\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return __props.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": __props.value,\n class: normalizeClass([{ \"progress-bar--error\": __props.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"progress\", {\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": __props.error }]),\n value: __props.value,\n max: \"100\"\n }, null, 10, _hoisted_6),\n __props.showValue ? (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(__props.value) + \"%\", 1)) : createCommentVNode(\"\", true)\n ]));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-353fa414\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-C-ane-Ni.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members — including\n * class accessors and template prototypes — from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null && obj !== Object.prototype) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = getPrototypeOf(obj);\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n getPrototypeOf(prototype) === null) &&\n // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n // Symbol.iterator as evidence the value is a tagged/iterable type rather\n // than a plain object, while ignoring keys injected onto Object.prototype.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(value);\n }\n throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n const path = [];\n const pattern = /\\w+|\\[(\\w*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n let i = 0;\n while (i < url.length && url.charCodeAt(i) <= 0x20) {\n i++;\n }\n return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n throw new AxiosError(\n 'Invalid URL: missing \"//\" after protocol',\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex = isHexDigit(a) && isHexDigit(b);\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.18.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n","/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nimport Axios from 'axios';\n/**\n * Get an Axios instance with default Nextcloud headers and CSRF token handling.\n */\nexport function getCancelableClient() {\n const client = Axios.create({\n headers: {\n requesttoken: getRequestToken() ?? '',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n });\n onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n });\n return Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { fetchRequestToken } from '@nextcloud/auth';\nimport { isAxiosError } from 'axios';\nconst RETRY_KEY = '_nextcloudCsrfTokenReloaded';\n/**\n * Handle CSRF token errors in Axios requests.\n *\n * @param axios - The axios instance the interceptor is attached to\n */\nexport function onCsrfTokenError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config\n && !(RETRY_KEY in config)\n && response?.status === 412\n && response?.data?.message === 'CSRF check failed') {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token.`);\n const token = await fetchRequestToken();\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n [RETRY_KEY]: true,\n headers: {\n ...config.headers,\n requesttoken: token,\n },\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\nconst RETRY_DELAY_KEY = '_nextcloudMaintenanceModeRetryDelay';\n/**\n * Handles Nextcloud maintenance mode errors in Axios requests.\n *\n * @param axios - The current Axios instance\n */\nexport function onMaintenanceModeError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = config?.[RETRY_DELAY_KEY] ?? 1;\n /**\n * Retry requests if they failed due to maintenance mode\n *\n * The delay is exponential. It starts at 2s and then doubles\n * until a final retry after 32s. This results in roughly 1m of\n * retries until we give up and throw the axios error towards\n * the caller.\n */\n if (status === 503\n && headers?.['x-nextcloud-maintenance-mode'] === '1'\n && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error('Retry delay exceeded one minute, giving up.', { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1000);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay,\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\n/**\n * Axios response interceptor onError callback.\n * This interceptor checks if the response failed because of a expired user session\n * and if enabled it will cause a redirect to the login.\n *\n * @param error - The response error\n */\nexport async function onNotLoggedInError(error) {\n if (isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401\n && response?.data?.message === 'Current user is not logged in'\n && config?.reloadExpiredSession\n && globalThis.location?.reload) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n if (globalThis.OC?.reload) {\n globalThis.OC.reload();\n }\n else {\n globalThis.location.reload();\n }\n }\n }\n throw error;\n}\n","/**\n * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { getCancelableClient } from \"./client.js\";\nimport { onCsrfTokenError } from \"./interceptors/csrf-token.js\";\nimport { onMaintenanceModeError } from \"./interceptors/maintenance-mode.js\";\nimport { onNotLoggedInError } from \"./interceptors/not-logged-in.js\";\nconst cancelableClient = getCancelableClient();\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nexport { isAxiosError, isCancel } from 'axios';\nexport default cancelableClient;\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Ref } from 'vue'\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { onUnmounted, ref } from 'vue'\n\n/**\n * Polls an endpoint until the component goes away. A failed request keeps the\n * previous values rather than blanking the charts.\n *\n * @param url app-relative endpoint to poll\n * @param intervalMs delay between two requests\n */\nexport function useLiveData(url: string, intervalMs = 2000) {\n\tconst data = ref(null) as Ref\n\tconst tick = ref(0)\n\n\tlet timeoutId: ReturnType | null = null\n\tlet stopped = false\n\n\tasync function poll() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl(url))\n\t\t\tdata.value = response.data as T\n\t\t\ttick.value++\n\t\t} catch {\n\t\t\t// Keep previous values on error\n\t\t} finally {\n\t\t\tif (!stopped) {\n\t\t\t\ttimeoutId = setTimeout(poll, intervalMs)\n\t\t\t}\n\t\t}\n\t}\n\n\ttimeoutId = setTimeout(poll, 0)\n\n\tonUnmounted(() => {\n\t\tstopped = true\n\t\tif (timeoutId !== null) {\n\t\t\tclearTimeout(timeoutId)\n\t\t\ttimeoutId = null\n\t\t}\n\t})\n\n\treturn { data, tick }\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { ref } from 'vue'\n\nexport interface StaticData {\n\thostname: string\n\tosname: string\n\tcpu: { name: string, threads: number }\n\tdiskinfo: Array<{ device: string, fs: string, used: number, available: number, percent: string, mount: string }>\n\tnetworkinfo: { hostname: string, gateway: string, dns: string }\n\tnetworkinterfaces: Array<{\n\t\tname: string\n\t\tup: boolean\n\t\tipv4: string[]\n\t\tipv6: string[]\n\t\tmac: string\n\t\tspeed: string\n\t\tduplex: string\n\t\tloopback: boolean\n\t}>\n\tocs: string\n\tstorage: { num_files: number, num_storages: number, num_users: number }\n\tshares: {\n\t\tnum_shares: number\n\t\tnum_shares_user: number\n\t\tnum_shares_groups: number\n\t\tnum_shares_link: number\n\t\tnum_shares_mail: number\n\t\tnum_fed_shares_sent: number\n\t\tnum_fed_shares_received: number\n\t\tnum_shares_room: number\n\t}\n\tphp: {\n\t\tversion: string\n\t\tmemory_limit: number\n\t\tmax_execution_time: number\n\t\tupload_max_filesize: number\n\t\topcache_revalidate_freq: number\n\t\textensions: string[] | null\n\t}\n\tfpm: Record | false\n\tdatabase: { type: string, version: string, size: number }\n\tactiveUsers: { last1hour: number, last24hours: number, last7days: number, last1month: number }\n\tfreeSpace: number | null\n\tmemTotal: number\n\tphpinfo: boolean\n\tphpinfoUrl: string\n}\n\nexport function useStaticData() {\n\tconst data = ref(null)\n\tconst loading = ref(true)\n\tconst error = ref(false)\n\n\tasync function load() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/data'))\n\t\t\tdata.value = response.data\n\t\t} catch {\n\t\t\terror.value = true\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n\n\tload()\n\n\treturn { data, loading, error }\n}\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nimport './main.css'\n\ncreateApp(SettingsAdmin).mount('#serverinfo-settings')\n"],"names":["global","makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","normalizeCssVarValue","activeEffectScope","EffectScope","detached","l","currentEffectScope","current","fromParent","last","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","toReactive","shallowReadArray","toRaw","toWrapped","isReadonly","toReadonly","isReactive","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","isShallow","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","wrapInitialAccumulator","acc","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","proto","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","reactive","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isProxy","markRaw","r","ref","createRef","shallowRef","RefImpl","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","set","newVal","customRef","ObjectRefImpl","_object","_defaultValue","nestedRef","GetterRefImpl","_getter","toRef","defaultValue","propertyToRef","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","ssrContextKey","useSSRContext","watchEffect","doWatch","watchSyncEffect","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","pendingMounts","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","parentNode","disabled","dynamicChildren","mount","container2","anchor2","mountToTarget","disabled2","targetAnchor","prepareAnchor","updateCssVars","queuePendingMount","mountJob","mountContainer","placeholder","mainAnchor","pendingMount","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","shapeFlag","children","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","hydrateChildren","hydrateAnchor","target2","targetNode","hydrateDisabledTeleport","node2","vnode2","Teleport","isDisabled","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getTransitionRawChildren","findNonCommentChild","createCommentVNode","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","useTemplateRef","refs","isTemplateRefKey","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","warnMissing","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","keys","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","hasProps","openBlock","createBlock","createVNode","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","isVNode","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","useSlots","getContext","calledFunctionName","createSetupContext","normalizePropsOrEmits","mergeModels","applyOptions","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","createWatcher","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","i2","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","attrs","renderCache","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","root","filterModelListeners","shouldUpdateComponent","nextVNode","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","hasPropValueChanged","emitsOptions","nextKeys","nextProp","prevProp","updateHOCHostEl","parent","suspense","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","selector","content","before","template","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","decorate$1","t","Transition","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","shouldPreserveTextareaResizeStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","originalStop","handlers","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","useCssModule","modules","getModelAssigner","assignKey","vModelCheckbox","_","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","keyNames","withKeys","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","_generateUrlPath","url","params","allOptions","_build","generateUrl","baseOrRootURL","getRootUrl","webroot","pos","_arrayLikeToArray","_arrayWithHoles","_iterableToArrayLimit","f","o","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","newObject","_ref2","_ref3","property","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","fallbackValue","isRegex","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","customElementHandling","previousTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkSvgNamespace","tagName","parentTagName","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","attributes","attribute","_removeAttribute","_stripDisallowedAttributes","stack","_neutralizePatchLinkage","nodeType","lcTag","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","_isNode","_executeHooks","_isUnsafeNode","_sanitizeDisallowedNode","_isBasicCustomElement","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","removed","_isValidAttribute","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_sanitizeAttributes","hookEvent","attr","attrValue","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","isElement","rootName","sr","importedNode","returnNode","inPlace","nn","walkRoot","nodeIterator","entry","serializedHTML","entryPoint","hookFunction","purify","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","match","escape","lastIndex","getLocale","getCanonicalLocale","getLanguage","isRTL","language","languageCode","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","replacement","translation","translatePlural","textSingular","textPlural","identifier","bundle","plural","getPlural","formatRelativeTime","timestamp","opts","date","formatter","seconds","minutes","hours","days","weeks","months","format","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","__props","_createTextVNode","percentageOfAllUsers","count","percentage","SectionHeading","AccountGroup","_unref","_hoisted_2","_hoisted_4","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","GettextWrapper","pluralFunction","dict","msgid","msgidPlural","msgstr","original","placeholders","singular","GettextBuilder","getGettextBuilder","gettext","chunks","chunk","translations","decompressed","t2","t4","t19","t22","t33","t36","FEW_SECONDS_AGO","useFormatRelativeTime","timeoutId","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","diff","interval","useFormatTime","timeOptions","relativeTimeOptions","title","formattedTime","mdiAlert","mdiAlertDecagram","mdiArrowTopRight","mdiCheck","mdiCheckboxMarkedCircle","mdiChevronLeft","mdiChevronRight","mdiClose","mdiContentCopy","mdiInformation","mdiOpenInNew","mdiPause","mdiPlay","majorVersion","major","isLegacy","isLegacy34","_export_sfc","sfc","iconSize","cleanSvg","svgDocument","createElementVNode","NcIconSvgWrapper","shouldShowAlert","iconPath","NcNoteCard","tryOnScopeDispose","isClient","toString","toArray","getLifeCycleTarget","tryOnMounted","sync","useIntervalFn","immediateCallback","timer","isActive","clean","pause","resume","intervalValue","watchImmediate","whenever","ov","onInvalidate","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","listener","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","onCleanup","optionsClone","useMounted","useSupported","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","useResizeObserver","observerOptions","observer","isSupported","stopWatch","_targets","els","_el","stop","useElementSize","initialSize","box","_unrefElement","width","height","stop1","boxSize","$elem","rect","formatBoxSize","inlineSize","blockSize","ele","cs","padX","padY","bdX","bdY","stop2","useSwipe","threshold","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","max","abs","isThresholdExceeded","isSwiping","direction","getTouchEventCoords","updateCoordsStart","y","updateCoordsEnd","listenerOptions","onTouchEnd","stops","createElementId","routerKey","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","length","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","size","alloc","fill","encoding","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","checkIEEE754","writeFloat","littleEndian","writeDouble","errors","E","sym","getMessage","Base","range","input","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","BufferBigIntNotDefined","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","__emit","formBoxItemClass","hasVueRouterContext","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","onClick","NcButton","colors","colors2","NcLoadingIcon","isLoading","handleClick","candidateSelectors","candidateSelector","NoElement","getRootNode","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","filter","candidates","_getCandidatesIteratively","elements","elementsToCheck","assigned","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visible","_getComputedStyle","visibility","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayWithoutHoles","_createForOfIteratorHelper","F","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_toPrimitive","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","getActualTarget","internalTrapStack","createFocusTrap","userOptions","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","_getActiveElement","activeElement","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","promise","collectAdjacentElements","containers","containerAncestors","adjacentElements","_iterator","_step","insideShadowRoot","siblings","_iterator2","_step2","removeListeners","checkDomRemoval","mutations","focusedNode","isFocusedNodeRemoved","mutation","removedNodes","initialFocusNode","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_preexistingTrap$_set","finishActivation","afterListeners","listenersPromise","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","delayReturnFocus","returnFocus","completeDeactivation","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","finishUnpause","isEnabled","_el$getAttribute","getTrapStack","createTrapStackController","pausedStack","useTrapStackControl","shouldPause","trapStackController","sides","alignments","placements","side","oppositeSideMap","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","padding","_padding$top","_padding$right","_padding$bottom","_padding$left","getPaddingObject","rectToClientRect","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","_await$platform$isEle","platform","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","middlewareData","currentMiddleware","nextX","nextY","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","currentIndex","currentPlacement","overflow","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","clampCoord","coord","limitedCoords","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","shiftData","noShift","availableHeight","availableWidth","nextDimensions","w","L","R","T","C","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","ue","fe","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","V","Ee","ve","Se","Ht","kt","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","Item","noop","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","module","safeRe","safeSrc","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","other","release","identifierBase","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","ProxyBus","bus2","valid","SimpleBus","bus","getBus","subscribe","unsubscribe","ScopedStorage","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","_subscribeToTokenUpdates","getRequestToken","setRequestToken","fetchRequestToken","response","onRequestTokenUpdate","_internal","currentUser","getAttribute","getCurrentUser","LogLevel","LogLevel2","ConsoleLogger","message","level","buildConsoleLogger","LoggerBuilder","user","onLoaded","getLoggerBuilder","logger","isRtl","_sfc_main$1","ncPopover","style0","theme","Dropdown","triggerElements","options2","_sfc_render","$setup","$data","$options","_component_NcPopoverTriggerProvider","_component_Dropdown","slotProps","NcPopover","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","isSlotPopulated","focusableSelector","action","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","buttonText","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","isFullscreen","checkIfIsFullscreen","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","getSameNodeParent","getSameNodeAncestors","ancestors","useScopeIdAttrs","scopeIds","instance2","numHeaderActions","cssSlideshowDelay","showModal","scopeIdAttrs","modalId","maskElement","focusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","runSlideshow","stopSwipe","handleSwipe","close","previousSlide","restartSlideshow","handleClickModalWrapper","useFocusTrap","NcModal","open","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","handleButtonClose","handleClosing","handleClosed","modalProps","idx","NcDialog","label","_normalizeClass","formatMegabytes","mb","withAlpha","color","alpha","formatBytes","cssColor","primaryColor","jobName","className","formatDuration","formatKilobytes","memoryPeak","TIMESTAMP_FORMAT","$emit","JobStatusIndicator","NcDateTime","detailsLabel","_Fragment","_renderList","InformationOutline","statusLabel","_renderSlot","selectedRun","secondsSince","cronStatus","age","modeText","Update","StatTile","JobRunsTable","SlowJobsTable","JobRunDialog","round","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","eq","isShort","hexParse","hexString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","hueValue","rgb2hsl","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","names$1","unpack","unpacked","tkeys","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","functionParse","Color","weight","w2","w1","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toPercentage","dimension","toDimension","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","_splitKey","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","setsEqual","_isClickEvent","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","niceNum","roundedRange","niceRange","fraction","_factorize","sqrt","isNonPrimitive","isNumber","almostWhole","rounded","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","cmp","mid","_lookupByKey","ti","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","unlistenArrayEvents","stub","listeners","_arrayUnique","items","requestAnimFrame","throttled","argsToUse","ticking","debounce","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","iScale","vScale","_parsed","spanGaps","minDefined","maxDefined","distanceToDefinedLo","point","distanceToDefinedHi","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","applyAnimationsDefaults","defaults","applyLayoutsDefaults","intlCache","getNumberFormat","locale","formatNumber","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","Ticks","applyScaleDefaults","overrides","descriptors","getScope$1","Defaults","_descriptors","_appliers","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","toFontString","font","_measureText","gc","longest","textWidth","_alignPixel","chart","pixel","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","rotation","radius","rad","_isPointInArea","area","margin","clipArea","unclipArea","_steppedLineTo","previous","midpoint","_bezierCurveTo","setRenderOpts","decorateText","line","metrics","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","lines","stroke","addRoundedRectPath","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","_readValueToProps","objProps","toTRBL","toTRBLCorners","toPadding","toFont","inputs","info","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","subProxy","descriptorDefaults","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","_stack","createSubResolver","isIndexable","resolver","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","getStyle","positions","getPositionedStyle","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","getRelativePosition","currentDevicePixelRatio","borderBox","paddings","borders","getContainerSize","maxWidth","maxHeight","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","findStartAndEnd","solidSegments","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","addStyle","styleChanged","getSizeForArea","scale","chartArea","field","getDatasetArea","getDatasetClipArea","clip","Animator","anims","callbacks","numSteps","draw","charts","animator","transparent","interpolators","factor","c0","Animation","currentValue","elapsed","remain","promises","rej","Animations","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","dsIndex","singleMode","otherValue","convertObjectDataToArray","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","shared","createStack","canStack","DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","active","drawActiveElementsOnTop","elementType","sharing","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","newCount","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","DoughnutController","pointStyle","textAlign","useBorderRadius","borderRadius","legendItem","legend","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","horizontal","marginForPositions","fitBoxes","refitBoxes","refit","same","setBoxDims","placeBoxes","userPadding","layoutItem","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","Element$1","final","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","reverseAlign","offsetFromEdge","edge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","gcLen","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","startPixel","endPixel","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","minSize","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","lineHeight","nestedLabel","valueAt","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","tz","gz","bz","axisID","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","reg","itemReg","camelMethod","PluginService","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","Chart$1","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","dataIndex","_add","_remove","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","eventFilter","Chart","clipSelf","borderWidth","borderJoinStyle","outerAngleClip","innerAngleClip","clipWidth","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","inner","ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","strokePathDirect","segmentMethod","usePath2D","LineElement","_interpolate","interpolated","inRange$1","PointElement","mouseX","mouseY","_segments","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","linePoints","_createBoundaryLine","_loop","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","startValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_getTarget","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","above","doFill","fillColor","clipVertical","clipHorizontal","clipY","lineLoop","clipX","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","_args","getBoxSize","labelOpts","boxHeight","boxWidth","itemsEqual","Legend","legendItems","labelFont","itemHeight","hitboxes","lineWidths","totalHeight","row","_itemHeight","columnSizes","heightLimit","totalWidth","currentColWidth","currentColHeight","col","calculateItemSize","rtlHelper","hitbox","defaultColor","halfFontSize","cursor","drawLegendBox","drawOptions","yBoxTop","xBoxLeft","fillText","realX","fontLineHeight","calculateLegendItemHeight","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","isListened","hoveredItem","sameItem","calculateItemWidth","calculateItemHeight","legendItemText","plugin_legend","ci","usePointStyle","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","outerX","innerX","we","Ae","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","plugin_tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","CategoryScale","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","LinearScale","INTERVALS","UNITS","sorter","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","setMajorTicks","majorUnit","ticksFromTimestamps","TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","span","TimeSeriesScale","curr","CommonProps","A11yProps","Props","compatProps","toRawIfProxy","cloneProxy","setOptions","nextOptions","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","canvasRef","chartRef","renderChart","clonedData","proxiedData","destroyChart","param1","nextOptionsProxy","nextDataProxy","prevOptionsProxy","prevDataProxy","shouldUpdate","prevOptions","prevLabels","prevDatasets","createTypedChart","registerables","reforwardRef","Line","MAX_POINTS","Filler","passiveColor","datasetStyle","chartData","chartOptions","stats","load","cpuload","Chip","Database","canvasRefs","diskName","device","chartLabel","disk","shortPercent","percent","centerLabel","usedColor","availableColor","Harddisk","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","hasMemory","hasSwap","ramDataset","swapDataset","maxGB","memTotalText","memUsed","swapUsed","memTotalGB","swapTotalGB","memUsageGB","ramData","swapUsageGB","swapData","Memory","ncFormBox","ncFormBox_row","ncFormBox__item","ncFormBox_col","NcFormBox","descriptionId","hasDescription","formBoxItem","formBoxItem__description","formBoxItem_legacy","formBoxItem_inverted","formBoxItem__element","formBoxItem__content","formBoxItem__icon","NcFormBoxItem","useButtonLink","isLink","isHyperLink","isRouterLink","isButton","formBoxButton","NcFormBoxButton","DELAY","useCopy","isCopied","altText","cx","iconToggleSwitch","NcIconToggleSwitch","inputId","formBoxSwitch__input","NcFormBoxSwitch","getDescriptionId","hasContentOnly","formGroup","formGroup_noGap","formGroup__label","formGroup__description","formGroup__content","formGroup__content_only","NcFormGroup","TOKEN_HEADER","suggestedToken","byte","formatJson","skipApps","skipUpdate","endpointUrl","Connection","NcFormBoxCopyButton","Lan","iface","Puzzle","LanguagePhp","Cogs","_hoisted_21","gridBaseline","clickableArea","clickableAreaSmall","heightPx","normalizedProgress","circleCenterPosition","circleRadius","NcProgressBar","WARNING_AT","CRITICAL_AT","memoryRow","used","rows","memTotal","swapTotal","Gauge","ShareVariant","Monitor","Thermometer","zone","bind","toStringTag","hasOwnInPrototypeChain","thing","getSafeProp","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","prototype","isEmptyObject","isFile","isReactNativeBlob","isReactNative","formData","isBlob","isFileList","isStream","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","propertyIsEnumerable","stripBOM","inherits","constructor","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","isTypedArray","TypedArray","forEachEntry","pair","matchAll","regExp","isHTMLForm","toCamelCase","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","isIterable","isSafeIterable","utils$1","ignoreDuplicateOf","utils","parseHeaders","rawHeaders","trimSPorHTAB","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","matcher","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","redactKeys","lowerKeys","AxiosError","request","customProps","axiosError","serializedConfig","httpAdapter","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","_Blob","maxDepth","useBlob","convertValue","throwIfMaxDepthExceeded","stringifyWithDepthLimit","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","toURLEncodedForm","helpers","MAX_DEPTH","throwIfDepthExceeded","parsePropPath","pattern","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","contentType","hasJSONContentType","isObjectPayload","formSerializer","env","_FormData","transitional","forcedJSONParsing","responseType","JSONRequested","strictJSONParsing","status","transformData","isCancel","settle","reject","validateStatus","parseProtocol","speedometer","samplesCount","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","lastArgs","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","progressBytes","rate","progressEventDecorator","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","malformedHttpProtocol","httpProtocolControlCharacters","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","assertValidHttpProtocolURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","getMergedTransitionalOption","transitional2","transitional1","mergeDirectKeys","mergeMap","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","encodeUTF8","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","username","password","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","CanceledError","protocol","composeSignals","signals","aborted","onabort","reason","signal","streamChunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","effectiveLen","pad","tailIsPct3D","VERSION","DEFAULT_CHUNK_SIZE","decodeURIComponentSafe","maybeWithAuthCredentials","protocolIndex","urlToCheck","globalObject","ReadableStream","TextEncoder","envFetch","Request","Response","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","maxContentLength","maxBodyLength","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","parsedURL","urlUsername","urlPassword","outboundLength","mustEnforceStreamBody","trackRequestStream","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","fetch","seeds","seed","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","getAdapter","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","Cancel","formToJSON","getCancelableClient","client","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","cancelableClient","useLiveData","intervalMs","stopped","poll","useStaticData","loading","staticData","liveData","periodicData","SystemSection","ResourceOverviewSection","SectionSkeleton","CpuChartSection","MemoryChartSection","DiskSection","NetworkSection","BackgroundJobsSection","ActiveUsersSection","SharesSection","ThermalSection","PhpSection","DatabaseSection","PhpExtensionsSection","MonitoringSection","SettingsAdmin"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,71,76,77,78,79,80,82,84,86,88,89,90,91,92,93,94,95,96,98,100,102,103,105,106,109,111,113,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171]} \ No newline at end of file +{"version":3,"file":"serverinfo-main.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/@nextcloud/l10n/dist/index.mjs","../node_modules/vue-material-design-icons/AccountGroup.vue","../src/components/SectionHeading.vue","../src/components/ActiveUsersSection.vue","../node_modules/@nextcloud/l10n/dist/gettext.mjs","../node_modules/@nextcloud/vue/dist/chunks/_l10n-wdIzZwir.mjs","../node_modules/@nextcloud/vue/dist/composables/useFormatDateTime/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi-CpchYUUV.mjs","../node_modules/@nextcloud/vue/dist/chunks/legacy-BoqDmOCa.mjs","../node_modules/@nextcloud/vue/dist/chunks/_plugin-vue_export-helper-1tPrXgE0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconSvgWrapper-g8ubWhoz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcNoteCard-mI7qVZ9j.mjs","../node_modules/vue-material-design-icons/Update.vue","../node_modules/@vueuse/shared/dist/index.js","../node_modules/@vueuse/core/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/createElementId-DhjFt1I9.mjs","../node_modules/vue-router/dist/useApi-CROJJdhE.js","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@nextcloud/vue/dist/chunks/useNcFormBox-Djlh582y.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcButton-jvoYS2my.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcLoadingIcon-BOVpFVQz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-Bqfy678u.mjs","../node_modules/tabbable/dist/index.esm.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-B6cEicto.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/floating-vue/dist/floating-vue.mjs","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/semver/internal/debug.js","../node_modules/semver/internal/constants.js","../node_modules/semver/internal/re.js","../node_modules/semver/internal/parse-options.js","../node_modules/semver/internal/identifiers.js","../node_modules/semver/classes/semver.js","../node_modules/semver/functions/major.js","../node_modules/semver/functions/parse.js","../node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/@nextcloud/logger/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/logger-D3RVzcfQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/rtl-v0UOPAM7.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-B87bEPLq.mjs","../node_modules/@nextcloud/vue/dist/chunks/useNcActions-BzPO2c4h.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-C-wDqSrv.mjs","../node_modules/@nextcloud/vue/dist/chunks/platform-CC2ecGvV.mjs","../node_modules/@nextcloud/vue/dist/composables/useHotKey/index.mjs","../node_modules/@nextcloud/vue/dist/functions/isDarkTheme/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsFullscreen/index.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcModal-DiDvgcU8.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcDialog-D617YI0t.mjs","../src/components/JobStatusIndicator.vue","../src/utils.ts","../src/components/JobRunDialog.vue","../node_modules/vue-material-design-icons/InformationOutline.vue","../src/components/JobRunsTable.vue","../src/components/SlowJobsTable.vue","../src/components/StatTile.vue","../src/components/BackgroundJobsSection.vue","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/chart.js/dist/chart.js","../node_modules/vue-chartjs/dist/index.js","../node_modules/vue-material-design-icons/Chip.vue","../src/components/CpuChartSection.vue","../node_modules/vue-material-design-icons/Database.vue","../src/components/DatabaseSection.vue","../node_modules/vue-material-design-icons/Harddisk.vue","../src/components/DiskSection.vue","../node_modules/vue-material-design-icons/Memory.vue","../src/components/MemoryChartSection.vue","../node_modules/@nextcloud/vue/dist/chunks/NcFormBox-Bmqar8nn.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem-Cm8aZaVJ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxButton-G_PkUiQy.mjs","../node_modules/@nextcloud/vue/dist/chunks/useCopy-6F-qWHq0.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcIconToggleSwitch-CRvGt4su.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch-DSXiQcnq.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormGroup-N7qIFAwN.mjs","../node_modules/vue-material-design-icons/Connection.vue","../src/components/MonitoringSection.vue","../node_modules/vue-material-design-icons/Lan.vue","../src/components/NetworkSection.vue","../node_modules/vue-material-design-icons/Flash.vue","../node_modules/@nextcloud/vue/dist/chunks/NcProgressBar-C-ane-Ni.mjs","../src/components/UsageMeterBar.vue","../src/components/OpcacheSection.vue","../node_modules/vue-material-design-icons/Cogs.vue","../node_modules/vue-material-design-icons/LanguagePhp.vue","../src/components/PhpExtensionsDialog.vue","../src/components/PhpSection.vue","../node_modules/vue-material-design-icons/Gauge.vue","../src/components/ResourceOverviewSection.vue","../src/components/SectionSkeleton.vue","../node_modules/vue-material-design-icons/ShareVariant.vue","../src/components/SharesSection.vue","../node_modules/vue-material-design-icons/Monitor.vue","../src/components/SystemSection.vue","../node_modules/vue-material-design-icons/Thermometer.vue","../src/components/ThermalSection.vue","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../node_modules/@nextcloud/axios/dist/client.js","../node_modules/@nextcloud/axios/dist/interceptors/csrf-token.js","../node_modules/@nextcloud/axios/dist/interceptors/maintenance-mode.js","../node_modules/@nextcloud/axios/dist/interceptors/not-logged-in.js","../node_modules/@nextcloud/axios/dist/index.js","../src/composables/useLiveData.ts","../src/composables/useStaticData.ts","../src/views/SettingsAdmin.vue","../src/main.ts"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/**\n* @vue/shared v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this._warnOnRun = true;\n this.__v_skip = true;\n if (!detached && activeEffectScope) {\n if (activeEffectScope.active) {\n this.parent = activeEffectScope;\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n } else {\n this._active = false;\n this._warnOnRun = false;\n }\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && this._warnOnRun) {\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 on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n if (activeEffectScope === this) {\n activeEffectScope = this.prevScope;\n } else {\n let current = activeEffectScope;\n while (current) {\n if (current.prevScope === this) {\n current.prevScope = this.prevScope;\n break;\n }\n current = current.prevScope;\n }\n }\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const 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 = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope) {\n if (activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n } else {\n this.flags &= -2;\n }\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n if (target[\"__v_skip\"] || !Object.isExtensible(target)) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = targetTypeMap(toRawType(target));\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.35\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment, parentNode }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n const mountContainer = parentNode(vnode.el) || container;\n mount(vnode, mountContainer, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (!pendingMount && shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n const child = children && children.length ? findNonCommentChild(children) : (\n // Keep explicit default-slot conditionals on the same transition path\n // as regular v-if branches, which render a comment placeholder.\n instance.subTree ? createCommentVNode() : void 0\n );\n if (!child) {\n return;\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && !isMismatchAllowed(el, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n logMismatchError();\n }\n while (next) {\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasCheckedMismatch = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!hasCheckedMismatch) {\n hasCheckedMismatch = true;\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n logMismatchError();\n }\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate ","\n\n\n\n\n\n","\n\n\n\n","import { a as getLanguage, e as getPlural, t as translate, d as translatePlural } from \"./chunks/translation-DoG5ZELJ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass GettextWrapper {\n bundle;\n constructor(pluralFunction) {\n this.bundle = {\n pluralFunction,\n translations: {}\n };\n }\n /**\n * Append new translations to the wrapper.\n *\n * This is useful if translations should be added on demand,\n * e.g. depending on component usage.\n *\n * @param bundle - The new translation bundle to append\n */\n addTranslations(bundle) {\n const dict = Object.values(bundle.translations[\"\"] ?? {}).map(({ msgid, msgid_plural: msgidPlural, msgstr }) => {\n if (msgidPlural !== void 0) {\n return [`_${msgid}_::_${msgidPlural}_`, msgstr];\n }\n return [msgid, msgstr[0]];\n });\n this.bundle.translations = {\n ...this.bundle.translations,\n ...Object.fromEntries(dict)\n };\n }\n /**\n * Get translated string (singular form), optionally with placeholders\n *\n * @param original original string to translate\n * @param placeholders map of placeholder key to value\n */\n gettext(original, placeholders = {}) {\n return translate(\"\", original, placeholders, void 0, { bundle: this.bundle });\n }\n /**\n * Get translated string with plural forms\n *\n * @param singular Singular text form\n * @param plural Plural text form to be used if `count` requires it\n * @param count The number to insert into the text\n * @param placeholders optional map of placeholder key to value\n */\n ngettext(singular, plural, count, placeholders = {}) {\n return translatePlural(\"\", singular, plural, count, placeholders, { bundle: this.bundle });\n }\n}\nclass GettextBuilder {\n debug = false;\n language = \"en\";\n translations = {};\n setLanguage(language) {\n this.language = language;\n return this;\n }\n /**\n * Try to detect locale from context with `en` as fallback value\n * This only works within a Nextcloud page context.\n *\n * @deprecated use `detectLanguage` instead.\n */\n detectLocale() {\n return this.detectLanguage();\n }\n /**\n * Try to detect locale from context with `en` as fallback value.\n * This only works within a Nextcloud page context.\n */\n detectLanguage() {\n return this.setLanguage(getLanguage().replace(\"-\", \"_\"));\n }\n /**\n * Register a new translation bundle for a specified language.\n *\n * Please note that existing translations for that language will be overwritten.\n *\n * @param language - Language this is the translation for\n * @param data - The translation bundle\n */\n addTranslation(language, data) {\n this.translations[language] = data;\n return this;\n }\n enableDebugMode() {\n this.debug = true;\n return this;\n }\n build() {\n if (this.debug) {\n console.debug(`Creating gettext instance for language ${this.language}`);\n }\n const wrapper = new GettextWrapper((n) => getPlural(n, this.language));\n if (this.language in this.translations) {\n wrapper.addTranslations(this.translations[this.language]);\n }\n return wrapper;\n }\n}\nfunction getGettextBuilder() {\n return new GettextBuilder();\n}\nexport {\n getGettextBuilder\n};\n//# sourceMappingURL=gettext.mjs.map\n","import { getLanguage } from \"@nextcloud/l10n\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\n/*!\n * SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst gettext = getGettextBuilder().detectLanguage().build();\nconst n = (...args) => gettext.ngettext(...args);\nconst t = (...args) => gettext.gettext(...args);\nfunction register(...chunks) {\n for (const chunk of chunks) {\n if (chunk.registered) {\n continue;\n }\n for (const { l: language, t: translations } of chunk) {\n if (language !== getLanguage() || !translations) {\n continue;\n }\n const decompressed = Object.fromEntries(Object.entries(translations).map(([id, value]) => [\n id,\n {\n msgid: id,\n msgid_plural: value.p,\n msgstr: value.v\n }\n ]));\n gettext.addTranslations({\n translations: {\n \"\": decompressed\n }\n });\n }\n chunk.registered = true;\n }\n}\nconst t0 = [{ \"l\": \"ar\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (غير مرئي)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (مقيد)\"] }, \"Select a tag\": { \"v\": [\"اختر وسم\"] } } }, { \"l\": \"ast\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxóse)\"] }, \"Select a tag\": { \"v\": [\"Seleicionar una etiqueta\"] } } }, { \"l\": \"br\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (diwelus)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (bevennet)\"] }, \"Select a tag\": { \"v\": [\"Choaz ur c'hlav\"] } } }, { \"l\": \"ca\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringit)\"] }, \"Select a tag\": { \"v\": [\"Seleccioneu una etiqueta\"] } } }, { \"l\": \"cs\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditelné)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omezené)\"] }, \"Select a tag\": { \"v\": [\"Vybrat štítek\"] } } }, { \"l\": \"da\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begrænset)\"] }, \"Select a tag\": { \"v\": [\"Vælg et mærke\"] } } }, { \"l\": \"de\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (unsichtbar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (eingeschränkt)\"] }, \"Select a tag\": { \"v\": [\"Schlagwort auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (αόρατο)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (περιορισμένο)\"] }, \"Select a tag\": { \"v\": [\"Επιλογή ετικέτας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Select a tag\"] } } }, { \"l\": \"eo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (kaŝita)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limigita)\"] }, \"Select a tag\": { \"v\": [\"Elektu etikedon\"] } } }, { \"l\": \"es\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione una etiqueta\"] } } }, { \"l\": \"es-AR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Elija una etiqueta\"] } } }, { \"l\": \"es-EC\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricted)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"es-MX\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restringido)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"et-EE\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nähtamatu)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (piiratud)\"] }, \"Select a tag\": { \"v\": [\"Vali silt\"] } } }, { \"l\": \"eu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ikusezina)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (mugatua)\"] }, \"Select a tag\": { \"v\": [\"Hautatu etiketa bat\"] } } }, { \"l\": \"fa\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} مخفی\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} محدود شده\"] }, \"Select a tag\": { \"v\": [\"انتخاب یک برچسب\"] } } }, { \"l\": \"fi\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (näkymätön)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (rajoitettu)\"] }, \"Select a tag\": { \"v\": [\"Valitse tunniste\"] } } }, { \"l\": \"fr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restreint)\"] }, \"Select a tag\": { \"v\": [\"Sélectionnez une balise\"] } } }, { \"l\": \"ga\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (dofheicthe)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (srianta)\"] }, \"Select a tag\": { \"v\": [\"Roghnaigh clib\"] } } }, { \"l\": \"gl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisíbel)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrinxido)\"] }, \"Select a tag\": { \"v\": [\"Seleccione unha etiqueta\"] } } }, { \"l\": \"he\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (נסתר)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (מוגבל)\"] }, \"Select a tag\": { \"v\": [\"בחירת תגית\"] } } }, { \"l\": \"hr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidljivo)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograničeno)\"] }, \"Select a tag\": { \"v\": [\"Odaberi oznaku\"] } } }, { \"l\": \"hu\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (láthatatlan)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (korlátozott)\"] }, \"Select a tag\": { \"v\": [\"Válasszon címkét\"] } } }, { \"l\": \"id\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (tidak terlihat)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (dibatasi)\"] }, \"Select a tag\": { \"v\": [\"Pilih tag\"] } } }, { \"l\": \"is\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ósýnilegt)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (takmarkað)\"] }, \"Select a tag\": { \"v\": [\"Veldu merki\"] } } }, { \"l\": \"it\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisibile)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limitato)\"] }, \"Select a tag\": { \"v\": [\"Seleziona un'etichetta\"] } } }, { \"l\": \"ja\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (不可視)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (制限付)\"] }, \"Select a tag\": { \"v\": [\"タグを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(숨김)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(제한)\"] }, \"Select a tag\": { \"v\": [\"태그 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ບໍ່ສະແດງ)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ຈຳກັດ)\"] }, \"Select a tag\": { \"v\": [\"ເລືອກແທັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nematoma)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (apribota)\"] }, \"Select a tag\": { \"v\": [\"Pasirinkti žymą\"] } } }, { \"l\": \"lv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neredzams)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ierobežots)\"] }, \"Select a tag\": { \"v\": [\"Izvēlēties birku\"] } } }, { \"l\": \"mk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидливо)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Избери ознака\"] } } }, { \"l\": \"mn\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (үл харагдах)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (хязгаарлагдмал)\"] }, \"Select a tag\": { \"v\": [\"Шошго сонгох\"] } } }, { \"l\": \"my\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ကွယ်ဝှက်ထား)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ကန့်သတ်)\"] }, \"Select a tag\": { \"v\": [\"tag ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (usynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beskyttet)\"] }, \"Select a tag\": { \"v\": [\"Velg en merkelapp\"] } } }, { \"l\": \"nl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (onzichtbaar)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (beperkt)\"] }, \"Select a tag\": { \"v\": [\"Selecteer een label\"] } } }, { \"l\": \"oc\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisible)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (limit)\"] }, \"Select a tag\": { \"v\": [\"Seleccionar una etiqueta\"] } } }, { \"l\": \"pl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (niewidoczna)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ograniczona)\"] }, \"Select a tag\": { \"v\": [\"Wybierz etykietę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecione uma etiqueta\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invisível)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restrito)\"] }, \"Select a tag\": { \"v\": [\"Selecionar uma etiqueta\"] } } }, { \"l\": \"ro\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (invizibil)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (restricționat)\"] }, \"Select a tag\": { \"v\": [\"Selectați o etichetă\"] } } }, { \"l\": \"ru\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимое)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограниченное)\"] }, \"Select a tag\": { \"v\": [\"Выберите метку\"] } } }, { \"l\": \"sk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (neviditeľný)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (obmedzený)\"] }, \"Select a tag\": { \"v\": [\"Vybrať štítok\"] } } }, { \"l\": \"sl\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (nevidno)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (omejeno)\"] }, \"Select a tag\": { \"v\": [\"Izbor oznake\"] } } }, { \"l\": \"sr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидљиво)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (ограничено)\"] }, \"Select a tag\": { \"v\": [\"Изаберите ознаку\"] } } }, { \"l\": \"sv\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (osynlig)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (begränsad)\"] }, \"Select a tag\": { \"v\": [\"Välj en tag\"] } } }, { \"l\": \"tr\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (görünmez)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (kısıtlanmış)\"] }, \"Select a tag\": { \"v\": [\"Bir etiket seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (невидимий)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (обмежений)\"] }, \"Select a tag\": { \"v\": [\"Виберіть позначку\"] } } }, { \"l\": \"uz\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (ko'rinmas)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (cheklangan)\"] }, \"Select a tag\": { \"v\": [\"Teg tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隐藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"选择一个标签\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag} (隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag} (受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"{tag} (invisible)\": { \"v\": [\"{tag}(隱藏)\"] }, \"{tag} (restricted)\": { \"v\": [\"{tag}(受限)\"] }, \"Select a tag\": { \"v\": [\"選擇標籤\"] } } }];\nconst t1 = [{ \"l\": \"ar\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"لون بالقيمة الست عشرية {hex}\"] }, \"Back\": { \"v\": [\"عودة\"] }, \"Choose\": { \"v\": [\"إختَر\"] }, \"Color picker\": { \"v\": [\"لاقط الألوان\"] }, \"More options\": { \"v\": [\"خيارات أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoyer\"] }, \"Color picker\": { \"v\": [\"Selector de colores\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"br\", \"t\": { \"Choose\": { \"v\": [\"Dibab\"] } } }, { \"l\": \"ca\", \"t\": { \"Choose\": { \"v\": [\"Tria\"] } } }, { \"l\": \"cs\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] }, \"No color\": { \"v\": [\"Žádná barva\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Barva vyjádřená HEX hodnotou {hex}\"] }, \"Back\": { \"v\": [\"Zpět\"] }, \"Choose\": { \"v\": [\"Zvolit\"] }, \"Color picker\": { \"v\": [\"Výběr barev\"] }, \"More options\": { \"v\": [\"Další volby\"] } } }, { \"l\": \"da\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farve med en HEX-værdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbage\"] }, \"Choose\": { \"v\": [\"Vælg\"] }, \"Color picker\": { \"v\": [\"Farvevælger\"] }, \"More options\": { \"v\": [\"Flere muligheder\"] }, \"No color\": { \"v\": [\"Ingen farve\"] } } }, { \"l\": \"de\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Weitere Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Eine Farbe mit einem HEX-Wert {hex}\"] }, \"Back\": { \"v\": [\"Zurück\"] }, \"Choose\": { \"v\": [\"Auswählen\"] }, \"Color picker\": { \"v\": [\"Farbauswahl\"] }, \"More options\": { \"v\": [\"Mehr Optionen\"] }, \"No color\": { \"v\": [\"Keine Farbe\"] } } }, { \"l\": \"el\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Ένα χρώμα με τιμή HEX {hex}\"] }, \"Back\": { \"v\": [\"Επιστροφή\"] }, \"Choose\": { \"v\": [\"Επιλογή\"] }, \"Color picker\": { \"v\": [\"Επιλογέας χρώματος\"] }, \"More options\": { \"v\": [\"Περισσότερες επιλογές\"] }, \"No color\": { \"v\": [\"Χωρίς χρώμα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"A colour with a HEX value {hex}\"] }, \"Back\": { \"v\": [\"Back\"] }, \"Choose\": { \"v\": [\"Choose\"] }, \"Color picker\": { \"v\": [\"Colour picker\"] }, \"More options\": { \"v\": [\"More options\"] }, \"No color\": { \"v\": [\"No colour\"] } } }, { \"l\": \"eo\", \"t\": { \"Choose\": { \"v\": [\"Elektu\"] } } }, { \"l\": \"es\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con un valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoger\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un color con valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Elegir\"] }, \"Color picker\": { \"v\": [\"Selector de color\"] }, \"More options\": { \"v\": [\"Más opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Värv kuueteistkümnendarvuna {hex}\"] }, \"Back\": { \"v\": [\"Tagasi\"] }, \"Choose\": { \"v\": [\"Tee valik\"] }, \"Color picker\": { \"v\": [\"Värvivalija\"] }, \"More options\": { \"v\": [\"Rohkem valikuid\"] }, \"No color\": { \"v\": [\"Värv puudub\"] } } }, { \"l\": \"eu\", \"t\": { \"Back\": { \"v\": [\"Atzera\"] }, \"Choose\": { \"v\": [\"Aukeratu\"] }, \"More options\": { \"v\": [\"Aukera gehiago\"] } } }, { \"l\": \"fa\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"رنگی با مقدار مبنای هشت {hex}\"] }, \"Back\": { \"v\": [\"بازگشت\"] }, \"Choose\": { \"v\": [\"انتخاب کنید\"] }, \"Color picker\": { \"v\": [\"انتخاب‌گر رنگ\"] }, \"More options\": { \"v\": [\"گزینه‌های بیشتر\"] } } }, { \"l\": \"fi\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Väri heksa-arvolla {hex}\"] }, \"Back\": { \"v\": [\"Takaisin\"] }, \"Choose\": { \"v\": [\"Valitse\"] }, \"Color picker\": { \"v\": [\"Värivalitsin\"] }, \"More options\": { \"v\": [\"Lisää vaihtoehtoja\"] } } }, { \"l\": \"fr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Une couleur de valeur HEX {hex}\"] }, \"Back\": { \"v\": [\"Retour\"] }, \"Choose\": { \"v\": [\"Choisir\"] }, \"Color picker\": { \"v\": [\"Sélecteur de couleurs\"] }, \"More options\": { \"v\": [\"Plus d'options\"] }, \"No color\": { \"v\": [\"Sans couleur\"] } } }, { \"l\": \"ga\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Dath le luach HEX {hex}\"] }, \"Back\": { \"v\": [\"Ar ais\"] }, \"Choose\": { \"v\": [\"Roghnaigh\"] }, \"Color picker\": { \"v\": [\"Roghnóir dathanna\"] }, \"More options\": { \"v\": [\"Tuilleadh roghanna\"] }, \"No color\": { \"v\": [\"Gan dath\"] } } }, { \"l\": \"gl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Unha cor cun valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Atrás\"] }, \"Choose\": { \"v\": [\"Escoller\"] }, \"Color picker\": { \"v\": [\"Selector de cores\"] }, \"More options\": { \"v\": [\"Máis opcións\"] }, \"No color\": { \"v\": [\"Sen cor\"] } } }, { \"l\": \"he\", \"t\": { \"Back\": { \"v\": [\"חזרה\"] }, \"Choose\": { \"v\": [\"בחירה\"] }, \"More options\": { \"v\": [\"אפשרויות נוספות\"] } } }, { \"l\": \"hr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Boja s HEX vrijednošću {hex}\"] }, \"Back\": { \"v\": [\"Natrag\"] }, \"Choose\": { \"v\": [\"Odaberi\"] }, \"Color picker\": { \"v\": [\"Odabir boje\"] }, \"More options\": { \"v\": [\"Više mogućnosti\"] }, \"No color\": { \"v\": [\"Bez boje\"] } } }, { \"l\": \"hu\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Szín ezzel a HEX értékkel: {hex}\"] }, \"Back\": { \"v\": [\"Vissza\"] }, \"Choose\": { \"v\": [\"Válassszon\"] }, \"Color picker\": { \"v\": [\"Színválasztó\"] }, \"More options\": { \"v\": [\"További lehetőségek\"] }, \"No color\": { \"v\": [\"Nincs szín\"] } } }, { \"l\": \"id\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Warna dengan nilai HEX {hex}\"] }, \"Back\": { \"v\": [\"Kembali\"] }, \"Choose\": { \"v\": [\"Pilih\"] }, \"Color picker\": { \"v\": [\"Pemilih warna\"] }, \"More options\": { \"v\": [\"Opsi lainnya\"] }, \"No color\": { \"v\": [\"Tanpa warna\"] } } }, { \"l\": \"is\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Litur með HEX-gildi {hex}\"] }, \"Back\": { \"v\": [\"Til baka\"] }, \"Choose\": { \"v\": [\"Velja\"] }, \"Color picker\": { \"v\": [\"Litaplokkari\"] }, \"More options\": { \"v\": [\"Fleiri valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Un colore con un valore HEX {hex}\"] }, \"Back\": { \"v\": [\"Indietro\"] }, \"Choose\": { \"v\": [\"Scegli\"] }, \"More options\": { \"v\": [\"Altre opzioni\"] } } }, { \"l\": \"ja\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] }, \"No color\": { \"v\": [\"色なし\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\" HEX値 {hex} を持つ色\"] }, \"Back\": { \"v\": [\"戻る\"] }, \"Choose\": { \"v\": [\"選択\"] }, \"Color picker\": { \"v\": [\"カラーピッカー\"] }, \"More options\": { \"v\": [\"他のオプション\"] } } }, { \"l\": \"ko\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 값이 {hex}인 색상\"] }, \"Back\": { \"v\": [\"뒤로\"] }, \"Choose\": { \"v\": [\"선택\"] }, \"Color picker\": { \"v\": [\"색상 선택기\"] }, \"More options\": { \"v\": [\"옵션 더 보기\"] }, \"No color\": { \"v\": [\"색 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"ສີທີ່ມີຄ່າ HEX {hex}\"] }, \"Back\": { \"v\": [\"ກັບຄືນ\"] }, \"Choose\": { \"v\": [\"ເລືອກ\"] }, \"Color picker\": { \"v\": [\"ໂຕເລືອກສີ\"] }, \"More options\": { \"v\": [\"ຕົວເລືອກເພີ່ມເຕີມ\"] }, \"No color\": { \"v\": [\"ບໍ່ມີສີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Spalva, kurios HEX reikšmė yra {hex}\"] }, \"Back\": { \"v\": [\"Atgal\"] }, \"Choose\": { \"v\": [\"Pasirinkti\"] }, \"Color picker\": { \"v\": [\"Spalvos parinkiklis\"] }, \"More options\": { \"v\": [\"Daugiau parinkčių\"] }, \"No color\": { \"v\": [\"Be spalvos\"] } } }, { \"l\": \"lv\", \"t\": { \"Choose\": { \"v\": [\"Izvēlēties\"] } } }, { \"l\": \"mk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја со HEX вредност {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Избери\"] }, \"Color picker\": { \"v\": [\"Избор на боја\"] }, \"More options\": { \"v\": [\"Повеќе опции\"] }, \"No color\": { \"v\": [\"Без боја\"] } } }, { \"l\": \"mn\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} HEX утгатай өнгө\"] }, \"Back\": { \"v\": [\"Буцах\"] }, \"Choose\": { \"v\": [\"Сонгох\"] }, \"Color picker\": { \"v\": [\"Өнгө сонгогч\"] }, \"More options\": { \"v\": [\"Нэмэлт сонголтууд\"] }, \"No color\": { \"v\": [\"Өнгөгүй\"] } } }, { \"l\": \"my\", \"t\": { \"Choose\": { \"v\": [\"ရွေးချယ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En farge med en HEX-verdi {hex}\"] }, \"Back\": { \"v\": [\"Tilbake\"] }, \"Choose\": { \"v\": [\"Velg\"] }, \"Color picker\": { \"v\": [\"Fargevelger\"] }, \"More options\": { \"v\": [\"Flere alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Een kleur met een HEX-waarde {hex}\"] }, \"Back\": { \"v\": [\"Terug\"] }, \"Choose\": { \"v\": [\"Kiezen\"] }, \"Color picker\": { \"v\": [\"Kleurkiezer\"] }, \"More options\": { \"v\": [\"Meer opties\"] }, \"No color\": { \"v\": [\"Geen kleur\"] } } }, { \"l\": \"oc\", \"t\": { \"Choose\": { \"v\": [\"Causir\"] } } }, { \"l\": \"pl\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Kolor o wartości HEX {hex}\"] }, \"Back\": { \"v\": [\"Wstecz\"] }, \"Choose\": { \"v\": [\"Wybierz\"] }, \"Color picker\": { \"v\": [\"Wybierz kolor\"] }, \"More options\": { \"v\": [\"Więcej opcji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Voltar\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"Seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] }, \"No color\": { \"v\": [\"Sem cor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Uma cor com o valor HEX {hex}\"] }, \"Back\": { \"v\": [\"Anterior\"] }, \"Choose\": { \"v\": [\"Escolher\"] }, \"Color picker\": { \"v\": [\"seletor de cores\"] }, \"More options\": { \"v\": [\"Mais opções\"] } } }, { \"l\": \"ro\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"O culoare în HEX value {hex}\"] }, \"Back\": { \"v\": [\"Înapoi\"] }, \"Choose\": { \"v\": [\"Alegeți\"] }, \"More options\": { \"v\": [\"Mai multe opțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Цвет в HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Выберите\"] }, \"Color picker\": { \"v\": [\"Выбор цвета\"] }, \"More options\": { \"v\": [\"Больше опций\"] }, \"No color\": { \"v\": [\"Без цвета\"] } } }, { \"l\": \"sk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Farba s hodnotou HEX {hex}\"] }, \"Back\": { \"v\": [\"Späť\"] }, \"Choose\": { \"v\": [\"Vybrať\"] }, \"Color picker\": { \"v\": [\"Výber farby\"] }, \"More options\": { \"v\": [\"Viac možností\"] } } }, { \"l\": \"sl\", \"t\": { \"Choose\": { \"v\": [\"Izbor\"] } } }, { \"l\": \"sr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Боја са HEX вредности {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Изаберите\"] }, \"Color picker\": { \"v\": [\"Бирач боје\"] }, \"More options\": { \"v\": [\"Још опција\"] }, \"No color\": { \"v\": [\"Без боје\"] } } }, { \"l\": \"sv\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"En färg med ett HEX-värde {hex}\"] }, \"Back\": { \"v\": [\"Tillbaka\"] }, \"Choose\": { \"v\": [\"Välj\"] }, \"Color picker\": { \"v\": [\"Färgväljare\"] }, \"More options\": { \"v\": [\"Fler alternativ\"] }, \"No color\": { \"v\": [\"Ingen färg\"] } } }, { \"l\": \"tr\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"{hex} onaltılık değeri ile bir renk \"] }, \"Back\": { \"v\": [\"Geri\"] }, \"Choose\": { \"v\": [\"Seçin\"] }, \"Color picker\": { \"v\": [\"Renk seçici\"] }, \"More options\": { \"v\": [\"Diğer seçenekler\"] }, \"No color\": { \"v\": [\"Renk yok\"] } } }, { \"l\": \"uk\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"Колір у форматі HEX {hex}\"] }, \"Back\": { \"v\": [\"Назад\"] }, \"Choose\": { \"v\": [\"Виберіть\"] }, \"Color picker\": { \"v\": [\"Вибір кольору\"] }, \"More options\": { \"v\": [\"Більше об'єктів\"] } } }, { \"l\": \"uz\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX qiymatiga ega rang {hex}\"] }, \"Back\": { \"v\": [\"Orqaga\"] }, \"Choose\": { \"v\": [\"Tanlang\"] }, \"Color picker\": { \"v\": [\"Rang tanlagich\"] }, \"More options\": { \"v\": [\"Boshqa variantlar\"] }, \"No color\": { \"v\": [\"Rangsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"以16进制 {hex} 表示的颜色为\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"选择\"] }, \"Color picker\": { \"v\": [\"颜色拾取器\"] }, \"More options\": { \"v\": [\"更多选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"具有 HEX 值 {hex}的顏色 \"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"顏色選擇器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"無顏色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"A color with a HEX value {hex}\": { \"v\": [\"HEX 值為 {hex} 的顏色\"] }, \"Back\": { \"v\": [\"返回\"] }, \"Choose\": { \"v\": [\"選擇\"] }, \"Color picker\": { \"v\": [\"色彩挑選器\"] }, \"More options\": { \"v\": [\"更多選項\"] }, \"No color\": { \"v\": [\"沒有顏色\"] } } }];\nconst t2 = [{ \"l\": \"ar\", \"t\": { \"a few seconds ago\": { \"v\": [\"منذ عدة ثوانٍ\"] }, \"sec. ago\": { \"v\": [\"ثانية مضت\"] }, \"seconds ago\": { \"v\": [\"ثوانٍ مضت\"] } } }, { \"l\": \"ast\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai unos segundos\"] }, \"sec. ago\": { \"v\": [\"hai segs\"] }, \"seconds ago\": { \"v\": [\"hai segundos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"a few seconds ago\": { \"v\": [\"před několika sekundami\"] }, \"sec. ago\": { \"v\": [\"sek. před\"] }, \"seconds ago\": { \"v\": [\"sekund předtím\"] } } }, { \"l\": \"da\", \"t\": { \"a few seconds ago\": { \"v\": [\"et par sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"de\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"de-DE\", \"t\": { \"a few seconds ago\": { \"v\": [\"vor ein paar Sekunden\"] }, \"sec. ago\": { \"v\": [\"Sek. zuvor\"] }, \"seconds ago\": { \"v\": [\"Sekunden zuvor\"] } } }, { \"l\": \"el\", \"t\": { \"a few seconds ago\": { \"v\": [\"πριν λίγα δευτερόλεπτα\"] }, \"sec. ago\": { \"v\": [\"δευτ. πριν\"] }, \"seconds ago\": { \"v\": [\"δευτερόλεπτα πριν\"] } } }, { \"l\": \"en-GB\", \"t\": { \"a few seconds ago\": { \"v\": [\"a few seconds ago\"] }, \"sec. ago\": { \"v\": [\"sec. ago\"] }, \"seconds ago\": { \"v\": [\"seconds ago\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos pocos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-AR\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"es-EC\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"hace segundos\"] }, \"seconds ago\": { \"v\": [\"Segundos atrás\"] } } }, { \"l\": \"es-MX\", \"t\": { \"a few seconds ago\": { \"v\": [\"hace unos segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"et-EE\", \"t\": { \"a few seconds ago\": { \"v\": [\"mõni sekund tagasi\"] }, \"sec. ago\": { \"v\": [\"sek. tagasi\"] }, \"seconds ago\": { \"v\": [\"sekundit tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"a few seconds ago\": { \"v\": [\"duela segundo batzuk\"] }, \"sec. ago\": { \"v\": [\"duela seg.\"] }, \"seconds ago\": { \"v\": [\"duela segundo\"] } } }, { \"l\": \"fa\", \"t\": { \"a few seconds ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"sec. ago\": { \"v\": [\"چند ثانیه پیش\"] }, \"seconds ago\": { \"v\": [\"چند ثانیه پیش\"] } } }, { \"l\": \"fi\", \"t\": { \"a few seconds ago\": { \"v\": [\"muutamia sekunteja sitten\"] }, \"sec. ago\": { \"v\": [\"sek. sitten\"] }, \"seconds ago\": { \"v\": [\"sekunteja sitten\"] } } }, { \"l\": \"fr\", \"t\": { \"a few seconds ago\": { \"v\": [\"il y a quelques instants\"] }, \"sec. ago\": { \"v\": [\"il y a qq. sec.\"] }, \"seconds ago\": { \"v\": [\"il y a quelques secondes\"] } } }, { \"l\": \"ga\", \"t\": { \"a few seconds ago\": { \"v\": [\"cúpla soicind ó shin\"] }, \"sec. ago\": { \"v\": [\"soic. ó shin\"] }, \"seconds ago\": { \"v\": [\"soicind ó shin\"] } } }, { \"l\": \"gl\", \"t\": { \"a few seconds ago\": { \"v\": [\"hai uns segundos\"] }, \"sec. ago\": { \"v\": [\"segs. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"he\", \"t\": { \"a few seconds ago\": { \"v\": [\"לפני מספר שניות\"] }, \"sec. ago\": { \"v\": [\"לפני מספר שניות\"] }, \"seconds ago\": { \"v\": [\"לפני מס׳ שניות\"] } } }, { \"l\": \"hr\", \"t\": { \"a few seconds ago\": { \"v\": [\"prije nekoliko sekundi\"] }, \"sec. ago\": { \"v\": [\"prije nek. sek.\"] }, \"seconds ago\": { \"v\": [\"prije nek. sek.\"] } } }, { \"l\": \"hu\", \"t\": { \"a few seconds ago\": { \"v\": [\"néhány másodperce\"] }, \"sec. ago\": { \"v\": [\"másodperce\"] }, \"seconds ago\": { \"v\": [\"másodperce\"] } } }, { \"l\": \"id\", \"t\": { \"a few seconds ago\": { \"v\": [\"beberapa detik yang lalu\"] }, \"sec. ago\": { \"v\": [\"dtk. yang lalu\"] }, \"seconds ago\": { \"v\": [\"beberapa detik lalu\"] } } }, { \"l\": \"is\", \"t\": { \"a few seconds ago\": { \"v\": [\"fyrir örfáum sekúndum síðan\"] }, \"sec. ago\": { \"v\": [\"sek. síðan\"] }, \"seconds ago\": { \"v\": [\"sekúndum síðan\"] } } }, { \"l\": \"it\", \"t\": { \"a few seconds ago\": { \"v\": [\"pochi secondi fa\"] }, \"sec. ago\": { \"v\": [\"sec. fa\"] }, \"seconds ago\": { \"v\": [\"secondi fa\"] } } }, { \"l\": \"ja\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"a few seconds ago\": { \"v\": [\"数秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"数秒前\"] } } }, { \"l\": \"ko\", \"t\": { \"a few seconds ago\": { \"v\": [\"방금 전\"] }, \"sec. ago\": { \"v\": [\"몇 초 전\"] }, \"seconds ago\": { \"v\": [\"초 전\"] } } }, { \"l\": \"lo\", \"t\": { \"a few seconds ago\": { \"v\": [\"ສອງສາມວິນາທີກ່ອນ\"] }, \"sec. ago\": { \"v\": [\"ວິ. ກ່ອນ\"] }, \"seconds ago\": { \"v\": [\"ວິນາທີກ່ອນ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"a few seconds ago\": { \"v\": [\"prieš keletą sekundžių\"] }, \"sec. ago\": { \"v\": [\"prieš sek.\"] }, \"seconds ago\": { \"v\": [\"prieš sekundes\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"a few seconds ago\": { \"v\": [\"пред неколку секунди\"] }, \"sec. ago\": { \"v\": [\"секунда\"] }, \"seconds ago\": { \"v\": [\"секунди\"] } } }, { \"l\": \"mn\", \"t\": { \"a few seconds ago\": { \"v\": [\"хэдхэн секундын өмнө\"] }, \"sec. ago\": { \"v\": [\"сек. өмнө\"] }, \"seconds ago\": { \"v\": [\"секундын өмнө\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"a few seconds ago\": { \"v\": [\"noen få sekunder siden\"] }, \"sec. ago\": { \"v\": [\"sek. siden\"] }, \"seconds ago\": { \"v\": [\"sekunder siden\"] } } }, { \"l\": \"nl\", \"t\": { \"a few seconds ago\": { \"v\": [\"enkele seconden geleden\"] }, \"sec. ago\": { \"v\": [\"sec. geleden\"] }, \"seconds ago\": { \"v\": [\"seconden geleden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"a few seconds ago\": { \"v\": [\"kilka sekund temu\"] }, \"sec. ago\": { \"v\": [\"sek. temu\"] }, \"seconds ago\": { \"v\": [\"sekund temu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"a few seconds ago\": { \"v\": [\"há alguns segundos\"] }, \"sec. ago\": { \"v\": [\"seg. atrás\"] }, \"seconds ago\": { \"v\": [\"segundos atrás\"] } } }, { \"l\": \"ro\", \"t\": { \"a few seconds ago\": { \"v\": [\"acum câteva secunde\"] }, \"sec. ago\": { \"v\": [\"sec. în urmă\"] }, \"seconds ago\": { \"v\": [\"secunde în urmă\"] } } }, { \"l\": \"ru\", \"t\": { \"a few seconds ago\": { \"v\": [\"несколько секунд назад\"] }, \"sec. ago\": { \"v\": [\"сек. назад\"] }, \"seconds ago\": { \"v\": [\"секунд назад\"] } } }, { \"l\": \"sk\", \"t\": { \"a few seconds ago\": { \"v\": [\"pred chvíľou\"] }, \"sec. ago\": { \"v\": [\"pred pár sekundami\"] }, \"seconds ago\": { \"v\": [\"pred sekundami\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"a few seconds ago\": { \"v\": [\"пре неколико секунди\"] }, \"sec. ago\": { \"v\": [\"сек. раније\"] }, \"seconds ago\": { \"v\": [\"секунди раније\"] } } }, { \"l\": \"sv\", \"t\": { \"a few seconds ago\": { \"v\": [\"några sekunder sedan\"] }, \"sec. ago\": { \"v\": [\"sek. sedan\"] }, \"seconds ago\": { \"v\": [\"sekunder sedan\"] } } }, { \"l\": \"tr\", \"t\": { \"a few seconds ago\": { \"v\": [\"birkaç saniye önce\"] }, \"sec. ago\": { \"v\": [\"sn. önce\"] }, \"seconds ago\": { \"v\": [\"saniye önce\"] } } }, { \"l\": \"uk\", \"t\": { \"a few seconds ago\": { \"v\": [\"декілька секунд тому\"] }, \"sec. ago\": { \"v\": [\"с тому\"] }, \"seconds ago\": { \"v\": [\"с тому\"] } } }, { \"l\": \"uz\", \"t\": { \"a few seconds ago\": { \"v\": [\"bir necha soniya oldin\"] }, \"sec. ago\": { \"v\": [\"sek. oldin\"] }, \"seconds ago\": { \"v\": [\"soniyalar oldin\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"a few seconds ago\": { \"v\": [\"几秒前\"] }, \"sec. ago\": { \"v\": [\"几秒前\"] }, \"seconds ago\": { \"v\": [\"几秒前\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"a few seconds ago\": { \"v\": [\"幾秒前\"] }, \"sec. ago\": { \"v\": [\"秒前\"] }, \"seconds ago\": { \"v\": [\"秒前\"] } } }];\nconst t3 = [{ \"l\": \"ar\", \"t\": { \"Acapulco\": { \"v\": [\"بازلائي مطفي\"] }, \"Blue Violet\": { \"v\": [\"بنفسجي مشعشع\"] }, \"Boston Blue\": { \"v\": [\"سماوي مطفي\"] }, \"Deluge\": { \"v\": [\"بنفسجي مطفي\"] }, \"Feldspar\": { \"v\": [\"وردي صخري\"] }, \"Gold\": { \"v\": [\"ذهبي\"] }, \"Mariner\": { \"v\": [\"أزرق بحري\"] }, \"Nextcloud blue\": { \"v\": [\"أزرق نكست كلاود\"] }, \"Olivine\": { \"v\": [\"زيتي\"] }, \"Purple\": { \"v\": [\"بنفسجي\"] }, \"Rosy brown\": { \"v\": [\"بُنِّي زهري\"] }, \"Whiskey\": { \"v\": [\"نبيذي\"] } } }, { \"l\": \"ast\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulcu\"] }, \"Blue Violet\": { \"v\": [\"Viola azulao\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oru\"] }, \"Mariner\": { \"v\": [\"Marineru\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Moráu\"] }, \"Rosy brown\": { \"v\": [\"Marrón arrosao\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Černá\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Bílá\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Blue Violet\": { \"v\": [\"Modrofialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živicová\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námořnická\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivínová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Růžovohnědá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"da\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Sort\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Hvid\"] } } }, { \"l\": \"de\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Schwarz\"] }, \"Blue Violet\": { \"v\": [\"Blau Violett\"] }, \"Boston Blue\": { \"v\": [\"Boston-Blau\"] }, \"Deluge\": { \"v\": [\"Sintflut\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Seemann\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud Blau\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosiges Braun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Weiß\"] } } }, { \"l\": \"el\", \"t\": { \"Acapulco\": { \"v\": [\"Ακαπούλκο\"] }, \"Black\": { \"v\": [\"Μαύρο\"] }, \"Blue Violet\": { \"v\": [\"Μπλε Βιολέτ\"] }, \"Boston Blue\": { \"v\": [\"Μπλε Βοστώνης\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Χρυσό\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Μπλε Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Μωβ\"] }, \"Rosy brown\": { \"v\": [\"Ροζ καφέ\"] }, \"Whiskey\": { \"v\": [\"Ουίσκι\"] }, \"White\": { \"v\": [\"Λευκό\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Black\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Purple\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"White\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Diluvio\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Oro\"] }, \"Mariner\": { \"v\": [\"Marinero\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivino\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Marrón rosáceo\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco meresinine\"] }, \"Black\": { \"v\": [\"Must\"] }, \"Blue Violet\": { \"v\": [\"Sinakasvioletne\"] }, \"Boston Blue\": { \"v\": [\"Bostoni rohekassinine\"] }, \"Deluge\": { \"v\": [\"Tulvavee lilla\"] }, \"Feldspar\": { \"v\": [\"Põlevkivipruun\"] }, \"Gold\": { \"v\": [\"Kuldne\"] }, \"Mariner\": { \"v\": [\"Meresinine\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudi sinine\"] }, \"Olivine\": { \"v\": [\"Oliiviroheline\"] }, \"Purple\": { \"v\": [\"Purpurpunane\"] }, \"Rosy brown\": { \"v\": [\"Roosikarva pruun\"] }, \"Whiskey\": { \"v\": [\"Viskikarva kollakaspruun\"] }, \"White\": { \"v\": [\"Valge\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Acapulco\": { \"v\": [\"آکاپولکو\"] }, \"Blue Violet\": { \"v\": [\"بنفش آبی\"] }, \"Boston Blue\": { \"v\": [\"آبی بوستونی\"] }, \"Deluge\": { \"v\": [\"سیل\"] }, \"Feldspar\": { \"v\": [\"فلدسپات\"] }, \"Gold\": { \"v\": [\"طلا\"] }, \"Mariner\": { \"v\": [\"مارینر\"] }, \"Nextcloud blue\": { \"v\": [\"نکس کلود آبی\"] }, \"Olivine\": { \"v\": [\"الیوین\"] }, \"Purple\": { \"v\": [\"بنفش\"] }, \"Rosy brown\": { \"v\": [\"قهوه‌ای رز\"] }, \"Whiskey\": { \"v\": [\"ویسکی\"] } } }, { \"l\": \"fi\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Sinivioletti\"] }, \"Boston Blue\": { \"v\": [\"Bostoninsininen\"] }, \"Deluge\": { \"v\": [\"Tulva\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Kulta\"] }, \"Mariner\": { \"v\": [\"Merenkulkija\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloudin sininen\"] }, \"Olivine\": { \"v\": [\"Oliviini\"] }, \"Purple\": { \"v\": [\"Purppura\"] }, \"Rosy brown\": { \"v\": [\"Ruusunruskea\"] }, \"Whiskey\": { \"v\": [\"Viski\"] } } }, { \"l\": \"fr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Noir\"] }, \"Blue Violet\": { \"v\": [\"Bleu violet\"] }, \"Boston Blue\": { \"v\": [\"Bleu de Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Doré\"] }, \"Mariner\": { \"v\": [\"Marin\"] }, \"Nextcloud blue\": { \"v\": [\"Bleu Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Violet\"] }, \"Rosy brown\": { \"v\": [\"Brun rosé\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Blanc\"] } } }, { \"l\": \"ga\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Dubh\"] }, \"Blue Violet\": { \"v\": [\"Gorm Violet\"] }, \"Boston Blue\": { \"v\": [\"Bostún Gorm\"] }, \"Deluge\": { \"v\": [\"Díle\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Óir\"] }, \"Mariner\": { \"v\": [\"Mairnéalach\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud gorm\"] }, \"Olivine\": { \"v\": [\"Olaivín\"] }, \"Purple\": { \"v\": [\"Corcra\"] }, \"Rosy brown\": { \"v\": [\"Rosach donn\"] }, \"Whiskey\": { \"v\": [\"Fuisce\"] }, \"White\": { \"v\": [\"Bán\"] } } }, { \"l\": \"gl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Negro\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Dioivo\"] }, \"Feldspar\": { \"v\": [\"Feldespato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marino\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Pardo rosado\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Crna\"] }, \"Blue Violet\": { \"v\": [\"Plavoljubičasta\"] }, \"Boston Blue\": { \"v\": [\"Bostonsko plava\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Zlatna\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud plava\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ljubičasta\"] }, \"Rosy brown\": { \"v\": [\"Ružičastosmeđa\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Bijela\"] } } }, { \"l\": \"hu\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Fekete\"] }, \"Blue Violet\": { \"v\": [\"Kék ibolya\"] }, \"Boston Blue\": { \"v\": [\"Boston kék\"] }, \"Deluge\": { \"v\": [\"Özönvíz\"] }, \"Feldspar\": { \"v\": [\"Földpát\"] }, \"Gold\": { \"v\": [\"Arany\"] }, \"Mariner\": { \"v\": [\"Tengerész\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud kék\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rózsás barna\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Fehér\"] } } }, { \"l\": \"id\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Hitam\"] }, \"Blue Violet\": { \"v\": [\"Ungu kebiruan\"] }, \"Boston Blue\": { \"v\": [\"Biru Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Emas\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Biru Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Ungu\"] }, \"Rosy brown\": { \"v\": [\"Cokelat kemerahan\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Putih\"] } } }, { \"l\": \"is\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Bláklukka\"] }, \"Boston Blue\": { \"v\": [\"Bostonblátt\"] }, \"Deluge\": { \"v\": [\"Fjólublátt\"] }, \"Feldspar\": { \"v\": [\"Feldspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Sjóarablátt\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blátt\"] }, \"Olivine\": { \"v\": [\"Ólivín\"] }, \"Purple\": { \"v\": [\"Purpurablátt\"] }, \"Rosy brown\": { \"v\": [\"Rósabrúnt\"] }, \"Whiskey\": { \"v\": [\"Viský\"] } } }, { \"l\": \"it\", \"t\": { \"Gold\": { \"v\": [\"Oro\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blue\"] }, \"Purple\": { \"v\": [\"Viola\"] } } }, { \"l\": \"ja\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Black\": { \"v\": [\"黒\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] }, \"White\": { \"v\": [\"白\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Acapulco\": { \"v\": [\"アカプルコ\"] }, \"Blue Violet\": { \"v\": [\"ブルーバイオレット\"] }, \"Boston Blue\": { \"v\": [\"ボストンブルー\"] }, \"Deluge\": { \"v\": [\"豪雨\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"黄金\"] }, \"Mariner\": { \"v\": [\"船乗り\"] }, \"Nextcloud blue\": { \"v\": [\"ネクストクラウド・ブルー\"] }, \"Olivine\": { \"v\": [\"カンラン石\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"バラ色\"] }, \"Whiskey\": { \"v\": [\"ウイスキー\"] } } }, { \"l\": \"ko\", \"t\": { \"Acapulco\": { \"v\": [\"아카풀코\"] }, \"Black\": { \"v\": [\"검정\"] }, \"Blue Violet\": { \"v\": [\"푸른 보라\"] }, \"Boston Blue\": { \"v\": [\"보스턴 블루\"] }, \"Deluge\": { \"v\": [\"폭우\"] }, \"Feldspar\": { \"v\": [\"장석\"] }, \"Gold\": { \"v\": [\"금\"] }, \"Mariner\": { \"v\": [\"뱃사람\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 파랑\"] }, \"Olivine\": { \"v\": [\"감람석\"] }, \"Purple\": { \"v\": [\"보라\"] }, \"Rosy brown\": { \"v\": [\"로지 브라운\"] }, \"Whiskey\": { \"v\": [\"위스키\"] }, \"White\": { \"v\": [\"하양\"] } } }, { \"l\": \"lo\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"ສີດຳ\"] }, \"Blue Violet\": { \"v\": [\"Blue Violet\"] }, \"Boston Blue\": { \"v\": [\"Boston Blue\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"ສີຄຳ\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"ສີຟ້າ Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"ສີມ່ວງ\"] }, \"Rosy brown\": { \"v\": [\"Rosy brown\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"ສີຂາວ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Acapulco\": { \"v\": ['\"Acapulco\"'] }, \"Black\": { \"v\": [\"Juoda\"] }, \"Blue Violet\": { \"v\": [\"Mėlyna-violetinė\"] }, \"Boston Blue\": { \"v\": ['\"Boston Blue\"'] }, \"Deluge\": { \"v\": ['\"Deluge\"'] }, \"Feldspar\": { \"v\": ['\"Feldspar\"'] }, \"Gold\": { \"v\": [\"Auksas\"] }, \"Mariner\": { \"v\": ['\"Mariner\"'] }, \"Nextcloud blue\": { \"v\": ['\"Nextcloud\" mėlyna'] }, \"Olivine\": { \"v\": ['\"Olivine\"'] }, \"Purple\": { \"v\": [\"Violetinė\"] }, \"Rosy brown\": { \"v\": [\"Rožiniai rudas\"] }, \"Whiskey\": { \"v\": ['\"Whiskey\"'] }, \"White\": { \"v\": [\"Balta\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Сино Виолетова\"] }, \"Boston Blue\": { \"v\": [\"Бостон Сина\"] }, \"Deluge\": { \"v\": [\"Делуџ\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Златна\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud сина\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Виолетова\"] }, \"Rosy brown\": { \"v\": [\"Розево-кафеава\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бела\"] } } }, { \"l\": \"mn\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Хар\"] }, \"Blue Violet\": { \"v\": [\"Цэнхэр ягаан\"] }, \"Boston Blue\": { \"v\": [\"Бостон цэнхэр\"] }, \"Deluge\": { \"v\": [\"Делюж\"] }, \"Feldspar\": { \"v\": [\"Фельдспар\"] }, \"Gold\": { \"v\": [\"Алтан\"] }, \"Mariner\": { \"v\": [\"Маринер\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud цэнхэр\"] }, \"Olivine\": { \"v\": [\"Оливин\"] }, \"Purple\": { \"v\": [\"Нил ягаан\"] }, \"Rosy brown\": { \"v\": [\"Ягаан бор\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Цагаан\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Blå fiolett\"] }, \"Boston Blue\": { \"v\": [\"Boston blå\"] }, \"Deluge\": { \"v\": [\"Syndflod\"] }, \"Feldspar\": { \"v\": [\"Feltspat\"] }, \"Gold\": { \"v\": [\"Gull\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lilla\"] }, \"Rosy brown\": { \"v\": [\"Rosenrød brun\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"nl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Zwart\"] }, \"Blue Violet\": { \"v\": [\"Blauw Paars\"] }, \"Boston Blue\": { \"v\": [\"Boston Blauw\"] }, \"Deluge\": { \"v\": [\"Overlopen\"] }, \"Feldspar\": { \"v\": [\"Veldspaat\"] }, \"Gold\": { \"v\": [\"Goud\"] }, \"Mariner\": { \"v\": [\"Marineblauw\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud blauw\"] }, \"Olivine\": { \"v\": [\"Olivijn\"] }, \"Purple\": { \"v\": [\"Paars\"] }, \"Rosy brown\": { \"v\": [\"Rozig bruin\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Wit\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Niebieski fiolet\"] }, \"Boston Blue\": { \"v\": [\"Błękit Bostonu\"] }, \"Deluge\": { \"v\": [\"Potop\"] }, \"Feldspar\": { \"v\": [\"Skaleń\"] }, \"Gold\": { \"v\": [\"Złote\"] }, \"Mariner\": { \"v\": [\"Marynarz\"] }, \"Nextcloud blue\": { \"v\": [\"Niebieskie Nextcloud\"] }, \"Olivine\": { \"v\": [\"Oliwin\"] }, \"Purple\": { \"v\": [\"Fioletowy\"] }, \"Rosy brown\": { \"v\": [\"Różowy brąz\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Preto\"] }, \"Blue Violet\": { \"v\": [\"Violeta Azul\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspato\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Marinheiro\"] }, \"Nextcloud blue\": { \"v\": [\"Azul Nextcloud\"] }, \"Olivine\": { \"v\": [\"Olivina\"] }, \"Purple\": { \"v\": [\"Roxo\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Uísque\"] }, \"White\": { \"v\": [\"Branco\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Azul violeta\"] }, \"Boston Blue\": { \"v\": [\"Azul Boston\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Ouro\"] }, \"Mariner\": { \"v\": [\"Mariner\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud azul\"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Púrpura\"] }, \"Rosy brown\": { \"v\": [\"Castanho rosado\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] } } }, { \"l\": \"ro\", \"t\": { \"Gold\": { \"v\": [\"Aur\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud albastru\"] }, \"Purple\": { \"v\": [\"Purpuriu\"] } } }, { \"l\": \"ru\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Black\": { \"v\": [\"Черный\"] }, \"Blue Violet\": { \"v\": [\"Синий фиолет\"] }, \"Boston Blue\": { \"v\": [\"Синий Бостон\"] }, \"Deluge\": { \"v\": [\"Перламутрово-фиолетовый\"] }, \"Feldspar\": { \"v\": [\"Античная латунь\"] }, \"Gold\": { \"v\": [\"Золотой\"] }, \"Mariner\": { \"v\": [\"Морской\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud голубой\"] }, \"Olivine\": { \"v\": [\" Оливковый\"] }, \"Purple\": { \"v\": [\"Фиолетовый\"] }, \"Rosy brown\": { \"v\": [\"Розово-коричневый\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Белый\"] } } }, { \"l\": \"sk\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"Modro fialová\"] }, \"Boston Blue\": { \"v\": [\"Bostonská modrá\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"Živec\"] }, \"Gold\": { \"v\": [\"Zlatá\"] }, \"Mariner\": { \"v\": [\"Námorník\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud modrá\"] }, \"Olivine\": { \"v\": [\"Olivová\"] }, \"Purple\": { \"v\": [\"Fialová\"] }, \"Rosy brown\": { \"v\": [\"Ružovo hnedá\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулко\"] }, \"Black\": { \"v\": [\"Црно\"] }, \"Blue Violet\": { \"v\": [\"Плаво љубичаста\"] }, \"Boston Blue\": { \"v\": [\"Бостон плава\"] }, \"Deluge\": { \"v\": [\"Поплава\"] }, \"Feldspar\": { \"v\": [\"Фелдспар\"] }, \"Gold\": { \"v\": [\"Злато\"] }, \"Mariner\": { \"v\": [\"Морнар\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud плава\"] }, \"Olivine\": { \"v\": [\"Маслинаста\"] }, \"Purple\": { \"v\": [\"Пурпурна\"] }, \"Rosy brown\": { \"v\": [\"Роси браон\"] }, \"Whiskey\": { \"v\": [\"Виски\"] }, \"White\": { \"v\": [\"Бело\"] } } }, { \"l\": \"sv\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"Svart\"] }, \"Blue Violet\": { \"v\": [\"Blåviolett\"] }, \"Boston Blue\": { \"v\": [\"Bostonblå\"] }, \"Deluge\": { \"v\": [\"Skyfallsblå\"] }, \"Feldspar\": { \"v\": [\"Fältspat\"] }, \"Gold\": { \"v\": [\"Guld\"] }, \"Mariner\": { \"v\": [\"Marinblå\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud-blå\"] }, \"Olivine\": { \"v\": [\"Olivin\"] }, \"Purple\": { \"v\": [\"Lila\"] }, \"Rosy brown\": { \"v\": [\"Rosabrun\"] }, \"Whiskey\": { \"v\": [\"Whisky\"] }, \"White\": { \"v\": [\"Vit\"] } } }, { \"l\": \"tr\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Siyah\"] }, \"Blue Violet\": { \"v\": [\"Mavi mor\"] }, \"Boston Blue\": { \"v\": [\"Boston mavisi\"] }, \"Deluge\": { \"v\": [\"Sel\"] }, \"Feldspar\": { \"v\": [\"Feldispat\"] }, \"Gold\": { \"v\": [\"Altın\"] }, \"Mariner\": { \"v\": [\"Denizci\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud mavi\"] }, \"Olivine\": { \"v\": [\"Zeytinlik\"] }, \"Purple\": { \"v\": [\"Mor\"] }, \"Rosy brown\": { \"v\": [\"Kırmızımsı kahverengi\"] }, \"Whiskey\": { \"v\": [\"Viski\"] }, \"White\": { \"v\": [\"Beyaz\"] } } }, { \"l\": \"uk\", \"t\": { \"Acapulco\": { \"v\": [\"Акапулько\"] }, \"Blue Violet\": { \"v\": [\"Блакитна фіалка\"] }, \"Boston Blue\": { \"v\": [\"Бостонський синій\"] }, \"Deluge\": { \"v\": [\"Злива\"] }, \"Feldspar\": { \"v\": [\"Польові шпати\"] }, \"Gold\": { \"v\": [\"Золотий\"] }, \"Mariner\": { \"v\": [\"Морський\"] }, \"Nextcloud blue\": { \"v\": [\"Блакитний Nextcloud\"] }, \"Olivine\": { \"v\": [\"Олива\"] }, \"Purple\": { \"v\": [\"Фіолетовий\"] }, \"Rosy brown\": { \"v\": [\"Темно-рожевий\"] }, \"Whiskey\": { \"v\": [\"Кола\"] } } }, { \"l\": \"uz\", \"t\": { \"Acapulco\": { \"v\": [\"Akapulko\"] }, \"Black\": { \"v\": [\"Qora\"] }, \"Blue Violet\": { \"v\": [\"Moviy binafsha\"] }, \"Boston Blue\": { \"v\": [\"Boston ko'k\"] }, \"Deluge\": { \"v\": [\"To'fon\"] }, \"Feldspar\": { \"v\": [\"Feldspar\"] }, \"Gold\": { \"v\": [\"Oltin\"] }, \"Mariner\": { \"v\": [\"Dengizchi\"] }, \"Nextcloud blue\": { \"v\": [\"Ko'k Nextcloud \"] }, \"Olivine\": { \"v\": [\"Olivine\"] }, \"Purple\": { \"v\": [\"Binafsha\"] }, \"Rosy brown\": { \"v\": [\"Qizil jigarrang\"] }, \"Whiskey\": { \"v\": [\"Whiskey\"] }, \"White\": { \"v\": [\"Oq\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Blue Violet\": { \"v\": [\"瓦罗兰特蓝\"] }, \"Boston Blue\": { \"v\": [\"波士顿蓝\"] }, \"Deluge\": { \"v\": [\"洪水色\"] }, \"Feldspar\": { \"v\": [\"长石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"水手\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 蓝\"] }, \"Olivine\": { \"v\": [\"橄榄石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Acapulco\": { \"v\": [\"阿卡普爾科\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"大洪水\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"Gold\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Acapulco\": { \"v\": [\"Acapulco\"] }, \"Black\": { \"v\": [\"黑色\"] }, \"Blue Violet\": { \"v\": [\"藍紫色\"] }, \"Boston Blue\": { \"v\": [\"波士頓藍\"] }, \"Deluge\": { \"v\": [\"Deluge\"] }, \"Feldspar\": { \"v\": [\"長石\"] }, \"Gold\": { \"v\": [\"金色\"] }, \"Mariner\": { \"v\": [\"海軍藍\"] }, \"Nextcloud blue\": { \"v\": [\"Nextcloud 藍色\"] }, \"Olivine\": { \"v\": [\"橄欖石色\"] }, \"Purple\": { \"v\": [\"紫色\"] }, \"Rosy brown\": { \"v\": [\"玫瑰棕色\"] }, \"Whiskey\": { \"v\": [\"威士忌\"] }, \"White\": { \"v\": [\"白色\"] } } }];\nconst t4 = [{ \"l\": \"ar\", \"t\": { \"Actions\": { \"v\": [\"إجراءات\"] } } }, { \"l\": \"ast\", \"t\": { \"Actions\": { \"v\": [\"Aiciones\"] } } }, { \"l\": \"br\", \"t\": { \"Actions\": { \"v\": [\"Oberioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"cs\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Actions\": { \"v\": [\"Akce\"] } } }, { \"l\": \"da\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"de\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Actions\": { \"v\": [\"Aktionen\"] } } }, { \"l\": \"el\", \"t\": { \"Actions\": { \"v\": [\"Ενέργειες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"eo\", \"t\": { \"Actions\": { \"v\": [\"Agoj\"] } } }, { \"l\": \"es\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Actions\": { \"v\": [\"Acciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Actions\": { \"v\": [\"Tegevus\"] } } }, { \"l\": \"eu\", \"t\": { \"Actions\": { \"v\": [\"Ekintzak\"] } } }, { \"l\": \"fa\", \"t\": { \"Actions\": { \"v\": [\"کنش‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Actions\": { \"v\": [\"Toiminnot\"] } } }, { \"l\": \"fr\", \"t\": { \"Actions\": { \"v\": [\"Actions\"] } } }, { \"l\": \"ga\", \"t\": { \"Actions\": { \"v\": [\"Gníomhartha\"] } } }, { \"l\": \"gl\", \"t\": { \"Actions\": { \"v\": [\"Accións\"] } } }, { \"l\": \"he\", \"t\": { \"Actions\": { \"v\": [\"פעולות\"] } } }, { \"l\": \"hr\", \"t\": { \"Actions\": { \"v\": [\"Radnje\"] } } }, { \"l\": \"hu\", \"t\": { \"Actions\": { \"v\": [\"Műveletek\"] } } }, { \"l\": \"id\", \"t\": { \"Actions\": { \"v\": [\"Tindakan\"] } } }, { \"l\": \"is\", \"t\": { \"Actions\": { \"v\": [\"Aðgerðir\"] } } }, { \"l\": \"it\", \"t\": { \"Actions\": { \"v\": [\"Azioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Actions\": { \"v\": [\"操作\"] } } }, { \"l\": \"ko\", \"t\": { \"Actions\": { \"v\": [\"동작\"] } } }, { \"l\": \"lo\", \"t\": { \"Actions\": { \"v\": [\"ການກະທຳ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Actions\": { \"v\": [\"Veiksmai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Actions\": { \"v\": [\"Акции\"] } } }, { \"l\": \"mn\", \"t\": { \"Actions\": { \"v\": [\"Үйлдлүүд\"] } } }, { \"l\": \"my\", \"t\": { \"Actions\": { \"v\": [\"လုပ်ဆောင်ချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Actions\": { \"v\": [\"Handlinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Actions\": { \"v\": [\"Acties\"] } } }, { \"l\": \"oc\", \"t\": { \"Actions\": { \"v\": [\"Accions\"] } } }, { \"l\": \"pl\", \"t\": { \"Actions\": { \"v\": [\"Działania\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Actions\": { \"v\": [\"Ações\"] } } }, { \"l\": \"ro\", \"t\": { \"Actions\": { \"v\": [\"Acțiuni\"] } } }, { \"l\": \"ru\", \"t\": { \"Actions\": { \"v\": [\"Действия \"] } } }, { \"l\": \"sk\", \"t\": { \"Actions\": { \"v\": [\"Akcie\"] } } }, { \"l\": \"sl\", \"t\": { \"Actions\": { \"v\": [\"Dejanja\"] } } }, { \"l\": \"sr\", \"t\": { \"Actions\": { \"v\": [\"Радње\"] } } }, { \"l\": \"sv\", \"t\": { \"Actions\": { \"v\": [\"Åtgärder\"] } } }, { \"l\": \"tr\", \"t\": { \"Actions\": { \"v\": [\"İşlemler\"] } } }, { \"l\": \"uk\", \"t\": { \"Actions\": { \"v\": [\"Дії\"] } } }, { \"l\": \"uz\", \"t\": { \"Actions\": { \"v\": [\"Harakatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Actions\": { \"v\": [\"行为\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Actions\": { \"v\": [\"動作\"] } } }];\nconst t5 = [{ \"l\": \"ar\", \"t\": { \"Activities\": { \"v\": [\"سجل الأنشطة\"] }, \"Animals & Nature\": { \"v\": [\"الحيوانات والطبيعة\"] }, \"Custom\": { \"v\": [\"مُخصَّص\"] }, \"Dark skin tone\": { \"v\": [\"أسمر البُشرة\"] }, \"Emoji picker\": { \"v\": [\"لاقط الإيموجي\"] }, \"Flags\": { \"v\": [\"الأعلام\"] }, \"Food & Drink\": { \"v\": [\"الطعام والشراب\"] }, \"Frequently used\": { \"v\": [\"شائعة الاستعمال\"] }, \"Light skin tone\": { \"v\": [\"فاتح البُشرة\"] }, \"Medium dark skin tone\": { \"v\": [\"بشرة متوسطة الاسمرار\"] }, \"Medium light skin tone\": { \"v\": [\"بشرة متوسطة البياض\"] }, \"Medium skin tone\": { \"v\": [\"بشرة وسطية اللون\"] }, \"Neutral skin color\": { \"v\": [\"لون بُشرة طبيعي\"] }, \"Objects\": { \"v\": [\"أشياء\"] }, \"People & Body\": { \"v\": [\"أشخاص و أجسام\"] }, \"Pick an emoji\": { \"v\": [\"إختَر رمز إيموجي emoji\"] }, \"Search emoji\": { \"v\": [\"البحث عن إيموجي emoji\"] }, \"Search results\": { \"v\": [\"نتائج البحث\"] }, \"Selected\": { \"v\": [\"محدّدة\"] }, \"Skin tone\": { \"v\": [\"لون البُشرة\"] }, \"Smileys & Emotion\": { \"v\": [\"وجوهٌ ضاحكة و مشاعر\"] }, \"Symbols\": { \"v\": [\"رموز\"] }, \"Travel & Places\": { \"v\": [\"سفر و أماكن\"] } } }, { \"l\": \"ast\", \"t\": { \"Activities\": { \"v\": [\"Actividaes\"] }, \"Animals & Nature\": { \"v\": [\"Animales y natura\"] }, \"Custom\": { \"v\": [\"Personalizar\"] }, \"Dark skin tone\": { \"v\": [\"Tonu d'aspeutu escuru\"] }, \"Emoji picker\": { \"v\": [\"Selector de fustaxes\"] }, \"Flags\": { \"v\": [\"Banderes\"] }, \"Food & Drink\": { \"v\": [\"Cómida y bébora\"] }, \"Frequently used\": { \"v\": [\"D'usu frecuente\"] }, \"Light skin tone\": { \"v\": [\"Tonu d'aspeutu claru\"] }, \"Medium dark skin tone\": { \"v\": [\"Tonu d'aspeutu medio escuru\"] }, \"Medium light skin tone\": { \"v\": [\"Tonu d'aspeutu medio claru\"] }, \"Medium skin tone\": { \"v\": [\"Tonu d'aspeutu mediu\"] }, \"Neutral skin color\": { \"v\": [\"Color d'aspeutu neutral\"] }, \"Objects\": { \"v\": [\"Oxetos\"] }, \"People & Body\": { \"v\": [\"Persones y cuerpu\"] }, \"Pick an emoji\": { \"v\": [\"Escueyi un fustaxe\"] }, \"Search emoji\": { \"v\": [\"Buscar nos fustaxes\"] }, \"Search results\": { \"v\": [\"Resultaos de la busca\"] }, \"Selected\": { \"v\": [\"Na seleición\"] }, \"Skin tone\": { \"v\": [\"Tonu d'aspeutu\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrises y emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes y llugares\"] } } }, { \"l\": \"br\", \"t\": { \"Activities\": { \"v\": [\"Oberiantizoù\"] }, \"Animals & Nature\": { \"v\": [\"Loened & Natur\"] }, \"Custom\": { \"v\": [\"Personelañ\"] }, \"Flags\": { \"v\": [\"Bannieloù\"] }, \"Food & Drink\": { \"v\": [\"Boued & Evajoù\"] }, \"Frequently used\": { \"v\": [\"Implijet alies\"] }, \"Objects\": { \"v\": [\"Traoù\"] }, \"People & Body\": { \"v\": [\"Tud & Korf\"] }, \"Pick an emoji\": { \"v\": [\"Choaz un emoji\"] }, \"Search results\": { \"v\": [\"Disoc'hoù an enklask\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyioù & Fromoù\"] }, \"Symbols\": { \"v\": [\"Arouezioù\"] }, \"Travel & Places\": { \"v\": [\"Beaj & Lec'hioù\"] } } }, { \"l\": \"ca\", \"t\": { \"Activities\": { \"v\": [\"Activitats\"] }, \"Animals & Nature\": { \"v\": [\"Animals i natura\"] }, \"Custom\": { \"v\": [\"Personalitzat\"] }, \"Flags\": { \"v\": [\"Marques\"] }, \"Food & Drink\": { \"v\": [\"Menjar i begudes\"] }, \"Frequently used\": { \"v\": [\"Utilitzats recentment\"] }, \"Objects\": { \"v\": [\"Objectes\"] }, \"People & Body\": { \"v\": [\"Persones i cos\"] }, \"Pick an emoji\": { \"v\": [\"Trieu un emoji\"] }, \"Search results\": { \"v\": [\"Resultats de cerca\"] }, \"Smileys & Emotion\": { \"v\": [\"Cares i emocions\"] }, \"Symbols\": { \"v\": [\"Símbols\"] }, \"Travel & Places\": { \"v\": [\"Viatges i llocs\"] } } }, { \"l\": \"cs\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutrální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvířata a příroda\"] }, \"Custom\": { \"v\": [\"Uživatelsky určené\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý tělový tón\"] }, \"Emoji picker\": { \"v\": [\"Výběr emotikon\"] }, \"Flags\": { \"v\": [\"Příznaky\"] }, \"Food & Drink\": { \"v\": [\"Jídlo a pití\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Světlý tělový tón\"] }, \"Medium dark skin tone\": { \"v\": [\"Středně tmavý tělový tón\"] }, \"Medium light skin tone\": { \"v\": [\"Středně světlý tělový tón\"] }, \"Medium skin tone\": { \"v\": [\"Střední tělový tón\"] }, \"Neutral skin color\": { \"v\": [\"Neutřální tělová barva\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Lidé a tělo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrat emoji\"] }, \"Search emoji\": { \"v\": [\"Hledat emoji\"] }, \"Search results\": { \"v\": [\"Výsledky hledání\"] }, \"Selected\": { \"v\": [\"Vybráno\"] }, \"Skin tone\": { \"v\": [\"Tělový tón\"] }, \"Smileys & Emotion\": { \"v\": [\"Úsměvy a emoce\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestování a místa\"] } } }, { \"l\": \"da\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr & Natur\"] }, \"Custom\": { \"v\": [\"Brugerdefineret\"] }, \"Dark skin tone\": { \"v\": [\"Mørk skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji vælger\"] }, \"Flags\": { \"v\": [\"Flag\"] }, \"Food & Drink\": { \"v\": [\"Mad & Drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brugt\"] }, \"Light skin tone\": { \"v\": [\"Lys skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mørk skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium lys skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin color\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker & Menneskekroppen\"] }, \"Pick an emoji\": { \"v\": [\"Vælg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søg emoji\"] }, \"Search results\": { \"v\": [\"Søgeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Rejser & Rejsemål\"] } } }, { \"l\": \"de\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Activities\": { \"v\": [\"Aktivitäten\"] }, \"Animals & Nature\": { \"v\": [\"Tiere & Natur\"] }, \"Custom\": { \"v\": [\"Benutzerdefiniert\"] }, \"Dark skin tone\": { \"v\": [\"Dunkler Hautfarbton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-Auswahl\"] }, \"Flags\": { \"v\": [\"Flaggen\"] }, \"Food & Drink\": { \"v\": [\"Essen & Trinken\"] }, \"Frequently used\": { \"v\": [\"Häufig verwendet\"] }, \"Light skin tone\": { \"v\": [\"Heller Hautfarbton\"] }, \"Medium dark skin tone\": { \"v\": [\"Mitteldunkler Hautfarbton\"] }, \"Medium light skin tone\": { \"v\": [\"Mittelheller Hautfarbton\"] }, \"Medium skin tone\": { \"v\": [\"Mittlerer Hautfarbton\"] }, \"Neutral skin color\": { \"v\": [\"Neutraler Hautfarbton\"] }, \"Objects\": { \"v\": [\"Objekte\"] }, \"People & Body\": { \"v\": [\"Menschen & Körper\"] }, \"Pick an emoji\": { \"v\": [\"Ein Emoji auswählen\"] }, \"Search emoji\": { \"v\": [\"Emoji suchen\"] }, \"Search results\": { \"v\": [\"Suchergebnisse\"] }, \"Selected\": { \"v\": [\"Ausgewählt\"] }, \"Skin tone\": { \"v\": [\"Hautfarbton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotionen\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Reisen & Orte\"] } } }, { \"l\": \"el\", \"t\": { \"Activities\": { \"v\": [\"Δραστηριότητες\"] }, \"Animals & Nature\": { \"v\": [\"Ζώα & Φύση\"] }, \"Custom\": { \"v\": [\"Προσαρμογή\"] }, \"Dark skin tone\": { \"v\": [\"Σκούρο θέμα\"] }, \"Emoji picker\": { \"v\": [\"Επιλογέας emoji\"] }, \"Flags\": { \"v\": [\"Σημαίες\"] }, \"Food & Drink\": { \"v\": [\"Φαγητό & Ποτό\"] }, \"Frequently used\": { \"v\": [\"Συχνά χρησιμοποιούμενο\"] }, \"Light skin tone\": { \"v\": [\"Ανοιχτό θέμα\"] }, \"Medium dark skin tone\": { \"v\": [\"Μέτριο σκούρο θέμα\"] }, \"Medium light skin tone\": { \"v\": [\"Μέτριο ανοιχτό θέμα\"] }, \"Medium skin tone\": { \"v\": [\"Μέτριος τόνος θέματος\"] }, \"Neutral skin color\": { \"v\": [\"Ουδέτερο χρώμα θέματος\"] }, \"Objects\": { \"v\": [\"Αντικείμενα\"] }, \"People & Body\": { \"v\": [\"Άνθρωποι & Σώμα\"] }, \"Pick an emoji\": { \"v\": [\"Επιλέξτε ένα emoji\"] }, \"Search emoji\": { \"v\": [\"Αναζήτηση emoji\"] }, \"Search results\": { \"v\": [\"Αποτελέσματα αναζήτησης\"] }, \"Selected\": { \"v\": [\"Επιλεγμένο\"] }, \"Skin tone\": { \"v\": [\"Τόνος δέρματος\"] }, \"Smileys & Emotion\": { \"v\": [\"Φατσούλες & Συναίσθημα\"] }, \"Symbols\": { \"v\": [\"Σύμβολα\"] }, \"Travel & Places\": { \"v\": [\"Ταξίδια & Τοποθεσίες\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Activities\": { \"v\": [\"Activities\"] }, \"Animals & Nature\": { \"v\": [\"Animals & Nature\"] }, \"Custom\": { \"v\": [\"Custom\"] }, \"Dark skin tone\": { \"v\": [\"Dark skin tone\"] }, \"Emoji picker\": { \"v\": [\"Emoji picker\"] }, \"Flags\": { \"v\": [\"Flags\"] }, \"Food & Drink\": { \"v\": [\"Food & Drink\"] }, \"Frequently used\": { \"v\": [\"Frequently used\"] }, \"Light skin tone\": { \"v\": [\"Light skin tone\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium dark skin tone\"] }, \"Medium light skin tone\": { \"v\": [\"Medium light skin tone\"] }, \"Medium skin tone\": { \"v\": [\"Medium skin tone\"] }, \"Neutral skin color\": { \"v\": [\"Neutral skin colour\"] }, \"Objects\": { \"v\": [\"Objects\"] }, \"People & Body\": { \"v\": [\"People & Body\"] }, \"Pick an emoji\": { \"v\": [\"Pick an emoji\"] }, \"Search emoji\": { \"v\": [\"Search emoji\"] }, \"Search results\": { \"v\": [\"Search results\"] }, \"Selected\": { \"v\": [\"Selected\"] }, \"Skin tone\": { \"v\": [\"Skin tone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotion\"] }, \"Symbols\": { \"v\": [\"Symbols\"] }, \"Travel & Places\": { \"v\": [\"Travel & Places\"] } } }, { \"l\": \"eo\", \"t\": { \"Activities\": { \"v\": [\"Aktiveco\"] }, \"Animals & Nature\": { \"v\": [\"Bestoj & Naturo\"] }, \"Custom\": { \"v\": [\"Propra\"] }, \"Flags\": { \"v\": [\"Flagoj\"] }, \"Food & Drink\": { \"v\": [\"Manĝaĵo & Trinkaĵo\"] }, \"Frequently used\": { \"v\": [\"Ofte uzataj\"] }, \"Objects\": { \"v\": [\"Objektoj\"] }, \"People & Body\": { \"v\": [\"Homoj & Korpo\"] }, \"Pick an emoji\": { \"v\": [\"Elekti emoĝion \"] }, \"Search results\": { \"v\": [\"Serĉrezultoj\"] }, \"Smileys & Emotion\": { \"v\": [\"Ridoj kaj Emocioj\"] }, \"Symbols\": { \"v\": [\"Signoj\"] }, \"Travel & Places\": { \"v\": [\"Vojaĵoj & Lokoj\"] } } }, { \"l\": \"es\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel obscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elegir un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys y emoticonos\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usados frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Elija un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y Naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Flags\": { \"v\": [\"Marcas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Frecuentemente utilizado\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y Cuerpo\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de búsqueda\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y Lugares\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animales y naturaleza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tono de piel oscuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de emojis\"] }, \"Flags\": { \"v\": [\"Banderas\"] }, \"Food & Drink\": { \"v\": [\"Comida y Bebida\"] }, \"Frequently used\": { \"v\": [\"Usado frecuentemente\"] }, \"Light skin tone\": { \"v\": [\"Tono de piel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tono de piel medio oscuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tono de piel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tono de piel medio\"] }, \"Neutral skin color\": { \"v\": [\"Color de piel neutral\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Personas y cuerpos\"] }, \"Pick an emoji\": { \"v\": [\"Seleccionar un emoji\"] }, \"Search emoji\": { \"v\": [\"Buscar emoji\"] }, \"Search results\": { \"v\": [\"Resultados de la búsqueda\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Tono de piel\"] }, \"Smileys & Emotion\": { \"v\": [\"Caritas y Emociones\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viajes y lugares\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Activities\": { \"v\": [\"Tegevused\"] }, \"Animals & Nature\": { \"v\": [\"Loomad ja loodus\"] }, \"Custom\": { \"v\": [\"Kohanda\"] }, \"Dark skin tone\": { \"v\": [\"Kesta tume toon\"] }, \"Emoji picker\": { \"v\": [\"Emojide valija\"] }, \"Flags\": { \"v\": [\"Lipud\"] }, \"Food & Drink\": { \"v\": [\"Söök ja jook\"] }, \"Frequently used\": { \"v\": [\"Sageli kasutatud\"] }, \"Light skin tone\": { \"v\": [\"Kesta hele toon\"] }, \"Medium dark skin tone\": { \"v\": [\"Kesta keskmiselt tume toon\"] }, \"Medium light skin tone\": { \"v\": [\"Kesta keskmiselt hele toon\"] }, \"Medium skin tone\": { \"v\": [\"Kesta keskmine toon\"] }, \"Neutral skin color\": { \"v\": [\"Kesta neutraalne toon\"] }, \"Objects\": { \"v\": [\"Objektid\"] }, \"People & Body\": { \"v\": [\"Inimesed ja keha\"] }, \"Pick an emoji\": { \"v\": [\"Vali emoji\"] }, \"Search emoji\": { \"v\": [\"Otsi emojit\"] }, \"Search results\": { \"v\": [\"Otsi tulemustest\"] }, \"Selected\": { \"v\": [\"Valitud\"] }, \"Skin tone\": { \"v\": [\"Kesta toon\"] }, \"Smileys & Emotion\": { \"v\": [\"Smailid ja emotsioonid\"] }, \"Symbols\": { \"v\": [\"Sümbolid\"] }, \"Travel & Places\": { \"v\": [\"Reisimine ja kohad\"] } } }, { \"l\": \"eu\", \"t\": { \"Activities\": { \"v\": [\"Jarduerak\"] }, \"Animals & Nature\": { \"v\": [\"Animaliak eta Natura\"] }, \"Custom\": { \"v\": [\"Pertsonalizatua\"] }, \"Flags\": { \"v\": [\"Banderak\"] }, \"Food & Drink\": { \"v\": [\"Janaria eta edariak\"] }, \"Frequently used\": { \"v\": [\"Askotan erabilia\"] }, \"Objects\": { \"v\": [\"Objektuak\"] }, \"People & Body\": { \"v\": [\"Jendea eta gorputza\"] }, \"Pick an emoji\": { \"v\": [\"Hautatu emoji bat\"] }, \"Search emoji\": { \"v\": [\"Bilatu emojiak\"] }, \"Search results\": { \"v\": [\"Bilaketa emaitzak\"] }, \"Selected\": { \"v\": [\"Hautatuta\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileyak eta emozioa\"] }, \"Symbols\": { \"v\": [\"Sinboloak\"] }, \"Travel & Places\": { \"v\": [\"Bidaiak eta lekuak\"] } } }, { \"l\": \"fa\", \"t\": { \"Activities\": { \"v\": [\"فعالیت‌ها\"] }, \"Animals & Nature\": { \"v\": [\"حیوانات و طبیعت\"] }, \"Custom\": { \"v\": [\"سفارشی\"] }, \"Dark skin tone\": { \"v\": [\"رنگ پوسته تیره\"] }, \"Emoji picker\": { \"v\": [\"انتخاب‌گر شکلک\"] }, \"Flags\": { \"v\": [\"پرچم‌ها\"] }, \"Food & Drink\": { \"v\": [\"غذا و نوشیدنی\"] }, \"Frequently used\": { \"v\": [\"پرکاربرد\"] }, \"Light skin tone\": { \"v\": [\"رنگ پوسته روشن\"] }, \"Medium dark skin tone\": { \"v\": [\"رنگ پوسته تیره متوسط\"] }, \"Medium light skin tone\": { \"v\": [\"رنگ پوسته روشن متوسط\"] }, \"Medium skin tone\": { \"v\": [\"رنگ پوسته متوسط\"] }, \"Neutral skin color\": { \"v\": [\"رنگ پوسته خنثی\"] }, \"Objects\": { \"v\": [\"اشیاء\"] }, \"People & Body\": { \"v\": [\"مردم و بدن\"] }, \"Pick an emoji\": { \"v\": [\"انتخاب شکلک\"] }, \"Search emoji\": { \"v\": [\"جستجوی شکلک\"] }, \"Search results\": { \"v\": [\"نتایج جستجو\"] }, \"Selected\": { \"v\": [\"انتخاب شده\"] }, \"Skin tone\": { \"v\": [\"رنگ پوسته\"] }, \"Smileys & Emotion\": { \"v\": [\"شکلک‌ها و احساسات\"] }, \"Symbols\": { \"v\": [\"نمادها\"] }, \"Travel & Places\": { \"v\": [\"سفر و مکان‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteetit\"] }, \"Animals & Nature\": { \"v\": [\"Eläimet & luonto\"] }, \"Custom\": { \"v\": [\"Mukautettu\"] }, \"Dark skin tone\": { \"v\": [\"Tumma ihonväri\"] }, \"Emoji picker\": { \"v\": [\"Emojivalitsin\"] }, \"Flags\": { \"v\": [\"Liput\"] }, \"Food & Drink\": { \"v\": [\"Ruoka & juoma\"] }, \"Frequently used\": { \"v\": [\"Usein käytetyt\"] }, \"Light skin tone\": { \"v\": [\"Vaalea ihonväri\"] }, \"Medium dark skin tone\": { \"v\": [\"Keskitumma ihonväri\"] }, \"Medium light skin tone\": { \"v\": [\"Keskivaalea ihonväri\"] }, \"Medium skin tone\": { \"v\": [\"Keskimääräinen ihonväri\"] }, \"Neutral skin color\": { \"v\": [\"Neutraali ihonväri\"] }, \"Objects\": { \"v\": [\"Esineet & asiat\"] }, \"People & Body\": { \"v\": [\"Ihmiset & keho\"] }, \"Pick an emoji\": { \"v\": [\"Valitse emoji\"] }, \"Search emoji\": { \"v\": [\"Etsi emojia\"] }, \"Search results\": { \"v\": [\"Hakutulokset\"] }, \"Selected\": { \"v\": [\"Valittu\"] }, \"Skin tone\": { \"v\": [\"Ihonväri\"] }, \"Smileys & Emotion\": { \"v\": [\"Hymiöt & tunteet\"] }, \"Symbols\": { \"v\": [\"Symbolit\"] }, \"Travel & Places\": { \"v\": [\"Matkustus & kohteet\"] } } }, { \"l\": \"fr\", \"t\": { \"Activities\": { \"v\": [\"Activités\"] }, \"Animals & Nature\": { \"v\": [\"Animaux & Nature\"] }, \"Custom\": { \"v\": [\"Personnalisé\"] }, \"Dark skin tone\": { \"v\": [\"Teint de peau foncé\"] }, \"Emoji picker\": { \"v\": [\"Sélecteur d'émojis\"] }, \"Flags\": { \"v\": [\"Drapeaux\"] }, \"Food & Drink\": { \"v\": [\"Nourriture & Boissons\"] }, \"Frequently used\": { \"v\": [\"Utilisés fréquemment\"] }, \"Light skin tone\": { \"v\": [\"Teint de peau clair\"] }, \"Medium dark skin tone\": { \"v\": [\"Teint de peau moyennement foncé\"] }, \"Medium light skin tone\": { \"v\": [\"Teint de peau moyennement clair\"] }, \"Medium skin tone\": { \"v\": [\"Teint de peau moyen\"] }, \"Neutral skin color\": { \"v\": [\"Teint de peau neutre\"] }, \"Objects\": { \"v\": [\"Objets\"] }, \"People & Body\": { \"v\": [\"Personnes & Corps\"] }, \"Pick an emoji\": { \"v\": [\"Choisissez un émoji\"] }, \"Search emoji\": { \"v\": [\"Rechercher un emoji\"] }, \"Search results\": { \"v\": [\"Résultats de recherche\"] }, \"Selected\": { \"v\": [\"sélectionné\"] }, \"Skin tone\": { \"v\": [\"Teint de peau\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Émotions\"] }, \"Symbols\": { \"v\": [\"Symboles\"] }, \"Travel & Places\": { \"v\": [\"Voyage & Lieux\"] } } }, { \"l\": \"ga\", \"t\": { \"Activities\": { \"v\": [\"Gníomhaíochtaí\"] }, \"Animals & Nature\": { \"v\": [\"Ainmhithe & Dúlra\"] }, \"Custom\": { \"v\": [\"Saincheaptha\"] }, \"Dark skin tone\": { \"v\": [\"Ton craiceann dorcha\"] }, \"Emoji picker\": { \"v\": [\"Roghnóir Emoji\"] }, \"Flags\": { \"v\": [\"Bratacha\"] }, \"Food & Drink\": { \"v\": [\"Bia & Deoch\"] }, \"Frequently used\": { \"v\": [\"Úsáidtear go minic\"] }, \"Light skin tone\": { \"v\": [\"Ton craiceann éadrom\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton craiceann meánach dorcha\"] }, \"Medium light skin tone\": { \"v\": [\"Ton craiceann meánach éadrom\"] }, \"Medium skin tone\": { \"v\": [\"Ton craiceann meánach\"] }, \"Neutral skin color\": { \"v\": [\"Dath craiceann neodrach\"] }, \"Objects\": { \"v\": [\"Réada\"] }, \"People & Body\": { \"v\": [\"Daoine & Corp\"] }, \"Pick an emoji\": { \"v\": [\"Roghnaigh emoji\"] }, \"Search emoji\": { \"v\": [\"Cuardaigh emoji\"] }, \"Search results\": { \"v\": [\"Torthaí cuardaigh\"] }, \"Selected\": { \"v\": [\"Roghnaithe\"] }, \"Skin tone\": { \"v\": [\"Ton craicinn\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Mothúchán\"] }, \"Symbols\": { \"v\": [\"Siombailí\"] }, \"Travel & Places\": { \"v\": [\"Taisteal & Áiteanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Activities\": { \"v\": [\"Actividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Ton de pel escuro\"] }, \"Emoji picker\": { \"v\": [\"Selector de «emojis»\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e bebida\"] }, \"Frequently used\": { \"v\": [\"Usado con frecuencia\"] }, \"Light skin tone\": { \"v\": [\"Ton de pel claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Ton de pel medio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Ton de pel medio claro\"] }, \"Medium skin tone\": { \"v\": [\"Ton de pel medio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pel neutra\"] }, \"Objects\": { \"v\": [\"Obxectos\"] }, \"People & Body\": { \"v\": [\"Persoas e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolla un «emoji»\"] }, \"Search emoji\": { \"v\": [\"Buscar «emoji»\"] }, \"Search results\": { \"v\": [\"Resultados da busca\"] }, \"Selected\": { \"v\": [\"Seleccionado\"] }, \"Skin tone\": { \"v\": [\"Ton de pel\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e emocións\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viaxes e lugares\"] } } }, { \"l\": \"he\", \"t\": { \"Activities\": { \"v\": [\"פעילויות\"] }, \"Animals & Nature\": { \"v\": [\"חיות וטבע\"] }, \"Custom\": { \"v\": [\"בהתאמה אישית\"] }, \"Flags\": { \"v\": [\"דגלים\"] }, \"Food & Drink\": { \"v\": [\"מזון ומשקאות\"] }, \"Frequently used\": { \"v\": [\"בשימוש תדיר\"] }, \"Objects\": { \"v\": [\"חפצים\"] }, \"People & Body\": { \"v\": [\"אנשים וגוף\"] }, \"Pick an emoji\": { \"v\": [\"נא לבחור אמוג׳י\"] }, \"Search emoji\": { \"v\": [\"חיפוש אמוג׳י\"] }, \"Search results\": { \"v\": [\"תוצאות חיפוש\"] }, \"Smileys & Emotion\": { \"v\": [\"חייכנים ורגשונים\"] }, \"Symbols\": { \"v\": [\"סמלים\"] }, \"Travel & Places\": { \"v\": [\"טיולים ומקומות\"] } } }, { \"l\": \"hr\", \"t\": { \"Activities\": { \"v\": [\"Aktivnosti\"] }, \"Animals & Nature\": { \"v\": [\"Životinje i priroda\"] }, \"Custom\": { \"v\": [\"Prlagođeno\"] }, \"Dark skin tone\": { \"v\": [\"Tamna nijansa\"] }, \"Emoji picker\": { \"v\": [\"Odabir emojija\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana i piće\"] }, \"Frequently used\": { \"v\": [\"Često korišteno\"] }, \"Light skin tone\": { \"v\": [\"Svjetla nijansa\"] }, \"Medium dark skin tone\": { \"v\": [\"Srednje tamna nijansa\"] }, \"Medium light skin tone\": { \"v\": [\"Srednje svjetla nijansa\"] }, \"Medium skin tone\": { \"v\": [\"Srednja nijansa\"] }, \"Neutral skin color\": { \"v\": [\"Neutralna nijansa\"] }, \"Objects\": { \"v\": [\"Objekti\"] }, \"People & Body\": { \"v\": [\"Ljudi i tijelo\"] }, \"Pick an emoji\": { \"v\": [\"Odaberi emoji\"] }, \"Search emoji\": { \"v\": [\"Traži emoji\"] }, \"Search results\": { \"v\": [\"Rezultati pretraživanja\"] }, \"Selected\": { \"v\": [\"Odabrano\"] }, \"Skin tone\": { \"v\": [\"Nijansa\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlići i emocije\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Putovanja i mjesta\"] } } }, { \"l\": \"hu\", \"t\": { \"Activities\": { \"v\": [\"Tevékenységek\"] }, \"Animals & Nature\": { \"v\": [\"Állatok és természet\"] }, \"Custom\": { \"v\": [\"Egyéni\"] }, \"Dark skin tone\": { \"v\": [\"Sötét bőrtónus\"] }, \"Emoji picker\": { \"v\": [\"Emodzsiválasztó\"] }, \"Flags\": { \"v\": [\"Zászlók\"] }, \"Food & Drink\": { \"v\": [\"Étel és ital\"] }, \"Frequently used\": { \"v\": [\"Gyakran használt\"] }, \"Light skin tone\": { \"v\": [\"Világos bőrtónus\"] }, \"Medium dark skin tone\": { \"v\": [\"Közepesen sötét bőrtónus\"] }, \"Medium light skin tone\": { \"v\": [\"Közepesen világos bőrtónus\"] }, \"Medium skin tone\": { \"v\": [\"Közepes bőrtónus\"] }, \"Neutral skin color\": { \"v\": [\"Semleges bőrszín\"] }, \"Objects\": { \"v\": [\"Tárgyak\"] }, \"People & Body\": { \"v\": [\"Emberek és test\"] }, \"Pick an emoji\": { \"v\": [\"Válasszon egy emodzsit\"] }, \"Search emoji\": { \"v\": [\"Emodzsi keresése\"] }, \"Search results\": { \"v\": [\"Találatok\"] }, \"Selected\": { \"v\": [\"Kijelölve\"] }, \"Skin tone\": { \"v\": [\"Bőrtónus\"] }, \"Smileys & Emotion\": { \"v\": [\"Mosolyok és érzelmek\"] }, \"Symbols\": { \"v\": [\"Szimbólumok\"] }, \"Travel & Places\": { \"v\": [\"Utazás és helyek\"] } } }, { \"l\": \"id\", \"t\": { \"Activities\": { \"v\": [\"Aktivitas\"] }, \"Animals & Nature\": { \"v\": [\"Satwa dan Alam\"] }, \"Custom\": { \"v\": [\"Khusus\"] }, \"Dark skin tone\": { \"v\": [\"Warna kulit gelap\"] }, \"Emoji picker\": { \"v\": [\"Pemilih emoji\"] }, \"Flags\": { \"v\": [\"Tanda\"] }, \"Food & Drink\": { \"v\": [\"Makanan dan Minuman\"] }, \"Frequently used\": { \"v\": [\"Sering digunakan\"] }, \"Light skin tone\": { \"v\": [\"Warna kulit terang\"] }, \"Medium dark skin tone\": { \"v\": [\"Warna kulit sedang gelap\"] }, \"Medium light skin tone\": { \"v\": [\"Warna kulit sedang terang\"] }, \"Medium skin tone\": { \"v\": [\"Warna kulit sedang\"] }, \"Neutral skin color\": { \"v\": [\"Warna kulit netral\"] }, \"Objects\": { \"v\": [\"Objek\"] }, \"People & Body\": { \"v\": [\"Orang & Badan\"] }, \"Pick an emoji\": { \"v\": [\"Pilih emoji\"] }, \"Search emoji\": { \"v\": [\"Cari emoji\"] }, \"Search results\": { \"v\": [\"Hasil pencarian\"] }, \"Selected\": { \"v\": [\"Dipilih\"] }, \"Skin tone\": { \"v\": [\"Warna kulit\"] }, \"Smileys & Emotion\": { \"v\": [\"Senyuman & Perasaan\"] }, \"Symbols\": { \"v\": [\"Simbol\"] }, \"Travel & Places\": { \"v\": [\"Perjalanan & Tempat\"] } } }, { \"l\": \"is\", \"t\": { \"Activities\": { \"v\": [\"Aðgerðir\"] }, \"Animals & Nature\": { \"v\": [\"Dýr og náttúra\"] }, \"Custom\": { \"v\": [\"Sérsniðið\"] }, \"Dark skin tone\": { \"v\": [\"Dökkur húðlitur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-táknmyndaval\"] }, \"Flags\": { \"v\": [\"Flögg\"] }, \"Food & Drink\": { \"v\": [\"Matur og drykkur\"] }, \"Frequently used\": { \"v\": [\"Oftast notað\"] }, \"Light skin tone\": { \"v\": [\"Ljós húðlitur\"] }, \"Medium dark skin tone\": { \"v\": [\"Meðaldökkur húðlitur\"] }, \"Medium light skin tone\": { \"v\": [\"Meðalljós húðlitur\"] }, \"Medium skin tone\": { \"v\": [\"Meðaltónn húðar\"] }, \"Neutral skin color\": { \"v\": [\"Hlutlaus húðlitur\"] }, \"Objects\": { \"v\": [\"Hlutir\"] }, \"People & Body\": { \"v\": [\"Fólk og líkami\"] }, \"Pick an emoji\": { \"v\": [\"Veldu tjáningartákn\"] }, \"Search emoji\": { \"v\": [\"Leita að tjáningartákni\"] }, \"Search results\": { \"v\": [\"Leitarniðurstöður\"] }, \"Selected\": { \"v\": [\"Valið\"] }, \"Skin tone\": { \"v\": [\"Húðlitur\"] }, \"Smileys & Emotion\": { \"v\": [\"Broskallar og tilfinningar\"] }, \"Symbols\": { \"v\": [\"Tákn\"] }, \"Travel & Places\": { \"v\": [\"Staðir og ferðalög\"] } } }, { \"l\": \"it\", \"t\": { \"Activities\": { \"v\": [\"Attività\"] }, \"Animals & Nature\": { \"v\": [\"Animali e natura\"] }, \"Custom\": { \"v\": [\"Personalizzato\"] }, \"Flags\": { \"v\": [\"Bandiere\"] }, \"Food & Drink\": { \"v\": [\"Cibo e bevande\"] }, \"Frequently used\": { \"v\": [\"Usati di frequente\"] }, \"Objects\": { \"v\": [\"Oggetti\"] }, \"People & Body\": { \"v\": [\"Persone e corpo\"] }, \"Pick an emoji\": { \"v\": [\"Scegli un emoji\"] }, \"Search emoji\": { \"v\": [\"Ricerca emoji\"] }, \"Search results\": { \"v\": [\"Risultati di ricerca\"] }, \"Selected\": { \"v\": [\"Selezionato\"] }, \"Smileys & Emotion\": { \"v\": [\"Faccine ed emozioni\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Viaggi e luoghi\"] } } }, { \"l\": \"ja\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Activities\": { \"v\": [\"アクティビティ\"] }, \"Animals & Nature\": { \"v\": [\"動物と自然\"] }, \"Custom\": { \"v\": [\"カスタム\"] }, \"Dark skin tone\": { \"v\": [\"暗い肌のトーン\"] }, \"Emoji picker\": { \"v\": [\"絵文字ピッカー\"] }, \"Flags\": { \"v\": [\"国旗\"] }, \"Food & Drink\": { \"v\": [\"食べ物と飲み物\"] }, \"Frequently used\": { \"v\": [\"よく使うもの\"] }, \"Light skin tone\": { \"v\": [\"明るい肌のトーン\"] }, \"Medium dark skin tone\": { \"v\": [\"やや暗い肌のトーン\"] }, \"Medium light skin tone\": { \"v\": [\"やや明るい肌のトーン\"] }, \"Medium skin tone\": { \"v\": [\"中間の肌のトーン\"] }, \"Neutral skin color\": { \"v\": [\"ニュートラルな肌の色\"] }, \"Objects\": { \"v\": [\"物\"] }, \"People & Body\": { \"v\": [\"様々な人と体の部位\"] }, \"Pick an emoji\": { \"v\": [\"絵文字を選択\"] }, \"Search emoji\": { \"v\": [\"絵文字を検索\"] }, \"Search results\": { \"v\": [\"検索結果\"] }, \"Selected\": { \"v\": [\"選択済み\"] }, \"Skin tone\": { \"v\": [\"肌のトーン\"] }, \"Smileys & Emotion\": { \"v\": [\"感情表現\"] }, \"Symbols\": { \"v\": [\"記号\"] }, \"Travel & Places\": { \"v\": [\"旅行と場所\"] } } }, { \"l\": \"ko\", \"t\": { \"Activities\": { \"v\": [\"활동\"] }, \"Animals & Nature\": { \"v\": [\"동물 & 자연\"] }, \"Custom\": { \"v\": [\"맞춤 설정\"] }, \"Dark skin tone\": { \"v\": [\"어두운 피부 톤\"] }, \"Emoji picker\": { \"v\": [\"이모지 선택기\"] }, \"Flags\": { \"v\": [\"깃발\"] }, \"Food & Drink\": { \"v\": [\"음식 & 음료\"] }, \"Frequently used\": { \"v\": [\"자주 쓰임\"] }, \"Light skin tone\": { \"v\": [\"밝은 피부 톤\"] }, \"Medium dark skin tone\": { \"v\": [\"약간 어두운 피부 톤\"] }, \"Medium light skin tone\": { \"v\": [\"약간 밝은 피부 톤\"] }, \"Medium skin tone\": { \"v\": [\"중간 피부 톤\"] }, \"Neutral skin color\": { \"v\": [\"중성적 피부 톤\"] }, \"Objects\": { \"v\": [\"물체\"] }, \"People & Body\": { \"v\": [\"사람 & 신체\"] }, \"Pick an emoji\": { \"v\": [\"이모지 선택\"] }, \"Search emoji\": { \"v\": [\"이모지 검색\"] }, \"Search results\": { \"v\": [\"검색 결과\"] }, \"Selected\": { \"v\": [\"선택됨\"] }, \"Skin tone\": { \"v\": [\"피부 톤\"] }, \"Smileys & Emotion\": { \"v\": [\"스마일리 & 이모티콘\"] }, \"Symbols\": { \"v\": [\"기호\"] }, \"Travel & Places\": { \"v\": [\"여행 & 장소\"] } } }, { \"l\": \"lo\", \"t\": { \"Activities\": { \"v\": [\"ກິດຈະກຳ\"] }, \"Animals & Nature\": { \"v\": [\"ສັດ ແລະ ທຳມະຊາດ\"] }, \"Custom\": { \"v\": [\"ກຳນົດເອງ\"] }, \"Dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມ\"] }, \"Emoji picker\": { \"v\": [\"ໂຕເລືອກອີໂມຈິ\"] }, \"Flags\": { \"v\": [\"ທຸງ\"] }, \"Food & Drink\": { \"v\": [\"ອາຫານ ແລະ ເຄື່ອງດື່ມ\"] }, \"Frequently used\": { \"v\": [\"ໃຊ້ງານເລື້ອຍໆ\"] }, \"Light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນ\"] }, \"Medium dark skin tone\": { \"v\": [\"ໂຕນສີຜິວເຂັ້ມປານກາງ\"] }, \"Medium light skin tone\": { \"v\": [\"ໂຕນສີຜິວອ່ອນປານກາງ\"] }, \"Medium skin tone\": { \"v\": [\"ໂຕນສີຜິວປານກາງ\"] }, \"Neutral skin color\": { \"v\": [\"ສີຜິວເປັນກາງ\"] }, \"Objects\": { \"v\": [\"ວັດຖຸ\"] }, \"People & Body\": { \"v\": [\"ຄົນ ແລະ ຮ່າງກາຍ\"] }, \"Pick an emoji\": { \"v\": [\"ເລືອກອີໂມຈິ\"] }, \"Search emoji\": { \"v\": [\"ຄົ້ນຫາອີໂມຈິ\"] }, \"Search results\": { \"v\": [\"ຜົນການຄົ້ນຫາ\"] }, \"Selected\": { \"v\": [\"ເລືອກແລ້ວ\"] }, \"Skin tone\": { \"v\": [\"ໂຕນສີຜິວ\"] }, \"Smileys & Emotion\": { \"v\": [\"ໜ້າຍິ້ມ ແລະ ອາລົມ\"] }, \"Symbols\": { \"v\": [\"ສັນຍາລັກ\"] }, \"Travel & Places\": { \"v\": [\"ການເດີນທາງ ແລະ ສະຖານທີ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Activities\": { \"v\": [\"Veiklos\"] }, \"Animals & Nature\": { \"v\": [\"Gyvūnai ir gamta\"] }, \"Custom\": { \"v\": [\"Tinkinti\"] }, \"Dark skin tone\": { \"v\": [\"Tamsios odos atspalvis\"] }, \"Emoji picker\": { \"v\": [\"Emociukų parinkiklis\"] }, \"Flags\": { \"v\": [\"Vėliavos\"] }, \"Food & Drink\": { \"v\": [\"Maistas ir gėrimai\"] }, \"Frequently used\": { \"v\": [\"Dažniausiai naudoti\"] }, \"Light skin tone\": { \"v\": [\"Šviesus odos tonas\"] }, \"Medium dark skin tone\": { \"v\": [\"Vidutinio tamsumo odos tonas\"] }, \"Medium light skin tone\": { \"v\": [\"Vidutinio šviesumo odos tonas\"] }, \"Medium skin tone\": { \"v\": [\"Vidutinis odos tonas\"] }, \"Neutral skin color\": { \"v\": [\"Neutrali odos spalva\"] }, \"Objects\": { \"v\": [\"Objektai\"] }, \"People & Body\": { \"v\": [\"Žmonės ir kūnas\"] }, \"Pick an emoji\": { \"v\": [\"Pasirinkti emociuką\"] }, \"Search emoji\": { \"v\": [\"Ieškoti emociukų\"] }, \"Search results\": { \"v\": [\"Paieškos rezultatai\"] }, \"Selected\": { \"v\": [\"Pasirinkta\"] }, \"Skin tone\": { \"v\": [\"Odos tonas\"] }, \"Smileys & Emotion\": { \"v\": [\"Šypsenos ir emocijos\"] }, \"Symbols\": { \"v\": [\"Simboliai\"] }, \"Travel & Places\": { \"v\": [\"Kelionės ir vietos\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животни & Природа\"] }, \"Custom\": { \"v\": [\"Прилагодени\"] }, \"Dark skin tone\": { \"v\": [\"Темна боја на кожа\"] }, \"Emoji picker\": { \"v\": [\"Избор на emoji\"] }, \"Flags\": { \"v\": [\"Знамиња\"] }, \"Food & Drink\": { \"v\": [\"Храна & Пијалоци\"] }, \"Frequently used\": { \"v\": [\"Најчесто користени\"] }, \"Light skin tone\": { \"v\": [\"Светла кожа\"] }, \"Medium dark skin tone\": { \"v\": [\"Средно темна кожа\"] }, \"Medium light skin tone\": { \"v\": [\"Средно светла кожа\"] }, \"Medium skin tone\": { \"v\": [\"Средна кожа\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја на кожа\"] }, \"Objects\": { \"v\": [\"Објекти\"] }, \"People & Body\": { \"v\": [\"Луѓе & Тело\"] }, \"Pick an emoji\": { \"v\": [\"Избери емотикон\"] }, \"Search emoji\": { \"v\": [\"Барај emoji\"] }, \"Search results\": { \"v\": [\"Резултати од барувањето\"] }, \"Selected\": { \"v\": [\"Избрано\"] }, \"Skin tone\": { \"v\": [\"Боја на кожа\"] }, \"Smileys & Emotion\": { \"v\": [\"Смешковци & Емотикони\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Патувања & Места\"] } } }, { \"l\": \"mn\", \"t\": { \"Activities\": { \"v\": [\"Үйл ажиллагаа\"] }, \"Animals & Nature\": { \"v\": [\"Амьтан & Байгаль\"] }, \"Custom\": { \"v\": [\"Тусгай\"] }, \"Dark skin tone\": { \"v\": [\"Бараан арьсны өнгө\"] }, \"Emoji picker\": { \"v\": [\"Эможи сонгогч\"] }, \"Flags\": { \"v\": [\"Тугнууд\"] }, \"Food & Drink\": { \"v\": [\"Хоол & Ундаа\"] }, \"Frequently used\": { \"v\": [\"Байнга хэрэглэдэг\"] }, \"Light skin tone\": { \"v\": [\"Цайвар арьсны өнгө\"] }, \"Medium dark skin tone\": { \"v\": [\"Дунд бараан арьсны өнгө\"] }, \"Medium light skin tone\": { \"v\": [\"Дунд цайвар арьсны өнгө\"] }, \"Medium skin tone\": { \"v\": [\"Дунд арьсны өнгө\"] }, \"Neutral skin color\": { \"v\": [\"Саарал арьсны өнгө\"] }, \"Objects\": { \"v\": [\"Объектууд\"] }, \"People & Body\": { \"v\": [\"Хүмүүс & Бие\"] }, \"Pick an emoji\": { \"v\": [\"Эможи сонгох\"] }, \"Search emoji\": { \"v\": [\"Эможи хайх\"] }, \"Search results\": { \"v\": [\"Хайлтын үр дүн\"] }, \"Selected\": { \"v\": [\"Сонгосон\"] }, \"Skin tone\": { \"v\": [\"Арьсны өнгө\"] }, \"Smileys & Emotion\": { \"v\": [\"Инээмсэглэл & Сэтгэл хөдлөл\"] }, \"Symbols\": { \"v\": [\"Тэмдэгтүүд\"] }, \"Travel & Places\": { \"v\": [\"Аялал & Газрууд\"] } } }, { \"l\": \"my\", \"t\": { \"Activities\": { \"v\": [\"ပြုလုပ်ဆောင်တာများ\"] }, \"Animals & Nature\": { \"v\": [\"တိရစ္ဆာန်များနှင့် သဘာဝ\"] }, \"Custom\": { \"v\": [\"အလိုကျချိန်ညှိမှု\"] }, \"Flags\": { \"v\": [\"အလံများ\"] }, \"Food & Drink\": { \"v\": [\"အစားအသောက်\"] }, \"Frequently used\": { \"v\": [\"မကြာခဏအသုံးပြုသော\"] }, \"Objects\": { \"v\": [\"အရာဝတ္ထုများ\"] }, \"People & Body\": { \"v\": [\"လူပုဂ္ဂိုလ်များနှင့် ခန္ဓာကိုယ်\"] }, \"Pick an emoji\": { \"v\": [\"အီမိုဂျီရွေးရန်\"] }, \"Search results\": { \"v\": [\"ရှာဖွေမှု ရလဒ်များ\"] }, \"Smileys & Emotion\": { \"v\": [\"စမိုင်လီများနှင့် အီမိုရှင်း\"] }, \"Symbols\": { \"v\": [\"သင်္ကေတများ\"] }, \"Travel & Places\": { \"v\": [\"ခရီးသွားလာခြင်းနှင့် နေရာများ\"] } } }, { \"l\": \"nb\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Dyr og natur\"] }, \"Custom\": { \"v\": [\"Tilpasset\"] }, \"Dark skin tone\": { \"v\": [\"Mørk hudtone\"] }, \"Emoji picker\": { \"v\": [\"Emoji-velger\"] }, \"Flags\": { \"v\": [\"Flagg\"] }, \"Food & Drink\": { \"v\": [\"Mat og drikke\"] }, \"Frequently used\": { \"v\": [\"Ofte brukt\"] }, \"Light skin tone\": { \"v\": [\"Lys hudtone\"] }, \"Medium dark skin tone\": { \"v\": [\"Middels mørk hudtone\"] }, \"Medium light skin tone\": { \"v\": [\"Middels lys hudtone\"] }, \"Medium skin tone\": { \"v\": [\"Middels hudtone\"] }, \"Neutral skin color\": { \"v\": [\"Nøytral hudfarge\"] }, \"Objects\": { \"v\": [\"Objekter\"] }, \"People & Body\": { \"v\": [\"Mennesker og kropp\"] }, \"Pick an emoji\": { \"v\": [\"Velg en emoji\"] }, \"Search emoji\": { \"v\": [\"Søk emoji\"] }, \"Search results\": { \"v\": [\"Søkeresultater\"] }, \"Selected\": { \"v\": [\"Valgt\"] }, \"Skin tone\": { \"v\": [\"Hudtone\"] }, \"Smileys & Emotion\": { \"v\": [\"Smilefjes og følelser\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Reise og steder\"] } } }, { \"l\": \"nl\", \"t\": { \"Activities\": { \"v\": [\"Activiteiten\"] }, \"Animals & Nature\": { \"v\": [\"Dieren & Natuur\"] }, \"Custom\": { \"v\": [\"Aangepast\"] }, \"Dark skin tone\": { \"v\": [\"Donkere huidskleur\"] }, \"Emoji picker\": { \"v\": [\"Emoji-kiezer\"] }, \"Flags\": { \"v\": [\"Vlaggen\"] }, \"Food & Drink\": { \"v\": [\"Eten & Drinken\"] }, \"Frequently used\": { \"v\": [\"Vaak gebruikt\"] }, \"Light skin tone\": { \"v\": [\"Lichte huidskleur\"] }, \"Medium dark skin tone\": { \"v\": [\"Gemiddeld donkere huidskleur\"] }, \"Medium light skin tone\": { \"v\": [\"Gemiddeld lichte huidskleur\"] }, \"Medium skin tone\": { \"v\": [\"Gemiddelde huidskleur\"] }, \"Neutral skin color\": { \"v\": [\"Neutrale huidskleur\"] }, \"Objects\": { \"v\": [\"Objecten\"] }, \"People & Body\": { \"v\": [\"Mensen & Lichaam\"] }, \"Pick an emoji\": { \"v\": [\"Kies een emoji\"] }, \"Search emoji\": { \"v\": [\"Emoji zoeken\"] }, \"Search results\": { \"v\": [\"Zoekresultaten\"] }, \"Selected\": { \"v\": [\"Geselecteerd\"] }, \"Skin tone\": { \"v\": [\"Huidskleur\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emotie\"] }, \"Symbols\": { \"v\": [\"Symbolen\"] }, \"Travel & Places\": { \"v\": [\"Reizen & Plaatsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Activities\": { \"v\": [\"Aktywność\"] }, \"Animals & Nature\": { \"v\": [\"Zwierzęta i natura\"] }, \"Custom\": { \"v\": [\"Zwyczajne\"] }, \"Dark skin tone\": { \"v\": [\"Ciemna tonacja\"] }, \"Emoji picker\": { \"v\": [\"Wybierz Emoji\"] }, \"Flags\": { \"v\": [\"Flagi\"] }, \"Food & Drink\": { \"v\": [\"Jedzenie i picie\"] }, \"Frequently used\": { \"v\": [\"Często używane\"] }, \"Light skin tone\": { \"v\": [\"Jasny odcień skóry\"] }, \"Medium dark skin tone\": { \"v\": [\"Średnio ciemny odcień skóry\"] }, \"Medium light skin tone\": { \"v\": [\"Średnio jasny odcień skóry\"] }, \"Medium skin tone\": { \"v\": [\"Średni odcień skóry\"] }, \"Neutral skin color\": { \"v\": [\"Neutralny kolor skróry\"] }, \"Objects\": { \"v\": [\"Obiekty\"] }, \"People & Body\": { \"v\": [\"Ludzie i ciało\"] }, \"Pick an emoji\": { \"v\": [\"Wybierz emoji\"] }, \"Search emoji\": { \"v\": [\"Szukaj emoji\"] }, \"Search results\": { \"v\": [\"Wyniki wyszukiwania\"] }, \"Selected\": { \"v\": [\"Wybrane\"] }, \"Skin tone\": { \"v\": [\"Kolor skóry\"] }, \"Smileys & Emotion\": { \"v\": [\"Buźki i emotikony\"] }, \"Symbols\": { \"v\": [\"Symbole\"] }, \"Travel & Places\": { \"v\": [\"Podróże i miejsca\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais & Natureza\"] }, \"Custom\": { \"v\": [\"Personalizados\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"Seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida & Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais usados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele meio escuro\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele meio claro\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Tom de pele neutro\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas & Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagem & Lugares\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Activities\": { \"v\": [\"Atividades\"] }, \"Animals & Nature\": { \"v\": [\"Animais e Natureza\"] }, \"Custom\": { \"v\": [\"Personalizado\"] }, \"Dark skin tone\": { \"v\": [\"Tom de pele escuro\"] }, \"Emoji picker\": { \"v\": [\"seletor de emoji\"] }, \"Flags\": { \"v\": [\"Bandeiras\"] }, \"Food & Drink\": { \"v\": [\"Comida e Bebida\"] }, \"Frequently used\": { \"v\": [\"Mais utilizados\"] }, \"Light skin tone\": { \"v\": [\"Tom de pele claro\"] }, \"Medium dark skin tone\": { \"v\": [\"Tom de pele escuro médio\"] }, \"Medium light skin tone\": { \"v\": [\"Tom de pele claro médio\"] }, \"Medium skin tone\": { \"v\": [\"Tom de pele médio\"] }, \"Neutral skin color\": { \"v\": [\"Cor de pele neutra\"] }, \"Objects\": { \"v\": [\"Objetos\"] }, \"People & Body\": { \"v\": [\"Pessoas e Corpo\"] }, \"Pick an emoji\": { \"v\": [\"Escolha um emoji\"] }, \"Search emoji\": { \"v\": [\"Pesquisar emoji\"] }, \"Search results\": { \"v\": [\"Resultados da pesquisa\"] }, \"Selected\": { \"v\": [\"Selecionado\"] }, \"Skin tone\": { \"v\": [\"Tom de pele\"] }, \"Smileys & Emotion\": { \"v\": [\"Sorrisos e Emoções\"] }, \"Symbols\": { \"v\": [\"Símbolos\"] }, \"Travel & Places\": { \"v\": [\"Viagens e Lugares\"] } } }, { \"l\": \"ro\", \"t\": { \"Activities\": { \"v\": [\"Activități\"] }, \"Animals & Nature\": { \"v\": [\"Animale și natură\"] }, \"Custom\": { \"v\": [\"Personalizat\"] }, \"Flags\": { \"v\": [\"Marcaje\"] }, \"Food & Drink\": { \"v\": [\"Alimente și băuturi\"] }, \"Frequently used\": { \"v\": [\"Utilizate frecvent\"] }, \"Objects\": { \"v\": [\"Obiecte\"] }, \"People & Body\": { \"v\": [\"Oameni și corp\"] }, \"Pick an emoji\": { \"v\": [\"Alege un emoji\"] }, \"Search emoji\": { \"v\": [\"Căutare emoji\"] }, \"Search results\": { \"v\": [\"Rezultatele căutării\"] }, \"Selected\": { \"v\": [\"Selectat\"] }, \"Smileys & Emotion\": { \"v\": [\"Zâmbete și emoții\"] }, \"Symbols\": { \"v\": [\"Simboluri\"] }, \"Travel & Places\": { \"v\": [\"Călătorii și locuri\"] } } }, { \"l\": \"ru\", \"t\": { \"Activities\": { \"v\": [\"События\"] }, \"Animals & Nature\": { \"v\": [\"Животные и природа \"] }, \"Custom\": { \"v\": [\"Пользовательское\"] }, \"Dark skin tone\": { \"v\": [\"Темный оттенок\"] }, \"Emoji picker\": { \"v\": [\"Подборщик эмодзи\"] }, \"Flags\": { \"v\": [\"Флаги\"] }, \"Food & Drink\": { \"v\": [\"Еда, напиток\"] }, \"Frequently used\": { \"v\": [\"Часто используемый\"] }, \"Light skin tone\": { \"v\": [\"Светлый оттенок\"] }, \"Medium dark skin tone\": { \"v\": [\"Средний темный оттенок\"] }, \"Medium light skin tone\": { \"v\": [\"Средний светлый оттенок\"] }, \"Medium skin tone\": { \"v\": [\"Средний оттенок\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральный оттенок\"] }, \"Objects\": { \"v\": [\"Объекты\"] }, \"People & Body\": { \"v\": [\"Люди и тело\"] }, \"Pick an emoji\": { \"v\": [\"Выберите эмодзи\"] }, \"Search emoji\": { \"v\": [\"Поиск эмодзи\"] }, \"Search results\": { \"v\": [\"Результаты поиска\"] }, \"Selected\": { \"v\": [\"Выбрано\"] }, \"Skin tone\": { \"v\": [\"Оттенок скина\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайлики и эмоции\"] }, \"Symbols\": { \"v\": [\"Символы\"] }, \"Travel & Places\": { \"v\": [\"Путешествия и места\"] } } }, { \"l\": \"sk\", \"t\": { \"Activities\": { \"v\": [\"Aktivity\"] }, \"Animals & Nature\": { \"v\": [\"Zvieratá a príroda\"] }, \"Custom\": { \"v\": [\"Vlastné\"] }, \"Dark skin tone\": { \"v\": [\"Tmavý vzhľad\"] }, \"Emoji picker\": { \"v\": [\"Výber emodži\"] }, \"Flags\": { \"v\": [\"Vlajky\"] }, \"Food & Drink\": { \"v\": [\"Jedlo a nápoje\"] }, \"Frequently used\": { \"v\": [\"Často používané\"] }, \"Light skin tone\": { \"v\": [\"Svetlý vzhľad\"] }, \"Medium dark skin tone\": { \"v\": [\"Stredne tmavý vzhľad\"] }, \"Medium light skin tone\": { \"v\": [\"Stredne svetlý vzhľad\"] }, \"Medium skin tone\": { \"v\": [\"Stredný vzhľad\"] }, \"Neutral skin color\": { \"v\": [\"Neutrálny vzhľad\"] }, \"Objects\": { \"v\": [\"Objekty\"] }, \"People & Body\": { \"v\": [\"Ľudia a telo\"] }, \"Pick an emoji\": { \"v\": [\"Vybrať emodži\"] }, \"Search emoji\": { \"v\": [\"Vyhľadať emoji\"] }, \"Search results\": { \"v\": [\"Výsledky vyhľadávania\"] }, \"Selected\": { \"v\": [\"Vybraný\"] }, \"Skin tone\": { \"v\": [\"Vzhľad\"] }, \"Smileys & Emotion\": { \"v\": [\"Smajlíky a emócie\"] }, \"Symbols\": { \"v\": [\"Symboly\"] }, \"Travel & Places\": { \"v\": [\"Cestovanie a miesta\"] } } }, { \"l\": \"sl\", \"t\": { \"Activities\": { \"v\": [\"Dejavnosti\"] }, \"Animals & Nature\": { \"v\": [\"Živali in Narava\"] }, \"Custom\": { \"v\": [\"Po meri\"] }, \"Flags\": { \"v\": [\"Zastavice\"] }, \"Food & Drink\": { \"v\": [\"Hrana in Pijača\"] }, \"Frequently used\": { \"v\": [\"Pogostost uporabe\"] }, \"Objects\": { \"v\": [\"Predmeti\"] }, \"People & Body\": { \"v\": [\"Ljudje in Telo\"] }, \"Pick an emoji\": { \"v\": [\"Izbor izrazne ikone\"] }, \"Search results\": { \"v\": [\"Zadetki iskanja\"] }, \"Smileys & Emotion\": { \"v\": [\"Izrazne ikone\"] }, \"Symbols\": { \"v\": [\"Simboli\"] }, \"Travel & Places\": { \"v\": [\"Potovanja in Kraji\"] } } }, { \"l\": \"sr\", \"t\": { \"Activities\": { \"v\": [\"Активности\"] }, \"Animals & Nature\": { \"v\": [\"Животиње и природа\"] }, \"Custom\": { \"v\": [\"Произвољно\"] }, \"Dark skin tone\": { \"v\": [\"Тамни тен коже\"] }, \"Emoji picker\": { \"v\": [\"Бирач емођија\"] }, \"Flags\": { \"v\": [\"Заставе\"] }, \"Food & Drink\": { \"v\": [\"Храна и пиће\"] }, \"Frequently used\": { \"v\": [\"Често коришћено\"] }, \"Light skin tone\": { \"v\": [\"Светли тен коже\"] }, \"Medium dark skin tone\": { \"v\": [\"Средње тамни тен коже\"] }, \"Medium light skin tone\": { \"v\": [\"Средње светли тен коже\"] }, \"Medium skin tone\": { \"v\": [\"Средњи тен коже\"] }, \"Neutral skin color\": { \"v\": [\"Неутрална боја коже\"] }, \"Objects\": { \"v\": [\"Предмети\"] }, \"People & Body\": { \"v\": [\"Људи и тело\"] }, \"Pick an emoji\": { \"v\": [\"Изаберите емођи\"] }, \"Search emoji\": { \"v\": [\"Претражи емођи\"] }, \"Search results\": { \"v\": [\"Резултати претраге\"] }, \"Selected\": { \"v\": [\"Изабрано\"] }, \"Skin tone\": { \"v\": [\"Тен коже\"] }, \"Smileys & Emotion\": { \"v\": [\"Смајлији и емоције\"] }, \"Symbols\": { \"v\": [\"Симболи\"] }, \"Travel & Places\": { \"v\": [\"Путовање и места\"] } } }, { \"l\": \"sv\", \"t\": { \"Activities\": { \"v\": [\"Aktiviteter\"] }, \"Animals & Nature\": { \"v\": [\"Djur & Natur\"] }, \"Custom\": { \"v\": [\"Anpassad\"] }, \"Dark skin tone\": { \"v\": [\"Mörk hudton\"] }, \"Emoji picker\": { \"v\": [\"Emoji-väljare\"] }, \"Flags\": { \"v\": [\"Flaggor\"] }, \"Food & Drink\": { \"v\": [\"Mat & Dryck\"] }, \"Frequently used\": { \"v\": [\"Används ofta\"] }, \"Light skin tone\": { \"v\": [\"Ljus hudton\"] }, \"Medium dark skin tone\": { \"v\": [\"Medium mörk hudton\"] }, \"Medium light skin tone\": { \"v\": [\"Medium ljus hudton\"] }, \"Medium skin tone\": { \"v\": [\"Medium hudton\"] }, \"Neutral skin color\": { \"v\": [\"Neutral hudfärg\"] }, \"Objects\": { \"v\": [\"Objekt\"] }, \"People & Body\": { \"v\": [\"Kropp & Själ\"] }, \"Pick an emoji\": { \"v\": [\"Välj en emoji\"] }, \"Search emoji\": { \"v\": [\"Sök emoji\"] }, \"Search results\": { \"v\": [\"Sökresultat\"] }, \"Selected\": { \"v\": [\"Vald\"] }, \"Skin tone\": { \"v\": [\"Hudton\"] }, \"Smileys & Emotion\": { \"v\": [\"Smileys & Känslor\"] }, \"Symbols\": { \"v\": [\"Symboler\"] }, \"Travel & Places\": { \"v\": [\"Resor & Sevärdigheter\"] } } }, { \"l\": \"tr\", \"t\": { \"Activities\": { \"v\": [\"Etkinlikler\"] }, \"Animals & Nature\": { \"v\": [\"Hayvanlar ve doğa\"] }, \"Custom\": { \"v\": [\"Özel\"] }, \"Dark skin tone\": { \"v\": [\"Koyu deri rengi\"] }, \"Emoji picker\": { \"v\": [\"Emoji seçici\"] }, \"Flags\": { \"v\": [\"Bayraklar\"] }, \"Food & Drink\": { \"v\": [\"Yeme ve içme\"] }, \"Frequently used\": { \"v\": [\"Sık kullanılanlar\"] }, \"Light skin tone\": { \"v\": [\"Açık deri rengi\"] }, \"Medium dark skin tone\": { \"v\": [\"Orta koyu deri rengi\"] }, \"Medium light skin tone\": { \"v\": [\"Orta açık deri rengi\"] }, \"Medium skin tone\": { \"v\": [\"Orta deri rengi\"] }, \"Neutral skin color\": { \"v\": [\"Nötr deri rengi\"] }, \"Objects\": { \"v\": [\"Nesneler\"] }, \"People & Body\": { \"v\": [\"İnsanlar ve beden\"] }, \"Pick an emoji\": { \"v\": [\"Bir emoji seçin\"] }, \"Search emoji\": { \"v\": [\"Emoji ara\"] }, \"Search results\": { \"v\": [\"Arama sonuçları\"] }, \"Selected\": { \"v\": [\"Seçilmiş\"] }, \"Skin tone\": { \"v\": [\"Deri rengi\"] }, \"Smileys & Emotion\": { \"v\": [\"İfadeler ve duygular\"] }, \"Symbols\": { \"v\": [\"Simgeler\"] }, \"Travel & Places\": { \"v\": [\"Gezi ve yerler\"] } } }, { \"l\": \"uk\", \"t\": { \"Activities\": { \"v\": [\"Діяльність\"] }, \"Animals & Nature\": { \"v\": [\"Тварини та природа\"] }, \"Custom\": { \"v\": [\"Власне\"] }, \"Dark skin tone\": { \"v\": [\"Смаглявий\"] }, \"Emoji picker\": { \"v\": [\"Вибір емоційки\"] }, \"Flags\": { \"v\": [\"Прапори\"] }, \"Food & Drink\": { \"v\": [\"Їжа та напої\"] }, \"Frequently used\": { \"v\": [\"Найчастіші\"] }, \"Light skin tone\": { \"v\": [\"Світла шкіра\"] }, \"Medium dark skin tone\": { \"v\": [\"Какао\"] }, \"Medium light skin tone\": { \"v\": [\"Лате\"] }, \"Medium skin tone\": { \"v\": [\"Середній колір шкіри\"] }, \"Neutral skin color\": { \"v\": [\"Нейтральний колір шкіри\"] }, \"Objects\": { \"v\": [\"Об'єкти\"] }, \"People & Body\": { \"v\": [\"Люди та жести\"] }, \"Pick an emoji\": { \"v\": [\"Виберіть емоційку\"] }, \"Search emoji\": { \"v\": [\"Шукати емоційки\"] }, \"Search results\": { \"v\": [\"Результати пошуку\"] }, \"Selected\": { \"v\": [\"Вибрано\"] }, \"Skin tone\": { \"v\": [\"Колір шкіри\"] }, \"Smileys & Emotion\": { \"v\": [\"Смайли та емоції\"] }, \"Symbols\": { \"v\": [\"Символи\"] }, \"Travel & Places\": { \"v\": [\"Поїздки та місця\"] } } }, { \"l\": \"uz\", \"t\": { \"Activities\": { \"v\": [\"Faolliklar\"] }, \"Animals & Nature\": { \"v\": [\"Hayvonlar va Tabiat\"] }, \"Custom\": { \"v\": [\"Moslashtirilgan\"] }, \"Dark skin tone\": { \"v\": [\"Qora rangdagi qoplama\"] }, \"Emoji picker\": { \"v\": [\"Emoji tanlagich\"] }, \"Flags\": { \"v\": [\"Bayroqlar\"] }, \"Food & Drink\": { \"v\": [\"Oziq-ovqat va ichimliklar\"] }, \"Frequently used\": { \"v\": [\"Tez-tez ishlatiladi\"] }, \"Light skin tone\": { \"v\": [\"Yorug` rangdagi qoplama\"] }, \"Medium dark skin tone\": { \"v\": [\"O`rtacha qorong`u rangdagi qoplama\"] }, \"Medium light skin tone\": { \"v\": [\"O`rtacha yorug`lik rangdagi qoplama\"] }, \"Medium skin tone\": { \"v\": [\"O`rtacha rangdagi qoplama\"] }, \"Neutral skin color\": { \"v\": [\"Neytral rang\"] }, \"Objects\": { \"v\": [\"Obyekt\"] }, \"People & Body\": { \"v\": [\"Odamlar va Tana\"] }, \"Pick an emoji\": { \"v\": [\"Emojini tanlang\"] }, \"Search emoji\": { \"v\": [\"Emoji qidirish\"] }, \"Search results\": { \"v\": [\"Qidiruv natijalari\"] }, \"Selected\": { \"v\": [\"Tanlangan\"] }, \"Skin tone\": { \"v\": [\"Odatiy rangdagi qoplama\"] }, \"Smileys & Emotion\": { \"v\": [\"Smayllar va Hissiyotlar\"] }, \"Symbols\": { \"v\": [\"Belgilar\"] }, \"Travel & Places\": { \"v\": [\"Sayohat va Joylar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Activities\": { \"v\": [\"活动\"] }, \"Animals & Nature\": { \"v\": [\"动物 & 自然\"] }, \"Custom\": { \"v\": [\"自定义\"] }, \"Dark skin tone\": { \"v\": [\"深色皮肤\"] }, \"Emoji picker\": { \"v\": [\"表情拾取器\"] }, \"Flags\": { \"v\": [\"旗帜\"] }, \"Food & Drink\": { \"v\": [\"食物 & 饮品\"] }, \"Frequently used\": { \"v\": [\"经常使用\"] }, \"Light skin tone\": { \"v\": [\"浅色皮肤\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深色皮肤\"] }, \"Medium light skin tone\": { \"v\": [\"中等浅色皮肤\"] }, \"Medium skin tone\": { \"v\": [\"中等皮肤\"] }, \"Neutral skin color\": { \"v\": [\"中性皮肤颜色\"] }, \"Objects\": { \"v\": [\"物体\"] }, \"People & Body\": { \"v\": [\"人 & 身体\"] }, \"Pick an emoji\": { \"v\": [\"选择一个表情\"] }, \"Search emoji\": { \"v\": [\"搜索表情\"] }, \"Search results\": { \"v\": [\"搜索结果\"] }, \"Selected\": { \"v\": [\"选择\"] }, \"Skin tone\": { \"v\": [\"皮肤\"] }, \"Smileys & Emotion\": { \"v\": [\"笑脸 & 情感\"] }, \"Symbols\": { \"v\": [\"符号\"] }, \"Travel & Places\": { \"v\": [\"旅游 & 地点\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號選擇器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"經常使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性色膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Activities\": { \"v\": [\"活動\"] }, \"Animals & Nature\": { \"v\": [\"動物與自然\"] }, \"Custom\": { \"v\": [\"自定義\"] }, \"Dark skin tone\": { \"v\": [\"深膚色\"] }, \"Emoji picker\": { \"v\": [\"表情符號挑選器\"] }, \"Flags\": { \"v\": [\"旗幟\"] }, \"Food & Drink\": { \"v\": [\"食物與飲料\"] }, \"Frequently used\": { \"v\": [\"最近使用\"] }, \"Light skin tone\": { \"v\": [\"淺膚色\"] }, \"Medium dark skin tone\": { \"v\": [\"中等深膚色\"] }, \"Medium light skin tone\": { \"v\": [\"中等淺膚色\"] }, \"Medium skin tone\": { \"v\": [\"中等膚色\"] }, \"Neutral skin color\": { \"v\": [\"中性膚色\"] }, \"Objects\": { \"v\": [\"物件\"] }, \"People & Body\": { \"v\": [\"人物\"] }, \"Pick an emoji\": { \"v\": [\"選擇表情符號\"] }, \"Search emoji\": { \"v\": [\"搜尋表情符號\"] }, \"Search results\": { \"v\": [\"搜尋結果\"] }, \"Selected\": { \"v\": [\"已選取\"] }, \"Skin tone\": { \"v\": [\"膚色\"] }, \"Smileys & Emotion\": { \"v\": [\"表情\"] }, \"Symbols\": { \"v\": [\"標誌\"] }, \"Travel & Places\": { \"v\": [\"旅遊與景點\"] } } }];\nconst t6 = [{ \"l\": \"ar\", \"t\": { \"Add to a project\": { \"v\": [\"أضف إلى مشروع\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ربط عناصر بمشروع لتسهيل العثور عليها\"] }, \"Failed to add the item to the project\": { \"v\": [\"تعذر ربط عنصر بمشروع\"] }, \"Failed to create a project\": { \"v\": [\"تعذر إنشاء مشروع\"] }, \"Failed to rename the project\": { \"v\": [\"تعذّر تغيير اسم المشروع\"] }, \"Type to search for existing projects\": { \"v\": [\"أكتُب للبحث في المشاريع الموجودة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Add to a project\": { \"v\": [\"Přidat do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Připojte položky k projektu, čímž budou snáze dohledatelné\"] }, \"Failed to add the item to the project\": { \"v\": [\"Položku se nepodařilo přidat do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Projekt se nepodařilo vytvořit\"] }, \"Failed to rename the project\": { \"v\": [\"Projekt se nepodařilo přejmenovat\"] }, \"Type to search for existing projects\": { \"v\": [\"Psaním vyhledávejte existující projekty\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Add to a project\": { \"v\": [\"Tilføj til et projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Forbind elementer til et projekt for at gøre dem nemmere at finde\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kunne ikke føje elementet til projektet\"] }, \"Failed to create a project\": { \"v\": [\"Kunne ikke oprette et projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Projektet kunne ikke omdøbes\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for at søge efter eksisterende projekter\"] } } }, { \"l\": \"de\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinde Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Add to a project\": { \"v\": [\"Einem Projekt hinzufügen\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Verbinden Sie Elemente mit einem Projekt, um sie leichter zu finden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Das Element konnte nicht zum Projekt hinzugefügt werden\"] }, \"Failed to create a project\": { \"v\": [\"Projekt konnte nicht erstellt werden\"] }, \"Failed to rename the project\": { \"v\": [\"Das Projekt konnte nicht umbenannt werden\"] }, \"Type to search for existing projects\": { \"v\": [\"Tippen, um nach vorhandenen Projekten zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Add to a project\": { \"v\": [\"Προσθήκη σε ένα έργο\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Συνδέστε αντικείμενα σε ένα έργο για να τα βρίσκετε πιο εύκολα\"] }, \"Failed to add the item to the project\": { \"v\": [\"Αποτυχία προσθήκης του αντικειμένου στο έργο\"] }, \"Failed to create a project\": { \"v\": [\"Αποτυχία δημιουργίας έργου\"] }, \"Failed to rename the project\": { \"v\": [\"Αποτυχία μετονομασίας του έργου\"] }, \"Type to search for existing projects\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση υπαρχόντων έργων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Add to a project\": { \"v\": [\"Add to a project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connect items to a project to make them easier to find\"] }, \"Failed to add the item to the project\": { \"v\": [\"Failed to add the item to the project\"] }, \"Failed to create a project\": { \"v\": [\"Failed to create a project\"] }, \"Failed to rename the project\": { \"v\": [\"Failed to rename the project\"] }, \"Type to search for existing projects\": { \"v\": [\"Type to search for existing projects\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte items a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear un proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Add to a project\": { \"v\": [\"Agregar a un proyecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conecte elementos a un proyecto para hacerlos más fáciles de encontrar\"] }, \"Failed to add the item to the project\": { \"v\": [\"No se pudo agregar el elemento al proyecto\"] }, \"Failed to create a project\": { \"v\": [\"No se pudo crear el proyecto\"] }, \"Failed to rename the project\": { \"v\": [\"No se pudo renombrar el proyecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proyectos existentes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Add to a project\": { \"v\": [\"Lisa projekti\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Selleks, et objekte oleks lihtsam leida, seo nad projektiga\"] }, \"Failed to add the item to the project\": { \"v\": [\"Objekti lisamine projekti ei õnnestunud\"] }, \"Failed to create a project\": { \"v\": [\"Projekti loomine ei õnnestunud\"] }, \"Failed to rename the project\": { \"v\": [\"Projekti nime muutmine ei õnnestunud\"] }, \"Type to search for existing projects\": { \"v\": [\"Olemasolevate projektide otsimiseks kirjuta\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Add to a project\": { \"v\": [\"افزودن به پروژه\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"برای پیدا کردن راحت‌تر، مواردی را به پروژه متصل کنید\"] }, \"Failed to add the item to the project\": { \"v\": [\"موارد به پروژه اضافه نشد\"] }, \"Failed to create a project\": { \"v\": [\"ایجاد پروژه نامؤفق بود\"] }, \"Failed to rename the project\": { \"v\": [\"تغییر نام پروژه انجام نشد\"] }, \"Type to search for existing projects\": { \"v\": [\"برای جستجوی پروژه‌های موجود تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Add to a project\": { \"v\": [\"Lisää projektiin\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Yhdistä kohteet projektiin, jotta ne olisivat helpompia löytää\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kohteiden lisääminen projektiin epäonnistui\"] }, \"Failed to create a project\": { \"v\": [\"Projektin luominen epäonnistui\"] }, \"Failed to rename the project\": { \"v\": [\"Projektin nimeäminen epäonnistui\"] }, \"Type to search for existing projects\": { \"v\": [\"Kirjoita etsiäksesi olemassaolevia projekteja\"] } } }, { \"l\": \"fr\", \"t\": { \"Add to a project\": { \"v\": [\"Ajouter à un projet\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Connectez des éléments à un projet pour les retrouver plus facilement\"] }, \"Failed to add the item to the project\": { \"v\": [\"Impossible d'ajouter l'élément au projet\"] }, \"Failed to create a project\": { \"v\": [\"Impossible de créer un projet\"] }, \"Failed to rename the project\": { \"v\": [\"Impossible de renommer le projet\"] }, \"Type to search for existing projects\": { \"v\": [\"Tapez pour rechercher des projets existants\"] } } }, { \"l\": \"ga\", \"t\": { \"Add to a project\": { \"v\": [\"Cuir le tionscadal\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ceangail míreanna le tionscadal chun iad a dhéanamh níos éasca iad a aimsiú\"] }, \"Failed to add the item to the project\": { \"v\": [\"Theip ar an mír a chur leis an tionscadal\"] }, \"Failed to create a project\": { \"v\": [\"Theip ar thionscadal a chruthú\"] }, \"Failed to rename the project\": { \"v\": [\"Theip ar an tionscadal a athainmniú\"] }, \"Type to search for existing projects\": { \"v\": [\"Clóscríobh chun tionscadail atá ann cheana a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Add to a project\": { \"v\": [\"Engadir a un proxecto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar elementos a un proxecto para facelos máis doados de atopar\"] }, \"Failed to add the item to the project\": { \"v\": [\"Produciuse un fallo ao engadir o elemento ao proxecto\"] }, \"Failed to create a project\": { \"v\": [\"Produciuse un fallo ao crear un proxecto\"] }, \"Failed to rename the project\": { \"v\": [\"Produciuse un fallo ao cambiarlle o nome ao proxecto\"] }, \"Type to search for existing projects\": { \"v\": [\"Escriba para buscar proxectos existentes\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj u projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Povežite stavke s projektom kako biste ih lakše pronašli\"] }, \"Failed to add the item to the project\": { \"v\": [\"Neuspjelo dodavanje stavke u projekt\"] }, \"Failed to create a project\": { \"v\": [\"Neuspjelo stvaranje projekta\"] }, \"Failed to rename the project\": { \"v\": [\"Neuspjelo preimenovanje projekta\"] }, \"Type to search for existing projects\": { \"v\": [\"Upišite za pretraživanje postojećih projekata\"] } } }, { \"l\": \"hu\", \"t\": { \"Add to a project\": { \"v\": [\"Hozzáadás egy projekthez\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Kapcsoljon elemeket egy projekthez, hogy könnyebben megtalálhatók legyenek\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nem sikerült az elem projekthez adása\"] }, \"Failed to create a project\": { \"v\": [\"Nem sikerült a projekt létrehozása\"] }, \"Failed to rename the project\": { \"v\": [\"Nem sikerült a projekt átnevezése\"] }, \"Type to search for existing projects\": { \"v\": [\"Gépeljen a meglévő projektek kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Add to a project\": { \"v\": [\"Tambahkan ke proyek\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Hubungkan item ke proyek agar lebih mudah ditemukan\"] }, \"Failed to add the item to the project\": { \"v\": [\"Gagal menambahkan item ke proyek\"] }, \"Failed to create a project\": { \"v\": [\"Gagal membuat proyek\"] }, \"Failed to rename the project\": { \"v\": [\"Gagal mengganti nama proyek\"] }, \"Type to search for existing projects\": { \"v\": [\"Ketik untuk mencari proyek yang sudah ada\"] } } }, { \"l\": \"is\", \"t\": { \"Add to a project\": { \"v\": [\"Bæta við verkefni\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Tengdu atriði við verkefni til að gera einfaldara að finna þau\"] }, \"Failed to add the item to the project\": { \"v\": [\"Mistókst að bæta atriðinu í verkefnið\"] }, \"Failed to create a project\": { \"v\": [\"Mistókst að útbúa verkefni\"] }, \"Failed to rename the project\": { \"v\": [\"Mistókst að endurnefna verkefnið\"] }, \"Type to search for existing projects\": { \"v\": [\"Skrifaðu hér til að leita að fyrirliggjandi verkefnum\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Add to a project\": { \"v\": [\"プロジェクトに追加する\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"項目をプロジェクトに接続して検索しやすくする\"] }, \"Failed to add the item to the project\": { \"v\": [\"プロジェクトへのアイテムの追加に失敗しました\"] }, \"Failed to create a project\": { \"v\": [\"プロジェクトの作成に失敗しました\"] }, \"Failed to rename the project\": { \"v\": [\"プロジェクトの名前変更に失敗しました\"] }, \"Type to search for existing projects\": { \"v\": [\"既存のプロジェクトを検索するために入力します\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Add to a project\": { \"v\": [\"프로젝트에 추가\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"항목을 더 쉽게 찾을 수 있도록 프로젝트에 연결하세요.\"] }, \"Failed to add the item to the project\": { \"v\": [\"항목을 프로젝트에 추가하는 데 실패함\"] }, \"Failed to create a project\": { \"v\": [\"프로젝트를 만드는 데 실패함\"] }, \"Failed to rename the project\": { \"v\": [\"프로젝트의 이름을 바꾸는 데 실패함\"] }, \"Type to search for existing projects\": { \"v\": [\"입력하여 프로젝트를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Add to a project\": { \"v\": [\"ເພີ່ມໃສ່ໂຄງການ\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"ເຊື່ອມຕໍ່ລາຍການຕ່າງໆໃສ່ໂຄງການ ເພື່ອເຮັດໃຫ້ຊອກຫາງ່າຍຂຶ້ນ\"] }, \"Failed to add the item to the project\": { \"v\": [\"ບໍ່ສາມາດເພີ່ມລາຍການໃສ່ໂຄງການໄດ້\"] }, \"Failed to create a project\": { \"v\": [\"ບໍ່ສາມາດສ້າງໂຄງການໄດ້\"] }, \"Failed to rename the project\": { \"v\": [\"ບໍ່ສາມາດປ່ຽນຊື່ໂຄງການໄດ້\"] }, \"Type to search for existing projects\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາໂຄງການທີ່ມີຢູ່\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Add to a project\": { \"v\": [\"Pridėti prie projekto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Priskirkite elementus prie projekto, kad juos būtų lengviau rasti\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepavyko pridėti elemento prie projekto\"] }, \"Failed to create a project\": { \"v\": [\"Nepavyko sukurti projekto\"] }, \"Failed to rename the project\": { \"v\": [\"Nepavyko pervadinti projekto\"] }, \"Type to search for existing projects\": { \"v\": [\"Įveskite tekstą, kad surastumėte esamus projektus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Add to a project\": { \"v\": [\"Додај во проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Поврзете ги елементите со проект за да биде полесно да се најдат\"] }, \"Failed to add the item to the project\": { \"v\": [\"Неуспешно додавање на елементот во проектот\"] }, \"Failed to create a project\": { \"v\": [\"Неуспешно креирање на проект\"] }, \"Failed to rename the project\": { \"v\": [\"Неуспешно преименување на проектот\"] }, \"Type to search for existing projects\": { \"v\": [\"Пишувај за пребарување постоечки проекти\"] } } }, { \"l\": \"mn\", \"t\": { \"Add to a project\": { \"v\": [\"Төсөлд нэмэх\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Хялбар олохын тулд зүйлсийг төсөлтэй холбоно уу\"] }, \"Failed to add the item to the project\": { \"v\": [\"Зүйлийг төсөлд нэмж чадсангүй\"] }, \"Failed to create a project\": { \"v\": [\"Төсөл үүсгэж чадсангүй\"] }, \"Failed to rename the project\": { \"v\": [\"Төслийн нэрийг солиж чадсангүй\"] }, \"Type to search for existing projects\": { \"v\": [\"Одоо байгаа төслүүдийг хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Add to a project\": { \"v\": [\"Legge til i et prosjekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Koble elementer til et prosjekt for å gjøre det enklere å finne dem\"] }, \"Failed to add the item to the project\": { \"v\": [\"Kan ikke legge til elementet i prosjektet\"] }, \"Failed to create a project\": { \"v\": [\"Kan ikke opprette et prosjekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunne ikke gi prosjektet nytt navn\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv for å søke for eksisterende prosjekter\"] } } }, { \"l\": \"nl\", \"t\": { \"Add to a project\": { \"v\": [\"Toevoegen aan een project\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Items aan een project koppelen om ze eenvoudiger te vinden\"] }, \"Failed to add the item to the project\": { \"v\": [\"Toevoegen van item aan project mislukt\"] }, \"Failed to create a project\": { \"v\": [\"Project aanmaken mislukt\"] }, \"Failed to rename the project\": { \"v\": [\"Project hernoemen mislukt\"] }, \"Type to search for existing projects\": { \"v\": [\"Typ om te zoeken naar bestaande projecten\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Add to a project\": { \"v\": [\"Dodaj do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Połącz elementy z projektem, aby ułatwić ich znalezienie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nie udało się dodać elementu do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nie udało się utworzyć projektu\"] }, \"Failed to rename the project\": { \"v\": [\"Nie udało się zmienić nazwy projektu\"] }, \"Type to search for existing projects\": { \"v\": [\"Wpisz, aby wyszukać istniejące projekty\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Conectar itens a um projeto para encontrá-los mais facilmente\"] }, \"Failed to add the item to the project\": { \"v\": [\"Falha ao adicionar itens ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Falha ao criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Falha ao renomear o projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para pesquisar projetos existentes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Add to a project\": { \"v\": [\"Adicionar a um projeto\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ligar itens a um projeto para serem mais facilmente encontrados\"] }, \"Failed to add the item to the project\": { \"v\": [\"Não foi possível adicionar item ao projeto\"] }, \"Failed to create a project\": { \"v\": [\"Não foi possível criar um projeto\"] }, \"Failed to rename the project\": { \"v\": [\"Não foi possível alterar o nome do projeto\"] }, \"Type to search for existing projects\": { \"v\": [\"Digite para procurar projetos existentes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Add to a project\": { \"v\": [\"Добавить в проект\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Подключайте элементы к проекту, чтобы их было легче найти\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не удалось добавить элемент в проект\"] }, \"Failed to create a project\": { \"v\": [\"Не удалось создать проект\"] }, \"Failed to rename the project\": { \"v\": [\"Не удалось переименовать проект\"] }, \"Type to search for existing projects\": { \"v\": [\"Введите для поиска существующих проектов\"] } } }, { \"l\": \"sk\", \"t\": { \"Add to a project\": { \"v\": [\"Pridať do projektu\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Pridať položky do projektu pre jednoduchšie vyhľadávanie\"] }, \"Failed to add the item to the project\": { \"v\": [\"Nepodarilo sa pridať položku do projektu\"] }, \"Failed to create a project\": { \"v\": [\"Nepodarilo sa vytvoriť projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Nepodarilo sa premenovať projekt\"] }, \"Type to search for existing projects\": { \"v\": [\"Začnite písať pre vyhľadávanie v existujúcich projektoch\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Add to a project\": { \"v\": [\"Додај у пројекат\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Повезује ставке у пројекат како би се лакше пронашле\"] }, \"Failed to add the item to the project\": { \"v\": [\"Није успело додавање ставке у пројекат\"] }, \"Failed to create a project\": { \"v\": [\"Није успело креирање пројекта\"] }, \"Failed to rename the project\": { \"v\": [\"Није успела промена имена пројекта\"] }, \"Type to search for existing projects\": { \"v\": [\"Куцајте да претражите постојеће пројекте\"] } } }, { \"l\": \"sv\", \"t\": { \"Add to a project\": { \"v\": [\"Lägg till i ett projekt\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Anslut objekt till ett projekt för att göra dem lättare att hitta\"] }, \"Failed to add the item to the project\": { \"v\": [\"Det gick inte att lägga till objektet i projektet\"] }, \"Failed to create a project\": { \"v\": [\"Det gick inte att skapa ett projekt\"] }, \"Failed to rename the project\": { \"v\": [\"Kunde inte byta namn på projektet\"] }, \"Type to search for existing projects\": { \"v\": [\"Skriv för att söka efter befintliga projekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Add to a project\": { \"v\": [\"Bir projeye ekle\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Ögeleri daha kolay bulmak için bir proje ile ilişkilendirin\"] }, \"Failed to add the item to the project\": { \"v\": [\"Öge projeye eklenemedi\"] }, \"Failed to create a project\": { \"v\": [\"Bir proje oluşturulamadı\"] }, \"Failed to rename the project\": { \"v\": [\"Proje yeniden adlandırılamadı\"] }, \"Type to search for existing projects\": { \"v\": [\"Var olan projeleri aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Add to a project\": { \"v\": [\"Додати до проєкту\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Приєднайте ресурси до проєкту для швидшого пошуку\"] }, \"Failed to add the item to the project\": { \"v\": [\"Не вдалося приєднати ресурс до проєкту\"] }, \"Failed to create a project\": { \"v\": [\"Не вдалося створити проєкт\"] }, \"Failed to rename the project\": { \"v\": [\"Не вдалося перейменувати проєкт\"] }, \"Type to search for existing projects\": { \"v\": [\"Почніть вводити, щоб знайти проєкт\"] } } }, { \"l\": \"uz\", \"t\": { \"Add to a project\": { \"v\": [\"Loyihaga qo'shish\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"Elementlarni topishni osonlashtirish uchun ularni loyihaga ulang\"] }, \"Failed to add the item to the project\": { \"v\": [\"Ob'ektni loyihaga qo'shib bo'lmadi\"] }, \"Failed to create a project\": { \"v\": [\"Loyiha yaratib bo‘lmadi\"] }, \"Failed to rename the project\": { \"v\": [\"Loyiha nomini o‘zgartirib bo‘lmadi\"] }, \"Type to search for existing projects\": { \"v\": [\"Mavjud loyihalarni qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Add to a project\": { \"v\": [\"添加至一个项目\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"将条目连接至一个项目以易于查找\"] }, \"Failed to add the item to the project\": { \"v\": [\"添加条目至项目失败\"] }, \"Failed to create a project\": { \"v\": [\"创建项目失败\"] }, \"Failed to rename the project\": { \"v\": [\"重命名项目失败\"] }, \"Type to search for existing projects\": { \"v\": [\"输入以搜索现存项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Add to a project\": { \"v\": [\"添加到方案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連接到方案中,以便更容易找到。\"] }, \"Failed to add the item to the project\": { \"v\": [\"無法將項目添加到方案中\"] }, \"Failed to create a project\": { \"v\": [\"無法創建方案\"] }, \"Failed to rename the project\": { \"v\": [\"無法重命名方案\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜索現有方案\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Add to a project\": { \"v\": [\"新增至專案中\"] }, \"Connect items to a project to make them easier to find\": { \"v\": [\"將項目連結至專案中以方便尋找\"] }, \"Failed to add the item to the project\": { \"v\": [\"新增項目至專案失敗\"] }, \"Failed to create a project\": { \"v\": [\"建立專案失敗\"] }, \"Failed to rename the project\": { \"v\": [\"重新命名專案失敗\"] }, \"Type to search for existing projects\": { \"v\": [\"輸入以搜尋既有專案\"] } } }];\nconst t7 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Mezerník\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Slet\"] }, \"Enter\": { \"v\": [\"Indtast\"] }, \"Escape\": { \"v\": [\"Afbrud\"] }, \"Shift\": { \"v\": [\"Skift\"] }, \"Space\": { \"v\": [\"Mellemrum\"] }, \"Tab\": { \"v\": [\"Faneblad\"] } } }, { \"l\": \"de\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Strg\"] }, \"Delete\": { \"v\": [\"Entf\"] }, \"Enter\": { \"v\": [\"Eingabe\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Umschalt\"] }, \"Space\": { \"v\": [\"Leertaste\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"el\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Kustutusklahv\"] }, \"Enter\": { \"v\": [\"Sisestusklahv\"] }, \"Escape\": { \"v\": [\"Esc-klahv\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Tühikuklahv\"] }, \"Tab\": { \"v\": [\"Tabulaator\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Suppr\"] }, \"Enter\": { \"v\": [\"Entrée\"] }, \"Escape\": { \"v\": [\"Echap\"] }, \"Shift\": { \"v\": [\"Maj\"] }, \"Space\": { \"v\": [\"Espace\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ga\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Scrios\"] }, \"Enter\": { \"v\": [\"Iontráil\"] }, \"Escape\": { \"v\": [\"Éalú\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spás\"] }, \"Tab\": { \"v\": [\"Táb\"] } } }, { \"l\": \"gl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Eliminar\"] }, \"Enter\": { \"v\": [\"Intro\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Maiús.\"] }, \"Space\": { \"v\": [\"Espazo\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Obriši\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"hu\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Törlés\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Szóköz\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"id\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Hapus\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Spasi\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lo\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"ລຶບ\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Ištrinti\"] }, \"Enter\": { \"v\": [\"Įvesti\"] }, \"Escape\": { \"v\": [\"Išeiti\"] }, \"Shift\": { \"v\": ['\"Shift\"'] }, \"Space\": { \"v\": ['\"Space\"'] }, \"Tab\": { \"v\": ['\"Tab\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Избриши\"] }, \"Enter\": { \"v\": [\"Ентер\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Празно место\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"mn\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Устгах\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Excluir\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Barra de espaço\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Пробел\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Обриши\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"sv\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"tr\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"O'chirish\"] }, \"Enter\": { \"v\": [\"Kirish\"] }, \"Escape\": { \"v\": [\"Orqaga\"] }, \"Shift\": { \"v\": [\"Yuqorigi\"] }, \"Space\": { \"v\": [\"Bo'shliq\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Escape\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"Space\"] }, \"Tab\": { \"v\": [\"Tab\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Alt\": { \"v\": [\"Alt\"] }, \"Ctrl\": { \"v\": [\"Ctrl\"] }, \"Delete\": { \"v\": [\"Delete\"] }, \"Enter\": { \"v\": [\"Enter\"] }, \"Escape\": { \"v\": [\"Esc\"] }, \"Shift\": { \"v\": [\"Shift\"] }, \"Space\": { \"v\": [\"空白鍵\"] }, \"Tab\": { \"v\": [\"Tab鍵\"] } } }];\nconst t8 = [{ \"l\": \"ar\", \"t\": { \"Any link\": { \"v\": [\"أيَّ رابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Any link\": { \"v\": [\"Cualesquier enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Any link\": { \"v\": [\"Jakýkoli odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Any link\": { \"v\": [\"Ethvert link\"] } } }, { \"l\": \"de\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Any link\": { \"v\": [\"Irgendein Link\"] } } }, { \"l\": \"el\", \"t\": { \"Any link\": { \"v\": [\"Οποιοσδήποτε σύνδεσμος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Any link\": { \"v\": [\"Any link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Any link\": { \"v\": [\"Cualquier enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Any link\": { \"v\": [\"Mistahes link\"] } } }, { \"l\": \"eu\", \"t\": { \"Any link\": { \"v\": [\"Edozein esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Any link\": { \"v\": [\"هر پیوندی\"] } } }, { \"l\": \"fi\", \"t\": { \"Any link\": { \"v\": [\"Mikä tahansa linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Any link\": { \"v\": [\"N'importe quel lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Any link\": { \"v\": [\"Aon nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Any link\": { \"v\": [\"Calquera ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Any link\": { \"v\": [\"קישור כלשהו\"] } } }, { \"l\": \"hr\", \"t\": { \"Any link\": { \"v\": [\"Bilo koja poveznica\"] } } }, { \"l\": \"hu\", \"t\": { \"Any link\": { \"v\": [\"Bármely hivatkozás\"] } } }, { \"l\": \"id\", \"t\": { \"Any link\": { \"v\": [\"Semua tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Any link\": { \"v\": [\"Einhver tengill\"] } } }, { \"l\": \"it\", \"t\": { \"Any link\": { \"v\": [\"Qualsiasi link\"] } } }, { \"l\": \"ja\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Any link\": { \"v\": [\"任意のリンク\"] } } }, { \"l\": \"ko\", \"t\": { \"Any link\": { \"v\": [\"아무 링크\"] } } }, { \"l\": \"lo\", \"t\": { \"Any link\": { \"v\": [\"ລິງໃດກໍໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Any link\": { \"v\": [\"Bet kuri nuoroda\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Any link\": { \"v\": [\"Секој линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Any link\": { \"v\": [\"Аливаа холбоос\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Any link\": { \"v\": [\"Enhver lenke\"] } } }, { \"l\": \"nl\", \"t\": { \"Any link\": { \"v\": [\"Elke link\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Any link\": { \"v\": [\"Dowolny link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Any link\": { \"v\": [\"Qualquer link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Any link\": { \"v\": [\"Qualquer hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Any link\": { \"v\": [\"Orice link\"] } } }, { \"l\": \"ru\", \"t\": { \"Any link\": { \"v\": [\"Любая ссылка\"] } } }, { \"l\": \"sk\", \"t\": { \"Any link\": { \"v\": [\"Akýkoľvek odkaz\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Any link\": { \"v\": [\"Било који линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Any link\": { \"v\": [\"Vilken länk som helst\"] } } }, { \"l\": \"tr\", \"t\": { \"Any link\": { \"v\": [\"Herhangi bir bağlantı\"] } } }, { \"l\": \"uk\", \"t\": { \"Any link\": { \"v\": [\"Будь-яке посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Any link\": { \"v\": [\"Har qanday havola\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Any link\": { \"v\": [\"任何链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Any link\": { \"v\": [\"任何連結\"] } } }];\nconst t9 = [{ \"l\": \"ar\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"أيّ مادة تمت مشاركتها مع نفس المجموعة من الأشخاص سيتم عرضها هنا\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطأ في الحصول على الموارد ذات الصلة. يرجى الاتصال بمشرف النظام عندك إذا كان لديك أيّ أسئلة.\"] }, \"Related resources\": { \"v\": [\"مصادر ذات صلة\"] } } }, { \"l\": \"ast\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Equí va apaecer tolo que compartas col mesmu grupu de persones\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hebo un error al consiguir los recursos rellacionaos. Ponte en contautu col alministrador del sistema si tienes dalguna entruga.\"] }, \"Related resources\": { \"v\": [\"Recursos rellacionao\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualsevol cosa compartida amb el mateix grup de persones es mostrarà aquí\"] }, \"Related resources\": { \"v\": [\"Recursos relacionats\"] } } }, { \"l\": \"cs\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cokoli nasdíleného stejné skupině lidí se zobrazí zde\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba při získávání souvisejících prostředků. Pokud máte jakékoli dotazy, obraťte se na správce vámi využívaného systému.\"] }, \"Related resources\": { \"v\": [\"Související prostředky\"] } } }, { \"l\": \"da\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt der deles med samme gruppe af personer vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fejl ved hentning af relaterede ressourcer. Kontakt venligst din systemadministrator, hvis du har spørgsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterede emner\"] } } }, { \"l\": \"de\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wende dich bitte an deinen Systemadministrator.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles, das mit derselben Gruppe von Personen geteilt wird, wird hier angezeigt\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fehler beim Abrufen verwandter Ressourcen. Bei Fragen wenden Sie sich bitte an Ihre Systemadministration.\"] }, \"Related resources\": { \"v\": [\"Verwandte Ressourcen\"] } } }, { \"l\": \"el\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Οτιδήποτε μοιράζεται με την ίδια ομάδα ατόμων θα εμφανίζεται εδώ\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Σφάλμα λήψης σχετικών πόρων. Παρακαλούμε επικοινωνήστε με τον διαχειριστή του συστήματός σας εάν έχετε οποιεσδήποτε ερωτήσεις.\"] }, \"Related resources\": { \"v\": [\"Σχετικοί πόροι\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Anything shared with the same group of people will show up here\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error getting related resources. Please contact your system administrator if you have any questions.\"] }, \"Related resources\": { \"v\": [\"Related resources\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa que esté compartida con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacte a su administrador del sistema si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Cualquier cosa compartida con el mismo grupo de personas aparecerá aquí.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor, contacta a tu administrador del sistema si tienes alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo lo que se comparta con el mismo grupo de personas se mostrará aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Error al obtener recursos relacionados. Por favor contacte al administrador si tiene alguna pregunta.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Siin kuvatakse kõik, mida jagatakse sama kasutajagrupiga\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Viga seotud ressursside saamisel. Küsimuste korral võtke ühendust oma süsteemi haldajaga.\"] }, \"Related resources\": { \"v\": [\"Seotud ressursid\"] } } }, { \"l\": \"eu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Pertsona-talde berarekin partekatutako edozer agertuko da hemen\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore bat gertatu da erlazionatutako baliabideak eskuratzean. Jarri harremanetan zure sistemaren administratzailearekin galderarik baduzu.\"] }, \"Related resources\": { \"v\": [\"Erlazionatutako baliabideak\"] } } }, { \"l\": \"fa\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"هر چیزی که با گروه مشابهی هم‌رسانی شود در این قسمت نمایش می‌یابد\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"خطا در دریافت منابع مرتبط. لطفاً در صورت داشتن هر گونه سؤال با مدیر سیستم خود تماس بگیرید.\"] }, \"Related resources\": { \"v\": [\"منابع مرتبط\"] } } }, { \"l\": \"fi\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Kaikki saman ryhmän kesken jaettu näkyy tässä\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Virhe resurssien haussa. Ota yhteyttä järjestelmän ylläpitäjään, mikäli sinulla on kysyttävää.\"] }, \"Related resources\": { \"v\": [\"Liittyvät resurssit\"] } } }, { \"l\": \"fr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tout ce qui est partagé avec le même groupe de personnes apparaîtra ici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erreur lors de la récupération des ressources liées. Contactez votre administrateur système pour répondre à vos éventuelles questions.\"] }, \"Related resources\": { \"v\": [\"Ressources liées\"] } } }, { \"l\": \"ga\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Taispeánfar aon rud a roinntear leis an ngrúpa céanna daoine anseo\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Earráid agus acmhainní gaolmhara á bhfáil. Déan teagmháil le riarthóir do chórais má tá aon cheist agat.\"] }, \"Related resources\": { \"v\": [\"Acmhainní gaolmhara\"] } } }, { \"l\": \"gl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Todo o que se comparta co mesmo grupo de persoas aparecerá aquí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Produciuse un erro ao obter os recursos relacionados. Póñase en contacto coa administración do seu sistema se ten algunha dúbida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"he\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"כל מה שמשותף עם אותה קבוצת האנשים יופיע כאן\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"שגיאה בקבלת המשאבים הקשורים. נא ליצור קשר עם הנהלת המערכת אם יש לך שאלות.\"] }, \"Related resources\": { \"v\": [\"משאבים קשורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Sve što je podijeljeno s istom grupom ljudi prikazat će se ovdje\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Pogreška pri dohvaćanju povezanih resursa. Ako imate pitanja, obratite se svom administratoru sustava.\"] }, \"Related resources\": { \"v\": [\"Povezani resursi\"] } } }, { \"l\": \"hu\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Minden, amit ugyanazzal a csoporttal oszt meg, itt fog megjelenni\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Hiba a kapcsolódó erőforrások lekérése során. Ha kérdése van, vegye fel a kapcsolatot a rendszergazdával.\"] }, \"Related resources\": { \"v\": [\"Kapcsolódó erőforrások\"] } } }, { \"l\": \"id\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Apa pun yang dibagikan dengan grup orang yang sama akan muncul di sini\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kesalahan saat mengambil sumber daya terkait. Hubungi administrator sistem Anda jika ada pertanyaan.\"] }, \"Related resources\": { \"v\": [\"Sumber daya terkait\"] } } }, { \"l\": \"is\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Allt sem deilt er með sama hópi fólks mun birtast hér\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Villa við að sækja tengd tilföng. Hafðu samband við kerfisstjórann þinn ef þú ert með einhverjar spurningar.\"] }, \"Related resources\": { \"v\": [\"Tengd tilföng\"] } } }, { \"l\": \"it\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutto ciò che è stato condiviso con lo stesso gruppo di persone viene visualizzato qui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Errore nell'ottenere le risorse correlate. Per qualsiasi domanda, contattare l'amministratore di sistema.\"] }, \"Related resources\": { \"v\": [\"Risorse correlate\"] } } }, { \"l\": \"ja\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"同じグループで共有しているものは、全てここに表示されます\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"関連リソースの取得エラー。ご不明な点がございましたら、システム管理者にお問い合わせください。\"] }, \"Related resources\": { \"v\": [\"関連リソース\"] } } }, { \"l\": \"ko\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"같은 그룹의 사용자와 공유된 모든 것들이 이곳에 나타납니다.\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"관련 리소스를 가져오는 중 오류가 발생했습니다. 궁금한 것이 있는 경우 시스템 관리자에게 연락해 주세요.\"] }, \"Related resources\": { \"v\": [\"관련 리소스\"] } } }, { \"l\": \"lo\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"ທຸກຢ່າງທີ່ແບ່ງປັນກັບກຸ່ມຄົນດຽວກັນຈະສະແດງຢູ່ບ່ອນນີ້\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"ເກີດຂໍ້ຜິດພາດໃນການເອີ້ນຂໍ້ມູນຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ ຖ້າທ່ານມີຄຳຖາມ.\"] }, \"Related resources\": { \"v\": [\"ຊັບພະຍາກອນທີ່ກ່ຽວຂ້ອງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Čia bus rodomi visi įrašai, kuriais pasidalinta su ta pačia žmonių grupe\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Kilo klaida gaunant susijusius išteklius. Jei turite klausimų, kreipkitės į sistemos administratorių.\"] }, \"Related resources\": { \"v\": [\"Susiję ištekliai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Сè што е споделено со истата група луѓе ќе се појави овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка при добивање поврзани ресурси. Ве молиме контактирајте го вашиот систем администратор ако имате прашања.\"] }, \"Related resources\": { \"v\": [\"Поврзани ресурси\"] } } }, { \"l\": \"mn\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Ижил бүлэг хүмүүстэй хуваалцсан бүх зүйл энд харагдана\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Холбогдох нөөцүүдийг авахад алдаа гарлаа. Асуулт байвал системийн администратортай холбогдоно уу.\"] }, \"Related resources\": { \"v\": [\"Холбогдох нөөцүүд\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alt som er delt med den samme gruppen vil vises her\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Feil ved henting av relaterte ressurser. Kontakt systemansvarlig hvis du har spørsmål.\"] }, \"Related resources\": { \"v\": [\"Relaterte ressurser\"] } } }, { \"l\": \"nl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Alles dat gedeeld is met dezelfde groep mensen zal hier getoond worden\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Fout bij het ophalen van gerelateerde bronnen. Neem contact op met uw systeembeheerder als u vragen heeft.\"] }, \"Related resources\": { \"v\": [\"Gerelateerde bronnen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tutaj pojawi się wszystko, co zostało udostępnione tej samej grupie osób\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Błąd podczas pobierania powiązanych zasobów. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem systemu.\"] }, \"Related resources\": { \"v\": [\"Powiązane zasoby\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa compartilhada com o mesmo grupo de pessoas aparecerá aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter recursos relacionados. Por favor, entre em contato com o administrador do sistema se tiver alguma dúvida.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Qualquer coisa partilhada com o mesmo grupo de pessoas irá aparecer aqui\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Erro ao obter os recursos relacionados. Por favor, contacte o administrador do sistema se tiver quaisquer perguntas.\"] }, \"Related resources\": { \"v\": [\"Recursos relacionados\"] } } }, { \"l\": \"ro\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tot ceea ce este partajat cu același grup de persoane va fi afișat aici\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Eroare la preluarea resurselor adiționale. Vă rugăm să contactați administratorul pentru întrebări.\"] }, \"Related resources\": { \"v\": [\"Resurse legate\"] } } }, { \"l\": \"ru\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Всё, чем поделились с той же группой людей, будет отображаться здесь\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Ошибка при получении связанных ресурсов. Если у вас есть какие-либо вопросы, обратитесь к системному администратору.\"] }, \"Related resources\": { \"v\": [\"Связанные ресурсы\"] } } }, { \"l\": \"sk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Tu sa zobrazí čokoľvek zdieľané s rovnakou skupinou ľudí\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Chyba pri získavaní súvisiacich zdrojov. V prípade otázok kontaktujte prosím svojho systemového administrátora.\"] }, \"Related resources\": { \"v\": [\"Súvisiace zdroje\"] } } }, { \"l\": \"sl\", \"t\": { \"Related resources\": { \"v\": [\"Povezani viri\"] } } }, { \"l\": \"sr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Све што се дели са истом групом људи ће се појавити овде\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Грешка код прибављања везаних ресурса. Молимо вас да се обратите администратору ако имате питања.\"] }, \"Related resources\": { \"v\": [\"Повезани ресурси\"] } } }, { \"l\": \"sv\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Något som delats med samma grupp av personer kommer att visas här\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Det gick inte att hämta relaterade resurser. Kontakta din systemadministratör om du har några frågor.\"] }, \"Related resources\": { \"v\": [\"Relaterade resurser\"] } } }, { \"l\": \"tr\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Aynı kişi grubu ile paylaşılan herşey burada görüntülenir\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"İlgili kaynaklara ulaşılırken sorun çıktı. Herhangi bir sorunuz varsa lütfen sistem yöneticiniz ile görüşün \"] }, \"Related resources\": { \"v\": [\"İlgili kaynaklar\"] } } }, { \"l\": \"uk\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Будь-що доступне для цієї же групи людей буде показано тут\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Помилка під час отримання пов'язаних ресурсів. Будь ласка, сконтактуйте з системним адміністратором, якщо у вас виникли запитання.\"] }, \"Related resources\": { \"v\": [\"Пов'язані ресурси\"] } } }, { \"l\": \"uz\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"Xuddi shu guruhdagi odamlarga ulashilgan hamma narsa shu yerda chiqadi\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"Tegishli manbalarni olishda xatolik yuz berdi. Savollaringiz bo'lsa, tizim administratoriga murojaat qiling.\"] }, \"Related resources\": { \"v\": [\"Tegishli manbalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"与同组用户分享的所有内容都会显示于此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"获取相关资源出现错误。如果你有任何问题,请联系系统管理员。\"] }, \"Related resources\": { \"v\": [\"相关资源\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與同一組人共享的任何內容都會顯示在此處\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Anything shared with the same group of people will show up here\": { \"v\": [\"與相同群組分享的所有內容都會顯示於此\"] }, \"Error getting related resources. Please contact your system administrator if you have any questions.\": { \"v\": [\"取得相關資源時發生錯誤。如果有任何問題,請聯絡系統管理員。\"] }, \"Related resources\": { \"v\": [\"相關資源\"] } } }];\nconst t10 = [{ \"l\": \"ar\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName} \"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"صورة الملف الشخصي الرمزية لــ {displayName}، {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de: {displayName}, {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"cs\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Zástupný obrázek uživatele {displayName}, {status}\"] } } }, { \"l\": \"da\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar af {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar af {displayName}, {status}\"] } } }, { \"l\": \"de\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar von {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar von {displayName}, {status}\"] } } }, { \"l\": \"el\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Άβαταρ του {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Άβαταρ του {displayName}, {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar of {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar of {displayName}, {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Tunnuspilt: {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Tunnuspilt: {displayName}, {status}\"] } } }, { \"l\": \"eu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-(e)n irudia\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} -(e)n irudia, {status}\"] } } }, { \"l\": \"fa\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"آواتار {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"آواتار {displayName} ، {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}n avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}n avatar, {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"he\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"תמונה ייצוגית של {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"תמונה ייצוגית של {displayName}, {status}\"] } } }, { \"l\": \"hr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar od {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar od {displayName}, {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} profilképe\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} profilképe, {status}\"] } } }, { \"l\": \"id\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"is\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Auðkennismynd fyrir {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Auðkennismynd fyrir {displayName}, {status}\"] } } }, { \"l\": \"it\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar di {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar di {displayName}, {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} のアバター\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} のアバター\"] } } }, { \"l\": \"ko\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}님의 아바타\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status}님의 아바타\"] } } }, { \"l\": \"lo\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"ຮູບແທນຕົວຂອງ {displayName}, {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avataras\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} avataras, {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар на {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар на {displayName}, {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}-ийн аватар\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}-ийн аватар, {status}\"] } } }, { \"l\": \"my\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} ၏ ကိုယ်ပွား\"] } } }, { \"l\": \"nb\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avataren til {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}'s avatar, {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar van {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar van {displayName}, {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Awatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Awatar {displayName}, {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar de {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar de {displayName}, {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatarul lui {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatarul lui {displayName}, {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Фотография {displayName}, {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Avatar {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar {displayName}, {status}\"] } } }, { \"l\": \"sl\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Podoba {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Prikazna slika {displayName}, {status}\"] } } }, { \"l\": \"sr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар за {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Avatar za {displayName}, {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}s avatar\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}s avatar, {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} avatarı\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} avatarı\"] } } }, { \"l\": \"uk\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"Аватар {displayName}\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"Аватар {displayName}, {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\" {displayName}Avatari\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} Avatari\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName}的头像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}的头像,{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的頭像\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName} 的頭像,{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Avatar of {displayName}\": { \"v\": [\"{displayName} 的大頭照\"] }, \"Avatar of {displayName}, {status}\": { \"v\": [\"{displayName}, {status} 的大頭照\"] } } }];\nconst t11 = [{ \"l\": \"ar\", \"t\": { \"away\": { \"v\": [\"غير موجود\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"يُرجى عدم الإزعاج\"] }, \"invisible\": { \"v\": [\"غير مرئي\"] }, \"offline\": { \"v\": [\"غير متصل\"] }, \"online\": { \"v\": [\"متصل\"] } } }, { \"l\": \"ast\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupáu\"] }, \"do not disturb\": { \"v\": [\"nun molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectáu\"] }, \"online\": { \"v\": [\"en llinia\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"away\": { \"v\": [\"pryč\"] }, \"busy\": { \"v\": [\"zaneprádněn(a)\"] }, \"do not disturb\": { \"v\": [\"nerušit\"] }, \"invisible\": { \"v\": [\"neviditelné\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"da\", \"t\": { \"away\": { \"v\": [\"væk\"] }, \"busy\": { \"v\": [\"optaget\"] }, \"do not disturb\": { \"v\": [\"forstyr ikke\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"de\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"de-DE\", \"t\": { \"away\": { \"v\": [\"Abwesend\"] }, \"busy\": { \"v\": [\"Beschäftigt\"] }, \"do not disturb\": { \"v\": [\"Bitte nicht stören\"] }, \"invisible\": { \"v\": [\"Unsichtbar\"] }, \"offline\": { \"v\": [\"Offline\"] }, \"online\": { \"v\": [\"Online\"] } } }, { \"l\": \"el\", \"t\": { \"away\": { \"v\": [\"μακριά\"] }, \"busy\": { \"v\": [\"απασχολημένος\"] }, \"do not disturb\": { \"v\": [\"μην ενοχλείτε\"] }, \"invisible\": { \"v\": [\"αόρατο\"] }, \"offline\": { \"v\": [\"εκτός σύνδεσης\"] }, \"online\": { \"v\": [\"συνδεδεμένος\"] } } }, { \"l\": \"en-GB\", \"t\": { \"away\": { \"v\": [\"away\"] }, \"busy\": { \"v\": [\"busy\"] }, \"do not disturb\": { \"v\": [\"do not disturb\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-AR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"no molestar\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"fuera de línea\"] }, \"online\": { \"v\": [\"en línea\"] } } }, { \"l\": \"et-EE\", \"t\": { \"away\": { \"v\": [\"eemal\"] }, \"busy\": { \"v\": [\"hõivatud\"] }, \"do not disturb\": { \"v\": [\"ära sega\"] }, \"invisible\": { \"v\": [\"nähtamatu\"] }, \"offline\": { \"v\": [\"pole võrgus\"] }, \"online\": { \"v\": [\"võrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"away\": { \"v\": [\"دور از دستگاه\"] }, \"busy\": { \"v\": [\"مشغول\"] }, \"do not disturb\": { \"v\": [\"مزاحم نشوید\"] }, \"invisible\": { \"v\": [\"مخفی\"] }, \"offline\": { \"v\": [\"برون‌خط\"] }, \"online\": { \"v\": [\"برخط\"] } } }, { \"l\": \"fi\", \"t\": { \"away\": { \"v\": [\"poissa\"] }, \"busy\": { \"v\": [\"varattu\"] }, \"do not disturb\": { \"v\": [\"älä häiritse\"] }, \"invisible\": { \"v\": [\"näkymätön\"] }, \"offline\": { \"v\": [\"ei linjalla\"] }, \"online\": { \"v\": [\"linjalla\"] } } }, { \"l\": \"fr\", \"t\": { \"away\": { \"v\": [\"absent\"] }, \"busy\": { \"v\": [\"occupé\"] }, \"do not disturb\": { \"v\": [\"ne pas déranger\"] }, \"invisible\": { \"v\": [\"invisible\"] }, \"offline\": { \"v\": [\"hors ligne\"] }, \"online\": { \"v\": [\"en ligne\"] } } }, { \"l\": \"ga\", \"t\": { \"away\": { \"v\": [\"ar shiúl\"] }, \"busy\": { \"v\": [\"gnóthach\"] }, \"do not disturb\": { \"v\": [\"ná cur as\"] }, \"invisible\": { \"v\": [\"dofheicthe\"] }, \"offline\": { \"v\": [\"as líne\"] }, \"online\": { \"v\": [\"ar líne\"] } } }, { \"l\": \"gl\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"non molestar\"] }, \"invisible\": { \"v\": [\"invisíbel\"] }, \"offline\": { \"v\": [\"desconectado\"] }, \"online\": { \"v\": [\"conectado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"away\": { \"v\": [\"odsutan\"] }, \"busy\": { \"v\": [\"zauzet\"] }, \"do not disturb\": { \"v\": [\"ne smetaj\"] }, \"invisible\": { \"v\": [\"nevidljiv\"] }, \"offline\": { \"v\": [\"izvan mreže\"] }, \"online\": { \"v\": [\"na mreži\"] } } }, { \"l\": \"hu\", \"t\": { \"away\": { \"v\": [\"távol\"] }, \"busy\": { \"v\": [\"foglalt\"] }, \"do not disturb\": { \"v\": [\"ne zavarjanak\"] }, \"invisible\": { \"v\": [\"láthatatlan\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"id\", \"t\": { \"away\": { \"v\": [\"tidak tersedia\"] }, \"busy\": { \"v\": [\"sibuk\"] }, \"do not disturb\": { \"v\": [\"jangan ganggu\"] }, \"invisible\": { \"v\": [\"tidak terlihat\"] }, \"offline\": { \"v\": [\"luring\"] }, \"online\": { \"v\": [\"daring\"] } } }, { \"l\": \"is\", \"t\": { \"away\": { \"v\": [\"í burtu\"] }, \"busy\": { \"v\": [\"upptekin/n\"] }, \"do not disturb\": { \"v\": [\"ekki ónáða\"] }, \"invisible\": { \"v\": [\"ósýnilegt\"] }, \"offline\": { \"v\": [\"ónettengt\"] }, \"online\": { \"v\": [\"nettengt\"] } } }, { \"l\": \"it\", \"t\": { \"away\": { \"v\": [\"via\"] }, \"do not disturb\": { \"v\": [\"non disturbare\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"away\": { \"v\": [\"離れる\"] }, \"busy\": { \"v\": [\"ビジー\"] }, \"do not disturb\": { \"v\": [\"邪魔をしないでください\"] }, \"invisible\": { \"v\": [\"不可視\"] }, \"offline\": { \"v\": [\"オフライン\"] }, \"online\": { \"v\": [\"オンライン\"] } } }, { \"l\": \"ko\", \"t\": { \"away\": { \"v\": [\"자리 비움\"] }, \"busy\": { \"v\": [\"바쁨\"] }, \"do not disturb\": { \"v\": [\"방해 금지\"] }, \"invisible\": { \"v\": [\"보이지 않음\"] }, \"offline\": { \"v\": [\"오프라인\"] }, \"online\": { \"v\": [\"온라인\"] } } }, { \"l\": \"lo\", \"t\": { \"away\": { \"v\": [\"ບໍ່ຢູ່\"] }, \"busy\": { \"v\": [\"ບໍ່ວ່າງ\"] }, \"do not disturb\": { \"v\": [\"ຫ້າມລົບກວນ\"] }, \"invisible\": { \"v\": [\"ບໍ່ສະແດງ\"] }, \"offline\": { \"v\": [\"ອອບໄລນ໌\"] }, \"online\": { \"v\": [\"ອອນໄລນ໌\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"away\": { \"v\": [\"pasišalinęs\"] }, \"busy\": { \"v\": [\"užsiėmęs\"] }, \"do not disturb\": { \"v\": [\"netrukdyti\"] }, \"invisible\": { \"v\": [\"nematomas\"] }, \"offline\": { \"v\": [\"neprisijungęs\"] }, \"online\": { \"v\": [\"prisijungęs\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"away\": { \"v\": [\"оддалечен\"] }, \"busy\": { \"v\": [\"зафатен\"] }, \"do not disturb\": { \"v\": [\"не вознемирувај\"] }, \"invisible\": { \"v\": [\"невидливо\"] }, \"offline\": { \"v\": [\"офлајн\"] }, \"online\": { \"v\": [\"онлајн\"] } } }, { \"l\": \"mn\", \"t\": { \"away\": { \"v\": [\"хол байна\"] }, \"busy\": { \"v\": [\"завгүй\"] }, \"do not disturb\": { \"v\": [\"бүү саад бол\"] }, \"invisible\": { \"v\": [\"үл харагдах\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"away\": { \"v\": [\"borte\"] }, \"busy\": { \"v\": [\"opptatt\"] }, \"do not disturb\": { \"v\": [\"ikke forstyrr\"] }, \"invisible\": { \"v\": [\"usynlig\"] }, \"offline\": { \"v\": [\"frakoblet\"] }, \"online\": { \"v\": [\"tilkoblet\"] } } }, { \"l\": \"nl\", \"t\": { \"away\": { \"v\": [\"weg\"] }, \"busy\": { \"v\": [\"bezig\"] }, \"do not disturb\": { \"v\": [\"niet storen\"] }, \"invisible\": { \"v\": [\"Onzichtbaar\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"away\": { \"v\": [\"stąd\"] }, \"busy\": { \"v\": [\"zajęty\"] }, \"do not disturb\": { \"v\": [\"nie przeszkadzać\"] }, \"invisible\": { \"v\": [\"niewidzialny\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"away\": { \"v\": [\"ausente\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não perturbe\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"off-line\"] }, \"online\": { \"v\": [\"on-line\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"away\": { \"v\": [\"longe\"] }, \"busy\": { \"v\": [\"ocupado\"] }, \"do not disturb\": { \"v\": [\"não incomodar\"] }, \"invisible\": { \"v\": [\"invisível\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ro\", \"t\": { \"away\": { \"v\": [\"plecat\"] }, \"do not disturb\": { \"v\": [\"nu deranjați\"] }, \"offline\": { \"v\": [\"deconectat\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"ru\", \"t\": { \"away\": { \"v\": [\"отсутствие\"] }, \"busy\": { \"v\": [\"занятый\"] }, \"do not disturb\": { \"v\": [\"не беспокоить\"] }, \"invisible\": { \"v\": [\"невидимый\"] }, \"offline\": { \"v\": [\"офлайн\"] }, \"online\": { \"v\": [\"онлайн\"] } } }, { \"l\": \"sk\", \"t\": { \"away\": { \"v\": [\"neprítomný\"] }, \"busy\": { \"v\": [\"zaneprázdnený\"] }, \"do not disturb\": { \"v\": [\"nerušiť\"] }, \"invisible\": { \"v\": [\"neviditeľný\"] }, \"offline\": { \"v\": [\"Odpojený - offline\"] }, \"online\": { \"v\": [\"Pripojený - online\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"away\": { \"v\": [\"одсутан\"] }, \"busy\": { \"v\": [\"заузет\"] }, \"do not disturb\": { \"v\": [\"не узнемиравај\"] }, \"invisible\": { \"v\": [\"невидљиво\"] }, \"offline\": { \"v\": [\"ван мреже\"] }, \"online\": { \"v\": [\"на мрежи\"] } } }, { \"l\": \"sv\", \"t\": { \"away\": { \"v\": [\"borta\"] }, \"busy\": { \"v\": [\"upptagen\"] }, \"do not disturb\": { \"v\": [\"stör ej\"] }, \"invisible\": { \"v\": [\"osynlig\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"tr\", \"t\": { \"away\": { \"v\": [\"Uzakta\"] }, \"busy\": { \"v\": [\"Meşgul\"] }, \"do not disturb\": { \"v\": [\"Rahatsız etmeyin\"] }, \"invisible\": { \"v\": [\"görünmez\"] }, \"offline\": { \"v\": [\"Çevrim dışı\"] }, \"online\": { \"v\": [\"Çevrim içi\"] } } }, { \"l\": \"uk\", \"t\": { \"away\": { \"v\": [\"відсутній\"] }, \"busy\": { \"v\": [\"зайнято\"] }, \"do not disturb\": { \"v\": [\"не турбувати\"] }, \"invisible\": { \"v\": [\"Невидимий\"] }, \"offline\": { \"v\": [\"не в мережі\"] }, \"online\": { \"v\": [\"в мережі\"] } } }, { \"l\": \"uz\", \"t\": { \"away\": { \"v\": [\"uzoqda\"] }, \"busy\": { \"v\": [\"band\"] }, \"do not disturb\": { \"v\": [\"bezovta qilmang\"] }, \"invisible\": { \"v\": [\"ko'rinmas\"] }, \"offline\": { \"v\": [\"offline\"] }, \"online\": { \"v\": [\"online\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"away\": { \"v\": [\"离开\"] }, \"busy\": { \"v\": [\"繁忙\"] }, \"do not disturb\": { \"v\": [\"请勿打扰\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"离线\"] }, \"online\": { \"v\": [\"在线\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"隐藏的\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"在線\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"away\": { \"v\": [\"離開\"] }, \"busy\": { \"v\": [\"忙碌\"] }, \"do not disturb\": { \"v\": [\"請勿打擾\"] }, \"invisible\": { \"v\": [\"不可見\"] }, \"offline\": { \"v\": [\"離線\"] }, \"online\": { \"v\": [\"線上\"] } } }];\nconst t12 = [{ \"l\": \"ar\", \"t\": { \"Back to provider selection\": { \"v\": [\"عودة إلى اختيار المزوّد\"] }, \"Close Smart Picker\": { \"v\": [\"إغلاق المحدد الذكي\"] }, \"Smart Picker\": { \"v\": [\"اللاقط الذكي smart picker\"] } } }, { \"l\": \"ast\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la seleición de fornidores\"] }, \"Close Smart Picker\": { \"v\": [\"Zarrar la seleición intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zpět na výběr poskytovatele\"] }, \"Close Smart Picker\": { \"v\": [\"Zavřít inteligentní výběr\"] }, \"Smart Picker\": { \"v\": [\"Inteligentní výběr\"] } } }, { \"l\": \"da\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbage til udbydervalg\"] }, \"Close Smart Picker\": { \"v\": [\"Luk Smart Vælger\"] }, \"Smart Picker\": { \"v\": [\"Smart Vælger\"] } } }, { \"l\": \"de\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Zurück zur Anbieterauswahl\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker schließen\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"el\", \"t\": { \"Back to provider selection\": { \"v\": [\"Επιστροφή στην επιλογή παρόχου\"] }, \"Close Smart Picker\": { \"v\": [\"Κλείσιμο Έξυπνης Επιλογής\"] }, \"Smart Picker\": { \"v\": [\"Έξυπνη Επιλογή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Back to provider selection\": { \"v\": [\"Back to provider selection\"] }, \"Close Smart Picker\": { \"v\": [\"Close Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver a la selección de proveedor\"] }, \"Close Smart Picker\": { \"v\": [\"Cerrar selector inteligente\"] }, \"Smart Picker\": { \"v\": [\"Selector inteligente\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tagasi teenusepakkuja valiku juurde\"] }, \"Close Smart Picker\": { \"v\": [\"Sulge nutivalija\"] }, \"Smart Picker\": { \"v\": [\"Nutivalija\"] } } }, { \"l\": \"eu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Itzuli hornitzaileen hautapenera\"] }, \"Close Smart Picker\": { \"v\": [\"Itxi hautatzaile adimenduna\"] }, \"Smart Picker\": { \"v\": [\"Hautatzaile adimenduna\"] } } }, { \"l\": \"fa\", \"t\": { \"Back to provider selection\": { \"v\": [\"بازگشت به انتخاب ارائه دهنده\"] }, \"Close Smart Picker\": { \"v\": [\"بستن انتخاب‌گر هوشمند\"] }, \"Smart Picker\": { \"v\": [\"انتخابگر هوشمند\"] } } }, { \"l\": \"fi\", \"t\": { \"Back to provider selection\": { \"v\": [\"Takaisin toimittajavalintaan\"] }, \"Close Smart Picker\": { \"v\": [\"Sulje älykas valitsin\"] }, \"Smart Picker\": { \"v\": [\"Älykäs valitsin\"] } } }, { \"l\": \"fr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Revenir à la sélection du fournisseur\"] }, \"Close Smart Picker\": { \"v\": [\"Fermer le sélecteur intelligent\"] }, \"Smart Picker\": { \"v\": [\"Sélecteur intelligent\"] } } }, { \"l\": \"ga\", \"t\": { \"Back to provider selection\": { \"v\": [\"Ar ais go roghnú soláthróra\"] }, \"Close Smart Picker\": { \"v\": [\"Dún Piocálaí Cliste\"] }, \"Smart Picker\": { \"v\": [\"Roghnóir Cliste\"] } } }, { \"l\": \"gl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Volver á selección do provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Pechar o Selector intelixente\"] }, \"Smart Picker\": { \"v\": [\"Selector intelixente\"] } } }, { \"l\": \"he\", \"t\": { \"Back to provider selection\": { \"v\": [\"חזרה לבחירת ספק\"] }, \"Close Smart Picker\": { \"v\": [\"סגירת הבורר החכם\"] }, \"Smart Picker\": { \"v\": [\"בורר חכם\"] } } }, { \"l\": \"hr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Natrag na odabir pružatelja\"] }, \"Close Smart Picker\": { \"v\": [\"Zatvori pametni odabir\"] }, \"Smart Picker\": { \"v\": [\"Pametni odabir\"] } } }, { \"l\": \"hu\", \"t\": { \"Back to provider selection\": { \"v\": [\"Vissza a szolgáltatóválasztáshoz\"] }, \"Close Smart Picker\": { \"v\": [\"Okos választó bezárása\"] }, \"Smart Picker\": { \"v\": [\"Okos választó\"] } } }, { \"l\": \"id\", \"t\": { \"Back to provider selection\": { \"v\": [\"Kembali ke pemilihan penyedia\"] }, \"Close Smart Picker\": { \"v\": [\"Tutup Pemilih Cerdas\"] }, \"Smart Picker\": { \"v\": [\"Pemilih Cerdas\"] } } }, { \"l\": \"is\", \"t\": { \"Back to provider selection\": { \"v\": [\"Til baka í val á þjónustuveitu\"] }, \"Close Smart Picker\": { \"v\": [\"Loka snjall-veljara\"] }, \"Smart Picker\": { \"v\": [\"Snjall-veljari\"] } } }, { \"l\": \"it\", \"t\": { \"Back to provider selection\": { \"v\": [\"Torna alla selezione del provider\"] }, \"Close Smart Picker\": { \"v\": [\"Chiudere lo Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Picker intelligente\"] } } }, { \"l\": \"ja\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Back to provider selection\": { \"v\": [\"プロバイダーの選択に戻る\"] }, \"Close Smart Picker\": { \"v\": [\"スマートピッカーを閉じる\"] }, \"Smart Picker\": { \"v\": [\"スマートピッカー\"] } } }, { \"l\": \"ko\", \"t\": { \"Back to provider selection\": { \"v\": [\"제공자 선택으로 돌아가기\"] }, \"Close Smart Picker\": { \"v\": [\"스마트 선택기 닫기\"] }, \"Smart Picker\": { \"v\": [\"스마트 선택기\"] } } }, { \"l\": \"lo\", \"t\": { \"Back to provider selection\": { \"v\": [\"ກັບໄປທີ່ການເລືອກຜູ້ໃຫ້ບໍລິການ\"] }, \"Close Smart Picker\": { \"v\": [\"ປິດໂຕເລືອກອັດສະລິຍະ\"] }, \"Smart Picker\": { \"v\": [\"ໂຕເລືອກອັດສະລິຍະ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Grįžti į teikėjo pasirinkimą\"] }, \"Close Smart Picker\": { \"v\": [\"Uždaryti „Smart Picker“\"] }, \"Smart Picker\": { \"v\": ['\"Smart Picker\"'] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до избор на провајдер\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметен избирач\"] }, \"Smart Picker\": { \"v\": [\"Паметен избирач\"] } } }, { \"l\": \"mn\", \"t\": { \"Back to provider selection\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн сонголт руу буцах\"] }, \"Close Smart Picker\": { \"v\": [\"Ухаалаг сонгогчийг хаах\"] }, \"Smart Picker\": { \"v\": [\"Ухаалаг сонгогч\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tilbake til leverandørvalg\"] }, \"Close Smart Picker\": { \"v\": [\"Lukk Smart Velger\"] }, \"Smart Picker\": { \"v\": [\"Smart Velger\"] } } }, { \"l\": \"nl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Terug naar provider selectie\"] }, \"Close Smart Picker\": { \"v\": [\"Slimme Kiezer sluiten\"] }, \"Smart Picker\": { \"v\": [\"Slimme Kiezer\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Back to provider selection\": { \"v\": [\"Powrót do wyboru dostawcy\"] }, \"Close Smart Picker\": { \"v\": [\"Zamknij inteligentny selektor\"] }, \"Smart Picker\": { \"v\": [\"Inteligentne wybieranie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar para seleção de provedor\"] }, \"Close Smart Picker\": { \"v\": [\"Fechar Seletor Inteligente\"] }, \"Smart Picker\": { \"v\": [\"Seletor Inteligente\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Back to provider selection\": { \"v\": [\"Voltar à seleção de fornecedor\"] }, \"Close Smart Picker\": { \"v\": ['Fechar \"Smart Picker\"'] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ro\", \"t\": { \"Back to provider selection\": { \"v\": [\"Înapoi la selecția providerului\"] }, \"Close Smart Picker\": { \"v\": [\"Închide Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"ru\", \"t\": { \"Back to provider selection\": { \"v\": [\"Вернуться к выбору провайдера\"] }, \"Close Smart Picker\": { \"v\": [\"Закрыть интеллектуальный выбор\"] }, \"Smart Picker\": { \"v\": [\"Умный выбор\"] } } }, { \"l\": \"sk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Späť na výber poskytovateľa\"] }, \"Close Smart Picker\": { \"v\": [\"Zavrieť inteligentný výber\"] }, \"Smart Picker\": { \"v\": [\"Inteligentný výber\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад на избор пружаоца\"] }, \"Close Smart Picker\": { \"v\": [\"Затвори паметни бирач\"] }, \"Smart Picker\": { \"v\": [\"Паметни бирач\"] } } }, { \"l\": \"sv\", \"t\": { \"Back to provider selection\": { \"v\": [\"Tillbaka till leverantörsval\"] }, \"Close Smart Picker\": { \"v\": [\"Stäng Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"tr\", \"t\": { \"Back to provider selection\": { \"v\": [\"Hizmet sağlayıcı seçimine dön\"] }, \"Close Smart Picker\": { \"v\": [\"Akıllı seçimi kapat\"] }, \"Smart Picker\": { \"v\": [\"Akıllı seçim\"] } } }, { \"l\": \"uk\", \"t\": { \"Back to provider selection\": { \"v\": [\"Назад до вибору постачальника\"] }, \"Close Smart Picker\": { \"v\": [\"Закрити асистент вибору\"] }, \"Smart Picker\": { \"v\": [\"Асистент вибору\"] } } }, { \"l\": \"uz\", \"t\": { \"Back to provider selection\": { \"v\": [\"Provayder tanloviga qaytish\"] }, \"Close Smart Picker\": { \"v\": [\"Smart Picker-ni yoping\"] }, \"Smart Picker\": { \"v\": [\"Aqlli tanlovchi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Back to provider selection\": { \"v\": [\"返回至提供者选择列表\"] }, \"Close Smart Picker\": { \"v\": [\"关闭智能拾取器\"] }, \"Smart Picker\": { \"v\": [\"智能拾取器\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉 Smart Picker\"] }, \"Smart Picker\": { \"v\": [\"Smart Picker\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Back to provider selection\": { \"v\": [\"回到提供者選擇\"] }, \"Close Smart Picker\": { \"v\": [\"關閉智慧型挑選器\"] }, \"Smart Picker\": { \"v\": [\"智慧型挑選器\"] } } }];\nconst t13 = [{ \"l\": \"ar\", \"t\": { \"Calendar icon\": { \"v\": [\"أيقونة التقويم\"] }, \"Cancel\": { \"v\": [\"إلغاء\"] }, \"Clear value\": { \"v\": [\"مَحو القيمة\"] }, \"Close time Picker\": { \"v\": [\"إغلاق لاقط الوقت\"] }, \"Datepicker input\": { \"v\": [\"مُدخَلات لاقط التاريخ\"] }, \"Datepicker menu\": { \"v\": [\"قائمة لاقط التاريخ\"] }, \"Decrement hours\": { \"v\": [\"إنقاص الساعات\"] }, \"Decrement minutes\": { \"v\": [\"إنقاص الدقائق\"] }, \"Decrement seconds\": { \"v\": [\"إنقاص الثواني\"] }, \"Increment hours\": { \"v\": [\"زيادة الساعات\"] }, \"Increment minutes\": { \"v\": [\"زيادة الدقائق\"] }, \"Increment seconds\": { \"v\": [\"زيادة الثواني\"] }, \"Month picker\": { \"v\": [\"لاقط الشهر\"] }, \"Month picker overlay\": { \"v\": [\"تراكب لاقط الشهر\"] }, \"Next month\": { \"v\": [\"الشهر القادم\"] }, \"Next year\": { \"v\": [\"السنة القادمة\"] }, \"Now\": { \"v\": [\"الآن\"] }, \"Open hours overlay\": { \"v\": [\"فتح تراكب الساعات \"] }, \"Open minutes overlay\": { \"v\": [\"فتح تراكب الدقائق\"] }, \"Open months overlay\": { \"v\": [\"فتح تراكب الشهور\"] }, \"Open seconds overlay\": { \"v\": [\"فتح تراكب الثواني\"] }, \"Open time picker\": { \"v\": [\"فتح لاقط الوقت\"] }, \"Open years overlay\": { \"v\": [\"فتح تراكب السنوات\"] }, \"Pick\": { \"v\": [\"إلتقاط\"] }, \"Previous month\": { \"v\": [\"الشهر الماضي\"] }, \"Previous year\": { \"v\": [\"السنة الماضية\"] }, \"Select date\": { \"v\": [\"إختيار التاريخ\"] }, \"Select date and time\": { \"v\": [\"إختيار التاريخ والوقت\"] }, \"Select month\": { \"v\": [\"إختيار الشهر\"] }, \"Select time\": { \"v\": [\"إختيار الوقت\"] }, \"Select time range\": { \"v\": [\"إختيار المدى الزمني\"] }, \"Select week\": { \"v\": [\"إختيار الأسبوع\"] }, \"Select year\": { \"v\": [\"إختيار السنة\"] }, \"Switch AM/PM mode\": { \"v\": [\"تبديل وضعية صباحاً/مساءً\"] }, \"Time picker\": { \"v\": [\"لاقط الوقت\"] }, \"Toggle overlay\": { \"v\": [\"تبديل التراكب\"] }, \"W\": { \"v\": [\"أ\"] }, \"Year picker\": { \"v\": [\"لاقط السنة\"] }, \"Year picker overlay\": { \"v\": [\"تراكب لاقط السنة\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendáře\"] }, \"Cancel\": { \"v\": [\"Storno\"] }, \"Clear value\": { \"v\": [\"Vyčistit hodnotu\"] }, \"Close time Picker\": { \"v\": [\"Zavřít výběr času\"] }, \"Datepicker input\": { \"v\": [\"Vstup výběru data\"] }, \"Datepicker menu\": { \"v\": [\"Nabídka výběru data\"] }, \"Decrement hours\": { \"v\": [\"Snížit hodiny\"] }, \"Decrement minutes\": { \"v\": [\"Snížit minuty\"] }, \"Decrement seconds\": { \"v\": [\"Snížit sekundy\"] }, \"Increment hours\": { \"v\": [\"Zvýšit hodiny\"] }, \"Increment minutes\": { \"v\": [\"Zvýšit minuty\"] }, \"Increment seconds\": { \"v\": [\"Zvýšit sekundy\"] }, \"Month picker\": { \"v\": [\"Výběr měsíce\"] }, \"Month picker overlay\": { \"v\": [\"Překryvné okno výběru měsíce\"] }, \"Next month\": { \"v\": [\"Příští měsíc\"] }, \"Next year\": { \"v\": [\"Příští rok\"] }, \"Now\": { \"v\": [\"Nyní\"] }, \"Open hours overlay\": { \"v\": [\"Otevřít překryvné okno hodin\"] }, \"Open minutes overlay\": { \"v\": [\"Otevřít překryvné okno minut\"] }, \"Open months overlay\": { \"v\": [\"Otevřít překryvné okno měsíců\"] }, \"Open seconds overlay\": { \"v\": [\"Otevřít překryvné okno sekund\"] }, \"Open time picker\": { \"v\": [\"Otevřít výběr času\"] }, \"Open years overlay\": { \"v\": [\"Otevřít překryvné okno roku\"] }, \"Pick\": { \"v\": [\"Vybrat\"] }, \"Previous month\": { \"v\": [\"Předchozí měsíc\"] }, \"Previous year\": { \"v\": [\"Předchozí rok\"] }, \"Select date\": { \"v\": [\"Vybrat datum\"] }, \"Select date and time\": { \"v\": [\"Vybrat datum a čas\"] }, \"Select month\": { \"v\": [\"Vybrat měsíc\"] }, \"Select time\": { \"v\": [\"Vybrat čas\"] }, \"Select time range\": { \"v\": [\"Vybrat časový rozsah\"] }, \"Select week\": { \"v\": [\"Vybrat týden\"] }, \"Select year\": { \"v\": [\"Vybrat rok\"] }, \"Switch AM/PM mode\": { \"v\": [\"Přepnout režim dopo/odpoledne\"] }, \"Time picker\": { \"v\": [\"Výběr času\"] }, \"Time zone\": { \"v\": [\"Časové pásmo\"] }, \"Toggle overlay\": { \"v\": [\"Vyp/zap. překryvné okno\"] }, \"W\": { \"v\": [\"T\"] }, \"Year picker\": { \"v\": [\"Výběr roku\"] }, \"Year picker overlay\": { \"v\": [\"Překryvné okno výběru roku\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Annullér\"] }, \"Clear value\": { \"v\": [\"Klar værdi\"] }, \"Close time Picker\": { \"v\": [\"Nærtid Picker\"] }, \"Datepicker input\": { \"v\": [\"Datapicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datapicker menu\"] }, \"Decrement hours\": { \"v\": [\"Formindsk timer\"] }, \"Decrement minutes\": { \"v\": [\"Formindsk minutter\"] }, \"Decrement seconds\": { \"v\": [\"Formindsk sekunder\"] }, \"Increment hours\": { \"v\": [\"Forøg timer\"] }, \"Increment minutes\": { \"v\": [\"Forøg minutter\"] }, \"Increment seconds\": { \"v\": [\"Forøg sekunder\"] }, \"Month picker\": { \"v\": [\"Månedsvælger\"] }, \"Month picker overlay\": { \"v\": [\"Måneder vælger overlay\"] }, \"Next month\": { \"v\": [\"Næste måned\"] }, \"Next year\": { \"v\": [\"Næste år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Åbne timer overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Åbn minutter overlay\"] }, \"Open months overlay\": { \"v\": [\"Åbne måneder overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Åbne sekunder overlay\"] }, \"Open time picker\": { \"v\": [\"Åbent tidsvælger\"] }, \"Open years overlay\": { \"v\": [\"Åbne år overlay\"] }, \"Pick\": { \"v\": [\"Vælg\"] }, \"Previous month\": { \"v\": [\"Forrige måned\"] }, \"Previous year\": { \"v\": [\"Foregående år\"] }, \"Select date\": { \"v\": [\"Vælg dato\"] }, \"Select date and time\": { \"v\": [\"Vælg dato og tidspunkt\"] }, \"Select month\": { \"v\": [\"Vælg måned\"] }, \"Select time\": { \"v\": [\"Vælg tid\"] }, \"Select time range\": { \"v\": [\"Vælg tidsinterval\"] }, \"Select week\": { \"v\": [\"Vælg uge\"] }, \"Select year\": { \"v\": [\"Vælg år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Skift AM/PM-tilstand\"] }, \"Time picker\": { \"v\": [\"Tidsvælger\"] }, \"Time zone\": { \"v\": [\"Tidszone\"] }, \"Toggle overlay\": { \"v\": [\"Slå overlay til / fra\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"År vælger\"] }, \"Year picker overlay\": { \"v\": [\"År vælger overlay\"] } } }, { \"l\": \"de\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendersymbol\"] }, \"Cancel\": { \"v\": [\"Abbrechen\"] }, \"Clear value\": { \"v\": [\"Wert löschen\"] }, \"Close time Picker\": { \"v\": [\"Zeitauswahl schließen\"] }, \"Datepicker input\": { \"v\": [\"Eingabe Datumsauswahl\"] }, \"Datepicker menu\": { \"v\": [\"Menü Datumsauswahl\"] }, \"Decrement hours\": { \"v\": [\"Stunden verringern\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verringern\"] }, \"Decrement seconds\": { \"v\": [\"Sekunden verringern\"] }, \"Increment hours\": { \"v\": [\"Stunden hochzählen\"] }, \"Increment minutes\": { \"v\": [\"Minuten hochzählen\"] }, \"Increment seconds\": { \"v\": [\"Sekunden hochzählen\"] }, \"Month picker\": { \"v\": [\"Monatsauswahl\"] }, \"Month picker overlay\": { \"v\": [\"Monatsauswahl-Overlay\"] }, \"Next month\": { \"v\": [\"Nächster Monat\"] }, \"Next year\": { \"v\": [\"Nächstes Jahr\"] }, \"Now\": { \"v\": [\"Jetzt\"] }, \"Open hours overlay\": { \"v\": [\"Stunden-Overlay öffnen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-Overlay öffnen\"] }, \"Open months overlay\": { \"v\": [\"Monate-Overlay öffnen\"] }, \"Open seconds overlay\": { \"v\": [\"Sekunden-Overlay öffnen\"] }, \"Open time picker\": { \"v\": [\"Zeitauswahl öffnen\"] }, \"Open years overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] }, \"Pick\": { \"v\": [\"Auswählen\"] }, \"Previous month\": { \"v\": [\"Vorheriger Monat\"] }, \"Previous year\": { \"v\": [\"Vorheriges Jahr\"] }, \"Select date\": { \"v\": [\"Datum auswählen\"] }, \"Select date and time\": { \"v\": [\"Datum und Uhrzeit auswählen\"] }, \"Select month\": { \"v\": [\"Monat auswählen\"] }, \"Select time\": { \"v\": [\"Uhrzeit auswählen\"] }, \"Select time range\": { \"v\": [\"Zeitspanne auswählen\"] }, \"Select week\": { \"v\": [\"Woche auswählen\"] }, \"Select year\": { \"v\": [\"Jahr auswählen\"] }, \"Switch AM/PM mode\": { \"v\": [\"Zwischen AM/PM-Modus wechseln\"] }, \"Time picker\": { \"v\": [\"Zeitauswahl\"] }, \"Time zone\": { \"v\": [\"Zeitzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay umschalten\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jahresauswahl\"] }, \"Year picker overlay\": { \"v\": [\"Jahre-Overlay öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Calendar icon\": { \"v\": [\"Εικονίδιο ημερολογίου\"] }, \"Cancel\": { \"v\": [\"Ακύρωση\"] }, \"Clear value\": { \"v\": [\"Εκκαθάριση αξίας\"] }, \"Close time Picker\": { \"v\": [\"Κλείσιμο επιλογέα ώρας\"] }, \"Datepicker input\": { \"v\": [\"Εισαγωγή ημερομηνίας\"] }, \"Datepicker menu\": { \"v\": [\"Μενού επιλογής ημερομηνίας\"] }, \"Decrement hours\": { \"v\": [\"Μείωση ωρών\"] }, \"Decrement minutes\": { \"v\": [\"Μείωση λεπτών\"] }, \"Decrement seconds\": { \"v\": [\"Μείωση δευτερολέπτων\"] }, \"Increment hours\": { \"v\": [\"Αύξηση ωρών\"] }, \"Increment minutes\": { \"v\": [\"Αύξηση λεπτών\"] }, \"Increment seconds\": { \"v\": [\"Αύξηση δευτερολέπτων\"] }, \"Month picker\": { \"v\": [\"Επιλογή μήνα\"] }, \"Month picker overlay\": { \"v\": [\"Επικάλυψη επιλογής μήνα\"] }, \"Next month\": { \"v\": [\"Επόμενος μήνας\"] }, \"Next year\": { \"v\": [\"Επόμενο έτος\"] }, \"Now\": { \"v\": [\"Τώρα\"] }, \"Open hours overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ωρών\"] }, \"Open minutes overlay\": { \"v\": [\"Άνοιγμα επικάλυψης λεπτών\"] }, \"Open months overlay\": { \"v\": [\"Άνοιγμα επικάλυψης μηνών\"] }, \"Open seconds overlay\": { \"v\": [\"Άνοιγμα επικάλυψης δευτερολέπτων\"] }, \"Open time picker\": { \"v\": [\"Άνοιγμα επιλογέα ώρας\"] }, \"Open years overlay\": { \"v\": [\"Άνοιγμα επικάλυψης ετών\"] }, \"Pick\": { \"v\": [\"Επιλογή\"] }, \"Previous month\": { \"v\": [\"Προηγούμενος μήνας\"] }, \"Previous year\": { \"v\": [\"Προηγούμενο έτος\"] }, \"Select date\": { \"v\": [\"Επιλογή ημερομηνίας\"] }, \"Select date and time\": { \"v\": [\"Επιλογή ημερομηνίας και ώρας\"] }, \"Select month\": { \"v\": [\"Επιλογή μήνα\"] }, \"Select time\": { \"v\": [\"Επιλογή ώρας\"] }, \"Select time range\": { \"v\": [\"Επιλογή χρονικού διαστήματος\"] }, \"Select week\": { \"v\": [\"Επιλογή εβδομάδας\"] }, \"Select year\": { \"v\": [\"Επιλογή έτους\"] }, \"Switch AM/PM mode\": { \"v\": [\"Εναλλαγή λειτουργίας AM/PM\"] }, \"Time picker\": { \"v\": [\"Επιλογή ώρας\"] }, \"Toggle overlay\": { \"v\": [\"Εναλλαγή επικάλυψης\"] }, \"W\": { \"v\": [\"Τε\"] }, \"Year picker\": { \"v\": [\"Επιλογέας έτους\"] }, \"Year picker overlay\": { \"v\": [\"Επικάλυψη επιλογέα έτους\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Calendar icon\": { \"v\": [\"Calendar icon\"] }, \"Cancel\": { \"v\": [\"Cancel\"] }, \"Clear value\": { \"v\": [\"Clear value\"] }, \"Close time Picker\": { \"v\": [\"Close time Picker\"] }, \"Datepicker input\": { \"v\": [\"Datepicker input\"] }, \"Datepicker menu\": { \"v\": [\"Datepicker menu\"] }, \"Decrement hours\": { \"v\": [\"Decrement hours\"] }, \"Decrement minutes\": { \"v\": [\"Decrement minutes\"] }, \"Decrement seconds\": { \"v\": [\"Decrement seconds\"] }, \"Increment hours\": { \"v\": [\"Increment hours\"] }, \"Increment minutes\": { \"v\": [\"Increment minutes\"] }, \"Increment seconds\": { \"v\": [\"Increment seconds\"] }, \"Month picker\": { \"v\": [\"Month picker\"] }, \"Month picker overlay\": { \"v\": [\"Month picker overlay\"] }, \"Next month\": { \"v\": [\"Next month\"] }, \"Next year\": { \"v\": [\"Next year\"] }, \"Now\": { \"v\": [\"Now\"] }, \"Open hours overlay\": { \"v\": [\"Open hours overlay\"] }, \"Open minutes overlay\": { \"v\": [\"Open minutes overlay\"] }, \"Open months overlay\": { \"v\": [\"Open months overlay\"] }, \"Open seconds overlay\": { \"v\": [\"Open seconds overlay\"] }, \"Open time picker\": { \"v\": [\"Open time picker\"] }, \"Open years overlay\": { \"v\": [\"Open years overlay\"] }, \"Pick\": { \"v\": [\"Pick\"] }, \"Previous month\": { \"v\": [\"Previous month\"] }, \"Previous year\": { \"v\": [\"Previous year\"] }, \"Select date\": { \"v\": [\"Select date\"] }, \"Select date and time\": { \"v\": [\"Select date and time\"] }, \"Select month\": { \"v\": [\"Select month\"] }, \"Select time\": { \"v\": [\"Select time\"] }, \"Select time range\": { \"v\": [\"Select time range\"] }, \"Select week\": { \"v\": [\"Select week\"] }, \"Select year\": { \"v\": [\"Select year\"] }, \"Switch AM/PM mode\": { \"v\": [\"Switch AM/PM mode\"] }, \"Time picker\": { \"v\": [\"Time picker\"] }, \"Time zone\": { \"v\": [\"Time zone\"] }, \"Toggle overlay\": { \"v\": [\"Toggle overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Year picker\"] }, \"Year picker overlay\": { \"v\": [\"Year picker overlay\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendriikoon\"] }, \"Cancel\": { \"v\": [\"Katkesta\"] }, \"Clear value\": { \"v\": [\"Kustuta väärtus\"] }, \"Close time Picker\": { \"v\": [\"Sulge ajavalija\"] }, \"Datepicker input\": { \"v\": [\"Kuupäevavalija sisend\"] }, \"Datepicker menu\": { \"v\": [\"Kuupäevavalija menüü\"] }, \"Decrement hours\": { \"v\": [\"Vähenda tunde\"] }, \"Decrement minutes\": { \"v\": [\"Vähenda minuteid\"] }, \"Decrement seconds\": { \"v\": [\"Vähenda sekundeid\"] }, \"Increment hours\": { \"v\": [\"Suurenda tunde\"] }, \"Increment minutes\": { \"v\": [\"Suurenda minuteid\"] }, \"Increment seconds\": { \"v\": [\"Suurenda sekundeid\"] }, \"Month picker\": { \"v\": [\"Kuupäevavalija\"] }, \"Month picker overlay\": { \"v\": [\"Kuupäevavalija ülekatteaken\"] }, \"Next month\": { \"v\": [\"Järgmine kuu\"] }, \"Next year\": { \"v\": [\"Järgmine aasta\"] }, \"Now\": { \"v\": [\"Praegu\"] }, \"Open hours overlay\": { \"v\": [\"Ava tundide vaade\"] }, \"Open minutes overlay\": { \"v\": [\"Ava minutite vaade\"] }, \"Open months overlay\": { \"v\": [\"Ava kuude vaade\"] }, \"Open seconds overlay\": { \"v\": [\"Ava sekundite vaade\"] }, \"Open time picker\": { \"v\": [\"Ava ajavalija\"] }, \"Open years overlay\": { \"v\": [\"Ava aastate vaade\"] }, \"Pick\": { \"v\": [\"Vali\"] }, \"Previous month\": { \"v\": [\"Eelmine kuu\"] }, \"Previous year\": { \"v\": [\"Eelmine aasta\"] }, \"Select date\": { \"v\": [\"Vali kuupäev\"] }, \"Select date and time\": { \"v\": [\"Vali kuupäev ja kellaaeg\"] }, \"Select month\": { \"v\": [\"Vali kuu\"] }, \"Select time\": { \"v\": [\"Vali aeg\"] }, \"Select time range\": { \"v\": [\"Vali ajavahemik\"] }, \"Select week\": { \"v\": [\"Vali nädal\"] }, \"Select year\": { \"v\": [\"Vali aasta\"] }, \"Switch AM/PM mode\": { \"v\": [\"Vaheta AM/PM kuvamist\"] }, \"Time picker\": { \"v\": [\"Ajavalija\"] }, \"Time zone\": { \"v\": [\"Ajavöönd\"] }, \"Toggle overlay\": { \"v\": [\"Lülita ülekatteaken sisse/välja\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Aastavalija\"] }, \"Year picker overlay\": { \"v\": [\"Aastavavalija ülekatteaken\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Calendar icon\": { \"v\": [\"Icône de calendrier\"] }, \"Cancel\": { \"v\": [\"Annuler\"] }, \"Clear value\": { \"v\": [\"Effacer la valeur\"] }, \"Close time Picker\": { \"v\": [\"Fermer le sélecteur de temps\"] }, \"Datepicker input\": { \"v\": [\"Entrée du sélecteur de date\"] }, \"Datepicker menu\": { \"v\": [\"Menu du sélecteur de date\"] }, \"Decrement hours\": { \"v\": [\"Diminuer les heures\"] }, \"Decrement minutes\": { \"v\": [\"Diminuer les minutes\"] }, \"Decrement seconds\": { \"v\": [\"Diminuer les secondes\"] }, \"Increment hours\": { \"v\": [\"Augmenter les heures\"] }, \"Increment minutes\": { \"v\": [\"Augmenter les minutes\"] }, \"Increment seconds\": { \"v\": [\"Augmenter les secondes\"] }, \"Month picker\": { \"v\": [\"Sélecteur de mois\"] }, \"Month picker overlay\": { \"v\": [\"Superposition du sélecteur de mois\"] }, \"Next month\": { \"v\": [\"Mois prochain\"] }, \"Next year\": { \"v\": [\"Année prochaine\"] }, \"Now\": { \"v\": [\"Maintenant\"] }, \"Open hours overlay\": { \"v\": [\"Superposition des heures d'ouverture\"] }, \"Open minutes overlay\": { \"v\": [\"Superposition des minutes d'ouverture\"] }, \"Open months overlay\": { \"v\": [\"Superposition des mois ouverts\"] }, \"Open seconds overlay\": { \"v\": [\"Superposition des secondes ouvertes\"] }, \"Open time picker\": { \"v\": [\"Ouvrir le sélecteur de temps\"] }, \"Open years overlay\": { \"v\": [\"Superposition des années ouvertes\"] }, \"Pick\": { \"v\": [\"Choisir\"] }, \"Previous month\": { \"v\": [\"Mois précédent\"] }, \"Previous year\": { \"v\": [\"Année précédente\"] }, \"Select date\": { \"v\": [\"Sélectionnez la date\"] }, \"Select date and time\": { \"v\": [\"Sélectionnez la date et l'heure\"] }, \"Select month\": { \"v\": [\"Sélectionnez le mois\"] }, \"Select time\": { \"v\": [\"Sélectionnez l'heure\"] }, \"Select time range\": { \"v\": [\"Sélectionnez la plage horaire\"] }, \"Select week\": { \"v\": [\"Sélectionnez la semaine\"] }, \"Select year\": { \"v\": [\"Sélectionnez l'année\"] }, \"Switch AM/PM mode\": { \"v\": [\"Basculer le mode Matin/Après-midi\"] }, \"Time picker\": { \"v\": [\"Sélecteur de temps\"] }, \"Time zone\": { \"v\": [\"Fuseau horaire\"] }, \"Toggle overlay\": { \"v\": [\"Basculer la superposition\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Sélecteur d'année\"] }, \"Year picker overlay\": { \"v\": [\"Superposition du sélecteur d’année\"] } } }, { \"l\": \"ga\", \"t\": { \"Calendar icon\": { \"v\": [\"Deilbhín féilire\"] }, \"Cancel\": { \"v\": [\"Cealaigh\"] }, \"Clear value\": { \"v\": [\"Luach soiléir\"] }, \"Close time Picker\": { \"v\": [\"Roghnóir am dúnta\"] }, \"Datepicker input\": { \"v\": [\"Ionchur datepicker\"] }, \"Datepicker menu\": { \"v\": [\"Roghchlár datepicker\"] }, \"Decrement hours\": { \"v\": [\"Laghdaigh uaireanta\"] }, \"Decrement minutes\": { \"v\": [\"Laghdaigh nóiméid \"] }, \"Decrement seconds\": { \"v\": [\"Laghdaigh soicind\"] }, \"Increment hours\": { \"v\": [\"Méadaigh uaireanta\"] }, \"Increment minutes\": { \"v\": [\"Méadaigh nóiméid\"] }, \"Increment seconds\": { \"v\": [\"Méadaigh soicind\"] }, \"Month picker\": { \"v\": [\"Roghnóir míosa\"] }, \"Month picker overlay\": { \"v\": [\"Forleagan roghnóir míosa\"] }, \"Next month\": { \"v\": [\"An mhí seo chugainn\"] }, \"Next year\": { \"v\": [\"An bhliain seo chugainn\"] }, \"Now\": { \"v\": [\"Anois\"] }, \"Open hours overlay\": { \"v\": [\"Forleagan uaireanta oscailte\"] }, \"Open minutes overlay\": { \"v\": [\"Forleagan nóiméad oscailte\"] }, \"Open months overlay\": { \"v\": [\"Forleagan míonna oscailte\"] }, \"Open seconds overlay\": { \"v\": [\"Soicind oscailte forleagan\"] }, \"Open time picker\": { \"v\": [\"Roghnóir am oscailte\"] }, \"Open years overlay\": { \"v\": [\"Forleagan blianta oscailte\"] }, \"Pick\": { \"v\": [\"Pioc\"] }, \"Previous month\": { \"v\": [\"An mhí roimhe sin\"] }, \"Previous year\": { \"v\": [\"Bhliain roimhe sin\"] }, \"Select date\": { \"v\": [\"Roghnaigh dáta\"] }, \"Select date and time\": { \"v\": [\"Roghnaigh dáta agus am\"] }, \"Select month\": { \"v\": [\"Roghnaigh mí\"] }, \"Select time\": { \"v\": [\"Roghnaigh am\"] }, \"Select time range\": { \"v\": [\"Roghnaigh raon ama\"] }, \"Select week\": { \"v\": [\"Roghnaigh seachtain\"] }, \"Select year\": { \"v\": [\"Roghnaigh bliain\"] }, \"Switch AM/PM mode\": { \"v\": [\"Athraigh mód AM/PM\"] }, \"Time picker\": { \"v\": [\"Roghnóir ama\"] }, \"Time zone\": { \"v\": [\"Crios ama\"] }, \"Toggle overlay\": { \"v\": [\"Scoránaigh forleagan\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Roghnóir bliana\"] }, \"Year picker overlay\": { \"v\": [\"Forleagan roghnóir bliana\"] } } }, { \"l\": \"gl\", \"t\": { \"Calendar icon\": { \"v\": [\"Icona do calendario\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar o valor\"] }, \"Close time Picker\": { \"v\": [\"Pechar o Selector de hora\"] }, \"Datepicker input\": { \"v\": [\"Entrada do selector de datas\"] }, \"Datepicker menu\": { \"v\": [\"Menú do selector de datas\"] }, \"Decrement hours\": { \"v\": [\"Diminuír as horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuír os minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuír os segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar as horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar os minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar os segundos\"] }, \"Month picker\": { \"v\": [\"Selector de mes\"] }, \"Month picker overlay\": { \"v\": [\"Superposición do selector de mes\"] }, \"Next month\": { \"v\": [\"Próximo mes\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir a superposición de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir a superposición de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir a superposición de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir a superposición de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir o selector de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir a superposición de anos\"] }, \"Pick\": { \"v\": [\"Escoller\"] }, \"Previous month\": { \"v\": [\"Mes pasado\"] }, \"Previous year\": { \"v\": [\"Ano pasado\"] }, \"Select date\": { \"v\": [\"Seleccione a data\"] }, \"Select date and time\": { \"v\": [\"Seleccione a data e a hora\"] }, \"Select month\": { \"v\": [\"Seleccione o mes\"] }, \"Select time\": { \"v\": [\"Seleccione a hora\"] }, \"Select time range\": { \"v\": [\" Seleccione o intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Seleccione a semana\"] }, \"Select year\": { \"v\": [\"Seleccione o ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar o modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Selector de hora\"] }, \"Time zone\": { \"v\": [\"Fuso horario\"] }, \"Toggle overlay\": { \"v\": [\"Alternar a sobreposición\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Selector de ano\"] }, \"Year picker overlay\": { \"v\": [\"Superposición do selector de ano\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikona kalendara\"] }, \"Cancel\": { \"v\": [\"Otkaži\"] }, \"Clear value\": { \"v\": [\"Očisti vrijednost\"] }, \"Close time Picker\": { \"v\": [\"Zatvori odabir vremena\"] }, \"Datepicker input\": { \"v\": [\"Unos birača datuma\"] }, \"Datepicker menu\": { \"v\": [\"Izbornik birača datuma\"] }, \"Decrement hours\": { \"v\": [\"Smanji sate\"] }, \"Decrement minutes\": { \"v\": [\"Smanji minute\"] }, \"Decrement seconds\": { \"v\": [\"Smanji sekunde\"] }, \"Increment hours\": { \"v\": [\"Povećaj sate\"] }, \"Increment minutes\": { \"v\": [\"Povećaj minute\"] }, \"Increment seconds\": { \"v\": [\"Povećaj sekunde\"] }, \"Month picker\": { \"v\": [\"Odabir mjeseca\"] }, \"Month picker overlay\": { \"v\": [\"Sloj za odabir mjeseca\"] }, \"Next month\": { \"v\": [\"Sljedeći mjesec\"] }, \"Next year\": { \"v\": [\"Sljedeća godina\"] }, \"Now\": { \"v\": [\"Sada\"] }, \"Open hours overlay\": { \"v\": [\"Otvori sloj za odabir sati\"] }, \"Open minutes overlay\": { \"v\": [\"Otvori sloj za odabir minuta\"] }, \"Open months overlay\": { \"v\": [\"Otvori sloj za odabir mjeseci\"] }, \"Open seconds overlay\": { \"v\": [\"Otvori sloj za odabir sekundi\"] }, \"Open time picker\": { \"v\": [\"Otvori birač vremena\"] }, \"Open years overlay\": { \"v\": [\"Otvori sloj za odabir godina\"] }, \"Pick\": { \"v\": [\"Odaberi\"] }, \"Previous month\": { \"v\": [\"Prethodni mjesec\"] }, \"Previous year\": { \"v\": [\"Prethodna godina\"] }, \"Select date\": { \"v\": [\"Odaberi datum\"] }, \"Select date and time\": { \"v\": [\"Odaberi datum i vrijeme\"] }, \"Select month\": { \"v\": [\"Odaberi mjesec\"] }, \"Select time\": { \"v\": [\"Odaberi vrijeme\"] }, \"Select time range\": { \"v\": [\"Odaberi vremenski raspon\"] }, \"Select week\": { \"v\": [\"Odaberi tjedan\"] }, \"Select year\": { \"v\": [\"Odaberi godinu\"] }, \"Switch AM/PM mode\": { \"v\": [\"Prebaci AM/PM način\"] }, \"Time picker\": { \"v\": [\"Odabir vremena\"] }, \"Time zone\": { \"v\": [\"Vremenska zona\"] }, \"Toggle overlay\": { \"v\": [\"Uključi/isključi sloj\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Odabir godine\"] }, \"Year picker overlay\": { \"v\": [\"Sloj za odabir godine\"] } } }, { \"l\": \"hu\", \"t\": { \"Calendar icon\": { \"v\": [\"Naptárikon\"] }, \"Cancel\": { \"v\": [\"Mégse\"] }, \"Clear value\": { \"v\": [\"Érték törlése\"] }, \"Close time Picker\": { \"v\": [\"Időválasztó bezárása\"] }, \"Datepicker input\": { \"v\": [\"Dátumválasztó bemenet\"] }, \"Datepicker menu\": { \"v\": [\"Dátumválasztó menü\"] }, \"Decrement hours\": { \"v\": [\"Órák csökkentése\"] }, \"Decrement minutes\": { \"v\": [\"Percek csökkentése\"] }, \"Decrement seconds\": { \"v\": [\"Másodpercek csökkentése\"] }, \"Increment hours\": { \"v\": [\"Órák növelése\"] }, \"Increment minutes\": { \"v\": [\"Percek növelése\"] }, \"Increment seconds\": { \"v\": [\"Másodpercek növelése\"] }, \"Month picker\": { \"v\": [\"Hónapválasztó\"] }, \"Month picker overlay\": { \"v\": [\"Hónapválasztó átfedés\"] }, \"Next month\": { \"v\": [\"Következő hónap\"] }, \"Next year\": { \"v\": [\"Következő év\"] }, \"Now\": { \"v\": [\"Most\"] }, \"Open hours overlay\": { \"v\": [\"Órák átfedésének megnyitása\"] }, \"Open minutes overlay\": { \"v\": [\"Percek átfedésének megnyitása\"] }, \"Open months overlay\": { \"v\": [\"Hónapok átfedésének megnyitása\"] }, \"Open seconds overlay\": { \"v\": [\"Másodpercek átfedésének megnyitása\"] }, \"Open time picker\": { \"v\": [\"Időválasztó megnyitása\"] }, \"Open years overlay\": { \"v\": [\"Évek átfedésének megnyitása\"] }, \"Pick\": { \"v\": [\"Válasszon\"] }, \"Previous month\": { \"v\": [\"Előző hónap\"] }, \"Previous year\": { \"v\": [\"Előző év\"] }, \"Select date\": { \"v\": [\"Válasszon dátumot\"] }, \"Select date and time\": { \"v\": [\"Válasszon dátumot és időt\"] }, \"Select month\": { \"v\": [\"Válasszon hónapot\"] }, \"Select time\": { \"v\": [\"Válasszon időt\"] }, \"Select time range\": { \"v\": [\"Válasszon időszakot\"] }, \"Select week\": { \"v\": [\"Válasszon hetet\"] }, \"Select year\": { \"v\": [\"Válasszon évet\"] }, \"Switch AM/PM mode\": { \"v\": [\"Váltás de./du. módra\"] }, \"Time picker\": { \"v\": [\"Időválasztó\"] }, \"Time zone\": { \"v\": [\"Időzóna\"] }, \"Toggle overlay\": { \"v\": [\"Átfedés be/ki\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Évválasztó\"] }, \"Year picker overlay\": { \"v\": [\"Évválasztó átfedés\"] } } }, { \"l\": \"id\", \"t\": { \"Calendar icon\": { \"v\": [\"Ikon kalender\"] }, \"Cancel\": { \"v\": [\"Batal\"] }, \"Clear value\": { \"v\": [\"Hapus nilai\"] }, \"Close time Picker\": { \"v\": [\"Tutup pemilih waktu\"] }, \"Datepicker input\": { \"v\": [\"Input pemilih tanggal\"] }, \"Datepicker menu\": { \"v\": [\"Menu pemilih tanggal\"] }, \"Decrement hours\": { \"v\": [\"Kurangi jam\"] }, \"Decrement minutes\": { \"v\": [\"Kurangi menit\"] }, \"Decrement seconds\": { \"v\": [\"Kurangi detik\"] }, \"Increment hours\": { \"v\": [\"Tambah jam\"] }, \"Increment minutes\": { \"v\": [\"Tambah menit\"] }, \"Increment seconds\": { \"v\": [\"Tambah detik\"] }, \"Month picker\": { \"v\": [\"Pemilih bulan\"] }, \"Month picker overlay\": { \"v\": [\"Overlay pemilih bulan\"] }, \"Next month\": { \"v\": [\"Bulan berikutnya\"] }, \"Next year\": { \"v\": [\"Tahun berikutnya\"] }, \"Now\": { \"v\": [\"Sekarang\"] }, \"Open hours overlay\": { \"v\": [\"Buka overlay jam\"] }, \"Open minutes overlay\": { \"v\": [\"Buka overlay menit\"] }, \"Open months overlay\": { \"v\": [\"Buka overlay bulan\"] }, \"Open seconds overlay\": { \"v\": [\"Buka overlay detik\"] }, \"Open time picker\": { \"v\": [\"Buka pemilih waktu\"] }, \"Open years overlay\": { \"v\": [\"Buka overlay tahun\"] }, \"Pick\": { \"v\": [\"Pilih\"] }, \"Previous month\": { \"v\": [\"Bulan sebelumnya\"] }, \"Previous year\": { \"v\": [\"Tahun sebelumnya\"] }, \"Select date\": { \"v\": [\"Pilih tanggal\"] }, \"Select date and time\": { \"v\": [\"Pilih tanggal dan waktu\"] }, \"Select month\": { \"v\": [\"Pilih bulan\"] }, \"Select time\": { \"v\": [\"Pilih waktu\"] }, \"Select time range\": { \"v\": [\"Pilih rentang waktu\"] }, \"Select week\": { \"v\": [\"Pilih minggu\"] }, \"Select year\": { \"v\": [\"Pilih tahun\"] }, \"Switch AM/PM mode\": { \"v\": [\"Ganti mode AM/PM\"] }, \"Time picker\": { \"v\": [\"Pemilih waktu\"] }, \"Time zone\": { \"v\": [\"Zona waktu\"] }, \"Toggle overlay\": { \"v\": [\"Alihkan overlay\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Pemilih tahun\"] }, \"Year picker overlay\": { \"v\": [\"Overlay pemilih tahun\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Calendar icon\": { \"v\": [\"カレンダーのアイコン\"] }, \"Cancel\": { \"v\": [\"キャンセル\"] }, \"Clear value\": { \"v\": [\"値をクリア\"] }, \"Close time Picker\": { \"v\": [\"時間ピッカーを閉じる\"] }, \"Datepicker input\": { \"v\": [\"データピッカー入力\"] }, \"Datepicker menu\": { \"v\": [\"データピッカーメニュー\"] }, \"Decrement hours\": { \"v\": [\"時間を減らす\"] }, \"Decrement minutes\": { \"v\": [\"分を減らす\"] }, \"Decrement seconds\": { \"v\": [\"秒を減らす\"] }, \"Increment hours\": { \"v\": [\"時間を増やす\"] }, \"Increment minutes\": { \"v\": [\"分を増やす\"] }, \"Increment seconds\": { \"v\": [\"秒を増やす\"] }, \"Month picker\": { \"v\": [\"月ピッカー\"] }, \"Month picker overlay\": { \"v\": [\"月ピッカーオーバーレイ\"] }, \"Next month\": { \"v\": [\"次月\"] }, \"Next year\": { \"v\": [\"次年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"時間オーバーレイを開く\"] }, \"Open minutes overlay\": { \"v\": [\"分オーバーレイを開く\"] }, \"Open months overlay\": { \"v\": [\"月オーバーレイを開く\"] }, \"Open seconds overlay\": { \"v\": [\"秒オーバーレイを開く\"] }, \"Open time picker\": { \"v\": [\"時間ピッカーを開く\"] }, \"Open years overlay\": { \"v\": [\"年オーバーレイを開く\"] }, \"Pick\": { \"v\": [\"選択\"] }, \"Previous month\": { \"v\": [\"前月\"] }, \"Previous year\": { \"v\": [\"前年\"] }, \"Select date\": { \"v\": [\"日付を選択\"] }, \"Select date and time\": { \"v\": [\"日付と時刻を選択\"] }, \"Select month\": { \"v\": [\"月を選択\"] }, \"Select time\": { \"v\": [\"時刻を選択\"] }, \"Select time range\": { \"v\": [\"時間範囲を選択\"] }, \"Select week\": { \"v\": [\"週を選択\"] }, \"Select year\": { \"v\": [\"年を選択\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PMモードの切り替え\"] }, \"Time picker\": { \"v\": [\"時刻ピッカー\"] }, \"Time zone\": { \"v\": [\"タイムゾーン\"] }, \"Toggle overlay\": { \"v\": [\"オーバーレイの切り替え\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年ピッカー\"] }, \"Year picker overlay\": { \"v\": [\"年ピッカーオーバーレイ\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Calendar icon\": { \"v\": [\"캘린더 아이콘\"] }, \"Cancel\": { \"v\": [\"취소\"] }, \"Clear value\": { \"v\": [\"값 지우기\"] }, \"Close time Picker\": { \"v\": [\"시간 선택기 닫기\"] }, \"Datepicker input\": { \"v\": [\"날짜 선택기 입력\"] }, \"Datepicker menu\": { \"v\": [\"날짜 입력기 메뉴\"] }, \"Decrement hours\": { \"v\": [\"시 감소\"] }, \"Decrement minutes\": { \"v\": [\"분 감소\"] }, \"Decrement seconds\": { \"v\": [\"초 감소\"] }, \"Increment hours\": { \"v\": [\"시 증가\"] }, \"Increment minutes\": { \"v\": [\"분 증가\"] }, \"Increment seconds\": { \"v\": [\"초 증가\"] }, \"Month picker\": { \"v\": [\"월 선택기\"] }, \"Month picker overlay\": { \"v\": [\"월 선택기 오버레이\"] }, \"Next month\": { \"v\": [\"다음 달\"] }, \"Next year\": { \"v\": [\"다음 해\"] }, \"Now\": { \"v\": [\"현재\"] }, \"Open hours overlay\": { \"v\": [\"시 오버레이 열기\"] }, \"Open minutes overlay\": { \"v\": [\"분 오버레이 열기\"] }, \"Open months overlay\": { \"v\": [\"월 오버레이 열기\"] }, \"Open seconds overlay\": { \"v\": [\"초 오버레이 열기\"] }, \"Open time picker\": { \"v\": [\"시간 선택기 열기\"] }, \"Open years overlay\": { \"v\": [\"년 오버레이 열기\"] }, \"Pick\": { \"v\": [\"선택\"] }, \"Previous month\": { \"v\": [\"이전 달\"] }, \"Previous year\": { \"v\": [\"이전 해\"] }, \"Select date\": { \"v\": [\"날짜 선택\"] }, \"Select date and time\": { \"v\": [\"날짜와 시간 선택\"] }, \"Select month\": { \"v\": [\"월 선택\"] }, \"Select time\": { \"v\": [\"시간 선택\"] }, \"Select time range\": { \"v\": [\"시간 구간 선택\"] }, \"Select week\": { \"v\": [\"주 선택\"] }, \"Select year\": { \"v\": [\"년도 선택\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM 모드 전환\"] }, \"Time picker\": { \"v\": [\"시간 선택기\"] }, \"Time zone\": { \"v\": [\"시간대\"] }, \"Toggle overlay\": { \"v\": [\"오버레이 토글\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"년도 선택기\"] }, \"Year picker overlay\": { \"v\": [\"년도 선택기 오버레이\"] } } }, { \"l\": \"lo\", \"t\": { \"Calendar icon\": { \"v\": [\"ໄອຄອນປະຕິທິນ\"] }, \"Cancel\": { \"v\": [\"ຍົກເລີກ\"] }, \"Clear value\": { \"v\": [\"ລຶບຄ່າ\"] }, \"Close time Picker\": { \"v\": [\"ປິດໂຕເລືອກເວລາ\"] }, \"Datepicker input\": { \"v\": [\"ຊ່ອງປ້ອນວັນທີ\"] }, \"Datepicker menu\": { \"v\": [\"ເມນູໂຕເລືອກວັນທີ\"] }, \"Decrement hours\": { \"v\": [\"ຫຼຸດຊົ່ວໂມງ\"] }, \"Decrement minutes\": { \"v\": [\"ຫຼຸດນາທີ\"] }, \"Decrement seconds\": { \"v\": [\"ຫຼຸດວິນາທີ\"] }, \"Increment hours\": { \"v\": [\"ເພີ່ມຊົ່ວໂມງ\"] }, \"Increment minutes\": { \"v\": [\"ເພີ່ມນາທີ\"] }, \"Increment seconds\": { \"v\": [\"ເພີ່ມວິນາທີ\"] }, \"Month picker\": { \"v\": [\"ໂຕເລືອກເດືອນ\"] }, \"Month picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກເດືອນ\"] }, \"Next month\": { \"v\": [\"ເດືອນໜ້າ\"] }, \"Next year\": { \"v\": [\"ປີໜ້າ\"] }, \"Now\": { \"v\": [\"ຕອນນີ້\"] }, \"Open hours overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກຊົ່ວໂມງ\"] }, \"Open minutes overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກນາທີ\"] }, \"Open months overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກເດືອນ\"] }, \"Open seconds overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກວິນາທີ\"] }, \"Open time picker\": { \"v\": [\"ເປີດໂຕເລືອກເວລາ\"] }, \"Open years overlay\": { \"v\": [\"ເປີດໜ້າຕ່າງເລືອກປີ\"] }, \"Pick\": { \"v\": [\"ເລືອກ\"] }, \"Previous month\": { \"v\": [\"ເດືອນກ່ອນ\"] }, \"Previous year\": { \"v\": [\"ປີກ່ອນ\"] }, \"Select date\": { \"v\": [\"ເລືອກວັນທີ\"] }, \"Select date and time\": { \"v\": [\"ເລືອກວັນທີ ແລະ ເວລາ\"] }, \"Select month\": { \"v\": [\"ເລືອກເດືອນ\"] }, \"Select time\": { \"v\": [\"ເລືອກເວລາ\"] }, \"Select time range\": { \"v\": [\"ເລືອກຊ່ວງເວລາ\"] }, \"Select week\": { \"v\": [\"ເລືອກອາທິດ\"] }, \"Select year\": { \"v\": [\"ເລືອກປີ\"] }, \"Switch AM/PM mode\": { \"v\": [\"ສະຫຼັບໂໝດ AM/PM\"] }, \"Time picker\": { \"v\": [\"ໂຕເລືອກເວລາ\"] }, \"Time zone\": { \"v\": [\"ເຂດເວລາ\"] }, \"Toggle overlay\": { \"v\": [\"ສະຫຼັບໜ້າຕ່າງ\"] }, \"W\": { \"v\": [\"ອ\"] }, \"Year picker\": { \"v\": [\"ໂຕເລືອກປີ\"] }, \"Year picker overlay\": { \"v\": [\"ໜ້າຕ່າງໂຕເລືອກປີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendoriaus piktograma\"] }, \"Cancel\": { \"v\": [\"Atsisakyti\"] }, \"Clear value\": { \"v\": [\"Aiški vertė\"] }, \"Close time Picker\": { \"v\": [\"Uždaryti laiko pasirinkimo langą\"] }, \"Datepicker input\": { \"v\": [\"Datos rinkiklio įvestis\"] }, \"Datepicker menu\": { \"v\": [\"Datos rinkiklio meniu\"] }, \"Decrement hours\": { \"v\": [\"Sumažinkite valandas\"] }, \"Decrement minutes\": { \"v\": [\"Sumažinkite minutes\"] }, \"Decrement seconds\": { \"v\": [\"Sumažinkite sekundes\"] }, \"Increment hours\": { \"v\": [\"Padidinkite valandas\"] }, \"Increment minutes\": { \"v\": [\"Padidinkite minutes\"] }, \"Increment seconds\": { \"v\": [\"Padidinkite sekundes\"] }, \"Month picker\": { \"v\": [\"Mėnesio pasirinkimas\"] }, \"Month picker overlay\": { \"v\": [\"Mėnesio parinkiklio langas\"] }, \"Next month\": { \"v\": [\"Kitą mėnesį\"] }, \"Next year\": { \"v\": [\"Kiti metai\"] }, \"Now\": { \"v\": [\"Dabar\"] }, \"Open hours overlay\": { \"v\": [\"Atidaryti valandų pasirinkimą\"] }, \"Open minutes overlay\": { \"v\": [\"Atidaryti minučių pasirinkimą\"] }, \"Open months overlay\": { \"v\": [\"Atidaryti mėnesių pasirinkimą\"] }, \"Open seconds overlay\": { \"v\": [\"Atidaryti sekundžių pasirinkimą\"] }, \"Open time picker\": { \"v\": [\"Atverti laiko pasirinkimo langą\"] }, \"Open years overlay\": { \"v\": [\"Atidaryti metų pasirinkimą\"] }, \"Pick\": { \"v\": [\"Pasirinkti\"] }, \"Previous month\": { \"v\": [\"Ankstesnis mėnesis\"] }, \"Previous year\": { \"v\": [\"Ankstesni metai\"] }, \"Select date\": { \"v\": [\"Pasirinkti datą\"] }, \"Select date and time\": { \"v\": [\"Pasirinkti datą ir laiką\"] }, \"Select month\": { \"v\": [\"Pasirinkti mėnesį\"] }, \"Select time\": { \"v\": [\"Pasirinkti laiką\"] }, \"Select time range\": { \"v\": [\"Pasirinkti laikotarpį\"] }, \"Select week\": { \"v\": [\"Pasirinkti savaitę\"] }, \"Select year\": { \"v\": [\"Pasirinkti metus\"] }, \"Switch AM/PM mode\": { \"v\": [\"Perjungti AM/PM režimą\"] }, \"Time picker\": { \"v\": [\"Laiko parinkiklis\"] }, \"Time zone\": { \"v\": [\"Laiko juosta\"] }, \"Toggle overlay\": { \"v\": [\"Perjungti pasirinkimo langą\"] }, \"W\": { \"v\": ['\"W\"'] }, \"Year picker\": { \"v\": [\"Metų parinkiklis\"] }, \"Year picker overlay\": { \"v\": [\"Metų pasirinkimo langas\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона за календар\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Исчисти вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори избирач на време\"] }, \"Datepicker input\": { \"v\": [\"Поле за избор на датум\"] }, \"Datepicker menu\": { \"v\": [\"Мени за избор на датум\"] }, \"Decrement hours\": { \"v\": [\"Намали часови\"] }, \"Decrement minutes\": { \"v\": [\"Намали минути\"] }, \"Decrement seconds\": { \"v\": [\"Намали секунди\"] }, \"Increment hours\": { \"v\": [\"Зголеми часови\"] }, \"Increment minutes\": { \"v\": [\"Зголеми минути\"] }, \"Increment seconds\": { \"v\": [\"Зголеми секунди\"] }, \"Month picker\": { \"v\": [\"Избор на месец\"] }, \"Month picker overlay\": { \"v\": [\"Надолжен избор на месец\"] }, \"Next month\": { \"v\": [\"Следен месец\"] }, \"Next year\": { \"v\": [\"Следна година\"] }, \"Now\": { \"v\": [\"Сега\"] }, \"Open hours overlay\": { \"v\": [\"Отвори преклоп за часови\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори преклоп за минути\"] }, \"Open months overlay\": { \"v\": [\"Отвори преклоп за месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори преклоп за секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори избор на време\"] }, \"Open years overlay\": { \"v\": [\"Отвори преклоп за години\"] }, \"Pick\": { \"v\": [\"Избери\"] }, \"Previous month\": { \"v\": [\"Предходен месец\"] }, \"Previous year\": { \"v\": [\"Предходна година\"] }, \"Select date\": { \"v\": [\"Избери датум\"] }, \"Select date and time\": { \"v\": [\"Избери датум и време\"] }, \"Select month\": { \"v\": [\"Избери месец\"] }, \"Select time\": { \"v\": [\"Избери време\"] }, \"Select time range\": { \"v\": [\"Избери времески опсег\"] }, \"Select week\": { \"v\": [\"Избери недела\"] }, \"Select year\": { \"v\": [\"Избери година\"] }, \"Switch AM/PM mode\": { \"v\": [\"Смени AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Избирач на време\"] }, \"Time zone\": { \"v\": [\"Временска зона\"] }, \"Toggle overlay\": { \"v\": [\"Вклучи/исклучи преклоп\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Избор на година\"] }, \"Year picker overlay\": { \"v\": [\"Надолжен избор на година\"] } } }, { \"l\": \"mn\", \"t\": { \"Calendar icon\": { \"v\": [\"Календарийн дүрс\"] }, \"Cancel\": { \"v\": [\"Цуцлах\"] }, \"Clear value\": { \"v\": [\"Утгыг цэвэрлэх\"] }, \"Close time Picker\": { \"v\": [\"Цаг сонгогчийг хаах\"] }, \"Datepicker input\": { \"v\": [\"Огноо сонгогчийн оролт\"] }, \"Datepicker menu\": { \"v\": [\"Огноо сонгогчийн цэс\"] }, \"Decrement hours\": { \"v\": [\"Цагийг бууруулах\"] }, \"Decrement minutes\": { \"v\": [\"Минутыг бууруулах\"] }, \"Decrement seconds\": { \"v\": [\"Секундыг бууруулах\"] }, \"Increment hours\": { \"v\": [\"Цагийг нэмэгдүүлэх\"] }, \"Increment minutes\": { \"v\": [\"Минутыг нэмэгдүүлэх\"] }, \"Increment seconds\": { \"v\": [\"Секундыг нэмэгдүүлэх\"] }, \"Month picker\": { \"v\": [\"Сар сонгогч\"] }, \"Month picker overlay\": { \"v\": [\"Сар сонгогчийн давхарга\"] }, \"Next month\": { \"v\": [\"Дараа сар\"] }, \"Next year\": { \"v\": [\"Дараа жил\"] }, \"Now\": { \"v\": [\"Одоо\"] }, \"Open hours overlay\": { \"v\": [\"Цагийн давхаргыг нээх\"] }, \"Open minutes overlay\": { \"v\": [\"Минутын давхаргыг нээх\"] }, \"Open months overlay\": { \"v\": [\"Сарын давхаргыг нээх\"] }, \"Open seconds overlay\": { \"v\": [\"Секундын давхаргыг нээх\"] }, \"Open time picker\": { \"v\": [\"Цаг сонгогчийг нээх\"] }, \"Open years overlay\": { \"v\": [\"Жилийн давхаргыг нээх\"] }, \"Pick\": { \"v\": [\"Сонгох\"] }, \"Previous month\": { \"v\": [\"Өмнөх сар\"] }, \"Previous year\": { \"v\": [\"Өмнөх жил\"] }, \"Select date\": { \"v\": [\"Огноо сонгох\"] }, \"Select date and time\": { \"v\": [\"Огноо, цаг сонгох\"] }, \"Select month\": { \"v\": [\"Сар сонгох\"] }, \"Select time\": { \"v\": [\"Цаг сонгох\"] }, \"Select time range\": { \"v\": [\"Цагийн хүрээ сонгох\"] }, \"Select week\": { \"v\": [\"Долоо хоног сонгох\"] }, \"Select year\": { \"v\": [\"Жил сонгох\"] }, \"Switch AM/PM mode\": { \"v\": [\"ҮӨ/ҮХ горимыг солих\"] }, \"Time picker\": { \"v\": [\"Цаг сонгогч\"] }, \"Time zone\": { \"v\": [\"Цагийн бүс\"] }, \"Toggle overlay\": { \"v\": [\"Давхаргыг сэлгэх\"] }, \"W\": { \"v\": [\"Д\"] }, \"Year picker\": { \"v\": [\"Жил сонгогч\"] }, \"Year picker overlay\": { \"v\": [\"Жил сонгогчийн давхарга\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalender-pictogram\"] }, \"Cancel\": { \"v\": [\"Annuleren\"] }, \"Clear value\": { \"v\": [\"Waarde wissen\"] }, \"Close time Picker\": { \"v\": [\"Tijdkiezer sluiten\"] }, \"Datepicker input\": { \"v\": [\"Datumkiezer invoer\"] }, \"Datepicker menu\": { \"v\": [\"Datumkiezer menu\"] }, \"Decrement hours\": { \"v\": [\"Uren verminderen\"] }, \"Decrement minutes\": { \"v\": [\"Minuten verminderen\"] }, \"Decrement seconds\": { \"v\": [\"Seconden verminderen\"] }, \"Increment hours\": { \"v\": [\"Uren vermeerderen\"] }, \"Increment minutes\": { \"v\": [\"Minuten vermeerderen\"] }, \"Increment seconds\": { \"v\": [\"Seconden vermeerderen\"] }, \"Month picker\": { \"v\": [\"Maandkiezer\"] }, \"Month picker overlay\": { \"v\": [\"Maandkiezer-overlay\"] }, \"Next month\": { \"v\": [\"Volgende maand\"] }, \"Next year\": { \"v\": [\"Volgend jaar\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Uren-overlay openen\"] }, \"Open minutes overlay\": { \"v\": [\"Minuten-overlay openen\"] }, \"Open months overlay\": { \"v\": [\"Maanden-overlay openen\"] }, \"Open seconds overlay\": { \"v\": [\"Seconden-overlay openen\"] }, \"Open time picker\": { \"v\": [\"Tijdkiezer openen\"] }, \"Open years overlay\": { \"v\": [\"Jaren-overlay openen\"] }, \"Pick\": { \"v\": [\"Kiezen\"] }, \"Previous month\": { \"v\": [\"Vorige maand\"] }, \"Previous year\": { \"v\": [\"Vorig jaar\"] }, \"Select date\": { \"v\": [\"Selecteer datum\"] }, \"Select date and time\": { \"v\": [\"Selecteer datum en tijd\"] }, \"Select month\": { \"v\": [\"Selecteer maand\"] }, \"Select time\": { \"v\": [\"Selecteer tijd\"] }, \"Select time range\": { \"v\": [\"Selecteer tijdsbereik\"] }, \"Select week\": { \"v\": [\"Selecteer week\"] }, \"Select year\": { \"v\": [\"Selecteer jaar\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM-modus wisselen\"] }, \"Time picker\": { \"v\": [\"Tijdkiezer\"] }, \"Time zone\": { \"v\": [\"Tijdzone\"] }, \"Toggle overlay\": { \"v\": [\"Overlay wisselen\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Jaarkiezer\"] }, \"Year picker overlay\": { \"v\": [\"Jaarkiezer-overlay\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar Seletor de tempo\"] }, \"Datepicker input\": { \"v\": [\"entrada do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de meses\"] }, \"Month picker overlay\": { \"v\": [\"Sobreposição do seletor de meses\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir sobreposição de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir sobreposição de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir sobreposição de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir sobreposição de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de tempo\"] }, \"Open years overlay\": { \"v\": [\"Abrir sobreposição de anos\"] }, \"Pick\": { \"v\": [\"Escolher\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecione data\"] }, \"Select date and time\": { \"v\": [\"Selecione data e hora\"] }, \"Select month\": { \"v\": [\"Selecione mês\"] }, \"Select time\": { \"v\": [\"Selecione hora\"] }, \"Select time range\": { \"v\": [\"Selecione intervalo de tempo\"] }, \"Select week\": { \"v\": [\"Selecione semana\"] }, \"Select year\": { \"v\": [\"Selecione ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de tempo\"] }, \"Time zone\": { \"v\": [\"Fuso horário\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Sobreposição do seletor de ano\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Calendar icon\": { \"v\": [\"Ícone de calendário\"] }, \"Cancel\": { \"v\": [\"Cancelar\"] }, \"Clear value\": { \"v\": [\"Limpar valor\"] }, \"Close time Picker\": { \"v\": [\"Fechar seletor de hora\"] }, \"Datepicker input\": { \"v\": [\"Campo do seletor de data\"] }, \"Datepicker menu\": { \"v\": [\"Menu do seletor de data\"] }, \"Decrement hours\": { \"v\": [\"Diminuir horas\"] }, \"Decrement minutes\": { \"v\": [\"Diminuir minutos\"] }, \"Decrement seconds\": { \"v\": [\"Diminuir segundos\"] }, \"Increment hours\": { \"v\": [\"Aumentar horas\"] }, \"Increment minutes\": { \"v\": [\"Aumentar minutos\"] }, \"Increment seconds\": { \"v\": [\"Aumentar segundos\"] }, \"Month picker\": { \"v\": [\"Seletor de mês\"] }, \"Month picker overlay\": { \"v\": [\"Janela do seletor de mês\"] }, \"Next month\": { \"v\": [\"Próximo mês\"] }, \"Next year\": { \"v\": [\"Próximo ano\"] }, \"Now\": { \"v\": [\"Agora\"] }, \"Open hours overlay\": { \"v\": [\"Abrir janela de horas\"] }, \"Open minutes overlay\": { \"v\": [\"Abrir janela de minutos\"] }, \"Open months overlay\": { \"v\": [\"Abrir janela de meses\"] }, \"Open seconds overlay\": { \"v\": [\"Abrir janela de segundos\"] }, \"Open time picker\": { \"v\": [\"Abrir seletor de hora\"] }, \"Open years overlay\": { \"v\": [\"Abrir janela de anos\"] }, \"Pick\": { \"v\": [\"Selecionar\"] }, \"Previous month\": { \"v\": [\"Mês anterior\"] }, \"Previous year\": { \"v\": [\"Ano anterior\"] }, \"Select date\": { \"v\": [\"Selecionar data\"] }, \"Select date and time\": { \"v\": [\"Selecionar data e hora\"] }, \"Select month\": { \"v\": [\"Selecionar mês\"] }, \"Select time\": { \"v\": [\"Selecionar hora\"] }, \"Select time range\": { \"v\": [\"Selecionar intervalo de horas\"] }, \"Select week\": { \"v\": [\"Selecionar semana\"] }, \"Select year\": { \"v\": [\"Selecionar ano\"] }, \"Switch AM/PM mode\": { \"v\": [\"Alternar modo AM/PM\"] }, \"Time picker\": { \"v\": [\"Seletor de hora\"] }, \"Toggle overlay\": { \"v\": [\"Alternar sobreposição\"] }, \"W\": { \"v\": [\"S\"] }, \"Year picker\": { \"v\": [\"Seletor de ano\"] }, \"Year picker overlay\": { \"v\": [\"Janela do seletor de ano\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Отмена\"] }, \"Clear value\": { \"v\": [\"Очистить значение\"] }, \"Close time Picker\": { \"v\": [\"Закрыть выбор времени\"] }, \"Datepicker input\": { \"v\": [\"Поле выбора даты\"] }, \"Datepicker menu\": { \"v\": [\"Меню выбора даты\"] }, \"Decrement hours\": { \"v\": [\"Уменьшить количество часов\"] }, \"Decrement minutes\": { \"v\": [\"Уменьшить количество минут\"] }, \"Decrement seconds\": { \"v\": [\"Уменьшить количество секунд\"] }, \"Increment hours\": { \"v\": [\"Увеличить количество часов\"] }, \"Increment minutes\": { \"v\": [\"Увеличить количество минут\"] }, \"Increment seconds\": { \"v\": [\"Увеличить количество секунд\"] }, \"Month picker\": { \"v\": [\"Выбор месяца\"] }, \"Month picker overlay\": { \"v\": [\"Окно выбора месяца\"] }, \"Next month\": { \"v\": [\"Следующий месяц\"] }, \"Next year\": { \"v\": [\"Следующий год\"] }, \"Now\": { \"v\": [\"Сейчас\"] }, \"Open hours overlay\": { \"v\": [\"Открыть окно выбора часов\"] }, \"Open minutes overlay\": { \"v\": [\"Открыть окно выбора минут\"] }, \"Open months overlay\": { \"v\": [\"Открыть окно выбора месяца\"] }, \"Open seconds overlay\": { \"v\": [\"Открыть окно выбора секунд\"] }, \"Open time picker\": { \"v\": [\"Открыть средство выбора времени\"] }, \"Open years overlay\": { \"v\": [\"Открыть окно выбора года\"] }, \"Pick\": { \"v\": [\"Выбор\"] }, \"Previous month\": { \"v\": [\"Предыдущий месяц\"] }, \"Previous year\": { \"v\": [\"Предыдущий год\"] }, \"Select date\": { \"v\": [\"Выбрать дату\"] }, \"Select date and time\": { \"v\": [\"Выбрать дату и время\"] }, \"Select month\": { \"v\": [\"Выбрать месяц\"] }, \"Select time\": { \"v\": [\"Выбрать время\"] }, \"Select time range\": { \"v\": [\"Выбрать временной диапазон\"] }, \"Select week\": { \"v\": [\"Выбрать неделю\"] }, \"Select year\": { \"v\": [\"Выбрать год\"] }, \"Switch AM/PM mode\": { \"v\": [\"Переключение режима AM/PM\"] }, \"Time picker\": { \"v\": [\"Выбор времени\"] }, \"Time zone\": { \"v\": [\"Часовой пояс\"] }, \"Toggle overlay\": { \"v\": [\"Переключить панель\"] }, \"W\": { \"v\": [\"Н\"] }, \"Year picker\": { \"v\": [\"Выбор года\"] }, \"Year picker overlay\": { \"v\": [\"Окно выбора года\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Calendar icon\": { \"v\": [\"Икона календара\"] }, \"Cancel\": { \"v\": [\"Откажи\"] }, \"Clear value\": { \"v\": [\"Обриши вредност\"] }, \"Close time Picker\": { \"v\": [\"Затвори бирач времена\"] }, \"Datepicker input\": { \"v\": [\"Улаз бирача датума\"] }, \"Datepicker menu\": { \"v\": [\"Мени бирача датума\"] }, \"Decrement hours\": { \"v\": [\"Умањи сате\"] }, \"Decrement minutes\": { \"v\": [\"Умањи минуте\"] }, \"Decrement seconds\": { \"v\": [\"Умањи секунде\"] }, \"Increment hours\": { \"v\": [\"Увећај сате\"] }, \"Increment minutes\": { \"v\": [\"Увећај минуте\"] }, \"Increment seconds\": { \"v\": [\"Увећај секунде\"] }, \"Month picker\": { \"v\": [\"Бирач месеца\"] }, \"Month picker overlay\": { \"v\": [\"Маска бирача месеца\"] }, \"Next month\": { \"v\": [\"Наредни месец\"] }, \"Next year\": { \"v\": [\"Наредна година\"] }, \"Now\": { \"v\": [\"Сада\"] }, \"Open hours overlay\": { \"v\": [\"Отвори маску сати\"] }, \"Open minutes overlay\": { \"v\": [\"Отвори маску минута\"] }, \"Open months overlay\": { \"v\": [\"Отвори маску месеци\"] }, \"Open seconds overlay\": { \"v\": [\"Отвори маску секунди\"] }, \"Open time picker\": { \"v\": [\"Отвори бирач времена\"] }, \"Open years overlay\": { \"v\": [\"Отвори маску година\"] }, \"Pick\": { \"v\": [\"Изабери\"] }, \"Previous month\": { \"v\": [\"Претходни месец\"] }, \"Previous year\": { \"v\": [\"Претходна година\"] }, \"Select date\": { \"v\": [\"Изаберите датум\"] }, \"Select date and time\": { \"v\": [\"Изаберите датум и време\"] }, \"Select month\": { \"v\": [\"Изаберите месец\"] }, \"Select time\": { \"v\": [\"Изаберите време\"] }, \"Select time range\": { \"v\": [\"Изаберите опсег времена\"] }, \"Select week\": { \"v\": [\"Изаберите недељу\"] }, \"Select year\": { \"v\": [\"Изаберите годину\"] }, \"Switch AM/PM mode\": { \"v\": [\"Укљ./Искљ. AM/PM режим\"] }, \"Time picker\": { \"v\": [\"Бирач времена\"] }, \"Toggle overlay\": { \"v\": [\"Укљ./Искљ. маску\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Бирач године\"] }, \"Year picker overlay\": { \"v\": [\"Маска бирача године\"] } } }, { \"l\": \"sv\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalenderikon\"] }, \"Cancel\": { \"v\": [\"Avbryt\"] }, \"Clear value\": { \"v\": [\"Rensa värde\"] }, \"Close time Picker\": { \"v\": [\"Stäng tidsväljaren\"] }, \"Datepicker input\": { \"v\": [\"Inmatning för datumväljare\"] }, \"Datepicker menu\": { \"v\": [\"Datumväljarmeny\"] }, \"Decrement hours\": { \"v\": [\"Minska timmar\"] }, \"Decrement minutes\": { \"v\": [\"Minska minuter\"] }, \"Decrement seconds\": { \"v\": [\"Minska sekunder\"] }, \"Increment hours\": { \"v\": [\"Öka timmar\"] }, \"Increment minutes\": { \"v\": [\"Öka minuter\"] }, \"Increment seconds\": { \"v\": [\"Öka sekunder\"] }, \"Month picker\": { \"v\": [\"Månadsväljare\"] }, \"Month picker overlay\": { \"v\": [\"Månadsväljarens panel\"] }, \"Next month\": { \"v\": [\"Nästa månad\"] }, \"Next year\": { \"v\": [\"Nästa år\"] }, \"Now\": { \"v\": [\"Nu\"] }, \"Open hours overlay\": { \"v\": [\"Öppna timmespanel\"] }, \"Open minutes overlay\": { \"v\": [\"Öppna minutpanel\"] }, \"Open months overlay\": { \"v\": [\"Öppna månadspanel\"] }, \"Open seconds overlay\": { \"v\": [\"Öppna sekundpanel\"] }, \"Open time picker\": { \"v\": [\"Öppna tidsväljaren\"] }, \"Open years overlay\": { \"v\": [\"Öppna årspanel\"] }, \"Pick\": { \"v\": [\"Välj\"] }, \"Previous month\": { \"v\": [\"Föregående månad\"] }, \"Previous year\": { \"v\": [\"Föregående år\"] }, \"Select date\": { \"v\": [\"Välj datum\"] }, \"Select date and time\": { \"v\": [\"Välj datum och tid\"] }, \"Select month\": { \"v\": [\"Välj månad\"] }, \"Select time\": { \"v\": [\"Välj tid\"] }, \"Select time range\": { \"v\": [\"Välj tidsintervall\"] }, \"Select week\": { \"v\": [\"Välj vecka\"] }, \"Select year\": { \"v\": [\"Välj år\"] }, \"Switch AM/PM mode\": { \"v\": [\"Växla mellan AM/PM-läge\"] }, \"Time picker\": { \"v\": [\"Tidsväljare\"] }, \"Time zone\": { \"v\": [\"Tidszon\"] }, \"Toggle overlay\": { \"v\": [\"Växla panel\"] }, \"W\": { \"v\": [\"V\"] }, \"Year picker\": { \"v\": [\"Årsväljare\"] }, \"Year picker overlay\": { \"v\": [\"Årsväljarens panel\"] } } }, { \"l\": \"tr\", \"t\": { \"Calendar icon\": { \"v\": [\"Takvim simgesi\"] }, \"Cancel\": { \"v\": [\"İptal\"] }, \"Clear value\": { \"v\": [\"Değeri temizle\"] }, \"Close time Picker\": { \"v\": [\"Zaman seçiciyi kapat\"] }, \"Datepicker input\": { \"v\": [\"Tarih seçici girişi\"] }, \"Datepicker menu\": { \"v\": [\"Tarih seçici menüsü\"] }, \"Decrement hours\": { \"v\": [\"Azalma saati\"] }, \"Decrement minutes\": { \"v\": [\"Azalma dakikası\"] }, \"Decrement seconds\": { \"v\": [\"Azalma saniyesi\"] }, \"Increment hours\": { \"v\": [\"Artma saati\"] }, \"Increment minutes\": { \"v\": [\"Artma dakikası\"] }, \"Increment seconds\": { \"v\": [\"Artma saniyesi\"] }, \"Month picker\": { \"v\": [\"Ay seçici\"] }, \"Month picker overlay\": { \"v\": [\"Ay seçici kaplaması\"] }, \"Next month\": { \"v\": [\"Sonraki ay\"] }, \"Next year\": { \"v\": [\"Sonraki yıl\"] }, \"Now\": { \"v\": [\"Şimdi\"] }, \"Open hours overlay\": { \"v\": [\"Açık saatler kaplaması\"] }, \"Open minutes overlay\": { \"v\": [\"Dakika kaplamasını aç\"] }, \"Open months overlay\": { \"v\": [\"Ay kaplamasını aç\"] }, \"Open seconds overlay\": { \"v\": [\"Saniye kaplamasını aç\"] }, \"Open time picker\": { \"v\": [\"Saat seçiciyi aç\"] }, \"Open years overlay\": { \"v\": [\"Yıl kaplamasını aç\"] }, \"Pick\": { \"v\": [\"Seçin\"] }, \"Previous month\": { \"v\": [\"Önceki ay\"] }, \"Previous year\": { \"v\": [\"Önceki yıl\"] }, \"Select date\": { \"v\": [\"Tarih seçin\"] }, \"Select date and time\": { \"v\": [\"Tarih ve saat seçin\"] }, \"Select month\": { \"v\": [\"Ay seçin\"] }, \"Select time\": { \"v\": [\"Saat seçin\"] }, \"Select time range\": { \"v\": [\"Saat aralığı seçin\"] }, \"Select week\": { \"v\": [\"Hafta seçin\"] }, \"Select year\": { \"v\": [\"Yıl seçin\"] }, \"Switch AM/PM mode\": { \"v\": [\"ÖÖ/ÖS kipine geç\"] }, \"Time picker\": { \"v\": [\"Saat seçici\"] }, \"Time zone\": { \"v\": [\"Saat dilimi\"] }, \"Toggle overlay\": { \"v\": [\"Kaplamayı aç/kapat\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yıl seçici\"] }, \"Year picker overlay\": { \"v\": [\"Yıl seçici kaplaması\"] } } }, { \"l\": \"uk\", \"t\": { \"Calendar icon\": { \"v\": [\"Значок календаря\"] }, \"Cancel\": { \"v\": [\"Скасувати\"] }, \"Clear value\": { \"v\": [\"Очистити значення\"] }, \"Close time Picker\": { \"v\": [\"Закрити вибір часу\"] }, \"Datepicker input\": { \"v\": [\"Вибір дати\"] }, \"Datepicker menu\": { \"v\": [\"Меню вибору дати\"] }, \"Decrement hours\": { \"v\": [\"Зменшення годин\"] }, \"Decrement minutes\": { \"v\": [\"Зменшення хвилин\"] }, \"Decrement seconds\": { \"v\": [\"Зменшення секунд\"] }, \"Increment hours\": { \"v\": [\"Збільшення годин\"] }, \"Increment minutes\": { \"v\": [\"Збільшення хвилин\"] }, \"Increment seconds\": { \"v\": [\"Збільшення секунд\"] }, \"Month picker\": { \"v\": [\"Вибір місяця\"] }, \"Month picker overlay\": { \"v\": [\"Напис вибору місяця\"] }, \"Next month\": { \"v\": [\"Наступний місяць\"] }, \"Next year\": { \"v\": [\"Наступний рік\"] }, \"Now\": { \"v\": [\"Зараз\"] }, \"Open hours overlay\": { \"v\": [\"Відкрити напис годин\"] }, \"Open minutes overlay\": { \"v\": [\"Відкрити напис хвилин\"] }, \"Open months overlay\": { \"v\": [\"Відкрити напис місяців\"] }, \"Open seconds overlay\": { \"v\": [\"Відкрити напис секунд\"] }, \"Open time picker\": { \"v\": [\"Відкрити вибір часу\"] }, \"Open years overlay\": { \"v\": [\"Відкрити напис років\"] }, \"Pick\": { \"v\": [\"Вибрати\"] }, \"Previous month\": { \"v\": [\"Попередній місяць\"] }, \"Previous year\": { \"v\": [\"Попередній рік\"] }, \"Select date\": { \"v\": [\"Вибрати дату\"] }, \"Select date and time\": { \"v\": [\"Вибрати дату та час\"] }, \"Select month\": { \"v\": [\"Вибрати місяць\"] }, \"Select time\": { \"v\": [\"Вибрати час\"] }, \"Select time range\": { \"v\": [\"Вибрати проміжок часу\"] }, \"Select week\": { \"v\": [\"Вибрати тиждень\"] }, \"Select year\": { \"v\": [\"Вибрати рік\"] }, \"Switch AM/PM mode\": { \"v\": [\"Перемкнути показ по полудні/до полудня\"] }, \"Time picker\": { \"v\": [\"Вибір часу\"] }, \"Toggle overlay\": { \"v\": [\"Перемкнути напис\"] }, \"W\": { \"v\": [\"Тиж.\"] }, \"Year picker\": { \"v\": [\"Вибір року\"] }, \"Year picker overlay\": { \"v\": [\"Напис вибору року\"] } } }, { \"l\": \"uz\", \"t\": { \"Calendar icon\": { \"v\": [\"Kalendar belgisi\"] }, \"Cancel\": { \"v\": [\"Bekor qilish\"] }, \"Clear value\": { \"v\": [\"Qiymatni tozalash\"] }, \"Close time Picker\": { \"v\": [\"Vaqtni tanlash vositasini yopish\"] }, \"Datepicker input\": { \"v\": [\"Sana tanlash vositasi kiritish\"] }, \"Datepicker menu\": { \"v\": [\"Sana tanlash menyusi\"] }, \"Decrement hours\": { \"v\": [\"Ish vaqtini qisqartirish\"] }, \"Decrement minutes\": { \"v\": [\"Daqiqalarni kamaytirish\"] }, \"Decrement seconds\": { \"v\": [\"Soniyalarni kamaytirish\"] }, \"Increment hours\": { \"v\": [\"Ish soatlarini oshirish\"] }, \"Increment minutes\": { \"v\": [\"Daqiqalarni oshiring\"] }, \"Increment seconds\": { \"v\": [\"Soniyalarni ko'paytirish\"] }, \"Month picker\": { \"v\": [\"Oyni tanlovchi\"] }, \"Month picker overlay\": { \"v\": [\"Oyni tanlash vositasi qoplamasi\"] }, \"Next month\": { \"v\": [\"Keyingi oy\"] }, \"Next year\": { \"v\": [\"Keyingi yil\"] }, \"Now\": { \"v\": [\"Hozir\"] }, \"Open hours overlay\": { \"v\": [\"Ochiq ish soatlari\"] }, \"Open minutes overlay\": { \"v\": [\"Ochiq daqiqalar qoplamasi\"] }, \"Open months overlay\": { \"v\": [\"Ochiq oylik qoplama\"] }, \"Open seconds overlay\": { \"v\": [\"Ochiq soniyalar qoplamasi\"] }, \"Open time picker\": { \"v\": [\"Vaqt tanlagichni ochish\"] }, \"Open years overlay\": { \"v\": [\"Yillar qoplamasini ochish\"] }, \"Pick\": { \"v\": [\"Tanlash\"] }, \"Previous month\": { \"v\": [\"Oldingi oy\"] }, \"Previous year\": { \"v\": [\"O'tgan yil\"] }, \"Select date\": { \"v\": [\"Sana tanlang\"] }, \"Select date and time\": { \"v\": [\"Sana va vaqtni tanlang\"] }, \"Select month\": { \"v\": [\"Oyni tanlang\"] }, \"Select time\": { \"v\": [\"Oyni tanlang\"] }, \"Select time range\": { \"v\": [\"Vaqt oralig'ini tanlang\"] }, \"Select week\": { \"v\": [\"Haftani tanlang\"] }, \"Select year\": { \"v\": [\"Yilni tanlang\"] }, \"Switch AM/PM mode\": { \"v\": [\"AM/PM rejimini almashtiring\"] }, \"Time picker\": { \"v\": [\"Vaqtni tanlovchi\"] }, \"Time zone\": { \"v\": [\"Vaqt mintaqasi\"] }, \"Toggle overlay\": { \"v\": [\"Qoplamani almashtirish\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"Yilni tanlovchi\"] }, \"Year picker overlay\": { \"v\": [\"Yilni tanlash vositasi\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"週\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Calendar icon\": { \"v\": [\"行事曆圖示\"] }, \"Cancel\": { \"v\": [\"取消\"] }, \"Clear value\": { \"v\": [\"清除值\"] }, \"Close time Picker\": { \"v\": [\"關閉時間挑選器\"] }, \"Datepicker input\": { \"v\": [\"日期挑選器輸入\"] }, \"Datepicker menu\": { \"v\": [\"日期挑選器選單\"] }, \"Decrement hours\": { \"v\": [\"小時遞減\"] }, \"Decrement minutes\": { \"v\": [\"分鐘遞減\"] }, \"Decrement seconds\": { \"v\": [\"秒遞減\"] }, \"Increment hours\": { \"v\": [\"小時遞增\"] }, \"Increment minutes\": { \"v\": [\"分鐘遞增\"] }, \"Increment seconds\": { \"v\": [\"秒遞增\"] }, \"Month picker\": { \"v\": [\"月挑選器\"] }, \"Month picker overlay\": { \"v\": [\"月挑選器覆蓋層\"] }, \"Next month\": { \"v\": [\"下個月\"] }, \"Next year\": { \"v\": [\"明年\"] }, \"Now\": { \"v\": [\"現在\"] }, \"Open hours overlay\": { \"v\": [\"開啟小時覆蓋層\"] }, \"Open minutes overlay\": { \"v\": [\"開啟分鐘覆蓋層\"] }, \"Open months overlay\": { \"v\": [\"開啟月覆蓋層\"] }, \"Open seconds overlay\": { \"v\": [\"開啟秒覆蓋層\"] }, \"Open time picker\": { \"v\": [\"開啟時間挑選器\"] }, \"Open years overlay\": { \"v\": [\"開啟年覆蓋層\"] }, \"Pick\": { \"v\": [\"挑選\"] }, \"Previous month\": { \"v\": [\"上個月\"] }, \"Previous year\": { \"v\": [\"去年\"] }, \"Select date\": { \"v\": [\"選取日期\"] }, \"Select date and time\": { \"v\": [\"選取日期與時間\"] }, \"Select month\": { \"v\": [\"選取月\"] }, \"Select time\": { \"v\": [\"選取時間\"] }, \"Select time range\": { \"v\": [\"選取時間範圍\"] }, \"Select week\": { \"v\": [\"選取週\"] }, \"Select year\": { \"v\": [\"選取年\"] }, \"Switch AM/PM mode\": { \"v\": [\"切換上午/下午模式\"] }, \"Time picker\": { \"v\": [\"時間挑選器\"] }, \"Time zone\": { \"v\": [\"時區\"] }, \"Toggle overlay\": { \"v\": [\"切換覆蓋層\"] }, \"W\": { \"v\": [\"W\"] }, \"Year picker\": { \"v\": [\"年挑選器\"] }, \"Year picker overlay\": { \"v\": [\"年挑選器覆蓋層\"] } } }];\nconst t14 = [{ \"l\": \"ar\", \"t\": { \"Cancel changes\": { \"v\": [\"إلغاء التغييرات\"] }, \"Confirm changes\": { \"v\": [\"تأكيد التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Cancel changes\": { \"v\": [\"Encaboxar los cambeos\"] }, \"Confirm changes\": { \"v\": [\"Confirmar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel·la els canvis\"] }, \"Confirm changes\": { \"v\": [\"Confirmeu els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušit změny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuller ændringer\"] }, \"Confirm changes\": { \"v\": [\"Bekræft ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Cancel changes\": { \"v\": [\"Änderungen verwerfen\"] }, \"Confirm changes\": { \"v\": [\"Änderungen bestätigen\"] } } }, { \"l\": \"el\", \"t\": { \"Cancel changes\": { \"v\": [\"Ακύρωση αλλαγών\"] }, \"Confirm changes\": { \"v\": [\"Επιβεβαίωση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancel changes\"] }, \"Confirm changes\": { \"v\": [\"Confirm changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirmar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Cancel changes\": { \"v\": [\"Tühista muudatused\"] }, \"Confirm changes\": { \"v\": [\"Kinnita muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Cancel changes\": { \"v\": [\"Ezeztatu aldaketak\"] }, \"Confirm changes\": { \"v\": [\"Baieztatu aldaketak\"] } } }, { \"l\": \"fa\", \"t\": { \"Cancel changes\": { \"v\": [\"لغو تغییرات\"] }, \"Confirm changes\": { \"v\": [\"تایید تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Cancel changes\": { \"v\": [\"Peruuta muutokset\"] }, \"Confirm changes\": { \"v\": [\"Vahvista muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Cancel changes\": { \"v\": [\"Annuler les modifications\"] }, \"Confirm changes\": { \"v\": [\"Confirmer les modifications\"] } } }, { \"l\": \"ga\", \"t\": { \"Cancel changes\": { \"v\": [\"Cealaigh athruithe\"] }, \"Confirm changes\": { \"v\": [\"Deimhnigh na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar os cambios\"] }, \"Confirm changes\": { \"v\": [\"Confirma os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Cancel changes\": { \"v\": [\"ביטול שינויים\"] }, \"Confirm changes\": { \"v\": [\"אישור השינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Cancel changes\": { \"v\": [\"Otkaži promjene\"] }, \"Confirm changes\": { \"v\": [\"Potvrdi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Cancel changes\": { \"v\": [\"Változtatások elvetése\"] }, \"Confirm changes\": { \"v\": [\"Változtatások megerősítése\"] } } }, { \"l\": \"id\", \"t\": { \"Cancel changes\": { \"v\": [\"Batalkan perubahan\"] }, \"Confirm changes\": { \"v\": [\"Konfirmasikan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Cancel changes\": { \"v\": [\"Hætta við breytingar\"] }, \"Confirm changes\": { \"v\": [\"Staðfesta breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Cancel changes\": { \"v\": [\"Annulla modifiche\"] }, \"Confirm changes\": { \"v\": [\"Conferma modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Cancel changes\": { \"v\": [\"変更をキャンセル\"] }, \"Confirm changes\": { \"v\": [\"変更を承認\"] } } }, { \"l\": \"ko\", \"t\": { \"Cancel changes\": { \"v\": [\"변경 취소\"] }, \"Confirm changes\": { \"v\": [\"변경 사항 확인\"] } } }, { \"l\": \"lo\", \"t\": { \"Cancel changes\": { \"v\": [\"ຍົກເລີກການປ່ຽນແປງ\"] }, \"Confirm changes\": { \"v\": [\"ຢືນຢັນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Cancel changes\": { \"v\": [\"Atsisakyti pakeitimų\"] }, \"Confirm changes\": { \"v\": [\"Patvirtinti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи ги промените\"] }, \"Confirm changes\": { \"v\": [\"Потврди ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Cancel changes\": { \"v\": [\"Өөрчлөлтийг цуцлах\"] }, \"Confirm changes\": { \"v\": [\"Өөрчлөлтийг баталгаажуулах\"] } } }, { \"l\": \"my\", \"t\": { \"Cancel changes\": { \"v\": [\"ပြောင်းလဲမှုများ ပယ်ဖျက်ရန်\"] }, \"Confirm changes\": { \"v\": [\"ပြောင်းလဲမှုများ အတည်ပြုရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt endringer\"] }, \"Confirm changes\": { \"v\": [\"Bekreft endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Cancel changes\": { \"v\": [\"Wijzigingen annuleren\"] }, \"Confirm changes\": { \"v\": [\"Wijzigingen bevestigen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Cancel changes\": { \"v\": [\"Anuluj zmiany\"] }, \"Confirm changes\": { \"v\": [\"Potwierdź zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Cancel changes\": { \"v\": [\"Cancelar alterações\"] }, \"Confirm changes\": { \"v\": [\"Confirmar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Cancel changes\": { \"v\": [\"Anulează modificările\"] }, \"Confirm changes\": { \"v\": [\"Confirmați modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Cancel changes\": { \"v\": [\"Отменить изменения\"] }, \"Confirm changes\": { \"v\": [\"Подтвердить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Cancel changes\": { \"v\": [\"Zrušiť zmeny\"] }, \"Confirm changes\": { \"v\": [\"Potvrdiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Cancel changes\": { \"v\": [\"Prekliči spremembe\"] }, \"Confirm changes\": { \"v\": [\"Potrdi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Cancel changes\": { \"v\": [\"Откажи измене\"] }, \"Confirm changes\": { \"v\": [\"Потврдите измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Cancel changes\": { \"v\": [\"Avbryt ändringar\"] }, \"Confirm changes\": { \"v\": [\"Bekräfta ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Cancel changes\": { \"v\": [\"Değişiklikleri iptal et\"] }, \"Confirm changes\": { \"v\": [\"Değişiklikleri onayla\"] } } }, { \"l\": \"uk\", \"t\": { \"Cancel changes\": { \"v\": [\"Скасувати зміни\"] }, \"Confirm changes\": { \"v\": [\"Підтвердити зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Cancel changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] }, \"Confirm changes\": { \"v\": [\"O'zgarishlarni tasdiqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"确认更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Cancel changes\": { \"v\": [\"取消更改\"] }, \"Confirm changes\": { \"v\": [\"確認更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Cancel changes\": { \"v\": [\"取消變更\"] }, \"Confirm changes\": { \"v\": [\"確認變更\"] } } }];\nconst t15 = [{ \"l\": \"ar\", \"t\": { \"Change name\": { \"v\": [\"تغيير الاسم\"] }, \"Close sidebar\": { \"v\": [\"قفل الشريط الجانبي\"] }, \"Favorite\": { \"v\": [\"المفضلة\"] }, \"Open sidebar\": { \"v\": [\"إفتَح الشريط الجانبي\"] } } }, { \"l\": \"ast\", \"t\": { \"Change name\": { \"v\": [\"Camudar el nome\"] }, \"Close sidebar\": { \"v\": [\"Zarrar la barra llateral\"] }, \"Favorite\": { \"v\": [\"Favoritu\"] }, \"Open sidebar\": { \"v\": [\"Abrir la barra llateral\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close sidebar\": { \"v\": [\"Tancar la barra lateral\"] }, \"Favorite\": { \"v\": [\"Preferit\"] } } }, { \"l\": \"cs\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] }, \"Open sidebar\": { \"v\": [\"Otevřít postranní panel\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Change name\": { \"v\": [\"Změnit název\"] }, \"Close sidebar\": { \"v\": [\"Zavřít postranní panel\"] }, \"Favorite\": { \"v\": [\"Oblíbené\"] } } }, { \"l\": \"da\", \"t\": { \"Change name\": { \"v\": [\"Ændre navn\"] }, \"Close sidebar\": { \"v\": [\"Luk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Åbn sidepanel\"] } } }, { \"l\": \"de\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Change name\": { \"v\": [\"Namen ändern\"] }, \"Close sidebar\": { \"v\": [\"Seitenleiste schließen\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Seitenleiste öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Change name\": { \"v\": [\"Αλλαγή ονόματος\"] }, \"Close sidebar\": { \"v\": [\"Κλείσιμο πλευρικής μπάρας\"] }, \"Favorite\": { \"v\": [\"Αγαπημένα\"] }, \"Open sidebar\": { \"v\": [\"Άνοιγμα πλευρικής μπάρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Change name\": { \"v\": [\"Change name\"] }, \"Close sidebar\": { \"v\": [\"Close sidebar\"] }, \"Favorite\": { \"v\": [\"Favourite\"] }, \"Open sidebar\": { \"v\": [\"Open sidebar\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Change name\": { \"v\": [\"Cambiar nombre\"] }, \"Close sidebar\": { \"v\": [\"Cerrar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Change name\": { \"v\": [\"Muuda nime\"] }, \"Close sidebar\": { \"v\": [\"Sulge külgriba\"] }, \"Favorite\": { \"v\": [\"Lemmik\"] }, \"Open sidebar\": { \"v\": [\"Ava külgriba\"] } } }, { \"l\": \"eu\", \"t\": { \"Change name\": { \"v\": [\"Aldatu izena\"] }, \"Close sidebar\": { \"v\": [\"Itxi albo-barra\"] }, \"Favorite\": { \"v\": [\"Gogokoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Change name\": { \"v\": [\"تغییر نام\"] }, \"Close sidebar\": { \"v\": [\"بستن نوار کناری\"] }, \"Favorite\": { \"v\": [\"مورد علاقه\"] }, \"Open sidebar\": { \"v\": [\"باز کردن نوار کنار\"] } } }, { \"l\": \"fi\", \"t\": { \"Change name\": { \"v\": [\"Vaihda nimi\"] }, \"Close sidebar\": { \"v\": [\"Sulje sivupalkki\"] }, \"Favorite\": { \"v\": [\"Suosikki\"] }, \"Open sidebar\": { \"v\": [\"Avaa sivupalkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Change name\": { \"v\": [\"Modifier le nom\"] }, \"Close sidebar\": { \"v\": [\"Fermer la barre latérale\"] }, \"Favorite\": { \"v\": [\"Favori\"] }, \"Open sidebar\": { \"v\": [\"Ouvrir la barre latérale\"] } } }, { \"l\": \"ga\", \"t\": { \"Change name\": { \"v\": [\"Athrú ainm\"] }, \"Close sidebar\": { \"v\": [\"Dún barra taoibh\"] }, \"Favorite\": { \"v\": [\"is fearr leat\"] }, \"Open sidebar\": { \"v\": [\"Oscail barra taoibh\"] } } }, { \"l\": \"gl\", \"t\": { \"Change name\": { \"v\": [\"Cambiar o nome\"] }, \"Close sidebar\": { \"v\": [\"Pechar a barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir a barra lateral\"] } } }, { \"l\": \"he\", \"t\": { \"Change name\": { \"v\": [\"החלפת שם\"] }, \"Close sidebar\": { \"v\": [\"סגירת סרגל הצד\"] }, \"Favorite\": { \"v\": [\"למועדפים\"] } } }, { \"l\": \"hr\", \"t\": { \"Change name\": { \"v\": [\"Promjeni naziv\"] }, \"Close sidebar\": { \"v\": [\"Zatvori bočnu traku\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Otvori bočnu traku\"] } } }, { \"l\": \"hu\", \"t\": { \"Change name\": { \"v\": [\"Név módosítása\"] }, \"Close sidebar\": { \"v\": [\"Oldalsáv bezárása\"] }, \"Favorite\": { \"v\": [\"Kedvenc\"] }, \"Open sidebar\": { \"v\": [\"Oldalsáv megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Change name\": { \"v\": [\"Ubah nama\"] }, \"Close sidebar\": { \"v\": [\"Tutup bilah sisi\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Buka bilah sisi\"] } } }, { \"l\": \"is\", \"t\": { \"Change name\": { \"v\": [\"Breyta nafni\"] }, \"Close sidebar\": { \"v\": [\"Loka hliðarstiku\"] }, \"Favorite\": { \"v\": [\"Eftirlæti\"] }, \"Open sidebar\": { \"v\": [\"Opna hliðarspjald\"] } } }, { \"l\": \"it\", \"t\": { \"Change name\": { \"v\": [\"Cambia nome\"] }, \"Close sidebar\": { \"v\": [\"Chiudi la barra laterale\"] }, \"Favorite\": { \"v\": [\"Preferito\"] } } }, { \"l\": \"ja\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Change name\": { \"v\": [\"名前の変更\"] }, \"Close sidebar\": { \"v\": [\"サイドバーを閉じる\"] }, \"Favorite\": { \"v\": [\"お気に入り\"] }, \"Open sidebar\": { \"v\": [\"サイドバーを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Change name\": { \"v\": [\"이름 변경\"] }, \"Close sidebar\": { \"v\": [\"사이드바 닫기\"] }, \"Favorite\": { \"v\": [\"즐겨찾기\"] }, \"Open sidebar\": { \"v\": [\"사이드바 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Change name\": { \"v\": [\"ປ່ຽນຊື່\"] }, \"Close sidebar\": { \"v\": [\"ປິດແຖບດ້ານຂ້າງ\"] }, \"Favorite\": { \"v\": [\"ລາຍການທີ່ມັກ\"] }, \"Open sidebar\": { \"v\": [\"ເປີດແຖບດ້ານຂ້າງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Change name\": { \"v\": [\"Pakeisti vardą\"] }, \"Close sidebar\": { \"v\": [\"Užverti šoninę juostą\"] }, \"Favorite\": { \"v\": [\"Mėgstamiausias\"] }, \"Open sidebar\": { \"v\": [\"Atverti šoninę juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Change name\": { \"v\": [\"Промени име\"] }, \"Close sidebar\": { \"v\": [\"Затвори странична лента\"] }, \"Favorite\": { \"v\": [\"Фаворити\"] }, \"Open sidebar\": { \"v\": [\"Отвори странична лента\"] } } }, { \"l\": \"mn\", \"t\": { \"Change name\": { \"v\": [\"Нэр солих\"] }, \"Close sidebar\": { \"v\": [\"Хажуугийн самбарыг хаах\"] }, \"Favorite\": { \"v\": [\"Дуртай\"] }, \"Open sidebar\": { \"v\": [\"Хажуугийн самбарыг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Change name\": { \"v\": [\"Endre navn\"] }, \"Close sidebar\": { \"v\": [\"Lukk sidepanel\"] }, \"Favorite\": { \"v\": [\"Favoritt\"] }, \"Open sidebar\": { \"v\": [\"Åpne sidefelt\"] } } }, { \"l\": \"nl\", \"t\": { \"Change name\": { \"v\": [\"Naam wijzigen\"] }, \"Close sidebar\": { \"v\": [\"Zijbalk sluiten\"] }, \"Favorite\": { \"v\": [\"Favoriet\"] }, \"Open sidebar\": { \"v\": [\"Zijbalk openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Change name\": { \"v\": [\"Zmień nazwę\"] }, \"Close sidebar\": { \"v\": [\"Zamknij pasek boczny\"] }, \"Favorite\": { \"v\": [\"Ulubiony\"] }, \"Open sidebar\": { \"v\": [\"Otwórz pasek boczny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Change name\": { \"v\": [\"Mudar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Change name\": { \"v\": [\"Alterar nome\"] }, \"Close sidebar\": { \"v\": [\"Fechar barra lateral\"] }, \"Favorite\": { \"v\": [\"Favorito\"] }, \"Open sidebar\": { \"v\": [\"Abrir barra lateral\"] } } }, { \"l\": \"ro\", \"t\": { \"Change name\": { \"v\": [\"Modifică numele\"] }, \"Close sidebar\": { \"v\": [\"Închide bara laterală\"] }, \"Favorite\": { \"v\": [\"Favorit\"] } } }, { \"l\": \"ru\", \"t\": { \"Change name\": { \"v\": [\"Изменить имя\"] }, \"Close sidebar\": { \"v\": [\"Закрыть сайдбар\"] }, \"Favorite\": { \"v\": [\"Избранное\"] }, \"Open sidebar\": { \"v\": [\"Открыть боковую панель\"] } } }, { \"l\": \"sk\", \"t\": { \"Change name\": { \"v\": [\"Zmeniť názov\"] }, \"Close sidebar\": { \"v\": [\"Zavrieť bočný panel\"] }, \"Favorite\": { \"v\": [\"Obľúbené\"] }, \"Open sidebar\": { \"v\": [\"Otvoriť bočný panel\"] } } }, { \"l\": \"sl\", \"t\": { \"Close sidebar\": { \"v\": [\"Zapri stransko vrstico\"] }, \"Favorite\": { \"v\": [\"Priljubljeno\"] } } }, { \"l\": \"sr\", \"t\": { \"Change name\": { \"v\": [\"Измени назив\"] }, \"Close sidebar\": { \"v\": [\"Затвори бочну траку\"] }, \"Favorite\": { \"v\": [\"Омиљени\"] }, \"Open sidebar\": { \"v\": [\"Отвори бочну траку\"] } } }, { \"l\": \"sv\", \"t\": { \"Change name\": { \"v\": [\"Ändra namn\"] }, \"Close sidebar\": { \"v\": [\"Stäng sidofältet\"] }, \"Favorite\": { \"v\": [\"Favorit\"] }, \"Open sidebar\": { \"v\": [\"Öppna sidofältet\"] } } }, { \"l\": \"tr\", \"t\": { \"Change name\": { \"v\": [\"Adı değiştir\"] }, \"Close sidebar\": { \"v\": [\"Yan çubuğu kapat\"] }, \"Favorite\": { \"v\": [\"Sık kullanılanlara ekle\"] }, \"Open sidebar\": { \"v\": [\"Yan çubuğu aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Change name\": { \"v\": [\"Змінити назву\"] }, \"Close sidebar\": { \"v\": [\"Закрити бічну панель\"] }, \"Favorite\": { \"v\": [\"Із зірочкою\"] }, \"Open sidebar\": { \"v\": [\"Бокове меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Change name\": { \"v\": [\"Ismni o'zgartirish\"] }, \"Close sidebar\": { \"v\": [\"Yon panelni yoping\"] }, \"Favorite\": { \"v\": [\"Tanlangan\"] }, \"Open sidebar\": { \"v\": [\"Yon panelni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Change name\": { \"v\": [\"修改名称\"] }, \"Close sidebar\": { \"v\": [\"关闭侧边栏\"] }, \"Favorite\": { \"v\": [\"喜爱\"] }, \"Open sidebar\": { \"v\": [\"打开侧边栏\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Change name\": { \"v\": [\"更改名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"喜愛\"] }, \"Open sidebar\": { \"v\": [\"打開側邊欄\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Change name\": { \"v\": [\"變更名稱\"] }, \"Close sidebar\": { \"v\": [\"關閉側邊欄\"] }, \"Favorite\": { \"v\": [\"最愛\"] }, \"Open sidebar\": { \"v\": [\"開啟側邊欄\"] } } }];\nconst t16 = [{ \"l\": \"ar\", \"t\": { \"Clear search\": { \"v\": [\"محو البحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear search\": { \"v\": [\"Borrar la busca\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear search\": { \"v\": [\"Vyčistit vyhledávání\"] } } }, { \"l\": \"da\", \"t\": { \"Clear search\": { \"v\": [\"Ryd søgning\"] } } }, { \"l\": \"de\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear search\": { \"v\": [\"Suche leeren\"] } } }, { \"l\": \"el\", \"t\": { \"Clear search\": { \"v\": [\"Εκκαθάριση αναζήτησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear search\": { \"v\": [\"Clear search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear search\": { \"v\": [\"Limpiar búsqueda\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear search\": { \"v\": [\"Tühjenda otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear search\": { \"v\": [\"Garbitu bilaketa\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear search\": { \"v\": [\"پاک کردن جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear search\": { \"v\": [\"Tyhjennä haku\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear search\": { \"v\": [\"Effacer la recherche\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear search\": { \"v\": [\"Glan cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear search\": { \"v\": [\"Limpar a busca\"] } } }, { \"l\": \"he\", \"t\": { \"Clear search\": { \"v\": [\"פינוי חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear search\": { \"v\": [\"Očisti pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear search\": { \"v\": [\"Keresés törlése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear search\": { \"v\": [\"Bersihkan pencarian\"] } } }, { \"l\": \"is\", \"t\": { \"Clear search\": { \"v\": [\"Hreinsa leit\"] } } }, { \"l\": \"it\", \"t\": { \"Clear search\": { \"v\": [\"online\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear search\": { \"v\": [\"検索をクリア\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear search\": { \"v\": [\"검색 지우기\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear search\": { \"v\": [\"ລຶບການຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear search\": { \"v\": [\"Išvalyti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear search\": { \"v\": [\"Исчисти пребарување\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear search\": { \"v\": [\"Хайлтыг цэвэрлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear search\": { \"v\": [\"Tøm søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear search\": { \"v\": [\"Zoekopdracht wissen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear search\": { \"v\": [\"Wyczyść wyszukiwanie\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear search\": { \"v\": [\"Limpar pesquisa\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear search\": { \"v\": [\"Șterge căutarea\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear search\": { \"v\": [\"Очистить поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear search\": { \"v\": [\"Vymazať vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Clear search\": { \"v\": [\"Обриши претрагу\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear search\": { \"v\": [\"Rensa sökning\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear search\": { \"v\": [\"Aramayı temizle\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear search\": { \"v\": [\"Очистити пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear search\": { \"v\": [\"Qidiruvni tozalash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear search\": { \"v\": [\"清除搜索\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear search\": { \"v\": [\"清除搜尋\"] } } }];\nconst t17 = [{ \"l\": \"ar\", \"t\": { \"Clear selected\": { \"v\": [\"محو المحدّد\"] }, \"Deselect {option}\": { \"v\": [\"إلغاء تحديد {option}\"] }, \"No results\": { \"v\": [\"ليس هناك أية نتيجة\"] }, \"Options\": { \"v\": [\"خيارات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear selected\": { \"v\": [\"Borrar lo seleicionao\"] }, \"Deselect {option}\": { \"v\": [\"Deseleicionar «{option}»\"] }, \"No results\": { \"v\": [\"Nun hai nengún resultáu\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"br\", \"t\": { \"No results\": { \"v\": [\"Disoc'h ebet\"] } } }, { \"l\": \"ca\", \"t\": { \"No results\": { \"v\": [\"Sense resultats\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear selected\": { \"v\": [\"Vyčistit vybrané\"] }, \"Deselect {option}\": { \"v\": [\"Zrušit výběr {option}\"] }, \"No results\": { \"v\": [\"Nic nenalezeno\"] }, \"Options\": { \"v\": [\"Možnosti\"] } } }, { \"l\": \"da\", \"t\": { \"Clear selected\": { \"v\": [\"Ryd valgt\"] }, \"Deselect {option}\": { \"v\": [\"Fravælg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear selected\": { \"v\": [\"Auswahl leeren\"] }, \"Deselect {option}\": { \"v\": [\"{option} abwählen\"] }, \"No results\": { \"v\": [\"Keine Ergebnisse\"] }, \"Options\": { \"v\": [\"Optionen\"] } } }, { \"l\": \"el\", \"t\": { \"Clear selected\": { \"v\": [\"Εκκαθάριση επιλογής\"] }, \"Deselect {option}\": { \"v\": [\"Αποεπιλογή {option}\"] }, \"No results\": { \"v\": [\"Κανένα αποτέλεσμα\"] }, \"Options\": { \"v\": [\"Επιλογές\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear selected\": { \"v\": [\"Clear selected\"] }, \"Deselect {option}\": { \"v\": [\"Deselect {option}\"] }, \"No results\": { \"v\": [\"No results\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"eo\", \"t\": { \"No results\": { \"v\": [\"La rezulto forestas\"] } } }, { \"l\": \"es\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\" Ningún resultado\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No results\": { \"v\": [\"Sin resultados\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear selected\": { \"v\": [\"Limpiar selección\"] }, \"Deselect {option}\": { \"v\": [\"Deseleccionar {option}\"] }, \"No results\": { \"v\": [\"Sin resultados\"] }, \"Options\": { \"v\": [\"Opciones\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear selected\": { \"v\": [\"Tühjenda valik\"] }, \"Deselect {option}\": { \"v\": [\"Eemalda {option} valik\"] }, \"No results\": { \"v\": [\"Tulemusi pole\"] }, \"Options\": { \"v\": [\"Valikud\"] } } }, { \"l\": \"eu\", \"t\": { \"No results\": { \"v\": [\"Emaitzarik ez\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear selected\": { \"v\": [\"پاک کردن مورد انتخاب شده\"] }, \"Deselect {option}\": { \"v\": [\"لغو انتخاب {option}\"] }, \"No results\": { \"v\": [\"بدون هیچ نتیجه‌ای\"] }, \"Options\": { \"v\": [\"گزینه‌ها\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear selected\": { \"v\": [\"Tyhjennä valitut\"] }, \"Deselect {option}\": { \"v\": [\"Poista valinta {option}\"] }, \"No results\": { \"v\": [\"Ei tuloksia\"] }, \"Options\": { \"v\": [\"Valinnat\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear selected\": { \"v\": [\"Vider la sélection\"] }, \"Deselect {option}\": { \"v\": [\"Désélectionner {option}\"] }, \"No results\": { \"v\": [\"Aucun résultat\"] }, \"Options\": { \"v\": [\"Options\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear selected\": { \"v\": [\"Glan roghnaithe\"] }, \"Deselect {option}\": { \"v\": [\"Díroghnaigh {option}\"] }, \"No results\": { \"v\": [\"Gan torthaí\"] }, \"Options\": { \"v\": [\"Roghanna\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar o seleccionado\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sen resultados\"] }, \"Options\": { \"v\": [\"Opcións\"] } } }, { \"l\": \"he\", \"t\": { \"No results\": { \"v\": [\"אין תוצאות\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear selected\": { \"v\": [\"Očisti odabir\"] }, \"Deselect {option}\": { \"v\": [\"Odznači {option}\"] }, \"No results\": { \"v\": [\"Nema rezultata\"] }, \"Options\": { \"v\": [\"Mogućnosti\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear selected\": { \"v\": [\"Kijelölés törlése\"] }, \"Deselect {option}\": { \"v\": [\"{option} kijelölésének megszüntetése\"] }, \"No results\": { \"v\": [\"Nincs találat\"] }, \"Options\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Clear selected\": { \"v\": [\"Hapus terpilih\"] }, \"Deselect {option}\": { \"v\": [\"Batalkan pemilihan {option}\"] }, \"No results\": { \"v\": [\"Tidak ada hasil\"] }, \"Options\": { \"v\": [\"Opsi\"] } } }, { \"l\": \"is\", \"t\": { \"Clear selected\": { \"v\": [\"Hreinsa valið\"] }, \"Deselect {option}\": { \"v\": [\"Afvelja {option}\"] }, \"No results\": { \"v\": [\"Engar niðurstöður\"] }, \"Options\": { \"v\": [\"Valkostir\"] } } }, { \"l\": \"it\", \"t\": { \"Clear selected\": { \"v\": [\"Cancella selezionati\"] }, \"Deselect {option}\": { \"v\": [\"Deselezionare {option}\"] }, \"No results\": { \"v\": [\"Nessun risultato\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear selected\": { \"v\": [\"選択を解除\"] }, \"Deselect {option}\": { \"v\": [\"{option} の選択を解除\"] }, \"No results\": { \"v\": [\"結果無し\"] }, \"Options\": { \"v\": [\"オプション\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear selected\": { \"v\": [\"선택 항목 지우기\"] }, \"Deselect {option}\": { \"v\": [\"{option} 선택 해제\"] }, \"No results\": { \"v\": [\"결과 없음\"] }, \"Options\": { \"v\": [\"옵션\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear selected\": { \"v\": [\"ລຶບສິ່ງທີ່ເລືອກ\"] }, \"Deselect {option}\": { \"v\": [\"ຍົກເລີກການເລືອກ {option}\"] }, \"No results\": { \"v\": [\"ບໍ່ມີຜົນລັບ\"] }, \"Options\": { \"v\": [\"ຕົວເລືອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear selected\": { \"v\": [\"Išvalyti pasirinkimą\"] }, \"Deselect {option}\": { \"v\": [\"Panaikinkite {option} pasirinkimą\"] }, \"No results\": { \"v\": [\"Nėra rezultatų\"] }, \"Options\": { \"v\": [\"Parinktys\"] } } }, { \"l\": \"lv\", \"t\": { \"No results\": { \"v\": [\"Nav rezultātu\"] } } }, { \"l\": \"mk\", \"t\": { \"Clear selected\": { \"v\": [\"Исчисти означени\"] }, \"Deselect {option}\": { \"v\": [\"Откажи избор на {option}\"] }, \"No results\": { \"v\": [\"Нема резултати\"] }, \"Options\": { \"v\": [\"Опции\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear selected\": { \"v\": [\"Сонголтыг цэвэрлэх\"] }, \"Deselect {option}\": { \"v\": [\"{option}-г сонголтоос хасах\"] }, \"No results\": { \"v\": [\"Үр дүн алга\"] }, \"Options\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"No results\": { \"v\": [\"ရလဒ်မရှိပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Clear selected\": { \"v\": [\"Tøm merket\"] }, \"Deselect {option}\": { \"v\": [\"Opphev valg {option}\"] }, \"No results\": { \"v\": [\"Ingen resultater\"] }, \"Options\": { \"v\": [\"Alternativer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear selected\": { \"v\": [\"Selectie wissen\"] }, \"Deselect {option}\": { \"v\": [\"Selectie {option} opheffen\"] }, \"No results\": { \"v\": [\"Geen resultaten\"] }, \"Options\": { \"v\": [\"Opties\"] } } }, { \"l\": \"oc\", \"t\": { \"No results\": { \"v\": [\"Cap de resultat\"] } } }, { \"l\": \"pl\", \"t\": { \"Clear selected\": { \"v\": [\"Wyczyść wybrane\"] }, \"Deselect {option}\": { \"v\": [\"Odznacz {option}\"] }, \"No results\": { \"v\": [\"Brak wyników\"] }, \"Options\": { \"v\": [\"Opcje\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear selected\": { \"v\": [\"Limpar selecionado\"] }, \"Deselect {option}\": { \"v\": [\"Desselecionar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear selected\": { \"v\": [\"Limpeza selecionada\"] }, \"Deselect {option}\": { \"v\": [\"Desmarcar {option}\"] }, \"No results\": { \"v\": [\"Sem resultados\"] }, \"Options\": { \"v\": [\"Opções\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear selected\": { \"v\": [\"Șterge selecția\"] }, \"Deselect {option}\": { \"v\": [\"Deselctează {option}\"] }, \"No results\": { \"v\": [\"Nu există rezultate\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear selected\": { \"v\": [\"Очистить выбранный\"] }, \"Deselect {option}\": { \"v\": [\"Отменить выбор {option}\"] }, \"No results\": { \"v\": [\"Результаты отсуствуют\"] }, \"Options\": { \"v\": [\"Варианты\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear selected\": { \"v\": [\"Vymazať vybraté\"] }, \"Deselect {option}\": { \"v\": [\"Zrušiť výber {option}\"] }, \"No results\": { \"v\": [\"Žiadne výsledky\"] }, \"Options\": { \"v\": [\"možnosti\"] } } }, { \"l\": \"sl\", \"t\": { \"No results\": { \"v\": [\"Ni zadetkov\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear selected\": { \"v\": [\"Обриши изабрано\"] }, \"Deselect {option}\": { \"v\": [\"Уклони избор {option}\"] }, \"No results\": { \"v\": [\"Нема резултата\"] }, \"Options\": { \"v\": [\"Опције\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear selected\": { \"v\": [\"Rensa val\"] }, \"Deselect {option}\": { \"v\": [\"Avmarkera {option}\"] }, \"No results\": { \"v\": [\"Inga resultat\"] }, \"Options\": { \"v\": [\"Alternativ\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear selected\": { \"v\": [\"Seçilmişleri temizle\"] }, \"Deselect {option}\": { \"v\": [\"{option} bırak\"] }, \"No results\": { \"v\": [\"Herhangi bir sonuç bulunamadı\"] }, \"Options\": { \"v\": [\"Seçenekler\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear selected\": { \"v\": [\"Очистити вибране\"] }, \"Deselect {option}\": { \"v\": [\"Зняти вибір {option}\"] }, \"No results\": { \"v\": [\"Відсутні результати\"] }, \"Options\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear selected\": { \"v\": [\"Tanlanganni tozalash\"] }, \"Deselect {option}\": { \"v\": [\"{option}tanlovni bekor qiling\"] }, \"No results\": { \"v\": [\"Natija yoʻq\"] }, \"Options\": { \"v\": [\"Variantlar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear selected\": { \"v\": [\"清除所选\"] }, \"Deselect {option}\": { \"v\": [\"取消选择 {option}\"] }, \"No results\": { \"v\": [\"无结果\"] }, \"Options\": { \"v\": [\"选项\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear selected\": { \"v\": [\"清除所選項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選擇 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear selected\": { \"v\": [\"清除選定項目\"] }, \"Deselect {option}\": { \"v\": [\"取消選取 {option}\"] }, \"No results\": { \"v\": [\"無結果\"] }, \"Options\": { \"v\": [\"選項\"] } } }];\nconst t18 = [{ \"l\": \"ar\", \"t\": { \"Clear text\": { \"v\": [\"محو النص\"] }, \"Save changes\": { \"v\": [\"حفظ التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Clear text\": { \"v\": [\"Borrar el testu\"] }, \"Save changes\": { \"v\": [\"Guardar los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Clear text\": { \"v\": [\"Netejar text\"] } } }, { \"l\": \"cs\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Clear text\": { \"v\": [\"Čitelný text\"] }, \"Save changes\": { \"v\": [\"Uložit změny\"] } } }, { \"l\": \"da\", \"t\": { \"Clear text\": { \"v\": [\"Ryd tekst\"] }, \"Save changes\": { \"v\": [\"Gem ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Clear text\": { \"v\": [\"Klartext\"] }, \"Save changes\": { \"v\": [\"Änderungen speichern\"] } } }, { \"l\": \"el\", \"t\": { \"Clear text\": { \"v\": [\"Εκκαθάριση κειμένου\"] }, \"Save changes\": { \"v\": [\"Αποθήκευση αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Clear text\": { \"v\": [\"Clear text\"] }, \"Save changes\": { \"v\": [\"Save changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Clear text\": { \"v\": [\"Limpiar texto\"] }, \"Save changes\": { \"v\": [\"Guardar cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Clear text\": { \"v\": [\"Kustuta tekst\"] }, \"Save changes\": { \"v\": [\"Salvesta muudatused\"] } } }, { \"l\": \"eu\", \"t\": { \"Clear text\": { \"v\": [\"Garbitu testua\"] } } }, { \"l\": \"fa\", \"t\": { \"Clear text\": { \"v\": [\"پاک کردن متن\"] }, \"Save changes\": { \"v\": [\"ذخیرهٔ تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Clear text\": { \"v\": [\"Tyhjennä teksti\"] }, \"Save changes\": { \"v\": [\"Tallenna muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Clear text\": { \"v\": [\"Effacer le texte\"] }, \"Save changes\": { \"v\": [\"Sauvegarder les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Clear text\": { \"v\": [\"Glan téacs\"] }, \"Save changes\": { \"v\": [\"Sabháil na hathruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Clear text\": { \"v\": [\"Limpar o texto\"] }, \"Save changes\": { \"v\": [\"Gardar os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Clear text\": { \"v\": [\"פינוי טקסט\"] } } }, { \"l\": \"hr\", \"t\": { \"Clear text\": { \"v\": [\"Očisti tekst\"] }, \"Save changes\": { \"v\": [\"Spremi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Clear text\": { \"v\": [\"Szöveg törlése\"] }, \"Save changes\": { \"v\": [\"Változtatások mentése\"] } } }, { \"l\": \"id\", \"t\": { \"Clear text\": { \"v\": [\"Bersihkan teks\"] }, \"Save changes\": { \"v\": [\"Simpan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Clear text\": { \"v\": [\"Hreinsa texta\"] }, \"Save changes\": { \"v\": [\"Vista breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Clear text\": { \"v\": [\"Cancella il testo\"] }, \"Save changes\": { \"v\": [\"Salva le modifiche\"] } } }, { \"l\": \"ja\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Clear text\": { \"v\": [\"テキストをクリア\"] }, \"Save changes\": { \"v\": [\"変更を保存\"] } } }, { \"l\": \"ko\", \"t\": { \"Clear text\": { \"v\": [\"텍스트 지우기\"] }, \"Save changes\": { \"v\": [\"변경 사항 저장\"] } } }, { \"l\": \"lo\", \"t\": { \"Clear text\": { \"v\": [\"ລຶບຂໍ້ຄວາມ\"] }, \"Save changes\": { \"v\": [\"ບັນທຶກການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Clear text\": { \"v\": [\"Išvalyti tekstą\"] }, \"Save changes\": { \"v\": [\"Įrašyti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Clear text\": { \"v\": [\"Исчисти текст\"] }, \"Save changes\": { \"v\": [\"Зачувај промени\"] } } }, { \"l\": \"mn\", \"t\": { \"Clear text\": { \"v\": [\"Текстийг цэвэрлэх\"] }, \"Save changes\": { \"v\": [\"Өөрчлөлтийг хадгалах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Clear text\": { \"v\": [\"Fjern tekst\"] }, \"Save changes\": { \"v\": [\"Lagre endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Clear text\": { \"v\": [\"Tekst wissen\"] }, \"Save changes\": { \"v\": [\"Wijzigingen opslaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Clear text\": { \"v\": [\"Wyczyść tekst\"] }, \"Save changes\": { \"v\": [\"Zapisz zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Salvar alterações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Clear text\": { \"v\": [\"Limpar texto\"] }, \"Save changes\": { \"v\": [\"Gravar alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Clear text\": { \"v\": [\"Șterge textul\"] }, \"Save changes\": { \"v\": [\"Salvează modificările\"] } } }, { \"l\": \"ru\", \"t\": { \"Clear text\": { \"v\": [\"Очистить текст\"] }, \"Save changes\": { \"v\": [\"Сохранить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Clear text\": { \"v\": [\"Vamazať text\"] }, \"Save changes\": { \"v\": [\"Uložiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Clear text\": { \"v\": [\"Počisti besedilo\"] } } }, { \"l\": \"sr\", \"t\": { \"Clear text\": { \"v\": [\"Обриши текст\"] }, \"Save changes\": { \"v\": [\"Сачувај измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Clear text\": { \"v\": [\"Ta bort text\"] }, \"Save changes\": { \"v\": [\"Spara ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Clear text\": { \"v\": [\"Metni temizle\"] }, \"Save changes\": { \"v\": [\"Değişiklikleri kaydet\"] } } }, { \"l\": \"uk\", \"t\": { \"Clear text\": { \"v\": [\"Очистити текст\"] }, \"Save changes\": { \"v\": [\"Зберегти зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Clear text\": { \"v\": [\"Matnni tozalash\"] }, \"Save changes\": { \"v\": [\"O'zgarishlarni saqlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存修改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Clear text\": { \"v\": [\"清除文本\"] }, \"Save changes\": { \"v\": [\"保存更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Clear text\": { \"v\": [\"清除文字\"] }, \"Save changes\": { \"v\": [\"儲存變更\"] } } }];\nconst t19 = [{ \"l\": \"ar\", \"t\": { \"Close\": { \"v\": [\"إغلاق\"] } } }, { \"l\": \"ast\", \"t\": { \"Close\": { \"v\": [\"Zarrar\"] } } }, { \"l\": \"br\", \"t\": { \"Close\": { \"v\": [\"Serriñ\"] } } }, { \"l\": \"ca\", \"t\": { \"Close\": { \"v\": [\"Tanca\"] } } }, { \"l\": \"cs\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close\": { \"v\": [\"Zavřít\"] } } }, { \"l\": \"da\", \"t\": { \"Close\": { \"v\": [\"Luk\"] } } }, { \"l\": \"de\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close\": { \"v\": [\"Schließen\"] } } }, { \"l\": \"el\", \"t\": { \"Close\": { \"v\": [\"Κλείσιμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close\": { \"v\": [\"Close\"] } } }, { \"l\": \"eo\", \"t\": { \"Close\": { \"v\": [\"Fermu\"] } } }, { \"l\": \"es\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close\": { \"v\": [\"Cerrar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close\": { \"v\": [\"Sulge\"] } } }, { \"l\": \"eu\", \"t\": { \"Close\": { \"v\": [\"Itxi\"] } } }, { \"l\": \"fa\", \"t\": { \"Close\": { \"v\": [\"بستن\"] } } }, { \"l\": \"fi\", \"t\": { \"Close\": { \"v\": [\"Sulje\"] } } }, { \"l\": \"fr\", \"t\": { \"Close\": { \"v\": [\"Fermer\"] } } }, { \"l\": \"ga\", \"t\": { \"Close\": { \"v\": [\"Dún\"] } } }, { \"l\": \"gl\", \"t\": { \"Close\": { \"v\": [\"Pechar\"] } } }, { \"l\": \"he\", \"t\": { \"Close\": { \"v\": [\"סגירה\"] } } }, { \"l\": \"hr\", \"t\": { \"Close\": { \"v\": [\"Zatvori\"] } } }, { \"l\": \"hu\", \"t\": { \"Close\": { \"v\": [\"Bezárás\"] } } }, { \"l\": \"id\", \"t\": { \"Close\": { \"v\": [\"Tutup\"] } } }, { \"l\": \"is\", \"t\": { \"Close\": { \"v\": [\"Loka\"] } } }, { \"l\": \"it\", \"t\": { \"Close\": { \"v\": [\"Chiudi\"] } } }, { \"l\": \"ja\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close\": { \"v\": [\"閉じる\"] } } }, { \"l\": \"ko\", \"t\": { \"Close\": { \"v\": [\"닫기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close\": { \"v\": [\"ປິດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close\": { \"v\": [\"Užverti\"] } } }, { \"l\": \"lv\", \"t\": { \"Close\": { \"v\": [\"Aizvērt\"] } } }, { \"l\": \"mk\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"mn\", \"t\": { \"Close\": { \"v\": [\"Хаах\"] } } }, { \"l\": \"my\", \"t\": { \"Close\": { \"v\": [\"ပိတ်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Close\": { \"v\": [\"Lukk\"] } } }, { \"l\": \"nl\", \"t\": { \"Close\": { \"v\": [\"Sluiten\"] } } }, { \"l\": \"oc\", \"t\": { \"Close\": { \"v\": [\"Tampar\"] } } }, { \"l\": \"pl\", \"t\": { \"Close\": { \"v\": [\"Zamknij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close\": { \"v\": [\"Fechar\"] } } }, { \"l\": \"ro\", \"t\": { \"Close\": { \"v\": [\"Închideți\"] } } }, { \"l\": \"ru\", \"t\": { \"Close\": { \"v\": [\"Закрыть\"] } } }, { \"l\": \"sk\", \"t\": { \"Close\": { \"v\": [\"Zavrieť\"] } } }, { \"l\": \"sl\", \"t\": { \"Close\": { \"v\": [\"Zapri\"] } } }, { \"l\": \"sr\", \"t\": { \"Close\": { \"v\": [\"Затвори\"] } } }, { \"l\": \"sv\", \"t\": { \"Close\": { \"v\": [\"Stäng\"] } } }, { \"l\": \"tr\", \"t\": { \"Close\": { \"v\": [\"Kapat\"] } } }, { \"l\": \"uk\", \"t\": { \"Close\": { \"v\": [\"Закрити\"] } } }, { \"l\": \"uz\", \"t\": { \"Close\": { \"v\": [\"Yopish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close\": { \"v\": [\"关闭\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close\": { \"v\": [\"關閉\"] } } }];\nconst t20 = [{ \"l\": \"ar\", \"t\": { \"Close navigation\": { \"v\": [\"إغلاق التصفح\"] }, \"Open navigation\": { \"v\": [\"فتح التنقُّل\"] } } }, { \"l\": \"ast\", \"t\": { \"Close navigation\": { \"v\": [\"Zarrar la navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir la navegación\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Close navigation\": { \"v\": [\"Tanca la navegació\"] }, \"Open navigation\": { \"v\": [\"Obre la navegació\"] } } }, { \"l\": \"cs\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Close navigation\": { \"v\": [\"Zavřít navigaci\"] }, \"Open navigation\": { \"v\": [\"Otevřít navigaci\"] } } }, { \"l\": \"da\", \"t\": { \"Close navigation\": { \"v\": [\"Luk navigation\"] }, \"Open navigation\": { \"v\": [\"Åben navigation\"] } } }, { \"l\": \"de\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Close navigation\": { \"v\": [\"Navigation schließen\"] }, \"Open navigation\": { \"v\": [\"Navigation öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Close navigation\": { \"v\": [\"Κλείσιμο πλοήγησης\"] }, \"Open navigation\": { \"v\": [\"Άνοιγμα πλοήγησης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Close navigation\": { \"v\": [\"Close navigation\"] }, \"Open navigation\": { \"v\": [\"Open navigation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Close navigation\": { \"v\": [\"Cerrar navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir navegación\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Close navigation\": { \"v\": [\"Sulge navigatsioon\"] }, \"Open navigation\": { \"v\": [\"Ava liikumisvaade\"] } } }, { \"l\": \"eu\", \"t\": { \"Close navigation\": { \"v\": [\"Itxi nabigazioa\"] }, \"Open navigation\": { \"v\": [\"Ireki nabigazioa\"] } } }, { \"l\": \"fa\", \"t\": { \"Close navigation\": { \"v\": [\"بستن بخش ناوبری\"] }, \"Open navigation\": { \"v\": [\"باز کردن بخش ناوبری\"] } } }, { \"l\": \"fi\", \"t\": { \"Close navigation\": { \"v\": [\"Sulje navigaatio\"] } } }, { \"l\": \"fr\", \"t\": { \"Close navigation\": { \"v\": [\"Fermer la navigation\"] }, \"Open navigation\": { \"v\": [\"Ouvrir la navigation\"] } } }, { \"l\": \"ga\", \"t\": { \"Close navigation\": { \"v\": [\"Dún nascleanúint\"] }, \"Open navigation\": { \"v\": [\"Oscail nascleanúint\"] } } }, { \"l\": \"gl\", \"t\": { \"Close navigation\": { \"v\": [\"Pechar a navegación\"] }, \"Open navigation\": { \"v\": [\"Abrir a navegación\"] } } }, { \"l\": \"he\", \"t\": { \"Close navigation\": { \"v\": [\"סגירת הניווט\"] }, \"Open navigation\": { \"v\": [\"פתיחת ניווט\"] } } }, { \"l\": \"hr\", \"t\": { \"Close navigation\": { \"v\": [\"Zatvori navigaciju\"] }, \"Open navigation\": { \"v\": [\"Otvori navigaciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Close navigation\": { \"v\": [\"Navigáció bezárása\"] }, \"Open navigation\": { \"v\": [\"Navigáció megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Close navigation\": { \"v\": [\"Tutup navigasi\"] }, \"Open navigation\": { \"v\": [\"Buka navigasi\"] } } }, { \"l\": \"is\", \"t\": { \"Close navigation\": { \"v\": [\"Loka leiðsagnarsleða\"] } } }, { \"l\": \"it\", \"t\": { \"Close navigation\": { \"v\": [\"Chiudi la navigazione\"] }, \"Open navigation\": { \"v\": [\"Apri la navigazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Close navigation\": { \"v\": [\"ナビゲーションを閉じる\"] }, \"Open navigation\": { \"v\": [\"ナビゲーションを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Close navigation\": { \"v\": [\"탐색 닫기\"] }, \"Open navigation\": { \"v\": [\"탐색 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Close navigation\": { \"v\": [\"ປິດການນຳທາງ\"] }, \"Open navigation\": { \"v\": [\"ເປີດການນຳທາງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Close navigation\": { \"v\": [\"Užverti naršymą\"] }, \"Open navigation\": { \"v\": [\"Atverti naršymą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигација\"] }, \"Open navigation\": { \"v\": [\"Отвори навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Close navigation\": { \"v\": [\"Навигацийг хаах\"] }, \"Open navigation\": { \"v\": [\"Навигацийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Close navigation\": { \"v\": [\"Lukk navigasjon\"] }, \"Open navigation\": { \"v\": [\"Åpne navigasjon\"] } } }, { \"l\": \"nl\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatie sluiten\"] }, \"Open navigation\": { \"v\": [\"Navigatie openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Close navigation\": { \"v\": [\"Zamknij nawigację\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Close navigation\": { \"v\": [\"Fechar navegação\"] }, \"Open navigation\": { \"v\": [\"Abrir navegação\"] } } }, { \"l\": \"ro\", \"t\": { \"Close navigation\": { \"v\": [\"Închideți navigarea\"] }, \"Open navigation\": { \"v\": [\"Deschideți navigația\"] } } }, { \"l\": \"ru\", \"t\": { \"Close navigation\": { \"v\": [\"Закрыть навигацию\"] }, \"Open navigation\": { \"v\": [\"Открыть навигацию\"] } } }, { \"l\": \"sk\", \"t\": { \"Close navigation\": { \"v\": [\"Zavrieť navigáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Close navigation\": { \"v\": [\"Zapri krmarjenje\"] }, \"Open navigation\": { \"v\": [\"Odpri krmarjenje\"] } } }, { \"l\": \"sr\", \"t\": { \"Close navigation\": { \"v\": [\"Затвори навигацију\"] }, \"Open navigation\": { \"v\": [\"Отвори навигацију\"] } } }, { \"l\": \"sv\", \"t\": { \"Close navigation\": { \"v\": [\"Stäng navigering\"] }, \"Open navigation\": { \"v\": [\"Öppna navigering\"] } } }, { \"l\": \"tr\", \"t\": { \"Close navigation\": { \"v\": [\"Gezinmeyi kapat\"] }, \"Open navigation\": { \"v\": [\"Gezinmeyi aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Close navigation\": { \"v\": [\"Закрити навігацію\"] }, \"Open navigation\": { \"v\": [\"Перейти до навігації\"] } } }, { \"l\": \"uz\", \"t\": { \"Close navigation\": { \"v\": [\"Navigatsiyani yopish\"] }, \"Open navigation\": { \"v\": [\"Navigatsiyani oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Close navigation\": { \"v\": [\"关闭导航\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Close navigation\": { \"v\": [\"關閉導航\"] }, \"Open navigation\": { \"v\": [\"開啟導航\"] } } }];\nconst t21 = [{ \"l\": \"ar\", \"t\": { \"Collapse menu\": { \"v\": [\"طي القائمة\"] }, \"Open menu\": { \"v\": [\"إفتَح القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Collapse menu\": { \"v\": [\"Recoyer el menú\"] }, \"Open menu\": { \"v\": [\"Abrir le menú\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Collapse menu\": { \"v\": [\"Sbalit nabídku\"] }, \"Open menu\": { \"v\": [\"Otevřít nabídku\"] } } }, { \"l\": \"da\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul menuen\"] }, \"Open menu\": { \"v\": [\"Åben menu\"] } } }, { \"l\": \"de\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü einklappen\"] }, \"Open menu\": { \"v\": [\"Menü öffnen\"] } } }, { \"l\": \"el\", \"t\": { \"Collapse menu\": { \"v\": [\"Σύμπτυξη μενού\"] }, \"Open menu\": { \"v\": [\"Άνοιγμα μενού\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Collapse menu\": { \"v\": [\"Collapse menu\"] }, \"Open menu\": { \"v\": [\"Open menu\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menú\"] }, \"Open menu\": { \"v\": [\"Abrir menú\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Collapse menu\": { \"v\": [\"Ahenda menüü\"] }, \"Open menu\": { \"v\": [\"Ava menüü\"] } } }, { \"l\": \"eu\", \"t\": { \"Collapse menu\": { \"v\": [\"Tolestu menua\"] }, \"Open menu\": { \"v\": [\"Ireki menua\"] } } }, { \"l\": \"fa\", \"t\": { \"Collapse menu\": { \"v\": [\"بستن فهرست\"] }, \"Open menu\": { \"v\": [\"باز کردن فهرست\"] } } }, { \"l\": \"fi\", \"t\": { \"Collapse menu\": { \"v\": [\"Supista valikko\"] }, \"Open menu\": { \"v\": [\"Avaa valikko\"] } } }, { \"l\": \"fr\", \"t\": { \"Collapse menu\": { \"v\": [\"Réduire le menu\"] }, \"Open menu\": { \"v\": [\"Ouvrir le menu\"] } } }, { \"l\": \"ga\", \"t\": { \"Collapse menu\": { \"v\": [\"Roghchlár Laghdaigh\"] }, \"Open menu\": { \"v\": [\"Roghchlár a oscailt\"] } } }, { \"l\": \"gl\", \"t\": { \"Collapse menu\": { \"v\": [\"Contraer o menú\"] }, \"Open menu\": { \"v\": [\"Abrir o menú\"] } } }, { \"l\": \"he\", \"t\": { \"Collapse menu\": { \"v\": [\"צמצום התפריט\"] }, \"Open menu\": { \"v\": [\"פתיחת תפריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Collapse menu\": { \"v\": [\"Sakrij izbornik\"] }, \"Open menu\": { \"v\": [\"Otvori izbornik\"] } } }, { \"l\": \"hu\", \"t\": { \"Collapse menu\": { \"v\": [\"Menü összecsukása\"] }, \"Open menu\": { \"v\": [\"Menü megnyitása\"] } } }, { \"l\": \"id\", \"t\": { \"Collapse menu\": { \"v\": [\"Ciutkan menu\"] }, \"Open menu\": { \"v\": [\"Buka menu\"] } } }, { \"l\": \"is\", \"t\": { \"Collapse menu\": { \"v\": [\"Fella valmynd saman\"] }, \"Open menu\": { \"v\": [\"Opna valmynd\"] } } }, { \"l\": \"it\", \"t\": { \"Collapse menu\": { \"v\": [\"Chiudi Menu\"] }, \"Open menu\": { \"v\": [\"Apri il menu\"] } } }, { \"l\": \"ja\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Collapse menu\": { \"v\": [\"メニューの折りたたみ\"] }, \"Open menu\": { \"v\": [\"メニューを開く\"] } } }, { \"l\": \"ko\", \"t\": { \"Collapse menu\": { \"v\": [\"메뉴 접기\"] }, \"Open menu\": { \"v\": [\"메뉴 열기\"] } } }, { \"l\": \"lo\", \"t\": { \"Collapse menu\": { \"v\": [\"ຫຍໍ້ເມນູ\"] }, \"Open menu\": { \"v\": [\"ເປີດເມນູ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Collapse menu\": { \"v\": [\"Suskleisti meniu\"] }, \"Open menu\": { \"v\": [\"Atverti meniu\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Collapse menu\": { \"v\": [\"Скриј мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"mn\", \"t\": { \"Collapse menu\": { \"v\": [\"Цэсийг хураах\"] }, \"Open menu\": { \"v\": [\"Цэсийг нээх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Collapse menu\": { \"v\": [\"Skjul meny\"] }, \"Open menu\": { \"v\": [\"Åpne meny\"] } } }, { \"l\": \"nl\", \"t\": { \"Collapse menu\": { \"v\": [\"Menu inklappen\"] }, \"Open menu\": { \"v\": [\"Menu openen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Collapse menu\": { \"v\": [\"Zwiń menu\"] }, \"Open menu\": { \"v\": [\"Otwórz menu\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Collapse menu\": { \"v\": [\"Recolher menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Collapse menu\": { \"v\": [\"Ocultar menu\"] }, \"Open menu\": { \"v\": [\"Abrir menu\"] } } }, { \"l\": \"ro\", \"t\": { \"Collapse menu\": { \"v\": [\"Restrânge meniul\"] }, \"Open menu\": { \"v\": [\"Deschide meniul\"] } } }, { \"l\": \"ru\", \"t\": { \"Collapse menu\": { \"v\": [\"Свернуть меню\"] }, \"Open menu\": { \"v\": [\"Открыть меню\"] } } }, { \"l\": \"sk\", \"t\": { \"Collapse menu\": { \"v\": [\"Zbaliť menu\"] }, \"Open menu\": { \"v\": [\"Otvoriť menu\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Collapse menu\": { \"v\": [\"Сажми мени\"] }, \"Open menu\": { \"v\": [\"Отвори мени\"] } } }, { \"l\": \"sv\", \"t\": { \"Collapse menu\": { \"v\": [\"Dölj menyn\"] }, \"Open menu\": { \"v\": [\"Öppna menyn\"] } } }, { \"l\": \"tr\", \"t\": { \"Collapse menu\": { \"v\": [\"Menüyü daralt\"] }, \"Open menu\": { \"v\": [\"Menüyü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Collapse menu\": { \"v\": [\"Згорнути меню\"] }, \"Open menu\": { \"v\": [\"Відкрити меню\"] } } }, { \"l\": \"uz\", \"t\": { \"Collapse menu\": { \"v\": [\"Menyuni yig‘ish\"] }, \"Open menu\": { \"v\": [\"Menyuni oching\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Collapse menu\": { \"v\": [\"收起菜单\"] }, \"Open menu\": { \"v\": [\"打开菜单\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Collapse menu\": { \"v\": [\"折疊選單\"] }, \"Open menu\": { \"v\": [\"開啟選單\"] } } }];\nconst t22 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Copied\": { \"v\": [\"Zkopírováno\"] }, \"Copy to clipboard\": { \"v\": [\"Zkopírovat do schránky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Copied\": { \"v\": [\"Kopieret\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiér til udklipsholderen\"] } } }, { \"l\": \"de\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Copied\": { \"v\": [\"Kopiert\"] }, \"Copy to clipboard\": { \"v\": [\"In die Zwischenablage kopieren\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Copied\": { \"v\": [\"Copied\"] }, \"Copy to clipboard\": { \"v\": [\"Copy to clipboard\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Copied\": { \"v\": [\"Kopeeritud\"] }, \"Copy to clipboard\": { \"v\": [\"Kopeeri lõikelauale\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Copied\": { \"v\": [\"Copié\"] }, \"Copy to clipboard\": { \"v\": [\"Copier dans le presse-papiers\"] } } }, { \"l\": \"ga\", \"t\": { \"Copied\": { \"v\": [\"Cóipeáilte\"] }, \"Copy to clipboard\": { \"v\": [\"Cóipeáil chuig an ghearrthaisce\"] } } }, { \"l\": \"gl\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar ao portapapeis\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Copied\": { \"v\": [\"Kopirano\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiraj u međuspremnik\"] } } }, { \"l\": \"hu\", \"t\": { \"Copied\": { \"v\": [\"Másolva\"] }, \"Copy to clipboard\": { \"v\": [\"Vágólapra másolás\"] } } }, { \"l\": \"id\", \"t\": { \"Copied\": { \"v\": [\"Disalin\"] }, \"Copy to clipboard\": { \"v\": [\"Salin ke clipboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Copied\": { \"v\": [\"コピーされました\"] }, \"Copy to clipboard\": { \"v\": [\"クリップボードにコピー\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Copied\": { \"v\": [\"복사됨\"] }, \"Copy to clipboard\": { \"v\": [\"클립보드로 복사\"] } } }, { \"l\": \"lo\", \"t\": { \"Copied\": { \"v\": [\"ສຳເນົາແລ້ວ\"] }, \"Copy to clipboard\": { \"v\": [\"ສຳເນົາໃສ່ຄລິບບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Copied\": { \"v\": [\"Nukopijuota\"] }, \"Copy to clipboard\": { \"v\": [\"Kopijuoti į iškarpinę\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Copied\": { \"v\": [\"Копирано\"] }, \"Copy to clipboard\": { \"v\": [\"Копирај во клипбоард\"] } } }, { \"l\": \"mn\", \"t\": { \"Copied\": { \"v\": [\"Хуулагдлаа\"] }, \"Copy to clipboard\": { \"v\": [\"Санах ой руу хуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Copied\": { \"v\": [\"Gekopieerd\"] }, \"Copy to clipboard\": { \"v\": [\"Kopieer naar klembord\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Copied\": { \"v\": [\"Copiado\"] }, \"Copy to clipboard\": { \"v\": [\"Copiar para a área de transferência\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Copied\": { \"v\": [\"Скопировано\"] }, \"Copy to clipboard\": { \"v\": [\"Скопировать в буфер\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Copied\": { \"v\": [\"Kopierad\"] }, \"Copy to clipboard\": { \"v\": [\"Kopiera till urklipp\"] } } }, { \"l\": \"tr\", \"t\": { \"Copied\": { \"v\": [\"Kopyalandı\"] }, \"Copy to clipboard\": { \"v\": [\"Panoya kopyalandı\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Copied\": { \"v\": [\"Nusxalandi\"] }, \"Copy to clipboard\": { \"v\": [\"Buferga nusxalash\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Copied\": { \"v\": [\"已被複製\"] }, \"Copy to clipboard\": { \"v\": [\"複製到剪貼簿\"] } } }];\nconst t23 = [{ \"l\": \"ar\", \"t\": { \"Edit item\": { \"v\": [\"تعديل عنصر\"] } } }, { \"l\": \"ast\", \"t\": { \"Edit item\": { \"v\": [\"Editar l'elementu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Edit item\": { \"v\": [\"Edita l'element\"] } } }, { \"l\": \"cs\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Edit item\": { \"v\": [\"Upravit položku\"] } } }, { \"l\": \"da\", \"t\": { \"Edit item\": { \"v\": [\"Rediger emne\"] } } }, { \"l\": \"de\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Edit item\": { \"v\": [\"Element bearbeiten\"] } } }, { \"l\": \"el\", \"t\": { \"Edit item\": { \"v\": [\"Επεξεργασία αντικειμένου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Edit item\": { \"v\": [\"Editar elemento\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Edit item\": { \"v\": [\"Muuda objekti\"] } } }, { \"l\": \"eu\", \"t\": { \"Edit item\": { \"v\": [\"Editatu elementua\"] } } }, { \"l\": \"fa\", \"t\": { \"Edit item\": { \"v\": [\"ویرایش مورد\"] } } }, { \"l\": \"fi\", \"t\": { \"Edit item\": { \"v\": [\"Muokkaa kohdetta\"] } } }, { \"l\": \"fr\", \"t\": { \"Edit item\": { \"v\": [\"Éditer l'élément\"] } } }, { \"l\": \"ga\", \"t\": { \"Edit item\": { \"v\": [\"Cuir mír in eagar\"] } } }, { \"l\": \"gl\", \"t\": { \"Edit item\": { \"v\": [\"Editar o elemento\"] } } }, { \"l\": \"he\", \"t\": { \"Edit item\": { \"v\": [\"עריכת פריט\"] } } }, { \"l\": \"hr\", \"t\": { \"Edit item\": { \"v\": [\"Uredi stavku\"] } } }, { \"l\": \"hu\", \"t\": { \"Edit item\": { \"v\": [\"Elem szerkesztése\"] } } }, { \"l\": \"id\", \"t\": { \"Edit item\": { \"v\": [\"Edit item\"] } } }, { \"l\": \"is\", \"t\": { \"Edit item\": { \"v\": [\"Breyta atriði\"] } } }, { \"l\": \"it\", \"t\": { \"Edit item\": { \"v\": [\"Modifica l'elemento\"] } } }, { \"l\": \"ja\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Edit item\": { \"v\": [\"編集\"] } } }, { \"l\": \"ko\", \"t\": { \"Edit item\": { \"v\": [\"항목 수정\"] } } }, { \"l\": \"lo\", \"t\": { \"Edit item\": { \"v\": [\"ແກ້ໄຂລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Edit item\": { \"v\": [\"Taisyti elementą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Edit item\": { \"v\": [\"Уреди\"] } } }, { \"l\": \"mn\", \"t\": { \"Edit item\": { \"v\": [\"Зүйлийг засварлах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Edit item\": { \"v\": [\"Rediger\"] } } }, { \"l\": \"nl\", \"t\": { \"Edit item\": { \"v\": [\"Item bewerken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Edit item\": { \"v\": [\"Edytuj element\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Edit item\": { \"v\": [\"Editar item\"] } } }, { \"l\": \"ro\", \"t\": { \"Edit item\": { \"v\": [\"Editați elementul\"] } } }, { \"l\": \"ru\", \"t\": { \"Edit item\": { \"v\": [\"Изменить элемент\"] } } }, { \"l\": \"sk\", \"t\": { \"Edit item\": { \"v\": [\"Upraviť položku\"] } } }, { \"l\": \"sl\", \"t\": { \"Edit item\": { \"v\": [\"Uredi predmet\"] } } }, { \"l\": \"sr\", \"t\": { \"Edit item\": { \"v\": [\"Уреди ставку\"] } } }, { \"l\": \"sv\", \"t\": { \"Edit item\": { \"v\": [\"Redigera objekt\"] } } }, { \"l\": \"tr\", \"t\": { \"Edit item\": { \"v\": [\"Ögeyi düzenle\"] } } }, { \"l\": \"uk\", \"t\": { \"Edit item\": { \"v\": [\"Редагувати елемент\"] } } }, { \"l\": \"uz\", \"t\": { \"Edit item\": { \"v\": [\"Elementni tahrirlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Edit item\": { \"v\": [\"编辑项目\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Edit item\": { \"v\": [\"編輯項目\"] } } }];\nconst t24 = [{ \"l\": \"ar\", \"t\": { \"Enable interactive view\": { \"v\": [\"تمكين المنظور التفاعلي\"] } } }, { \"l\": \"ast\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar la vista interactiva\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enable interactive view\": { \"v\": [\"Zapnout interaktivní zobrazení\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"de\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Die interaktive Ansicht aktivieren\"] }, \"Widget height\": { \"v\": [\"Widget-Höhe\"] } } }, { \"l\": \"el\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ενεργοποίηση διαδραστικής προβολής\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enable interactive view\": { \"v\": [\"Enable interactive view\"] }, \"Widget height\": { \"v\": [\"Widget height\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Enable interactive view\": { \"v\": [\"Habilitar vista interactiva\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enable interactive view\": { \"v\": [\"Lülita interaktiivne vaade sisse\"] }, \"Widget height\": { \"v\": [\"Vidina kõrgus\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Enable interactive view\": { \"v\": [\"فعال‌سازی نمای تعاملی\"] } } }, { \"l\": \"fi\", \"t\": { \"Enable interactive view\": { \"v\": [\"Näytä vuorovaikutteinen näkymä\"] } } }, { \"l\": \"fr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activer la vue interactive\"] } } }, { \"l\": \"ga\", \"t\": { \"Enable interactive view\": { \"v\": [\"Cumasaigh amharc idirghníomhach\"] }, \"Widget height\": { \"v\": [\"Airde an ghiuirléid\"] } } }, { \"l\": \"gl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Activar a vista interactiva\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Omogući interaktivni prikaz\"] } } }, { \"l\": \"hu\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktív nézet engedélyezése\"] } } }, { \"l\": \"id\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktifkan tampilan interaktif\"] } } }, { \"l\": \"is\", \"t\": { \"Enable interactive view\": { \"v\": [\"Virkja gagnvirka sýn\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] }, \"Widget height\": { \"v\": [\"ウィジェットの高さ\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enable interactive view\": { \"v\": [\"インタラクティブ・ビューを有効にする\"] } } }, { \"l\": \"ko\", \"t\": { \"Enable interactive view\": { \"v\": [\"대화형 보기 활성화\"] } } }, { \"l\": \"lo\", \"t\": { \"Enable interactive view\": { \"v\": [\"ເປີດໃຊ້ງານມຸມມອງໂຕ້ຕອບ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Įgalinti interaktyvų vaizdą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Овозможи интерактивен приказ\"] } } }, { \"l\": \"mn\", \"t\": { \"Enable interactive view\": { \"v\": [\"Интерактив харагдацыг идэвхжүүлэх\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktiver interaktiv visning\"] } } }, { \"l\": \"nl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interactieve weergave inschakelen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enable interactive view\": { \"v\": [\"Włącz widok interaktywny\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar visualização interativa\"] }, \"Widget height\": { \"v\": [\"Altura do widget\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enable interactive view\": { \"v\": [\"Ativar vista interativa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Enable interactive view\": { \"v\": [\"Включить интерактивный просмотр\"] } } }, { \"l\": \"sk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Povoliť interaktívny pohľad\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Укључи интерактивни приказ\"] } } }, { \"l\": \"sv\", \"t\": { \"Enable interactive view\": { \"v\": [\"Aktivera interaktiv vy\"] }, \"Widget height\": { \"v\": [\"Widget höjd\"] } } }, { \"l\": \"tr\", \"t\": { \"Enable interactive view\": { \"v\": [\"Etkileşimli görünümü aç\"] } } }, { \"l\": \"uk\", \"t\": { \"Enable interactive view\": { \"v\": [\"Увімкнути інтерактивний перегляд\"] } } }, { \"l\": \"uz\", \"t\": { \"Enable interactive view\": { \"v\": [\"Interaktiv ko'rinishni yoqing\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enable interactive view\": { \"v\": [\"启用交互视窗\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動視圖\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enable interactive view\": { \"v\": [\"啟用互動檢視\"] } } }];\nconst t25 = [{ \"l\": \"ar\", \"t\": { \"Enter link\": { \"v\": [\"أدخِل الرابط\"] } } }, { \"l\": \"ast\", \"t\": { \"Enter link\": { \"v\": [\"Introducir l'enllaz\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Enter link\": { \"v\": [\"Zadat odkaz\"] } } }, { \"l\": \"da\", \"t\": { \"Enter link\": { \"v\": [\"Indtast link\"] } } }, { \"l\": \"de\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Enter link\": { \"v\": [\"Link eingeben\"] } } }, { \"l\": \"el\", \"t\": { \"Enter link\": { \"v\": [\"Εισάγετε σύνδεσμο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Enter link\": { \"v\": [\"Enter link\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Enter link\": { \"v\": [\"Ingrese enlace\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Enter link\": { \"v\": [\"Ingresar enlace\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Enter link\": { \"v\": [\"Sisesta link\"] } } }, { \"l\": \"eu\", \"t\": { \"Enter link\": { \"v\": [\"Sartu esteka\"] } } }, { \"l\": \"fa\", \"t\": { \"Enter link\": { \"v\": [\"لینک را وارد کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Enter link\": { \"v\": [\"Kirjoita linkki\"] } } }, { \"l\": \"fr\", \"t\": { \"Enter link\": { \"v\": [\"Saisissez le lien\"] } } }, { \"l\": \"ga\", \"t\": { \"Enter link\": { \"v\": [\"Cuir isteach nasc\"] } } }, { \"l\": \"gl\", \"t\": { \"Enter link\": { \"v\": [\"Introducir a ligazón\"] } } }, { \"l\": \"he\", \"t\": { \"Enter link\": { \"v\": [\"מילוי קישור\"] } } }, { \"l\": \"hr\", \"t\": { \"Enter link\": { \"v\": [\"Unesi poveznicu\"] } } }, { \"l\": \"hu\", \"t\": { \"Enter link\": { \"v\": [\"Adja meg a hivatkozást\"] } } }, { \"l\": \"id\", \"t\": { \"Enter link\": { \"v\": [\"Masukkan tautan\"] } } }, { \"l\": \"is\", \"t\": { \"Enter link\": { \"v\": [\"Settu inn tengil\"] } } }, { \"l\": \"it\", \"t\": { \"Enter link\": { \"v\": [\"Inserire il link\"] } } }, { \"l\": \"ja\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Enter link\": { \"v\": [\"リンクを入力する\"] } } }, { \"l\": \"ko\", \"t\": { \"Enter link\": { \"v\": [\"링크 입력\"] } } }, { \"l\": \"lo\", \"t\": { \"Enter link\": { \"v\": [\"ປ້ອນລິງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Enter link\": { \"v\": [\"Įvesti nuorodą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Enter link\": { \"v\": [\"Внеси линк\"] } } }, { \"l\": \"mn\", \"t\": { \"Enter link\": { \"v\": [\"Холбоос оруулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Enter link\": { \"v\": [\"Skriv inn lenken\"] } } }, { \"l\": \"nl\", \"t\": { \"Enter link\": { \"v\": [\"Link invoeren\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Enter link\": { \"v\": [\"Wprowadź link\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Enter link\": { \"v\": [\"Insira o link\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Enter link\": { \"v\": [\"Inserir hiperligação\"] } } }, { \"l\": \"ro\", \"t\": { \"Enter link\": { \"v\": [\"Introduceți link-ul\"] } } }, { \"l\": \"ru\", \"t\": { \"Enter link\": { \"v\": [\"Введите ссылку\"] } } }, { \"l\": \"sk\", \"t\": { \"Enter link\": { \"v\": [\"Vložiť link\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Enter link\": { \"v\": [\"Унесите линк\"] } } }, { \"l\": \"sv\", \"t\": { \"Enter link\": { \"v\": [\"Ange länk\"] } } }, { \"l\": \"tr\", \"t\": { \"Enter link\": { \"v\": [\"Bağlantıyı yazın\"] } } }, { \"l\": \"uk\", \"t\": { \"Enter link\": { \"v\": [\"Зазначте посилання\"] } } }, { \"l\": \"uz\", \"t\": { \"Enter link\": { \"v\": [\"Havolani kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Enter link\": { \"v\": [\"输入链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Enter link\": { \"v\": [\"輸入連結\"] } } }];\nconst t26 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"External documentation\": { \"v\": [\"Externí dokumentace\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"External documentation\": { \"v\": [\"Ekstern dokumentation\"] } } }, { \"l\": \"de\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"External documentation\": { \"v\": [\"Externe Dokumentation\"] } } }, { \"l\": \"el\", \"t\": { \"External documentation\": { \"v\": [\"Εξωτερική τεκμηρίωση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"External documentation\": { \"v\": [\"External documentation\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentatsioon välises allikas\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"External documentation\": { \"v\": [\"Documentation externe\"] } } }, { \"l\": \"ga\", \"t\": { \"External documentation\": { \"v\": [\"Doiciméadú seachtrach\"] } } }, { \"l\": \"gl\", \"t\": { \"External documentation\": { \"v\": [\"Documentación externa\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"External documentation\": { \"v\": [\"Vanjska dokumentacija\"] } } }, { \"l\": \"hu\", \"t\": { \"External documentation\": { \"v\": [\"Külső dokumentáció\"] } } }, { \"l\": \"id\", \"t\": { \"External documentation\": { \"v\": [\"Dokumentasi eksternal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"External documentation\": { \"v\": [\"外部ドキュメント\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"External documentation\": { \"v\": [\"외부 문서\"] } } }, { \"l\": \"lo\", \"t\": { \"External documentation\": { \"v\": [\"ເອກະສານພາຍນອກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"External documentation\": { \"v\": [\"Išorinė dokumentacija\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"External documentation\": { \"v\": [\"Надворешна документација\"] } } }, { \"l\": \"mn\", \"t\": { \"External documentation\": { \"v\": [\"Гадаад баримт бичиг\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"External documentation\": { \"v\": [\"Externe documentatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"External documentation\": { \"v\": [\"Documentação externa\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"External documentation\": { \"v\": [\"Внешняя документация\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"External documentation\": { \"v\": [\"Спољна документација\"] } } }, { \"l\": \"sv\", \"t\": { \"External documentation\": { \"v\": [\"Extern dokumentation\"] } } }, { \"l\": \"tr\", \"t\": { \"External documentation\": { \"v\": [\"Dış belgeler\"] } } }, { \"l\": \"uk\", \"t\": { \"External documentation\": { \"v\": [\"Зовнішня документація\"] } } }, { \"l\": \"uz\", \"t\": { \"External documentation\": { \"v\": [\"Tashqi hujjatlar\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"External documentation\": { \"v\": [\"外部文件\"] } } }];\nconst t27 = [{ \"l\": \"ar\", \"t\": { \"Go back to the list\": { \"v\": [\"عودة إلى القائمة\"] } } }, { \"l\": \"ast\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la llista\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna a la llista\"] } } }, { \"l\": \"cs\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Go back to the list\": { \"v\": [\"Jít zpět na seznam\"] } } }, { \"l\": \"da\", \"t\": { \"Go back to the list\": { \"v\": [\"Tilbage til listen\"] } } }, { \"l\": \"de\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Go back to the list\": { \"v\": [\"Zurück zur Liste\"] } } }, { \"l\": \"el\", \"t\": { \"Go back to the list\": { \"v\": [\"Επιστροφή στην αρχική λίστα\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Go back to the list\": { \"v\": [\"Go back to the list\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver a la lista\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Go back to the list\": { \"v\": [\"Regresar a la lista\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Go back to the list\": { \"v\": [\"Tagasi nimekirja juurde\"] } } }, { \"l\": \"eu\", \"t\": { \"Go back to the list\": { \"v\": [\"Bueltatu zerrendara\"] } } }, { \"l\": \"fa\", \"t\": { \"Go back to the list\": { \"v\": [\"برگشت به لیست\"] } } }, { \"l\": \"fi\", \"t\": { \"Go back to the list\": { \"v\": [\"Takaisin listaan\"] } } }, { \"l\": \"fr\", \"t\": { \"Go back to the list\": { \"v\": [\"Retourner à la liste\"] } } }, { \"l\": \"ga\", \"t\": { \"Go back to the list\": { \"v\": [\"Téigh ar ais go dtí an liosta\"] } } }, { \"l\": \"gl\", \"t\": { \"Go back to the list\": { \"v\": [\"Volver á lista\"] } } }, { \"l\": \"he\", \"t\": { \"Go back to the list\": { \"v\": [\"חזרה לרשימה\"] } } }, { \"l\": \"hr\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrati se na popis\"] } } }, { \"l\": \"hu\", \"t\": { \"Go back to the list\": { \"v\": [\"Ugrás vissza a listához\"] } } }, { \"l\": \"id\", \"t\": { \"Go back to the list\": { \"v\": [\"Kembali ke daftar\"] } } }, { \"l\": \"is\", \"t\": { \"Go back to the list\": { \"v\": [\"Fara til baka í listann\"] } } }, { \"l\": \"it\", \"t\": { \"Go back to the list\": { \"v\": [\"Torna all'elenco\"] } } }, { \"l\": \"ja\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Go back to the list\": { \"v\": [\"リストに戻る\"] } } }, { \"l\": \"ko\", \"t\": { \"Go back to the list\": { \"v\": [\"목록으로 돌아가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Go back to the list\": { \"v\": [\"ກັບໄປທີ່ລາຍການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Go back to the list\": { \"v\": [\"Grįžti į sąrašą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Go back to the list\": { \"v\": [\"Врати се на листата\"] } } }, { \"l\": \"mn\", \"t\": { \"Go back to the list\": { \"v\": [\"Жагсаалт руу буцах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tilbake til listen\"] } } }, { \"l\": \"nl\", \"t\": { \"Go back to the list\": { \"v\": [\"Ga terug naar de lijst\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Go back to the list\": { \"v\": [\"Powrót do listy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Go back to the list\": { \"v\": [\"Voltar para a lista\"] } } }, { \"l\": \"ro\", \"t\": { \"Go back to the list\": { \"v\": [\"Întoarceți-vă la listă\"] } } }, { \"l\": \"ru\", \"t\": { \"Go back to the list\": { \"v\": [\"Вернуться к списку\"] } } }, { \"l\": \"sk\", \"t\": { \"Go back to the list\": { \"v\": [\"Späť na zoznam\"] } } }, { \"l\": \"sl\", \"t\": { \"Go back to the list\": { \"v\": [\"Vrni se na seznam\"] } } }, { \"l\": \"sr\", \"t\": { \"Go back to the list\": { \"v\": [\"Назад на листу\"] } } }, { \"l\": \"sv\", \"t\": { \"Go back to the list\": { \"v\": [\"Gå tillbaka till listan\"] } } }, { \"l\": \"tr\", \"t\": { \"Go back to the list\": { \"v\": [\"Listeye dön\"] } } }, { \"l\": \"uk\", \"t\": { \"Go back to the list\": { \"v\": [\"Повернутися до списку\"] } } }, { \"l\": \"uz\", \"t\": { \"Go back to the list\": { \"v\": [\"Ro'yxatga qayting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Go back to the list\": { \"v\": [\"返回至列表\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Go back to the list\": { \"v\": [\"返回清單\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Go back to the list\": { \"v\": [\"回到清單\"] } } }];\nconst t28 = [{ \"l\": \"ar\", \"t\": { \"Hide details\": { \"v\": [\"أخفِ التفاصيل\"] }, \"Rename project\": { \"v\": [\"تغيير اسم المشروع\"] }, \"Show details\": { \"v\": [\"أظهِر التفاصيل\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Hide details\": { \"v\": [\"Skrýt podrobnosti\"] }, \"Rename project\": { \"v\": [\"Přejmenovat projekt\"] }, \"Show details\": { \"v\": [\"Zobrazit podrobnosti\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Omdøb projekt\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"de\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide details\": { \"v\": [\"Details ausblenden\"] }, \"Rename project\": { \"v\": [\"Projekt umbenennen\"] }, \"Show details\": { \"v\": [\"Details anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide details\": { \"v\": [\"Απόκρυψη λεπτομερειών\"] }, \"Rename project\": { \"v\": [\"Μετονομασία έργου\"] }, \"Show details\": { \"v\": [\"Εμφάνιση λεπτομερειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide details\": { \"v\": [\"Hide details\"] }, \"Rename project\": { \"v\": [\"Rename project\"] }, \"Show details\": { \"v\": [\"Show details\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalles\"] }, \"Rename project\": { \"v\": [\"Renombrar proyecto\"] }, \"Show details\": { \"v\": [\"Mostrar detalles\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide details\": { \"v\": [\"Peida üksikasjad\"] }, \"Rename project\": { \"v\": [\"Muuda projekti nime\"] }, \"Show details\": { \"v\": [\"Näita üksikasju\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Hide details\": { \"v\": [\"پنهان کردن جزئیات\"] }, \"Rename project\": { \"v\": [\"تغییر نام پروژه\"] }, \"Show details\": { \"v\": [\"نمایش جزئیات\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide details\": { \"v\": [\"Piilota yksityiskohdat\"] }, \"Rename project\": { \"v\": [\"Nimeä projekti\"] }, \"Show details\": { \"v\": [\"Näytä yksityiskohdat\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide details\": { \"v\": [\"Masquer les détails\"] }, \"Rename project\": { \"v\": [\"Renommer le projet\"] }, \"Show details\": { \"v\": [\"Afficher les détails\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide details\": { \"v\": [\"Folaigh sonraí\"] }, \"Rename project\": { \"v\": [\"Athainmnigh an tionscadal\"] }, \"Show details\": { \"v\": [\"Taispeáin sonraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide details\": { \"v\": [\"Agochar os detalles\"] }, \"Rename project\": { \"v\": [\"Cambiar o nome do proxecto\"] }, \"Show details\": { \"v\": [\"Amosar os detalles\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Hide details\": { \"v\": [\"Sakrij detalje\"] }, \"Rename project\": { \"v\": [\"Preimenuj projekt\"] }, \"Show details\": { \"v\": [\"Prikaži detalje\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide details\": { \"v\": [\"Részletek elrejtése\"] }, \"Rename project\": { \"v\": [\"Projekt átnevezése\"] }, \"Show details\": { \"v\": [\"Részletek megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide details\": { \"v\": [\"Sembunyikan detail\"] }, \"Rename project\": { \"v\": [\"Ganti nama proyek\"] }, \"Show details\": { \"v\": [\"Tampilkan detail\"] } } }, { \"l\": \"is\", \"t\": { \"Hide details\": { \"v\": [\"Fela nánari upplýsingar\"] }, \"Rename project\": { \"v\": [\"Endurnefna verkefni\"] }, \"Show details\": { \"v\": [\"Birta nánari upplýsingar\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Hide details\": { \"v\": [\"詳細を非表示\"] }, \"Rename project\": { \"v\": [\"プロジェクト名を変更\"] }, \"Show details\": { \"v\": [\"詳細の表示\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Hide details\": { \"v\": [\"세부 사항 숨기기\"] }, \"Rename project\": { \"v\": [\"프로젝트 이름 변경\"] }, \"Show details\": { \"v\": [\"세부 사항 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide details\": { \"v\": [\"ເຊື່ອງລາຍລະອຽດ\"] }, \"Rename project\": { \"v\": [\"ປ່ຽນຊື່ໂຄງການ\"] }, \"Show details\": { \"v\": [\"ສະແດງລາຍລະອຽດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide details\": { \"v\": [\"Slėpti detales\"] }, \"Rename project\": { \"v\": [\"Pervadinti projektą\"] }, \"Show details\": { \"v\": [\"Rodyti detales\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide details\": { \"v\": [\"Сокриј детали\"] }, \"Rename project\": { \"v\": [\"Преименувај проект\"] }, \"Show details\": { \"v\": [\"Прикажи детали\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide details\": { \"v\": [\"Дэлгэрэнгүйг нуух\"] }, \"Rename project\": { \"v\": [\"Төслийн нэр солих\"] }, \"Show details\": { \"v\": [\"Дэлгэрэнгүйг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide details\": { \"v\": [\"Skjul detaljer\"] }, \"Rename project\": { \"v\": [\"Gi prosjekt nytt navn\"] }, \"Show details\": { \"v\": [\"Vis detaljer\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide details\": { \"v\": [\"Details verbergen\"] }, \"Rename project\": { \"v\": [\"Project hernoemen\"] }, \"Show details\": { \"v\": [\"Details weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide details\": { \"v\": [\"Ukryj szczegóły\"] }, \"Rename project\": { \"v\": [\"Zmień nazwę projektu\"] }, \"Show details\": { \"v\": [\"Pokaż szczegóły\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Renomear projeto\"] }, \"Show details\": { \"v\": [\"Mostrar detalhes\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide details\": { \"v\": [\"Ocultar detalhes\"] }, \"Rename project\": { \"v\": [\"Alterar nome do projeto\"] }, \"Show details\": { \"v\": [\"Ver detalhes\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Hide details\": { \"v\": [\"Скрыть подробности\"] }, \"Rename project\": { \"v\": [\"Переименовать проект\"] }, \"Show details\": { \"v\": [\"Показать детали\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide details\": { \"v\": [\"Skryť detaily\"] }, \"Rename project\": { \"v\": [\"Premenovať projekt\"] }, \"Show details\": { \"v\": [\"Zobraziť detaily\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Hide details\": { \"v\": [\"Сакриј детаље\"] }, \"Rename project\": { \"v\": [\"Промени име пројекта\"] }, \"Show details\": { \"v\": [\"Прикажи детаље\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide details\": { \"v\": [\"Göm detaljer\"] }, \"Rename project\": { \"v\": [\"Byt namn på projektet\"] }, \"Show details\": { \"v\": [\"Visa detaljer\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide details\": { \"v\": [\"Ayrıntıları gizle\"] }, \"Rename project\": { \"v\": [\"Projeyi yeniden adlandır\"] }, \"Show details\": { \"v\": [\"Ayrıntıları görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide details\": { \"v\": [\"Сховати деталі\"] }, \"Rename project\": { \"v\": [\"Перейменувати проєкт\"] }, \"Show details\": { \"v\": [\"Показати деталі\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide details\": { \"v\": [\"Tafsilotlarni yashirish\"] }, \"Rename project\": { \"v\": [\"Loyiha nomini o'zgartirish\"] }, \"Show details\": { \"v\": [\"Tafsilotlarni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide details\": { \"v\": [\"隐藏细节\"] }, \"Rename project\": { \"v\": [\"重命名项目\"] }, \"Show details\": { \"v\": [\"显示细节\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳情\"] }, \"Rename project\": { \"v\": [\"重命名方案\"] }, \"Show details\": { \"v\": [\"顯示詳情\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide details\": { \"v\": [\"隱藏詳細資料\"] }, \"Rename project\": { \"v\": [\"重新命名專案\"] }, \"Show details\": { \"v\": [\"顯示詳細資訊\"] } } }];\nconst t29 = [{ \"l\": \"ar\", \"t\": { \"Hide password\": { \"v\": [\"إخفاء كلمة المرور\"] }, \"Password is secure\": { \"v\": [\"كلمة المرور آمنة\"] }, \"Show password\": { \"v\": [\"أظهِر كلمة المرور\"] } } }, { \"l\": \"ast\", \"t\": { \"Hide password\": { \"v\": [\"Anubrir la contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña ye segura\"] }, \"Show password\": { \"v\": [\"Amosar la contraseña\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Hide password\": { \"v\": [\"Amagar contrasenya\"] }, \"Password is secure\": { \"v\": [\"Contrasenya segura
\"] }, \"Show password\": { \"v\": [\"Mostrar contrasenya\"] } } }, { \"l\": \"cs\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Hide password\": { \"v\": [\"Skrýt heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobrazit heslo\"] } } }, { \"l\": \"da\", \"t\": { \"Hide password\": { \"v\": [\"Skjul kodeord\"] }, \"Password is secure\": { \"v\": [\"Kodeordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis kodeord\"] } } }, { \"l\": \"de\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Hide password\": { \"v\": [\"Passwort verbergen\"] }, \"Password is secure\": { \"v\": [\"Passwort ist sicher\"] }, \"Show password\": { \"v\": [\"Passwort anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Hide password\": { \"v\": [\"Απόκρυψη συνθηματικού\"] }, \"Password is secure\": { \"v\": [\"Το συνθηματικό είναι ασφαλές\"] }, \"Show password\": { \"v\": [\"Εμφάνιση κωδικού πρόσβασης\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Hide password\": { \"v\": [\"Hide password\"] }, \"Password is secure\": { \"v\": [\"Password is secure\"] }, \"Show password\": { \"v\": [\"Show password\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar contraseña\"] }, \"Password is secure\": { \"v\": [\"La contraseña es segura\"] }, \"Show password\": { \"v\": [\"Mostrar contraseña\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Hide password\": { \"v\": [\"Peida salasõna\"] }, \"Password is secure\": { \"v\": [\"Salasõna on turvaline\"] }, \"Show password\": { \"v\": [\"Näita salasõna\"] } } }, { \"l\": \"eu\", \"t\": { \"Hide password\": { \"v\": [\"Ezkutatu pasahitza\"] }, \"Password is secure\": { \"v\": [\"Pasahitza segurua da\"] }, \"Show password\": { \"v\": [\"Erakutsi pasahitza\"] } } }, { \"l\": \"fa\", \"t\": { \"Hide password\": { \"v\": [\"پنهان کردن رمز عبور\"] }, \"Password is secure\": { \"v\": [\"گذرواژه امن است\"] }, \"Show password\": { \"v\": [\"نمایش گذرواژه\"] } } }, { \"l\": \"fi\", \"t\": { \"Hide password\": { \"v\": [\"Piilota salasana\"] }, \"Password is secure\": { \"v\": [\"Salasana on turvallinen\"] }, \"Show password\": { \"v\": [\"Näytä salasana\"] } } }, { \"l\": \"fr\", \"t\": { \"Hide password\": { \"v\": [\"Cacher le mot de passe\"] }, \"Password is secure\": { \"v\": [\"Le mot de passe est sécurisé\"] }, \"Show password\": { \"v\": [\"Afficher le mot de passe\"] } } }, { \"l\": \"ga\", \"t\": { \"Hide password\": { \"v\": [\"Folaigh pasfhocal\"] }, \"Password is secure\": { \"v\": [\"Tá pasfhocal slán\"] }, \"Show password\": { \"v\": [\"Taispeáin pasfhocal\"] } } }, { \"l\": \"gl\", \"t\": { \"Hide password\": { \"v\": [\"Agochar o contrasinal\"] }, \"Password is secure\": { \"v\": [\"O contrasinal é seguro\"] }, \"Show password\": { \"v\": [\"Amosar o contrasinal\"] } } }, { \"l\": \"he\", \"t\": { \"Hide password\": { \"v\": [\"הסתרת סיסמה\"] }, \"Password is secure\": { \"v\": [\"הסיסמה מאובטחת\"] }, \"Show password\": { \"v\": [\"הצגת סיסמה\"] } } }, { \"l\": \"hr\", \"t\": { \"Hide password\": { \"v\": [\"Sakrij lozinku\"] }, \"Password is secure\": { \"v\": [\"Lozinka je zaštićena\"] }, \"Show password\": { \"v\": [\"Prikaži lozinku\"] } } }, { \"l\": \"hu\", \"t\": { \"Hide password\": { \"v\": [\"Jelszó elrejtése\"] }, \"Password is secure\": { \"v\": [\"A jelszó biztonságos\"] }, \"Show password\": { \"v\": [\"Jelszó megjelenítése\"] } } }, { \"l\": \"id\", \"t\": { \"Hide password\": { \"v\": [\"Sembunyikan sandi\"] }, \"Password is secure\": { \"v\": [\"Kata sandi sudah aman\"] }, \"Show password\": { \"v\": [\"Tampilkan sandi\"] } } }, { \"l\": \"is\", \"t\": { \"Hide password\": { \"v\": [\"Fela lykilorð\"] }, \"Password is secure\": { \"v\": [\"Lykilorðið er öruggt\"] }, \"Show password\": { \"v\": [\"Birta lykilorð\"] } } }, { \"l\": \"it\", \"t\": { \"Hide password\": { \"v\": [\"Nascondi la password\"] }, \"Password is secure\": { \"v\": [\"La password è sicura\"] }, \"Show password\": { \"v\": [\"Mostra la password\"] } } }, { \"l\": \"ja\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Hide password\": { \"v\": [\"パスワードを非表示\"] }, \"Password is secure\": { \"v\": [\"パスワードは保護されています\"] }, \"Show password\": { \"v\": [\"パスワードを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Hide password\": { \"v\": [\"암호 숨기기\"] }, \"Password is secure\": { \"v\": [\"암호가 안전합니다.\"] }, \"Show password\": { \"v\": [\"암호 표시\"] } } }, { \"l\": \"lo\", \"t\": { \"Hide password\": { \"v\": [\"ເຊື່ອງລະຫັດຜ່ານ\"] }, \"Password is secure\": { \"v\": [\"ລະຫັດຜ່ານປອດໄພ\"] }, \"Show password\": { \"v\": [\"ສະແດງລະຫັດຜ່ານ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Hide password\": { \"v\": [\"Slėpti slaptažodį\"] }, \"Password is secure\": { \"v\": [\"Slaptažodis yra saugus\"] }, \"Show password\": { \"v\": [\"Rodyti slaptažodį\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Hide password\": { \"v\": [\"Сокриј лозинка\"] }, \"Password is secure\": { \"v\": [\"Лозинката е безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинка\"] } } }, { \"l\": \"mn\", \"t\": { \"Hide password\": { \"v\": [\"Нууц үгийг нуух\"] }, \"Password is secure\": { \"v\": [\"Нууц үг найдвартай байна\"] }, \"Show password\": { \"v\": [\"Нууц үгийг харуулах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Hide password\": { \"v\": [\"Skjul passord\"] }, \"Password is secure\": { \"v\": [\"Passordet er sikkert\"] }, \"Show password\": { \"v\": [\"Vis passord\"] } } }, { \"l\": \"nl\", \"t\": { \"Hide password\": { \"v\": [\"Wachtwoord verbergen\"] }, \"Password is secure\": { \"v\": [\"Wachtwoord is veilig\"] }, \"Show password\": { \"v\": [\"Wachtwoord weergeven\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Hide password\": { \"v\": [\"Ukryj hasło\"] }, \"Password is secure\": { \"v\": [\"Hasło jest bezpieczne\"] }, \"Show password\": { \"v\": [\"Pokaż hasło\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar senha\"] }, \"Password is secure\": { \"v\": [\"A senha é segura\"] }, \"Show password\": { \"v\": [\"Mostrar senha\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Hide password\": { \"v\": [\"Ocultar palavra-passe\"] }, \"Password is secure\": { \"v\": [\"A palavra-passe é segura\"] }, \"Show password\": { \"v\": [\"Mostrar palavra-passe\"] } } }, { \"l\": \"ro\", \"t\": { \"Hide password\": { \"v\": [\"Ascunde parola\"] }, \"Password is secure\": { \"v\": [\"Parola este sigură\"] }, \"Show password\": { \"v\": [\"Arată parola\"] } } }, { \"l\": \"ru\", \"t\": { \"Hide password\": { \"v\": [\"Скрыть пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль надежный\"] }, \"Show password\": { \"v\": [\"Показать пароль\"] } } }, { \"l\": \"sk\", \"t\": { \"Hide password\": { \"v\": [\"Skryť heslo\"] }, \"Password is secure\": { \"v\": [\"Heslo je bezpečné\"] }, \"Show password\": { \"v\": [\"Zobraziť heslo\"] } } }, { \"l\": \"sl\", \"t\": { \"Hide password\": { \"v\": [\"Skrij geslo\"] }, \"Password is secure\": { \"v\": [\"Geslo je varno\"] }, \"Show password\": { \"v\": [\"Pokaži geslo\"] } } }, { \"l\": \"sr\", \"t\": { \"Hide password\": { \"v\": [\"Сакриј лозинку\"] }, \"Password is secure\": { \"v\": [\"Лозинка је безбедна\"] }, \"Show password\": { \"v\": [\"Прикажи лозинку\"] } } }, { \"l\": \"sv\", \"t\": { \"Hide password\": { \"v\": [\"Göm lösenordet\"] }, \"Password is secure\": { \"v\": [\"Lössenordet är säkert\"] }, \"Show password\": { \"v\": [\"Visa lösenordet\"] } } }, { \"l\": \"tr\", \"t\": { \"Hide password\": { \"v\": [\"Parolayı gizle\"] }, \"Password is secure\": { \"v\": [\"Parola güvenli\"] }, \"Show password\": { \"v\": [\"Parolayı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Hide password\": { \"v\": [\"Приховати пароль\"] }, \"Password is secure\": { \"v\": [\"Пароль безпечний\"] }, \"Show password\": { \"v\": [\"Показати пароль\"] } } }, { \"l\": \"uz\", \"t\": { \"Hide password\": { \"v\": [\"Parolni yashirish\"] }, \"Password is secure\": { \"v\": [\"Parol xavfsiz\"] }, \"Show password\": { \"v\": [\"Parolni ko'rsatish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Hide password\": { \"v\": [\"隐藏密码\"] }, \"Password is secure\": { \"v\": [\"密码安全\"] }, \"Show password\": { \"v\": [\"显示密码\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼是安全的\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Hide password\": { \"v\": [\"隱藏密碼\"] }, \"Password is secure\": { \"v\": [\"密碼安全\"] }, \"Show password\": { \"v\": [\"顯示密碼\"] } } }];\nconst t30 = [{ \"l\": \"ar\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"مساعدة في التنقل باستعمال لوحة المفاتيح\"] }, \"Skip to app navigation\": { \"v\": [\"تجاوَز إلى التنقل في التطبيق\"] }, \"Skip to main content\": { \"v\": [\"تجاوَز إلى المحتوى الرئيسي\"] } } }, { \"l\": \"ast\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de la navegación pente'l tecláu\"] }, \"Skip to app navigation\": { \"v\": [\"Dir a la navegación d'aplicaciones\"] }, \"Skip to main content\": { \"v\": [\"Dir al conteníu principal\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Nápověda pro pohyb pomocí klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Přeskočit na navigaci aplikace\"] }, \"Skip to main content\": { \"v\": [\"Přeskočit na hlavní obsah\"] } } }, { \"l\": \"da\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjælp til tastaturnavigation\"] }, \"Skip to app navigation\": { \"v\": [\"Spring til app navigation\"] }, \"Skip to main content\": { \"v\": [\"Spring til hovedindhold\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Tastatur-Navigationshilfe\"] }, \"Skip to app navigation\": { \"v\": [\"Zur App-Navigation springen\"] }, \"Skip to main content\": { \"v\": [\"Zum Hauptinhalt springen\"] } } }, { \"l\": \"el\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Βοήθεια πλοήγησης με πληκτρολόγιο\"] }, \"Skip to app navigation\": { \"v\": [\"Μετάβαση στην πλοήγηση της εφαρμογής\"] }, \"Skip to main content\": { \"v\": [\"Μετάβαση στο κύριο περιεχόμενο\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Keyboard navigation help\"] }, \"Skip to app navigation\": { \"v\": [\"Skip to app navigation\"] }, \"Skip to main content\": { \"v\": [\"Skip to main content\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de apps\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ayuda de navegación del teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar a la navegación de app\"] }, \"Skip to main content\": { \"v\": [\"Saltar al contenido principal\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klahvistiku kasutuse abiteave\"] }, \"Skip to app navigation\": { \"v\": [\"Suundu rakenduses liikumise valikute juurde\"] }, \"Skip to main content\": { \"v\": [\"Suundu põhisisu juurde\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"راهنمای ناوبری صفحه کلید\"] }, \"Skip to app navigation\": { \"v\": [\"رفتن به پیمایش برنامه\"] }, \"Skip to main content\": { \"v\": [\"رفتن به محتوای اصلی\"] } } }, { \"l\": \"fi\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Näppäimistönavigoinnin ohje\"] }, \"Skip to app navigation\": { \"v\": [\"Siirry sovelluksen navigaatioon\"] }, \"Skip to main content\": { \"v\": [\"Siirry pääsisältöön\"] } } }, { \"l\": \"fr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aide à la navigation du clavier\"] }, \"Skip to app navigation\": { \"v\": [\"Passer à l'app navigation\"] }, \"Skip to main content\": { \"v\": [\"Passer au contenu principal\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Cabhair le nascleanúint méarchláir\"] }, \"Skip to app navigation\": { \"v\": [\"Téigh ar aghaidh chuig nascleanúint aip\"] }, \"Skip to main content\": { \"v\": [\"Téigh ar aghaidh chuig an bpríomhábhar\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Axuda á navegación co teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir á navegación da aplicación\"] }, \"Skip to main content\": { \"v\": [\"Ir ao contido principal\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoć za navigaciju tipkovnicom\"] }, \"Skip to app navigation\": { \"v\": [\"Preskoči na navigaciju aplikacije\"] }, \"Skip to main content\": { \"v\": [\"Preskoči na glavni sadržaj\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Billentyűzetes navigáció súgója\"] }, \"Skip to app navigation\": { \"v\": [\"Ugrás az alkalmazásnavigációhoz\"] }, \"Skip to main content\": { \"v\": [\"Ugrás a fő tartalomhoz\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Bantuan navigasi keyboard\"] }, \"Skip to app navigation\": { \"v\": [\"Lewati ke navigasi aplikasi\"] }, \"Skip to main content\": { \"v\": [\"Lewati ke konten utama\"] } } }, { \"l\": \"is\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Aðstoð við rötun á lyklaborði\"] }, \"Skip to app navigation\": { \"v\": [\"Sleppa og fara í flakk innan forrits\"] }, \"Skip to main content\": { \"v\": [\"Sleppa og fara í meginefni\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"キーボード・ナビゲーション・ヘルプ\"] }, \"Skip to app navigation\": { \"v\": [\"アプリのナビゲーションへ移動\"] }, \"Skip to main content\": { \"v\": [\"メインコンテンツへ移動\"] } } }, { \"l\": \"ko\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"키보드 탐색 도움말\"] }, \"Skip to app navigation\": { \"v\": [\"앱 탐색으로 건너뛰기\"] }, \"Skip to main content\": { \"v\": [\"본 내용으로 건너뛰기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"ການຊ່ວຍເຫຼືອການນຳທາງດ້ວຍຄີບອດ\"] }, \"Skip to app navigation\": { \"v\": [\"ຂ້າມໄປທີ່ການນຳທາງຂອງແອັບ\"] }, \"Skip to main content\": { \"v\": [\"ຂ້າມໄປທີ່ເນື້ອຫາຫຼັກ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatūros navigacijos pagalba\"] }, \"Skip to app navigation\": { \"v\": [\"Pereiti prie programėlės naršymo\"] }, \"Skip to main content\": { \"v\": [\"Pereiti prie pagrindinio turinio\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Навигација со тастатура\"] }, \"Skip to app navigation\": { \"v\": [\"Прескокни на навигација на апликацијата\"] }, \"Skip to main content\": { \"v\": [\"Прескокни на главна содржина\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Гарын навигацийн тусламж\"] }, \"Skip to app navigation\": { \"v\": [\"Аппын навигаци руу алгасах\"] }, \"Skip to main content\": { \"v\": [\"Үндсэн агуулга руу алгасах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjelp for tastaturnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hopp til appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hopp til hovedinnhold\"] } } }, { \"l\": \"nl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hulp voor toetsenbordnavigatie\"] }, \"Skip to app navigation\": { \"v\": [\"Doorgaan naar app-navigatie\"] }, \"Skip to main content\": { \"v\": [\"Naar hoofdinhoud gaan\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc w nawigacji za pomocą klawiatury\"] }, \"Skip to app navigation\": { \"v\": [\"Przewiń do nawigacji\"] }, \"Skip to main content\": { \"v\": [\"Przewiń do głównych treści\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda para navegação pelo teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Ir para navegação de aplicativo\"] }, \"Skip to main content\": { \"v\": [\"Ir para conteúdo principal\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Ajuda à navegação no teclado\"] }, \"Skip to app navigation\": { \"v\": [\"Saltar para navegação da app\"] }, \"Skip to main content\": { \"v\": [\"Saltar para conteúdo principal\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Справка по навигации с помощью клавиатуры\"] }, \"Skip to app navigation\": { \"v\": [\"Перейти к навигации по приложению\"] }, \"Skip to main content\": { \"v\": [\"Перейти к основному содержанию\"] } } }, { \"l\": \"sk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Pomoc pri navigácii pomocou klávesnice\"] }, \"Skip to app navigation\": { \"v\": [\"Preskočiť na navigáciu v aplikácii\"] }, \"Skip to main content\": { \"v\": [\"Preskočiť na hlavný obsah\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Помоћ за навигацију тастатуром\"] }, \"Skip to app navigation\": { \"v\": [\"Прескочи на навигацију апликацијом\"] }, \"Skip to main content\": { \"v\": [\"Прескочи на главни садржај\"] } } }, { \"l\": \"sv\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Hjälp med tangentbordsnavigering\"] }, \"Skip to app navigation\": { \"v\": [\"Hoppa till appnavigering\"] }, \"Skip to main content\": { \"v\": [\"Hoppa till huvudinnehåll\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klavye ile gezinme yardımı\"] }, \"Skip to app navigation\": { \"v\": [\"Uygulama gezinmesine git\"] }, \"Skip to main content\": { \"v\": [\"Ana içeriğe git\"] } } }, { \"l\": \"uk\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Допомога з навігацією клавішами\"] }, \"Skip to app navigation\": { \"v\": [\"Пропустити навігацію по застосунках\"] }, \"Skip to main content\": { \"v\": [\"Перейти одразу до головного вмісту\"] } } }, { \"l\": \"uz\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"Klaviatura navigatsiyasi yordami\"] }, \"Skip to app navigation\": { \"v\": [\"Ilova navigatsiyasiga oʻtish\"] }, \"Skip to main content\": { \"v\": [\"Asosiy tarkibga o'tish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"键盘导航栏帮助\"] }, \"Skip to app navigation\": { \"v\": [\"跳转至应用程序导航页\"] }, \"Skip to main content\": { \"v\": [\"跳转至主要内容\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航幫助\"] }, \"Skip to app navigation\": { \"v\": [\"跳至應用程式導航\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard navigation help\": { \"v\": [\"鍵盤導航說明\"] }, \"Skip to app navigation\": { \"v\": [\"略過應用程式導覽\"] }, \"Skip to main content\": { \"v\": [\"跳至主要內容\"] } } }];\nconst t31 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klávesové zkratky\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturgenveje\"] } } }, { \"l\": \"de\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tastaturkürzel\"] } } }, { \"l\": \"el\", \"t\": {} }, { \"l\": \"en-GB\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Keyboard shortcuts\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klahvistiku kiirklahvid\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Raccourcis clavier\"] } } }, { \"l\": \"ga\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Aicearraí méarchláir\"] } } }, { \"l\": \"gl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atallos de teclado\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tipkovnički prečaci\"] } } }, { \"l\": \"hu\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Gyorsbillentyűk\"] } } }, { \"l\": \"id\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Shortcut keyboard\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"キーボードショートカット\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"키보드 바로가기\"] } } }, { \"l\": \"lo\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"ທາງລັດຄີບອດ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Spartieji klavišai\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Кратенки со тастатура\"] } } }, { \"l\": \"mn\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Гарын товчлол\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Toetsenbord sneltoetsen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Atalhos de teclado\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Комбинации клавиш\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": {} }, { \"l\": \"sv\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Tangentbordsgenvägar\"] } } }, { \"l\": \"tr\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klavye kısayolları\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"Klaviatura yorliqlari\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Keyboard shortcuts\": { \"v\": [\"鍵盤快速鍵\"] } } }];\nconst t32 = [{ \"l\": \"ar\", \"t\": { 'Load more \"{options}\"': { \"v\": ['تحميل المزيد من \"{options}\" '] }, \"Raw link {options}\": { \"v\": [\" الرابط الخام raw link ـ {options}\"] }, \"Start typing to search\": { \"v\": [\"إبدإ كتابة مفردات البحث\"] } } }, { \"l\": \"ast\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar más «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Enllaz en bruto {optiones}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir pa buscar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Načíst další „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Holý odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Vyhledávejte psaním\"] } } }, { \"l\": \"da\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Indlæs flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå link {options}\"] }, \"Start typing to search\": { \"v\": [\"Begynd at skrive for at søge\"] } } }, { \"l\": \"de\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Weitere \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Unverarbeiteter Link {options}\"] }, \"Start typing to search\": { \"v\": [\"Mit der Eingabe beginnen, um zu suchen\"] } } }, { \"l\": \"el\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Φόρτωση περισσότερων \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ακατέργαστος σύνδεσμος {options}\"] }, \"Start typing to search\": { \"v\": [\"Ξεκινήστε να πληκτρολογείτε για αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Load more \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start typing to search\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comienza a escribir para buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Cargar más \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Enlace directo {options}\"] }, \"Start typing to search\": { \"v\": [\"Comience a escribir para buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Laadi veel „{options}“\"] }, \"Raw link {options}\": { \"v\": [\"Töötlemata link: {options}\"] }, \"Start typing to search\": { \"v\": [\"Otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Kargatu \"{options}\" gehiago'] }, \"Raw link {options}\": { \"v\": [\"Formaturik gabeko esteka {aukerak}\"] }, \"Start typing to search\": { \"v\": [\"Hasi idazten bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { 'Load more \"{options}\"': { \"v\": ['بارگذاری بیشتر \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"پیوند خام {options}\"] }, \"Start typing to search\": { \"v\": [\"برای جستجو تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Lataa lisää \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raaka linkki {options}\"] }, \"Start typing to search\": { \"v\": [\"Aloita kirjoittaminen hakeaksesi\"] } } }, { \"l\": \"fr\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Charger d'avantage \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\"Lien brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Commencez à écrire pour rechercher\"] } } }, { \"l\": \"ga\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Luchtaigh tuilleadh \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Nasc amh {roghanna}\"] }, \"Start typing to search\": { \"v\": [\"Tosaigh ag clóscríobh chun cuardach a dhéanamh\"] } } }, { \"l\": \"gl\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Cargar máis «{options}»\"] }, \"Raw link {options}\": { \"v\": [\"Ligazón sen procesar {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a escribir para buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Raw link {options}\": { \"v\": [\"קישור גולמי {options}\"] }, \"Start typing to search\": { \"v\": [\"התחלת הקלדה מחפשת\"] } } }, { \"l\": \"hr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Učitaj još „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Izravna poveznica {options}\"] }, \"Start typing to search\": { \"v\": [\"Počnite tipkati za pretraživanje\"] } } }, { \"l\": \"hu\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"További „{options}” betöltése\"] }, \"Raw link {options}\": { \"v\": [\"Nyers hivatkozás: {options}\"] }, \"Start typing to search\": { \"v\": [\"Kezdjen gépelni a kereséshez\"] } } }, { \"l\": \"id\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Muat \"{options}\" lainnya'] }, \"Raw link {options}\": { \"v\": [\"Tautan mentah {options}\"] }, \"Start typing to search\": { \"v\": [\"Ketik untuk mulai mencari\"] } } }, { \"l\": \"is\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Hlaða inn fleiri \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Hrár tengill {options}\"] }, \"Start typing to search\": { \"v\": [\"Byrjaðu að skrifa til að leita\"] } } }, { \"l\": \"it\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carica più \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw link {options}\"] }, \"Start typing to search\": { \"v\": [\"Iniziare a digitare per effettuare la ricerca\"] } } }, { \"l\": \"ja\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ja-JP\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" をもっと読み込む'] }, \"Raw link {options}\": { \"v\": [\"未加工のリンク {options}\"] }, \"Start typing to search\": { \"v\": [\"入力を開始して検索します\"] } } }, { \"l\": \"ko\", \"t\": { 'Load more \"{options}\"': { \"v\": ['\"{options}\" 더 불러오기'] }, \"Raw link {options}\": { \"v\": [\"{options} 원본 링크\"] }, \"Start typing to search\": { \"v\": [\"입력하여 검색\"] } } }, { \"l\": \"lo\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"ໂຫຼດ “{options}” ເພີ່ມເຕີມ\"] }, \"Raw link {options}\": { \"v\": [\"ລິງດິບ {options}\"] }, \"Start typing to search\": { \"v\": [\"ເລີ່ມພິມເພື່ອຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Įkelti daugiau \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Neapdorota nuoroda {options}\"] }, \"Start typing to search\": { \"v\": [\"Rašykite norėdami atlikti paiešką\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Вчитај повеќе \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Суров линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Почни да пишуваш за пребарување\"] } } }, { \"l\": \"mn\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Илүү ихийг ачаалах \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Түүхий холбоос {options}\"] }, \"Start typing to search\": { \"v\": [\"Хайхын тулд бичиж эхлэнэ үү\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Last inn flere \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Rå lenke {options}\"] }, \"Start typing to search\": { \"v\": [\"Start å skrive for å søke\"] } } }, { \"l\": \"nl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Meer \"{options}\" laden'] }, \"Raw link {options}\": { \"v\": [\"Ruwe link {options}\"] }, \"Start typing to search\": { \"v\": [\"Start met typen om te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Załaduj więcej \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Surowy odnośnik {options}\"] }, \"Start typing to search\": { \"v\": [\"Zacznij pisać, aby wyszukać\"] } } }, { \"l\": \"pt-BR\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link bruto {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Carregar mais \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link inicial {options}\"] }, \"Start typing to search\": { \"v\": [\"Comece a digitar para pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Încarcă mai multe \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Link brut {options}\"] }, \"Start typing to search\": { \"v\": [\"Tastați pentru căutare\"] } } }, { \"l\": \"ru\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Загрузить больше \"{options}\"\"'] }, \"Raw link {options}\": { \"v\": [\"Необработанная ссылка {options}\"] }, \"Start typing to search\": { \"v\": [\"Начните вводить текст для поиска\"] } } }, { \"l\": \"sk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Načítať viac \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Raw odkaz {options}\"] }, \"Start typing to search\": { \"v\": [\"Začnite písať pre vyhľadávanie\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"Учитај још „{options}”\"] }, \"Raw link {options}\": { \"v\": [\"Сирови линк {options}\"] }, \"Start typing to search\": { \"v\": [\"Покрените претрагу куцањем\"] } } }, { \"l\": \"sv\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Ladda fler \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Oformaterad länk {options}\"] }, \"Start typing to search\": { \"v\": [\"Börja skriva för att söka\"] } } }, { \"l\": \"tr\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Diğer \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Ham bağlantı {options}\"] }, \"Start typing to search\": { \"v\": [\"Aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { 'Load more \"{options}\"': { \"v\": ['Завантажити більше \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"Пряме посилання {options}\"] }, \"Start typing to search\": { \"v\": [\"Почніть вводити для пошуку\"] } } }, { \"l\": \"uz\", \"t\": { 'Load more \"{options}\"': { \"v\": [`Ko'proq yuklash \"{options}\"`] }, \"Raw link {options}\": { \"v\": [\" {options}satr havolasi\"] }, \"Start typing to search\": { \"v\": [\"Qidirish uchun yozishni boshlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"加载更多 “{options}”\"] }, \"Raw link {options}\": { \"v\": [\"原始链接 {options}\"] }, \"Start typing to search\": { \"v\": [\"开始输入以进行搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Load more \"{options}\"': { \"v\": ['載入更多 \"{options}\"'] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Load more \"{options}\"': { \"v\": [\"載入更多「{options}」\"] }, \"Raw link {options}\": { \"v\": [\"原始連結 {options}\"] }, \"Start typing to search\": { \"v\": [\"開始輸入以進行搜尋\"] } } }];\nconst t33 = [{ \"l\": \"ar\", \"t\": { \"Loading …\": { \"v\": [\"التحميل جارٍ ...\"] } } }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Loading …\": { \"v\": [\"Načítání …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Loading …\": { \"v\": [\"Indlæser ...\"] } } }, { \"l\": \"de\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Loading …\": { \"v\": [\"Wird geladen …\"] } } }, { \"l\": \"el\", \"t\": { \"Loading …\": { \"v\": [\"Φόρτωση  …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Loading …\": { \"v\": [\"Loading …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Loading …\": { \"v\": [\"Laadin…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Loading …\": { \"v\": [\"در حال بارگذاری ...\"] } } }, { \"l\": \"fi\", \"t\": { \"Loading …\": { \"v\": [\"Ladataan ...\"] } } }, { \"l\": \"fr\", \"t\": { \"Loading …\": { \"v\": [\"Chargement...\"] } } }, { \"l\": \"ga\", \"t\": { \"Loading …\": { \"v\": [\"Ag lódáil …\"] } } }, { \"l\": \"gl\", \"t\": { \"Loading …\": { \"v\": [\"Cargando…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Loading …\": { \"v\": [\"Učitavanje …\"] } } }, { \"l\": \"hu\", \"t\": { \"Loading …\": { \"v\": [\"Betöltés…\"] } } }, { \"l\": \"id\", \"t\": { \"Loading …\": { \"v\": [\"Memuat …\"] } } }, { \"l\": \"is\", \"t\": { \"Loading …\": { \"v\": [\"Hleð inn …\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Loading …\": { \"v\": [\"読み込み中 …\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Loading …\": { \"v\": [\"로딩 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Loading …\": { \"v\": [\"ກຳລັງໂຫຼດ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Loading …\": { \"v\": [\"Įkeliama …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Loading …\": { \"v\": [\"Вчитување …\"] } } }, { \"l\": \"mn\", \"t\": { \"Loading …\": { \"v\": [\"Ачаалж байна …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Loading …\": { \"v\": [\"Laster inn...\"] } } }, { \"l\": \"nl\", \"t\": { \"Loading …\": { \"v\": [\"Laden …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Loading …\": { \"v\": [\"Wczytywanie…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Loading …\": { \"v\": [\"Carregando …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Loading …\": { \"v\": [\"A carregar...\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Loading …\": { \"v\": [\"Загрузка …\"] } } }, { \"l\": \"sk\", \"t\": { \"Loading …\": { \"v\": [\"Nahrávam ...\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Loading …\": { \"v\": [\"Учитава се…\"] } } }, { \"l\": \"sv\", \"t\": { \"Loading …\": { \"v\": [\"Laddar …\"] } } }, { \"l\": \"tr\", \"t\": { \"Loading …\": { \"v\": [\"Yükleniyor…\"] } } }, { \"l\": \"uk\", \"t\": { \"Loading …\": { \"v\": [\"Завантаження …\"] } } }, { \"l\": \"uz\", \"t\": { \"Loading …\": { \"v\": [\"Yuklanmoqda...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Loading …\": { \"v\": [\"加载中...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Loading …\": { \"v\": [\"加載中 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Loading …\": { \"v\": [\"載入中......\"] } } }];\nconst t34 = [{ \"l\": \"ar\", \"t\": { \"No link provider found\": { \"v\": [\"لا يوجد أيّ مزود روابط link provider\"] }, \"Write a message …\": { \"v\": [\"أكتب رسالة ...\"] } } }, { \"l\": \"ast\", \"t\": { \"No link provider found\": { \"v\": [\"Nun s'atopó nengún fornidor d'enllaces\"] }, \"Write a message …\": { \"v\": [\"Escribi un mensaxe…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosaženo limitu počtu %n znaku zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\", \"Dosaženo limitu počtu %n znaků zprávy\"] }, \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napište zprávu …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No link provider found\": { \"v\": [\"Nenalezen žádný poskytovatel odkazů\"] }, \"Write a message …\": { \"v\": [\"Napsat zprávu…\"] } } }, { \"l\": \"da\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Beskedgrænsen på %n tegn er nået\", \"Beskedgrænsen på %n tegn er nået\"] }, \"No link provider found\": { \"v\": [\"Ingen linkudbyder fundet\"] }, \"Write a message …\": { \"v\": [\"Skriv en besked ...\"] } } }, { \"l\": \"de\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Nachrichtenlimit von %n Zeichen erreicht\", \"Nachrichtenlimit von %n Zeichen erreicht\"] }, \"No link provider found\": { \"v\": [\"Kein Linkanbieter gefunden\"] }, \"Write a message …\": { \"v\": [\"Nachricht schreiben …\"] } } }, { \"l\": \"el\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Έφτασε το όριο μηνύματος των %n χαρακτήρων\", \"Έφτασε το όριο μηνύματος των %n χαρακτήρων\"] }, \"No link provider found\": { \"v\": [\"Δεν βρέθηκε πάροχος συνδέσμου\"] }, \"Write a message …\": { \"v\": [\"Γράψτε ένα μήνυμα …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Message limit of %n character reached\", \"Message limit of %n characters reached\"] }, \"No link provider found\": { \"v\": [\"No link provider found\"] }, \"Write a message …\": { \"v\": [\"Write a message …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No link provider found\": { \"v\": [\"No se encontró ningún proveedor de enlaces\"] }, \"Write a message …\": { \"v\": [\"Escriba un mensaje ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sõnumi piirarv %n tähemärk on käes\", \"Sõnumi piirarv %n tähemärki on käes\"] }, \"No link provider found\": { \"v\": [\"Lingi pakkujat ei leitud\"] }, \"Write a message …\": { \"v\": [\"Koosta sõnum…\"] } } }, { \"l\": \"eu\", \"t\": { \"No link provider found\": { \"v\": [\"Ez da aurkitu esteka-hornitzailerik\"] }, \"Write a message …\": { \"v\": [\"Idatzi mezu bat…\"] } } }, { \"l\": \"fa\", \"t\": { \"No link provider found\": { \"v\": [\"هیچ ارائه‌دهنده پیوندی یافت نشد\"] }, \"Write a message …\": { \"v\": [\"یک پیام بنویسید ...\"] } } }, { \"l\": \"fi\", \"t\": { \"No link provider found\": { \"v\": [\"Linkin tarjoajia ei löydetty\"] }, \"Write a message …\": { \"v\": [\"Kirjoita viesti…\"] } } }, { \"l\": \"fr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de messages de %n caractère atteinte\", \"Limite de messages de %n caractères atteinte\", \"Limite de messages de %n caractères atteinte\"] }, \"No link provider found\": { \"v\": [\"Aucun fournisseur de lien trouvé\"] }, \"Write a message …\": { \"v\": [\"Écrire un message…\"] } } }, { \"l\": \"ga\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\", \"Sroicheadh ​​teorainn teachtaireachta de %n carachtar\"] }, \"No link provider found\": { \"v\": [\"Níor aimsíodh aon soláthraí naisc\"] }, \"Write a message …\": { \"v\": [\"Scríobh teachtaireacht …\"] } } }, { \"l\": \"gl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Acadouse o límite de %n caracter por mensaxe\", \"Acadouse o límite de %n caracteres por mensaxe\"] }, \"No link provider found\": { \"v\": [\"Non se atopou ningún provedor de ligazóns\"] }, \"Write a message …\": { \"v\": [\"Escribir unha mensaxe…\"] } } }, { \"l\": \"he\", \"t\": { \"No link provider found\": { \"v\": [\"לא נמצא ספק קישורים\"] } } }, { \"l\": \"hr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znaka\", \"Dosegnuto je ograničenje poruke od %n znakova\"] }, \"No link provider found\": { \"v\": [\"Nije pronađen nijedan pružatelj poveznica\"] }, \"Write a message …\": { \"v\": [\"Napiši poruku …\"] } } }, { \"l\": \"hu\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n karakteres üzenetkorlát elérve\", \"%n karakteres üzenetkorlát elérve\"] }, \"No link provider found\": { \"v\": [\"Nem található hivatkozásszolgáltató\"] }, \"Write a message …\": { \"v\": [\"Írjon egy üzenetet…\"] } } }, { \"l\": \"id\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Batas pesan %n karakter telah tercapai\"] }, \"No link provider found\": { \"v\": [\"Tidak ada penyedia tautan yang ditemukan\"] }, \"Write a message …\": { \"v\": [\"Tulis pesan …\"] } } }, { \"l\": \"is\", \"t\": { \"No link provider found\": { \"v\": [\"Engin tenglaveita fannst\"] }, \"Write a message …\": { \"v\": [\"Skrifaðu skilaboð …\"] } } }, { \"l\": \"it\", \"t\": { \"No link provider found\": { \"v\": [\"Nessun fornitore di link trovato\"] }, \"Write a message …\": { \"v\": [\"Scrivi un messaggio ...\"] } } }, { \"l\": \"ja\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"メッセージの%n文字の制限に達しました\"] }, \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No link provider found\": { \"v\": [\"リンクプロバイダーが見つかりません\"] }, \"Write a message …\": { \"v\": [\"メッセージを書く ...\"] } } }, { \"l\": \"ko\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"메시지 제한 %n자에 도달\"] }, \"No link provider found\": { \"v\": [\"링크 제공자 없음\"] }, \"Write a message …\": { \"v\": [\"메시지 쓰는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"ຮອດຂີດຈຳກັດຂໍ້ຄວາມ %n ໂຕອັກສອນແລ້ວ\"] }, \"No link provider found\": { \"v\": [\"ບໍ່ພົບຜູ້ໃຫ້ບໍລິການລິງ\"] }, \"Write a message …\": { \"v\": [\"ຂຽນຂໍ້ຄວາມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Pasiektas %n pranešimo simbolio skaičiaus limitas\", \"Pasiektas %n pranešimų simbolių skaičiaus limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\", \"Pasiektas %n pranešimo simbolių skaičių limitas\"] }, \"No link provider found\": { \"v\": [\"Nerasta nuorodų teikėjo\"] }, \"Write a message …\": { \"v\": [\"Rašyti žinutę  …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнат е лимит од %n карактер\", \"Достигнат е лимит од %n карактери за порака\"] }, \"No link provider found\": { \"v\": [\"Не е пронајден давател на линк\"] }, \"Write a message …\": { \"v\": [\"Напиши порака …\"] } } }, { \"l\": \"mn\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\", \"%n тэмдэгтийн зурвасын хязгаарт хүрлээ\"] }, \"No link provider found\": { \"v\": [\"Холбоосын үйлчилгээ үзүүлэгч олдсонгүй\"] }, \"Write a message …\": { \"v\": [\"Зурвас бичих …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"No link provider found\": { \"v\": [\"Finner ingen lenkeleverandør\"] }, \"Write a message …\": { \"v\": [\"Skriv en melding...\"] } } }, { \"l\": \"nl\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Berichtlimiet van %n teken bereikt\", \"Berichtlimiet van %n tekens bereikt\"] }, \"No link provider found\": { \"v\": [\"Geen link provider gevonden\"] }, \"Write a message …\": { \"v\": [\"Schrijf een bericht …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No link provider found\": { \"v\": [\"Nie znaleziono dostawcy linków\"] }, \"Write a message …\": { \"v\": [\"Napisz wiadomość…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n caractere atingido\", \"Limite de mensagem de %n de caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum provedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Limite de mensagem de %n carácter atingido\", \"Limite de mensagem de %n caracteres atingido\", \"Limite de mensagem de %n caracteres atingido\"] }, \"No link provider found\": { \"v\": [\"Nenhum fornecedor de link encontrado\"] }, \"Write a message …\": { \"v\": [\"Escreva uma mensagem...\"] } } }, { \"l\": \"ro\", \"t\": { \"No link provider found\": { \"v\": [\"Nu s-a găsit un provider pentru linkuri\"] }, \"Write a message …\": { \"v\": [\"Scrieți un mesaj ...\"] } } }, { \"l\": \"ru\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнут лимит в %n символ\", \"Достигнут лимит в %n символа\", \"Достигнут лимит в %n символов\", \"Достигнут лимит в %n символов\"] }, \"No link provider found\": { \"v\": [\"Поставщик ссылок не найден\"] }, \"Write a message …\": { \"v\": [\"Напишите сообщение …\"] } } }, { \"l\": \"sk\", \"t\": { \"No link provider found\": { \"v\": [\"Žiaden odkaz poskytovateľa nebol nájdený\"] }, \"Write a message …\": { \"v\": [\"Napíšte správu…\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Достигнуто је ограничење величине поруке од %n карактер\", \"Достигнуто је ограничење величине поруке од %n карактера\", \"Достигнуто је ограничење величине поруке од %n карактера\"] }, \"No link provider found\": { \"v\": [\"Није пронађен ниједан пружалац линка\"] }, \"Write a message …\": { \"v\": [\"Напишите поруку…\"] } } }, { \"l\": \"sv\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Meddelandebegränsning på %n tecken har uppnåtts\", \"Meddelandebegränsning på %n tecken har uppnåtts\"] }, \"No link provider found\": { \"v\": [\"Ingen länkleverantör hittades\"] }, \"Write a message …\": { \"v\": [\"Skriv ett meddelande …\"] } } }, { \"l\": \"tr\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"İleti için %n karakter sayısı sınırına ulaşıldı\", \"İleti için %n karakter sayısı sınırına ulaşıldı\"] }, \"No link provider found\": { \"v\": [\"Bağlantı hizmeti sağlayıcısı bulunamadı\"] }, \"Write a message …\": { \"v\": [\"Bir ileti yazın…\"] } } }, { \"l\": \"uk\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"Досягнуто обмеження на довжину повідомлення у %n символ.\", \"Досягнуто обмеження на довжину повідомлення у %n символи.\", \"Досягнуто обмеження на довжину повідомлення у%n символів.\", \"Досягнуто обмеження на довжину повідомлення у %n символів.\"] }, \"No link provider found\": { \"v\": [\"Не наведено посилання\"] }, \"Write a message …\": { \"v\": [\"Створити повідомлення …\"] } } }, { \"l\": \"uz\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\" %n ta belgidan iborat xabar chegarasiga yetdi\"] }, \"No link provider found\": { \"v\": [\"Hech qanday havola provayderi topilmadi\"] }, \"Write a message …\": { \"v\": [\"Xabar yozish...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No link provider found\": { \"v\": [\"未找到任何链接提供者\"] }, \"Write a message …\": { \"v\": [\"编写信息 ...\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Message limit of %n character reached\": { \"p\": \"Message limit of %n characters reached\", \"v\": [\"已達到訊息最多 %n 字元限制\"] }, \"No link provider found\": { \"v\": [\"找不到連結提供者\"] }, \"Write a message …\": { \"v\": [\"編寫訊息……\"] } } }];\nconst t35 = [{ \"l\": \"ar\", \"t\": { \"More items …\": { \"v\": [\"عناصر أخرى ...\"] } } }, { \"l\": \"ast\", \"t\": { \"More items …\": { \"v\": [\"Más elementos…\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"More items …\": { \"v\": [\"Més artícles...\"] } } }, { \"l\": \"cs\", \"t\": { \"More items …\": { \"v\": [\"Další položky …\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"More items …\": { \"v\": [\"Další položky…\"] } } }, { \"l\": \"da\", \"t\": { \"More items …\": { \"v\": [\"Flere elementer ...\"] } } }, { \"l\": \"de\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"More items …\": { \"v\": [\"Weitere Elemente …\"] } } }, { \"l\": \"el\", \"t\": { \"More items …\": { \"v\": [\"Περισσότερα στοιχεία …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"More items …\": { \"v\": [\"More items …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"More items …\": { \"v\": [\"Más ítems ...\"] } } }, { \"l\": \"es-AR\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-EC\", \"t\": { \"More items …\": { \"v\": [\"Más elementos...\"] } } }, { \"l\": \"es-MX\", \"t\": { \"More items …\": { \"v\": [\"Más Elementos ...\"] } } }, { \"l\": \"et-EE\", \"t\": { \"More items …\": { \"v\": [\"Vaata veel…\"] } } }, { \"l\": \"eu\", \"t\": { \"More items …\": { \"v\": [\"Elementu gehiago …\"] } } }, { \"l\": \"fa\", \"t\": { \"More items …\": { \"v\": [\"موارد بیشتر ...\"] } } }, { \"l\": \"fi\", \"t\": { \"More items …\": { \"v\": [\"Lisää kohteita…\"] } } }, { \"l\": \"fr\", \"t\": { \"More items …\": { \"v\": [\"Plus d'éléments...\"] } } }, { \"l\": \"ga\", \"t\": { \"More items …\": { \"v\": [\"Tuilleadh míreanna …\"] } } }, { \"l\": \"gl\", \"t\": { \"More items …\": { \"v\": [\"Máis elementos…\"] } } }, { \"l\": \"he\", \"t\": { \"More items …\": { \"v\": [\"פריטים נוספים…\"] } } }, { \"l\": \"hr\", \"t\": { \"More items …\": { \"v\": [\"Još stavki …\"] } } }, { \"l\": \"hu\", \"t\": { \"More items …\": { \"v\": [\"További elemek…\"] } } }, { \"l\": \"id\", \"t\": { \"More items …\": { \"v\": [\"Item lainnya …\"] } } }, { \"l\": \"is\", \"t\": { \"More items …\": { \"v\": [\"Fleiri atriði …\"] } } }, { \"l\": \"it\", \"t\": { \"More items …\": { \"v\": [\"Più elementi ...\"] } } }, { \"l\": \"ja\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム …\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"More items …\": { \"v\": [\"他のアイテム\"] } } }, { \"l\": \"ko\", \"t\": { \"More items …\": { \"v\": [\"더 많은 아이템 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"More items …\": { \"v\": [\"ລາຍການເພີ່ມເຕີມ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"More items …\": { \"v\": [\"Daugiau elementų …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"More items …\": { \"v\": [\"Повеќе елементи …\"] } } }, { \"l\": \"mn\", \"t\": { \"More items …\": { \"v\": [\"Илүү олон зүйлс …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"More items …\": { \"v\": [\"Flere gjenstander...\"] } } }, { \"l\": \"nl\", \"t\": { \"More items …\": { \"v\": [\"Meer items …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"More items …\": { \"v\": [\"Więcej pozycji…\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"More items …\": { \"v\": [\"Mais itens …\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"More items …\": { \"v\": [\"Mais itens…\"] } } }, { \"l\": \"ro\", \"t\": { \"More items …\": { \"v\": [\"Mai multe articole ...\"] } } }, { \"l\": \"ru\", \"t\": { \"More items …\": { \"v\": [\"Больше элементов …\"] } } }, { \"l\": \"sk\", \"t\": { \"More items …\": { \"v\": [\"Viac položiek...\"] } } }, { \"l\": \"sl\", \"t\": { \"More items …\": { \"v\": [\"Več predmetov ...\"] } } }, { \"l\": \"sr\", \"t\": { \"More items …\": { \"v\": [\"Још ставки...\"] } } }, { \"l\": \"sv\", \"t\": { \"More items …\": { \"v\": [\"Fler objekt …\"] } } }, { \"l\": \"tr\", \"t\": { \"More items …\": { \"v\": [\"Diğer ögeler…\"] } } }, { \"l\": \"uk\", \"t\": { \"More items …\": { \"v\": [\"Більше …\"] } } }, { \"l\": \"uz\", \"t\": { \"More items …\": { \"v\": [\"Yana elementlar...\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"More items …\": { \"v\": [\"更多项目…\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"More items …\": { \"v\": [\"更多項目 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"More items …\": { \"v\": [\"更多項目……\"] } } }];\nconst t36 = [{ \"l\": \"ar\", \"t\": { \"Next\": { \"v\": [\"التالي\"] }, \"Pause slideshow\": { \"v\": [\"تجميد عرض الشرائح\"] }, \"Previous\": { \"v\": [\"السابق\"] }, \"Start slideshow\": { \"v\": [\"إبدإ العرض\"] } } }, { \"l\": \"ast\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Posar la presentación de diapositives\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Aniciar la presentación de diapositives\"] } } }, { \"l\": \"br\", \"t\": { \"Next\": { \"v\": [\"Da heul\"] }, \"Pause slideshow\": { \"v\": [\"Arsav an diaporama\"] }, \"Previous\": { \"v\": [\"A-raok\"] }, \"Start slideshow\": { \"v\": [\"Kregiñ an diaporama\"] } } }, { \"l\": \"ca\", \"t\": { \"Next\": { \"v\": [\"Següent\"] }, \"Pause slideshow\": { \"v\": [\"Atura la presentació\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Inicia la presentació\"] } } }, { \"l\": \"cs\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Next\": { \"v\": [\"Následující\"] }, \"Pause slideshow\": { \"v\": [\"Pozastavit prezentaci\"] }, \"Previous\": { \"v\": [\"Předchozí\"] }, \"Start slideshow\": { \"v\": [\"Spustit prezentaci\"] } } }, { \"l\": \"da\", \"t\": { \"Next\": { \"v\": [\"Videre\"] }, \"Pause slideshow\": { \"v\": [\"Suspender fremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start fremvisning\"] } } }, { \"l\": \"de\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Next\": { \"v\": [\"Weiter\"] }, \"Pause slideshow\": { \"v\": [\"Diashow pausieren\"] }, \"Previous\": { \"v\": [\"Vorherige\"] }, \"Start slideshow\": { \"v\": [\"Diashow starten\"] } } }, { \"l\": \"el\", \"t\": { \"Next\": { \"v\": [\"Επόμενο\"] }, \"Pause slideshow\": { \"v\": [\"Παύση προβολής διαφανειών\"] }, \"Previous\": { \"v\": [\"Προηγούμενο\"] }, \"Start slideshow\": { \"v\": [\"Έναρξη προβολής διαφανειών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Next\": { \"v\": [\"Next\"] }, \"Pause slideshow\": { \"v\": [\"Pause slideshow\"] }, \"Previous\": { \"v\": [\"Previous\"] }, \"Start slideshow\": { \"v\": [\"Start slideshow\"] } } }, { \"l\": \"eo\", \"t\": { \"Next\": { \"v\": [\"Sekva\"] }, \"Pause slideshow\": { \"v\": [\"Payzi bildprezenton\"] }, \"Previous\": { \"v\": [\"Antaŭa\"] }, \"Start slideshow\": { \"v\": [\"Komenci bildprezenton\"] } } }, { \"l\": \"es\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar la presentación \"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar la presentación\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Next\": { \"v\": [\"Siguiente\"] }, \"Pause slideshow\": { \"v\": [\"Pausar presentación de diapositivas\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar presentación de diapositivas\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Next\": { \"v\": [\"Edasi\"] }, \"Pause slideshow\": { \"v\": [\"Slaidiesitluse paus\"] }, \"Previous\": { \"v\": [\"Eelmine\"] }, \"Start slideshow\": { \"v\": [\"Alusta slaidiesitust\"] } } }, { \"l\": \"eu\", \"t\": { \"Next\": { \"v\": [\"Hurrengoa\"] }, \"Pause slideshow\": { \"v\": [\"Pausatu diaporama\"] }, \"Previous\": { \"v\": [\"Aurrekoa\"] }, \"Start slideshow\": { \"v\": [\"Hasi diaporama\"] } } }, { \"l\": \"fa\", \"t\": { \"Next\": { \"v\": [\"بعدی\"] }, \"Pause slideshow\": { \"v\": [\"توقف نمایش اسلاید\"] }, \"Previous\": { \"v\": [\"قبلی\"] }, \"Start slideshow\": { \"v\": [\"شروع نمایش اسلاید\"] } } }, { \"l\": \"fi\", \"t\": { \"Next\": { \"v\": [\"Seuraava\"] }, \"Pause slideshow\": { \"v\": [\"Keskeytä diaesitys\"] }, \"Previous\": { \"v\": [\"Edellinen\"] }, \"Start slideshow\": { \"v\": [\"Aloita diaesitys\"] } } }, { \"l\": \"fr\", \"t\": { \"Next\": { \"v\": [\"Suivant\"] }, \"Pause slideshow\": { \"v\": [\"Mettre le diaporama en pause\"] }, \"Previous\": { \"v\": [\"Précédent\"] }, \"Start slideshow\": { \"v\": [\"Démarrer le diaporama\"] } } }, { \"l\": \"ga\", \"t\": { \"Next\": { \"v\": [\"Ar aghaidh\"] }, \"Pause slideshow\": { \"v\": [\"Cuir taispeántas sleamhnán ar sos\"] }, \"Previous\": { \"v\": [\"Roimhe Seo\"] }, \"Start slideshow\": { \"v\": [\"Tosaigh taispeántas sleamhnán\"] } } }, { \"l\": \"gl\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar o diaporama\"] }, \"Previous\": { \"v\": [\"Anterir\"] }, \"Start slideshow\": { \"v\": [\"Iniciar o diaporama\"] } } }, { \"l\": \"he\", \"t\": { \"Next\": { \"v\": [\"הבא\"] }, \"Pause slideshow\": { \"v\": [\"השהיית מצגת\"] }, \"Previous\": { \"v\": [\"הקודם\"] }, \"Start slideshow\": { \"v\": [\"התחלת המצגת\"] } } }, { \"l\": \"hr\", \"t\": { \"Next\": { \"v\": [\"Sljedeće\"] }, \"Pause slideshow\": { \"v\": [\"Pauziraj dijaprojekciju\"] }, \"Previous\": { \"v\": [\"Prethodno\"] }, \"Start slideshow\": { \"v\": [\"Pokreni dijaprojekciju\"] } } }, { \"l\": \"hu\", \"t\": { \"Next\": { \"v\": [\"Következő\"] }, \"Pause slideshow\": { \"v\": [\"Diavetítés szüneteltetése\"] }, \"Previous\": { \"v\": [\"Előző\"] }, \"Start slideshow\": { \"v\": [\"Diavetítés indítása\"] } } }, { \"l\": \"id\", \"t\": { \"Next\": { \"v\": [\"Selanjutnya\"] }, \"Pause slideshow\": { \"v\": [\"Jeda tayangan slide\"] }, \"Previous\": { \"v\": [\"Sebelumnya\"] }, \"Start slideshow\": { \"v\": [\"Mulai salindia\"] } } }, { \"l\": \"is\", \"t\": { \"Next\": { \"v\": [\"Næsta\"] }, \"Pause slideshow\": { \"v\": [\"Gera hlé á skyggnusýningu\"] }, \"Previous\": { \"v\": [\"Fyrri\"] }, \"Start slideshow\": { \"v\": [\"Byrja skyggnusýningu\"] } } }, { \"l\": \"it\", \"t\": { \"Next\": { \"v\": [\"Successivo\"] }, \"Pause slideshow\": { \"v\": [\"Presentazione in pausa\"] }, \"Previous\": { \"v\": [\"Precedente\"] }, \"Start slideshow\": { \"v\": [\"Avvia presentazione\"] } } }, { \"l\": \"ja\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Next\": { \"v\": [\"次\"] }, \"Pause slideshow\": { \"v\": [\"スライドショーを一時停止\"] }, \"Previous\": { \"v\": [\"前\"] }, \"Start slideshow\": { \"v\": [\"スライドショーを開始\"] } } }, { \"l\": \"ko\", \"t\": { \"Next\": { \"v\": [\"다음\"] }, \"Pause slideshow\": { \"v\": [\"슬라이드쇼 일시정지\"] }, \"Previous\": { \"v\": [\"이전\"] }, \"Start slideshow\": { \"v\": [\"슬라이드쇼 시작\"] } } }, { \"l\": \"lo\", \"t\": { \"Next\": { \"v\": [\"ຕໍ່ໄປ\"] }, \"Pause slideshow\": { \"v\": [\"ຢຸດສະໄລ້ໂຊຊົ່ວຄາວ\"] }, \"Previous\": { \"v\": [\"ກ່ອນໜ້າ\"] }, \"Start slideshow\": { \"v\": [\"ເລີ່ມສະໄລ້ໂຊ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Next\": { \"v\": [\"Kitas\"] }, \"Pause slideshow\": { \"v\": [\"Pristabdyti skaidrių rodymą\"] }, \"Previous\": { \"v\": [\"Ankstesnis\"] }, \"Start slideshow\": { \"v\": [\"Pradėti skaidrių rodymą\"] } } }, { \"l\": \"lv\", \"t\": { \"Next\": { \"v\": [\"Nākamais\"] }, \"Pause slideshow\": { \"v\": [\"Pauzēt slaidrādi\"] }, \"Previous\": { \"v\": [\"Iepriekšējais\"] }, \"Start slideshow\": { \"v\": [\"Sākt slaidrādi\"] } } }, { \"l\": \"mk\", \"t\": { \"Next\": { \"v\": [\"Следно\"] }, \"Pause slideshow\": { \"v\": [\"Пузирај слајдшоу\"] }, \"Previous\": { \"v\": [\"Предходно\"] }, \"Start slideshow\": { \"v\": [\"Стартувај слајдшоу\"] } } }, { \"l\": \"mn\", \"t\": { \"Next\": { \"v\": [\"Дараах\"] }, \"Pause slideshow\": { \"v\": [\"Слайд шоуг түр зогсоох\"] }, \"Previous\": { \"v\": [\"Өмнөх\"] }, \"Start slideshow\": { \"v\": [\"Слайд шоуг эхлүүлэх\"] } } }, { \"l\": \"my\", \"t\": { \"Next\": { \"v\": [\"နောက်သို့ဆက်ရန်\"] }, \"Pause slideshow\": { \"v\": [\"စလိုက်ရှိုး ခေတ္တရပ်ရန်\"] }, \"Previous\": { \"v\": [\"ယခင်\"] }, \"Start slideshow\": { \"v\": [\"စလိုက်ရှိုးအား စတင်ရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Next\": { \"v\": [\"Neste\"] }, \"Pause slideshow\": { \"v\": [\"Pause lysbildefremvisning\"] }, \"Previous\": { \"v\": [\"Forrige\"] }, \"Start slideshow\": { \"v\": [\"Start lysbildefremvisning\"] } } }, { \"l\": \"nl\", \"t\": { \"Next\": { \"v\": [\"Volgende\"] }, \"Pause slideshow\": { \"v\": [\"Diavoorstelling pauzeren\"] }, \"Previous\": { \"v\": [\"Vorige\"] }, \"Start slideshow\": { \"v\": [\"Diavoorstelling starten\"] } } }, { \"l\": \"oc\", \"t\": { \"Next\": { \"v\": [\"Seguent\"] }, \"Pause slideshow\": { \"v\": [\"Metre en pausa lo diaporama\"] }, \"Previous\": { \"v\": [\"Precedent\"] }, \"Start slideshow\": { \"v\": [\"Lançar lo diaporama\"] } } }, { \"l\": \"pl\", \"t\": { \"Next\": { \"v\": [\"Następny\"] }, \"Pause slideshow\": { \"v\": [\"Wstrzymaj pokaz slajdów\"] }, \"Previous\": { \"v\": [\"Poprzedni\"] }, \"Start slideshow\": { \"v\": [\"Rozpocznij pokaz slajdów\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Next\": { \"v\": [\"Próximo\"] }, \"Pause slideshow\": { \"v\": [\"Pausar apresentação de slides\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar apresentação de slides\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Next\": { \"v\": [\"Seguinte\"] }, \"Pause slideshow\": { \"v\": [\"Pausar diaporama\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Iniciar diaporama\"] } } }, { \"l\": \"ro\", \"t\": { \"Next\": { \"v\": [\"Următorul\"] }, \"Pause slideshow\": { \"v\": [\"Pauză prezentare de diapozitive\"] }, \"Previous\": { \"v\": [\"Anterior\"] }, \"Start slideshow\": { \"v\": [\"Începeți prezentarea de diapozitive\"] } } }, { \"l\": \"ru\", \"t\": { \"Next\": { \"v\": [\"Следующее\"] }, \"Pause slideshow\": { \"v\": [\"Приостановить показ слйдов\"] }, \"Previous\": { \"v\": [\"Предыдущее\"] }, \"Start slideshow\": { \"v\": [\"Начать показ слайдов\"] } } }, { \"l\": \"sk\", \"t\": { \"Next\": { \"v\": [\"Ďalej\"] }, \"Pause slideshow\": { \"v\": [\"Pozastaviť prezentáciu\"] }, \"Previous\": { \"v\": [\"Predchádzajúce\"] }, \"Start slideshow\": { \"v\": [\"Začať prezentáciu\"] } } }, { \"l\": \"sl\", \"t\": { \"Next\": { \"v\": [\"Naslednji\"] }, \"Pause slideshow\": { \"v\": [\"Ustavi predstavitev\"] }, \"Previous\": { \"v\": [\"Predhodni\"] }, \"Start slideshow\": { \"v\": [\"Začni predstavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Next\": { \"v\": [\"Следеће\"] }, \"Pause slideshow\": { \"v\": [\"Паузирај слајд шоу\"] }, \"Previous\": { \"v\": [\"Претходно\"] }, \"Start slideshow\": { \"v\": [\"Покрени слајд шоу\"] } } }, { \"l\": \"sv\", \"t\": { \"Next\": { \"v\": [\"Nästa\"] }, \"Pause slideshow\": { \"v\": [\"Pausa bildspelet\"] }, \"Previous\": { \"v\": [\"Föregående\"] }, \"Start slideshow\": { \"v\": [\"Starta bildspelet\"] } } }, { \"l\": \"tr\", \"t\": { \"Next\": { \"v\": [\"Sonraki\"] }, \"Pause slideshow\": { \"v\": [\"Slayt sunumunu duraklat\"] }, \"Previous\": { \"v\": [\"Önceki\"] }, \"Start slideshow\": { \"v\": [\"Slayt sunumunu başlat\"] } } }, { \"l\": \"uk\", \"t\": { \"Next\": { \"v\": [\"Вперед\"] }, \"Pause slideshow\": { \"v\": [\"Пауза у показі слайдів\"] }, \"Previous\": { \"v\": [\"Назад\"] }, \"Start slideshow\": { \"v\": [\"Почати показ слайдів\"] } } }, { \"l\": \"uz\", \"t\": { \"Next\": { \"v\": [\"Keyingi\"] }, \"Pause slideshow\": { \"v\": [\"Slayd-shouni to'xtatib turish\"] }, \"Previous\": { \"v\": [\"Oldingi\"] }, \"Start slideshow\": { \"v\": [\"Slayd-shouni boshlash\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Next\": { \"v\": [\"下一个\"] }, \"Pause slideshow\": { \"v\": [\"暂停幻灯片\"] }, \"Previous\": { \"v\": [\"上一个\"] }, \"Start slideshow\": { \"v\": [\"开始幻灯片\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Next\": { \"v\": [\"下一個\"] }, \"Pause slideshow\": { \"v\": [\"暫停幻燈片\"] }, \"Previous\": { \"v\": [\"上一個\"] }, \"Start slideshow\": { \"v\": [\"開始幻燈片\"] } } }];\nconst t37 = [{ \"l\": \"ar\", \"t\": { \"No emoji found\": { \"v\": [\"لم يتم العثور على أي إيموجي emoji\"] } } }, { \"l\": \"ast\", \"t\": { \"No emoji found\": { \"v\": [\"Nun s'atopó nengún fustaxe\"] } } }, { \"l\": \"br\", \"t\": { \"No emoji found\": { \"v\": [\"Emoji ebet kavet\"] } } }, { \"l\": \"ca\", \"t\": { \"No emoji found\": { \"v\": [\"No s'ha trobat cap emoji\"] } } }, { \"l\": \"cs\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"No emoji found\": { \"v\": [\"Nenalezeno žádné emoji\"] } } }, { \"l\": \"da\", \"t\": { \"No emoji found\": { \"v\": [\"Ingen emoji fundet\"] } } }, { \"l\": \"de\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"No emoji found\": { \"v\": [\"Kein Emoji gefunden\"] } } }, { \"l\": \"el\", \"t\": { \"No emoji found\": { \"v\": [\"Δεν βρέθηκε emoji\"] } } }, { \"l\": \"en-GB\", \"t\": { \"No emoji found\": { \"v\": [\"No emoji found\"] } } }, { \"l\": \"eo\", \"t\": { \"No emoji found\": { \"v\": [\"La emoĝio forestas\"] } } }, { \"l\": \"es\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-AR\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-EC\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"es-MX\", \"t\": { \"No emoji found\": { \"v\": [\"No se encontró ningún emoji\"] } } }, { \"l\": \"et-EE\", \"t\": { \"No emoji found\": { \"v\": [\"Emojit ei leitud\"] } } }, { \"l\": \"eu\", \"t\": { \"No emoji found\": { \"v\": [\"Ez da emojirik aurkitu\"] } } }, { \"l\": \"fa\", \"t\": { \"No emoji found\": { \"v\": [\"هیچ شکلکی یافت نشد\"] } } }, { \"l\": \"fi\", \"t\": { \"No emoji found\": { \"v\": [\"Emojia ei löytynyt\"] } } }, { \"l\": \"fr\", \"t\": { \"No emoji found\": { \"v\": [\"Pas d’émoji trouvé\"] } } }, { \"l\": \"ga\", \"t\": { \"No emoji found\": { \"v\": [\"Níor aimsíodh emoji\"] } } }, { \"l\": \"gl\", \"t\": { \"No emoji found\": { \"v\": [\"Non se atopou ningún «emoji»\"] } } }, { \"l\": \"he\", \"t\": { \"No emoji found\": { \"v\": [\"לא נמצא אמוג׳י\"] } } }, { \"l\": \"hr\", \"t\": { \"No emoji found\": { \"v\": [\"Nije pronađen nijedan emoji\"] } } }, { \"l\": \"hu\", \"t\": { \"No emoji found\": { \"v\": [\"Nem található emodzsi\"] } } }, { \"l\": \"id\", \"t\": { \"No emoji found\": { \"v\": [\"Tidak ada emoji yang ditemukan\"] } } }, { \"l\": \"is\", \"t\": { \"No emoji found\": { \"v\": [\"Ekkert tjáningartákn fannst\"] } } }, { \"l\": \"it\", \"t\": { \"No emoji found\": { \"v\": [\"Nessun emoji trovato\"] } } }, { \"l\": \"ja\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"No emoji found\": { \"v\": [\"絵文字が見つかりません\"] } } }, { \"l\": \"ko\", \"t\": { \"No emoji found\": { \"v\": [\"이모지 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"No emoji found\": { \"v\": [\"ບໍ່ພົບອີໂມຈິ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"No emoji found\": { \"v\": [\"Nerasta emociukių\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"No emoji found\": { \"v\": [\"Не се пронајдени емотикони\"] } } }, { \"l\": \"mn\", \"t\": { \"No emoji found\": { \"v\": [\"Эможи олдсонгүй\"] } } }, { \"l\": \"my\", \"t\": { \"No emoji found\": { \"v\": [\"အီမိုဂျီ ရှာဖွေမတွေ့နိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"No emoji found\": { \"v\": [\"Fant ingen emoji\"] } } }, { \"l\": \"nl\", \"t\": { \"No emoji found\": { \"v\": [\"Geen emoji gevonden\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"No emoji found\": { \"v\": [\"Nie znaleziono emoji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"No emoji found\": { \"v\": [\"Nenhum emoji encontrado\"] } } }, { \"l\": \"ro\", \"t\": { \"No emoji found\": { \"v\": [\"Nu s-a găsit niciun emoji\"] } } }, { \"l\": \"ru\", \"t\": { \"No emoji found\": { \"v\": [\"Эмодзи не найдено\"] } } }, { \"l\": \"sk\", \"t\": { \"No emoji found\": { \"v\": [\"Nenašli sa žiadne emodži\"] } } }, { \"l\": \"sl\", \"t\": { \"No emoji found\": { \"v\": [\"Ni najdenih izraznih ikon\"] } } }, { \"l\": \"sr\", \"t\": { \"No emoji found\": { \"v\": [\"Није пронађен ниједан емођи\"] } } }, { \"l\": \"sv\", \"t\": { \"No emoji found\": { \"v\": [\"Hittade inga emojis\"] } } }, { \"l\": \"tr\", \"t\": { \"No emoji found\": { \"v\": [\"Herhangi bir emoji bulunamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"No emoji found\": { \"v\": [\"Емоційки відсутні\"] } } }, { \"l\": \"uz\", \"t\": { \"No emoji found\": { \"v\": [\"Hech qanday emoji topilmadi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"No emoji found\": { \"v\": [\"表情未找到\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"No emoji found\": { \"v\": [\"未找到表情符號\"] } } }];\nconst t38 = [{ \"l\": \"ar\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['إفتَح الرابط إلى \"{resourceName}\"'] } } }, { \"l\": \"ast\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir l'enllaz a «{resourceName}»\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"cs-CZ\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Otevřít odkaz na „{resourceName}“\"] } } }, { \"l\": \"da\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åbn link til \"{resourceName}\"'] } } }, { \"l\": \"de\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"de-DE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link zu \"{resourceName}\" öffnen'] } } }, { \"l\": \"el\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Άνοιγμα συνδέσμου για \"{resourceName}\"'] } } }, { \"l\": \"en-GB\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Open link to \"{resourceName}\"'] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-AR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-EC\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"es-MX\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir enlace a \"{resourceName}\"'] } } }, { \"l\": \"et-EE\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Ava link „{resourceName}“\"] } } }, { \"l\": \"eu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ireki \"{resourceName}\" esteka'] } } }, { \"l\": \"fa\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"باز کردن پیوند به «{resourceName}»\"] } } }, { \"l\": \"fi\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Avaa linkki \"{resourceName}\"'] } } }, { \"l\": \"fr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Ouvrir le lien vers \"{resourceName}\"'] } } }, { \"l\": \"ga\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Oscail nasc chuig \"{resourceName}\"'] } } }, { \"l\": \"gl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Abrir a ligazón a «{resourceName}»\"] } } }, { \"l\": \"he\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"פתיחת קישור אל „{resourceName}”\"] } } }, { \"l\": \"hr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvori poveznicu za \"{resourceName}\"'] } } }, { \"l\": \"hu\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"A(z) „{resourceName}” hivatkozásának megnyitása\"] } } }, { \"l\": \"id\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Buka tautan ke \"{resourceName}\"'] } } }, { \"l\": \"is\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Opna tengil í \"{resourceName}\"'] } } }, { \"l\": \"it\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Apri il link a \"{resourceName}\"'] } } }, { \"l\": \"ja\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ja-JP\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" へのリンクを開く'] } } }, { \"l\": \"ko\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\"의 링크 열기'] } } }, { \"l\": \"lo\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"ເປີດລິງໄປທີ່ “{resourceName}”\"] } } }, { \"l\": \"lt-LT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Atidaryti nuorodą į „{resourceName}“\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Отвори линк до \"{resourceName}\"'] } } }, { \"l\": \"mn\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['\"{resourceName}\" руу холбоос нээх'] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Åpne lenken til \"{resourceName}\"'] } } }, { \"l\": \"nl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Link naar \"{resourceName}\" openen'] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otwórz link do \"{resourceName}\"'] } } }, { \"l\": \"pt-BR\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir o link para \"{resourceName}\"'] } } }, { \"l\": \"pt-PT\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Abrir link para \"{resourceName}\"'] } } }, { \"l\": \"ro\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Deschide linkul la \"{resourceName}\"'] } } }, { \"l\": \"ru\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Открыть ссылку на \"{resourceName}\"'] } } }, { \"l\": \"sk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Otvoriť link v \"{resourceName}\"'] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"Отвори линк на „{resourceName}”\"] } } }, { \"l\": \"sv\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Öppna länken till \"{resourceName}\"'] } } }, { \"l\": \"tr\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Bağlantıyı \"{resourceName}\" üzerine aç'] } } }, { \"l\": \"uk\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": ['Відкрити посилання на \"{resourceName}\"'] } } }, { \"l\": \"uz\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [' \"{resourceName}\" ga havolani ochish'] } } }, { \"l\": \"zh-CN\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"打开 “{resourceName}” 的链接\"] } } }, { \"l\": \"zh-HK\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }, { \"l\": \"zh-TW\", \"t\": { 'Open link to \"{resourceName}\"': { \"v\": [\"開啟到「{resourceName}」的連結\"] } } }];\nconst t40 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Please choose a date\": { \"v\": [\"Zvolte datum\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Please choose a date\": { \"v\": [\"Vælg en dato\"] } } }, { \"l\": \"de\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Please choose a date\": { \"v\": [\"Bitte ein Datum wählen\"] } } }, { \"l\": \"el\", \"t\": { \"Please choose a date\": { \"v\": [\"Παρακαλώ επιλέξτε μια ημερομηνία\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Please choose a date\": { \"v\": [\"Please choose a date\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Please choose a date\": { \"v\": [\"Palun vali kuupäev\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Please choose a date\": { \"v\": [\"Veuillez choisir une date\"] } } }, { \"l\": \"ga\", \"t\": { \"Please choose a date\": { \"v\": [\"Roghnaigh dáta le do thoil\"] } } }, { \"l\": \"gl\", \"t\": { \"Please choose a date\": { \"v\": [\"Escolla unha data\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Please choose a date\": { \"v\": [\"Molimo odaberite datum\"] } } }, { \"l\": \"hu\", \"t\": { \"Please choose a date\": { \"v\": [\"Válasszon egy dátumot\"] } } }, { \"l\": \"id\", \"t\": { \"Please choose a date\": { \"v\": [\"Silakan pilih tanggal\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Please choose a date\": { \"v\": [\"日付を選択してください\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Please choose a date\": { \"v\": [\"날짜를 선택해주세요\"] } } }, { \"l\": \"lo\", \"t\": { \"Please choose a date\": { \"v\": [\"ກະລຸນາເລືອກວັນທີ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Please choose a date\": { \"v\": [\"Pasirinkite datą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Please choose a date\": { \"v\": [\"Избери датум\"] } } }, { \"l\": \"mn\", \"t\": { \"Please choose a date\": { \"v\": [\"Огноо сонгоно уу\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Please choose a date\": { \"v\": [\"Kies een datum\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Please choose a date\": { \"v\": [\"Por favor, escolha uma data\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Please choose a date\": { \"v\": [\"Выберите дату\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Please choose a date\": { \"v\": [\"Молимо вас да изаберете датум\"] } } }, { \"l\": \"sv\", \"t\": { \"Please choose a date\": { \"v\": [\"Välj ett datum\"] } } }, { \"l\": \"tr\", \"t\": { \"Please choose a date\": { \"v\": [\"Lütfen bir tarih seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Please choose a date\": { \"v\": [\"Виберіть дату\"] } } }, { \"l\": \"uz\", \"t\": { \"Please choose a date\": { \"v\": [\"Iltimos, sanani tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Please choose a date\": { \"v\": [\"請選擇日期\"] } } }];\nconst t41 = [{ \"l\": \"ar\", \"t\": { \"Provider icon\": { \"v\": [\"أيقونة المزوّد\"] } } }, { \"l\": \"ast\", \"t\": { \"Provider icon\": { \"v\": [\"Iconu del fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Provider icon\": { \"v\": [\"Udbyder ikon\"] } } }, { \"l\": \"de\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Provider icon\": { \"v\": [\"Anbietersymbol\"] } } }, { \"l\": \"el\", \"t\": { \"Provider icon\": { \"v\": [\"Εικονίδιο παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Provider icon\": { \"v\": [\"Provider icon\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Provider icon\": { \"v\": [\"Ícono del proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Provider icon\": { \"v\": [\"Teenusepakkuja ikoon\"] } } }, { \"l\": \"eu\", \"t\": { \"Provider icon\": { \"v\": [\"Hornitzailearen ikonoa\"] } } }, { \"l\": \"fa\", \"t\": { \"Provider icon\": { \"v\": [\"آیکون ارائه دهنده\"] } } }, { \"l\": \"fi\", \"t\": { \"Provider icon\": { \"v\": [\"Palveluntarjoajan kuvake\"] } } }, { \"l\": \"fr\", \"t\": { \"Provider icon\": { \"v\": [\"Icône du fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Provider icon\": { \"v\": [\"Deilbhín soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Provider icon\": { \"v\": [\"Icona do provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Provider icon\": { \"v\": [\"סמל ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Provider icon\": { \"v\": [\"Ikona pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Provider icon\": { \"v\": [\"Szolgáltató ikonja\"] } } }, { \"l\": \"id\", \"t\": { \"Provider icon\": { \"v\": [\"Ikon penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Provider icon\": { \"v\": [\"Táknmynd þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Provider icon\": { \"v\": [\"Icona del provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Provider icon\": { \"v\": [\"プロバイダーのアイコン\"] } } }, { \"l\": \"ko\", \"t\": { \"Provider icon\": { \"v\": [\"제공자 아이콘\"] } } }, { \"l\": \"lo\", \"t\": { \"Provider icon\": { \"v\": [\"ໄອຄອນຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Provider icon\": { \"v\": [\"Tiekėjo piktograma\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Provider icon\": { \"v\": [\"Икона на давател\"] } } }, { \"l\": \"mn\", \"t\": { \"Provider icon\": { \"v\": [\"Үйлчилгээ үзүүлэгчийн дүрс\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Provider icon\": { \"v\": [\"Leverandørikon\"] } } }, { \"l\": \"nl\", \"t\": { \"Provider icon\": { \"v\": [\"Provider-pictogram\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Provider icon\": { \"v\": [\"Dostawca ikony\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Provider icon\": { \"v\": [\"Ícone do fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Provider icon\": { \"v\": [\"Provider pentru icon\"] } } }, { \"l\": \"ru\", \"t\": { \"Provider icon\": { \"v\": [\"Значок поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Provider icon\": { \"v\": [\"Ikonka poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Provider icon\": { \"v\": [\"Икона пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Provider icon\": { \"v\": [\"Leverantörsikon\"] } } }, { \"l\": \"tr\", \"t\": { \"Provider icon\": { \"v\": [\"Hizmet sağlayıcı simgesi\"] } } }, { \"l\": \"uk\", \"t\": { \"Provider icon\": { \"v\": [\"Піктограма постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Provider icon\": { \"v\": [\"Provayder belgisi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Provider icon\": { \"v\": [\"提供者图标\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Provider icon\": { \"v\": [\"提供者圖示\"] } } }];\nconst t42 = [{ \"l\": \"ar\", \"t\": { \"Related team resources\": { \"v\": [\"موارد للفريق ذات صلة\"] }, \"View team\": { \"v\": [\"عرض الفريق\"] } } }, { \"l\": \"ast\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos rellacionaos colos equipos\"] }, \"View team\": { \"v\": [\"Ver l'equipu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Related team resources\": { \"v\": [\"Související prostředky kolektivu\"] }, \"View team\": { \"v\": [\"Zobrazit kolektiv\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterede teamressourcer\"] }, \"View team\": { \"v\": [\"Se teamet\"] } } }, { \"l\": \"de\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Related team resources\": { \"v\": [\"Verwandte Team-Ressourcen\"] }, \"View team\": { \"v\": [\"Team anzeigen\"] } } }, { \"l\": \"el\", \"t\": { \"Related team resources\": { \"v\": [\"Σχετικοί πόροι ομάδας\"] }, \"View team\": { \"v\": [\"Προβολή ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Related team resources\": { \"v\": [\"Related team resources\"] }, \"View team\": { \"v\": [\"View team\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver equipo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Related team resources\": { \"v\": [\"Tiimi seotud ressursid\"] }, \"View team\": { \"v\": [\"Vaata tiimi\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"Related team resources\": { \"v\": [\"منابع تیمی مرتبط\"] }, \"View team\": { \"v\": [\"مشاهده گروه\"] } } }, { \"l\": \"fi\", \"t\": { \"Related team resources\": { \"v\": [\"Liittyvät tiimiresurssit\"] }, \"View team\": { \"v\": [\"Näytä tiimi\"] } } }, { \"l\": \"fr\", \"t\": { \"Related team resources\": { \"v\": [\"Ressources d'équipe associées\"] }, \"View team\": { \"v\": [\"Voir l'équipe\"] } } }, { \"l\": \"ga\", \"t\": { \"Related team resources\": { \"v\": [\"Acmhainní foirne gaolmhara\"] }, \"View team\": { \"v\": [\"Féach ar an bhfoireann\"] } } }, { \"l\": \"gl\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipo relacionados\"] }, \"View team\": { \"v\": [\"Ver o equipo\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Related team resources\": { \"v\": [\"Povezani timski resursi\"] }, \"View team\": { \"v\": [\"Prikaži tim\"] } } }, { \"l\": \"hu\", \"t\": { \"Related team resources\": { \"v\": [\"Kapcsolódó csapaterőforrások\"] }, \"View team\": { \"v\": [\"Csapat megtekintése\"] } } }, { \"l\": \"id\", \"t\": { \"Related team resources\": { \"v\": [\"Sumber daya team terkait\"] }, \"View team\": { \"v\": [\"Lihat team\"] } } }, { \"l\": \"is\", \"t\": { \"Related team resources\": { \"v\": [\"Tengd tilföng teymis\"] }, \"View team\": { \"v\": [\"Skoða teymi\"] } } }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Related team resources\": { \"v\": [\"チームの関連リソース\"] }, \"View team\": { \"v\": [\"チームを表示\"] } } }, { \"l\": \"ko\", \"t\": { \"Related team resources\": { \"v\": [\"관련 팀 리소스\"] }, \"View team\": { \"v\": [\"팀 보기\"] } } }, { \"l\": \"lo\", \"t\": { \"Related team resources\": { \"v\": [\"ຊັບພະຍາກອນຂອງທີມທີ່ກ່ຽວຂ້ອງ\"] }, \"View team\": { \"v\": [\"ເບິ່ງທີມ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Related team resources\": { \"v\": [\"Susiję komandos ištekliai\"] }, \"View team\": { \"v\": [\"Peržiūrėti komandą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Related team resources\": { \"v\": [\"Поврзани ресурси на тимот\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"mn\", \"t\": { \"Related team resources\": { \"v\": [\"Багийн холбогдох нөөцүүд\"] }, \"View team\": { \"v\": [\"Багийг харах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterte lagressurser\"] }, \"View team\": { \"v\": [\"Se lag\"] } } }, { \"l\": \"nl\", \"t\": { \"Related team resources\": { \"v\": [\"Verwante teambronnen\"] }, \"View team\": { \"v\": [\"Team bekijken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Related team resources\": { \"v\": [\"Powiązane zasoby grupowe\"] }, \"View team\": { \"v\": [\"Zobacz grupę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos de equipe relacionados\"] }, \"View team\": { \"v\": [\"Ver equipe\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Related team resources\": { \"v\": [\"Recursos relacionados com a equipa\"] }, \"View team\": { \"v\": [\"Ver equipa\"] } } }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Related team resources\": { \"v\": [\"Связанные командные ресурсы\"] }, \"View team\": { \"v\": [\"Просмотр команды\"] } } }, { \"l\": \"sk\", \"t\": { \"Related team resources\": { \"v\": [\"Súvisiace tímové zdroje\"] }, \"View team\": { \"v\": [\"Zobraziť tím\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Related team resources\": { \"v\": [\"Повезани тимски ресурси\"] }, \"View team\": { \"v\": [\"Прикажи тим\"] } } }, { \"l\": \"sv\", \"t\": { \"Related team resources\": { \"v\": [\"Relaterade teamresurser\"] }, \"View team\": { \"v\": [\"Visa team\"] } } }, { \"l\": \"tr\", \"t\": { \"Related team resources\": { \"v\": [\"İlgili takım kaynakları\"] }, \"View team\": { \"v\": [\"Takımı görüntüle\"] } } }, { \"l\": \"uk\", \"t\": { \"Related team resources\": { \"v\": [\"Пов'язані ресурси команди\"] }, \"View team\": { \"v\": [\"Переглянути команду\"] } } }, { \"l\": \"uz\", \"t\": { \"Related team resources\": { \"v\": [\"Tegishli jamoa resurslari\"] }, \"View team\": { \"v\": [\"Jamoani ko'rish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Related team resources\": { \"v\": [\"相关团队资源\"] }, \"View team\": { \"v\": [\"查看团队\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"查看團隊\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Related team resources\": { \"v\": [\"相關團隊資源\"] }, \"View team\": { \"v\": [\"檢視團隊\"] } } }];\nconst t43 = [{ \"l\": \"ar\", \"t\": { \"Search\": { \"v\": [\"بحث\"] } } }, { \"l\": \"ast\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"br\", \"t\": { \"Search\": { \"v\": [\"Klask\"] } } }, { \"l\": \"ca\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"cs\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search\": { \"v\": [\"Hledat\"] } } }, { \"l\": \"da\", \"t\": { \"Search\": { \"v\": [\"Søg\"] } } }, { \"l\": \"de\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search\": { \"v\": [\"Suche\"] } } }, { \"l\": \"el\", \"t\": { \"Search\": { \"v\": [\"Αναζήτηση\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search\": { \"v\": [\"Search\"] } } }, { \"l\": \"eo\", \"t\": { \"Search\": { \"v\": [\"Serĉi\"] } } }, { \"l\": \"es\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search\": { \"v\": [\"Otsing\"] } } }, { \"l\": \"eu\", \"t\": { \"Search\": { \"v\": [\"Bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Search\": { \"v\": [\"جستجو\"] } } }, { \"l\": \"fi\", \"t\": { \"Search\": { \"v\": [\"Etsi\"] } } }, { \"l\": \"fr\", \"t\": { \"Search\": { \"v\": [\"Rechercher\"] } } }, { \"l\": \"ga\", \"t\": { \"Search\": { \"v\": [\"Cuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search\": { \"v\": [\"Buscar\"] } } }, { \"l\": \"he\", \"t\": { \"Search\": { \"v\": [\"חיפוש\"] } } }, { \"l\": \"hr\", \"t\": { \"Search\": { \"v\": [\"Traži\"] } } }, { \"l\": \"hu\", \"t\": { \"Search\": { \"v\": [\"Keresés\"] } } }, { \"l\": \"id\", \"t\": { \"Search\": { \"v\": [\"Cari\"] } } }, { \"l\": \"is\", \"t\": { \"Search\": { \"v\": [\"Leita\"] } } }, { \"l\": \"it\", \"t\": { \"Search\": { \"v\": [\"Cerca\"] } } }, { \"l\": \"ja\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search\": { \"v\": [\"検索\"] } } }, { \"l\": \"ko\", \"t\": { \"Search\": { \"v\": [\"검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search\": { \"v\": [\"ຄົ້ນຫາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search\": { \"v\": [\"Ieškoti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search\": { \"v\": [\"Барај\"] } } }, { \"l\": \"mn\", \"t\": { \"Search\": { \"v\": [\"Хайх\"] } } }, { \"l\": \"my\", \"t\": { \"Search\": { \"v\": [\"ရှာဖွေရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Search\": { \"v\": [\"Søk\"] } } }, { \"l\": \"nl\", \"t\": { \"Search\": { \"v\": [\"Zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search\": { \"v\": [\"Szukaj\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Search\": { \"v\": [\"Pesquisar\"] } } }, { \"l\": \"ro\", \"t\": { \"Search\": { \"v\": [\"Căutare\"] } } }, { \"l\": \"ru\", \"t\": { \"Search\": { \"v\": [\"Поиск\"] } } }, { \"l\": \"sk\", \"t\": { \"Search\": { \"v\": [\"Hľadať\"] } } }, { \"l\": \"sl\", \"t\": { \"Search\": { \"v\": [\"Iskanje\"] } } }, { \"l\": \"sr\", \"t\": { \"Search\": { \"v\": [\"Претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Search\": { \"v\": [\"Sök\"] } } }, { \"l\": \"tr\", \"t\": { \"Search\": { \"v\": [\"Ara\"] } } }, { \"l\": \"uk\", \"t\": { \"Search\": { \"v\": [\"Пошук\"] } } }, { \"l\": \"uz\", \"t\": { \"Search\": { \"v\": [\"Qidiruv\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search\": { \"v\": [\"搜索\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search\": { \"v\": [\"搜尋\"] } } }];\nconst t44 = [{ \"l\": \"ar\", \"t\": {} }, { \"l\": \"ast\", \"t\": {} }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Search …\": { \"v\": [\"Hledat …\"] } } }, { \"l\": \"cs-CZ\", \"t\": {} }, { \"l\": \"da\", \"t\": { \"Search …\": { \"v\": [\"Søg ...\"] } } }, { \"l\": \"de\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search …\": { \"v\": [\"Suche …\"] } } }, { \"l\": \"el\", \"t\": { \"Search …\": { \"v\": [\"Αναζήτηση …\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search …\": { \"v\": [\"Search …\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": {} }, { \"l\": \"es-AR\", \"t\": {} }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": {} }, { \"l\": \"et-EE\", \"t\": { \"Search …\": { \"v\": [\"Otsi…\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": {} }, { \"l\": \"fi\", \"t\": {} }, { \"l\": \"fr\", \"t\": { \"Search …\": { \"v\": [\"Rechercher…\"] } } }, { \"l\": \"ga\", \"t\": { \"Search …\": { \"v\": [\"Cuardaigh …\"] } } }, { \"l\": \"gl\", \"t\": { \"Search …\": { \"v\": [\"Buscar…\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"Search …\": { \"v\": [\"Traži …\"] } } }, { \"l\": \"hu\", \"t\": { \"Search …\": { \"v\": [\"Keresés…\"] } } }, { \"l\": \"id\", \"t\": { \"Search …\": { \"v\": [\"Cari …\"] } } }, { \"l\": \"is\", \"t\": {} }, { \"l\": \"it\", \"t\": {} }, { \"l\": \"ja\", \"t\": { \"Search …\": { \"v\": [\"検索…\"] } } }, { \"l\": \"ja-JP\", \"t\": {} }, { \"l\": \"ko\", \"t\": { \"Search …\": { \"v\": [\"찾는 중 ...\"] } } }, { \"l\": \"lo\", \"t\": { \"Search …\": { \"v\": [\"ຄົ້ນຫາ…\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search …\": { \"v\": [\"Ieškoti …\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search …\": { \"v\": [\"Барај…\"] } } }, { \"l\": \"mn\", \"t\": { \"Search …\": { \"v\": [\"Хайх …\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": {} }, { \"l\": \"nl\", \"t\": { \"Search …\": { \"v\": [\"Zoeken …\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": {} }, { \"l\": \"pt-BR\", \"t\": { \"Search …\": { \"v\": [\"Pesquisar …\"] } } }, { \"l\": \"pt-PT\", \"t\": {} }, { \"l\": \"ro\", \"t\": {} }, { \"l\": \"ru\", \"t\": { \"Search …\": { \"v\": [\"Поиск …\"] } } }, { \"l\": \"sk\", \"t\": {} }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Search …\": { \"v\": [\"Претражи…\"] } } }, { \"l\": \"sv\", \"t\": { \"Search …\": { \"v\": [\"Sök …\"] } } }, { \"l\": \"tr\", \"t\": { \"Search …\": { \"v\": [\"Ara…\"] } } }, { \"l\": \"uk\", \"t\": {} }, { \"l\": \"uz\", \"t\": { \"Search …\": { \"v\": [\"Izlash...\"] } } }, { \"l\": \"zh-CN\", \"t\": {} }, { \"l\": \"zh-HK\", \"t\": { \"Search …\": { \"v\": [\"搜尋 …\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search …\": { \"v\": [\"搜尋......\"] } } }];\nconst t45 = [{ \"l\": \"ar\", \"t\": { \"Type to search time zone\": { \"v\": [\"أكتُب للبحث عن منطقة زمنية\"] } } }, { \"l\": \"ast\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar fusos horarios\"] }, \"Type to search time zone\": { \"v\": [\"Escribi pa buscar un fusu horariu\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escriviu per cercar la zona horària\"] } } }, { \"l\": \"cs\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhledat časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Psaním vyhledejte časovou zónu\"] } } }, { \"l\": \"da\", \"t\": { \"Search for time zone\": { \"v\": [\"Søg efter tidszone\"] }, \"Type to search time zone\": { \"v\": [\"Indtast for at søge efter tidszone\"] } } }, { \"l\": \"de\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Search for time zone\": { \"v\": [\"Nach Zeitzone suchen\"] }, \"Type to search time zone\": { \"v\": [\"Tippen, um eine Zeitzone zu suchen\"] } } }, { \"l\": \"el\", \"t\": { \"Type to search time zone\": { \"v\": [\"Πληκτρολογήστε για αναζήτηση ζώνης ώρας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Search for time zone\": { \"v\": [\"Search for time zone\"] }, \"Type to search time zone\": { \"v\": [\"Type to search time zone\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar huso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar un huso horario\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Type to search time zone\": { \"v\": [\"Escribe para buscar la zona horaria\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar zona horaria\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar la zona horaria\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Search for time zone\": { \"v\": [\"Otsi ajavööndit\"] }, \"Type to search time zone\": { \"v\": [\"Ajavööndi otsimiseks kirjuta midagi\"] } } }, { \"l\": \"eu\", \"t\": { \"Type to search time zone\": { \"v\": [\"Idatzi ordu-zona bat bilatzeko\"] } } }, { \"l\": \"fa\", \"t\": { \"Search for time zone\": { \"v\": [\"جستجو برای منطقهٔ زمانی\"] }, \"Type to search time zone\": { \"v\": [\"برای جستجوی منطقه زمانی تایپ کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Search for time zone\": { \"v\": [\"Etsi aikavyöhykettä\"] }, \"Type to search time zone\": { \"v\": [\"Kirjoita etsiäksesi aikavyöhykettä\"] } } }, { \"l\": \"fr\", \"t\": { \"Search for time zone\": { \"v\": [\"Rechercher le fuseau horaire\"] }, \"Type to search time zone\": { \"v\": [\"Saisissez les premiers lettres pour rechercher un fuseau horaire\"] } } }, { \"l\": \"ga\", \"t\": { \"Search for time zone\": { \"v\": [\"Cuardaigh crios ama\"] }, \"Type to search time zone\": { \"v\": [\"Clóscríobh chun crios ama a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Search for time zone\": { \"v\": [\"Buscar por fuso horario\"] }, \"Type to search time zone\": { \"v\": [\"Escriba para buscar o fuso horario\"] } } }, { \"l\": \"he\", \"t\": { \"Type to search time zone\": { \"v\": [\"יש להקליד כדי לחפש אזור זמן\"] } } }, { \"l\": \"hr\", \"t\": { \"Search for time zone\": { \"v\": [\"Pretraži vremensku zonu\"] }, \"Type to search time zone\": { \"v\": [\"Upišite za pretraživanje vremenske zone\"] } } }, { \"l\": \"hu\", \"t\": { \"Search for time zone\": { \"v\": [\"Időzóna keresése\"] }, \"Type to search time zone\": { \"v\": [\"Gépeljen az időzóna kereséséhez\"] } } }, { \"l\": \"id\", \"t\": { \"Search for time zone\": { \"v\": [\"Cari zona waktu\"] }, \"Type to search time zone\": { \"v\": [\"Ketik untuk mencari zona waktu\"] } } }, { \"l\": \"is\", \"t\": { \"Search for time zone\": { \"v\": [\"Leita að tímabelti\"] }, \"Type to search time zone\": { \"v\": [\"Skrifaðu til að leita að tímabelti\"] } } }, { \"l\": \"it\", \"t\": { \"Search for time zone\": { \"v\": [\"Ricerca del fuso orario\"] }, \"Type to search time zone\": { \"v\": [\"Digita per cercare un fuso orario\"] } } }, { \"l\": \"ja\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Search for time zone\": { \"v\": [\"タイムゾーンを検索\"] }, \"Type to search time zone\": { \"v\": [\"タイムゾーン検索のため入力してください\"] } } }, { \"l\": \"ko\", \"t\": { \"Search for time zone\": { \"v\": [\"시간대 찾기\"] }, \"Type to search time zone\": { \"v\": [\"입력하여 시간대를 검색\"] } } }, { \"l\": \"lo\", \"t\": { \"Search for time zone\": { \"v\": [\"ຄົ້ນຫາເຂດເວລາ\"] }, \"Type to search time zone\": { \"v\": [\"ພິມເພື່ອຄົ້ນຫາເຂດເວລາ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Search for time zone\": { \"v\": [\"Ieškoti laiko juostų\"] }, \"Type to search time zone\": { \"v\": [\"Įveskite, kad surastumėte laiko juostą\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Search for time zone\": { \"v\": [\"Барај временска зона\"] }, \"Type to search time zone\": { \"v\": [\"Напишете за да пребарате временска зона\"] } } }, { \"l\": \"mn\", \"t\": { \"Search for time zone\": { \"v\": [\"Цагийн бүс хайх\"] }, \"Type to search time zone\": { \"v\": [\"Цагийн бүс хайхын тулд бичнэ үү\"] } } }, { \"l\": \"my\", \"t\": { \"Type to search time zone\": { \"v\": [\"ဒေသစံတော်ချိန်များ ရှာဖွေရန် စာရိုက်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Search for time zone\": { \"v\": [\"Søk etter tidssone\"] }, \"Type to search time zone\": { \"v\": [\"Tast for å søke etter tidssone\"] } } }, { \"l\": \"nl\", \"t\": { \"Search for time zone\": { \"v\": [\"Zoeken naar tijdzone\"] }, \"Type to search time zone\": { \"v\": [\"Typ om een tijdzone te zoeken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Search for time zone\": { \"v\": [\"Szukaj strefy czasowej\"] }, \"Type to search time zone\": { \"v\": [\"Wpisz, aby wyszukać strefę czasową\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Search for time zone\": { \"v\": [\"Pesquisar fuso horário\"] }, \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Type to search time zone\": { \"v\": [\"Digite para pesquisar o fuso horário \"] } } }, { \"l\": \"ro\", \"t\": { \"Search for time zone\": { \"v\": [\"Căutare zonă de timp\"] }, \"Type to search time zone\": { \"v\": [\"Tastați pentru a căuta fusul orar\"] } } }, { \"l\": \"ru\", \"t\": { \"Search for time zone\": { \"v\": [\"Поиск часового пояса\"] }, \"Type to search time zone\": { \"v\": [\"Введите для поиска часового пояса\"] } } }, { \"l\": \"sk\", \"t\": { \"Search for time zone\": { \"v\": [\"Vyhľadať časové pásmo\"] }, \"Type to search time zone\": { \"v\": [\"Začníte písať pre vyhľadávanie časovej zóny\"] } } }, { \"l\": \"sl\", \"t\": { \"Type to search time zone\": { \"v\": [\"Vpišite niz za iskanje časovnega pasu\"] } } }, { \"l\": \"sr\", \"t\": { \"Type to search time zone\": { \"v\": [\"Куцајте да претражите временске зоне\"] } } }, { \"l\": \"sv\", \"t\": { \"Search for time zone\": { \"v\": [\"Sök efter tidszon\"] }, \"Type to search time zone\": { \"v\": [\"Skriv för att välja tidszon\"] } } }, { \"l\": \"tr\", \"t\": { \"Search for time zone\": { \"v\": [\"Saat dilimi ara\"] }, \"Type to search time zone\": { \"v\": [\"Saat dilimi aramak için yazmaya başlayın\"] } } }, { \"l\": \"uk\", \"t\": { \"Type to search time zone\": { \"v\": [\"Введіть для пошуку часовий пояс\"] } } }, { \"l\": \"uz\", \"t\": { \"Search for time zone\": { \"v\": [\"Vaqt mintaqasini qidirish\"] }, \"Type to search time zone\": { \"v\": [\"Vaqt mintaqasini qidirish uchun kiriting\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索时区\"] }, \"Type to search time zone\": { \"v\": [\"打字以搜索时区\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Search for time zone\": { \"v\": [\"搜索時區\"] }, \"Type to search time zone\": { \"v\": [\"鍵入以搜索時區\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Search for time zone\": { \"v\": [\"搜尋時區\"] }, \"Type to search time zone\": { \"v\": [\"輸入以搜尋時區\"] } } }];\nconst t46 = [{ \"l\": \"ar\", \"t\": { \"Select provider\": { \"v\": [\"اختر مزود\"] } } }, { \"l\": \"ast\", \"t\": { \"Select provider\": { \"v\": [\"Seleicionar el fornidor\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Select provider\": { \"v\": [\"Vybrat poskytovatele\"] } } }, { \"l\": \"da\", \"t\": { \"Select provider\": { \"v\": [\"Vælg udbyder\"] } } }, { \"l\": \"de\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Select provider\": { \"v\": [\"Anbieter auswählen\"] } } }, { \"l\": \"el\", \"t\": { \"Select provider\": { \"v\": [\"Επιλογή παρόχου\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Select provider\": { \"v\": [\"Select provider\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione proveedor\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Select provider\": { \"v\": [\"Elija proveedor\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Select provider\": { \"v\": [\"Seleccionar proveedor\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Select provider\": { \"v\": [\"Vali teenuspakkuja\"] } } }, { \"l\": \"eu\", \"t\": { \"Select provider\": { \"v\": [\"Hautatu hornitzailea\"] } } }, { \"l\": \"fa\", \"t\": { \"Select provider\": { \"v\": [\"ارائه دهنده را انتخاب کنید\"] } } }, { \"l\": \"fi\", \"t\": { \"Select provider\": { \"v\": [\"Valitse tarjoaja\"] } } }, { \"l\": \"fr\", \"t\": { \"Select provider\": { \"v\": [\"Sélectionner un fournisseur\"] } } }, { \"l\": \"ga\", \"t\": { \"Select provider\": { \"v\": [\"Roghnaigh soláthraí\"] } } }, { \"l\": \"gl\", \"t\": { \"Select provider\": { \"v\": [\"Seleccione o provedor\"] } } }, { \"l\": \"he\", \"t\": { \"Select provider\": { \"v\": [\"בחירת ספק\"] } } }, { \"l\": \"hr\", \"t\": { \"Select provider\": { \"v\": [\"Odaberi pružatelja\"] } } }, { \"l\": \"hu\", \"t\": { \"Select provider\": { \"v\": [\"Válasszon szolgáltatót\"] } } }, { \"l\": \"id\", \"t\": { \"Select provider\": { \"v\": [\"Pilih penyedia\"] } } }, { \"l\": \"is\", \"t\": { \"Select provider\": { \"v\": [\"Veldu þjónustuveitu\"] } } }, { \"l\": \"it\", \"t\": { \"Select provider\": { \"v\": [\"Selezionare il provider\"] } } }, { \"l\": \"ja\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Select provider\": { \"v\": [\"プロバイダーを選択\"] } } }, { \"l\": \"ko\", \"t\": { \"Select provider\": { \"v\": [\"제공자 선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Select provider\": { \"v\": [\"ເລືອກຜູ້ໃຫ້ບໍລິການ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Select provider\": { \"v\": [\"Pasirinkti tiekėją\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Select provider\": { \"v\": [\"Избери провајдер\"] } } }, { \"l\": \"mn\", \"t\": { \"Select provider\": { \"v\": [\"Үйлчилгээ үзүүлэгч сонгох\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Select provider\": { \"v\": [\"Velg leverandør\"] } } }, { \"l\": \"nl\", \"t\": { \"Select provider\": { \"v\": [\"Selecteer provider\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Select provider\": { \"v\": [\"Wybierz dostawcę\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Select provider\": { \"v\": [\"Selecione provedor\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Select provider\": { \"v\": [\"Selecionar fornecedor\"] } } }, { \"l\": \"ro\", \"t\": { \"Select provider\": { \"v\": [\"Selectați providerul\"] } } }, { \"l\": \"ru\", \"t\": { \"Select provider\": { \"v\": [\"Выбрать поставщика\"] } } }, { \"l\": \"sk\", \"t\": { \"Select provider\": { \"v\": [\"Vybrať poskytovateľa\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"Select provider\": { \"v\": [\"Изаберите пружаоца\"] } } }, { \"l\": \"sv\", \"t\": { \"Select provider\": { \"v\": [\"Välj leverantör\"] } } }, { \"l\": \"tr\", \"t\": { \"Select provider\": { \"v\": [\"Hizmet sağlayıcı seçin\"] } } }, { \"l\": \"uk\", \"t\": { \"Select provider\": { \"v\": [\"Виберіть постачальника\"] } } }, { \"l\": \"uz\", \"t\": { \"Select provider\": { \"v\": [\"Provayderni tanlang\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Select provider\": { \"v\": [\"选择提供者\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Select provider\": { \"v\": [\"選擇提供者\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Select provider\": { \"v\": [\"選取提供者\"] } } }];\nconst t47 = [{ \"l\": \"ar\", \"t\": { \"Settings\": { \"v\": [\"الإعدادات\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"br\", \"t\": { \"Settings\": { \"v\": [\"Arventennoù\"] } } }, { \"l\": \"ca\", \"t\": { \"Settings\": { \"v\": [\"Paràmetres\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings\": { \"v\": [\"Nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings\": { \"v\": [\"Indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings\": { \"v\": [\"Einstellungen\"] } } }, { \"l\": \"el\", \"t\": { \"Settings\": { \"v\": [\"Ρυθμίσεις\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings\": { \"v\": [\"Settings\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings\": { \"v\": [\"Agordo\"] } } }, { \"l\": \"es\", \"t\": { \"Settings\": { \"v\": [\"Ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings\": { \"v\": [\"Configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings\": { \"v\": [\"Configuración\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings\": { \"v\": [\"Seadistused\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings\": { \"v\": [\"Ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings\": { \"v\": [\"تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings\": { \"v\": [\"Asetukset\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings\": { \"v\": [\"Socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings\": { \"v\": [\"Axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings\": { \"v\": [\"הגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings\": { \"v\": [\"Postavke\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings\": { \"v\": [\"Beállítások\"] } } }, { \"l\": \"id\", \"t\": { \"Settings\": { \"v\": [\"Pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings\": { \"v\": [\"Stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings\": { \"v\": [\"Impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings\": { \"v\": [\"선택\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings\": { \"v\": [\"ການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings\": { \"v\": [\"Nustatymai\"] } } }, { \"l\": \"lv\", \"t\": { \"Settings\": { \"v\": [\"Iestatījumi\"] } } }, { \"l\": \"mk\", \"t\": { \"Settings\": { \"v\": [\"Параметри\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings\": { \"v\": [\"Тохиргоо\"] } } }, { \"l\": \"my\", \"t\": { \"Settings\": { \"v\": [\"ချိန်ညှိချက်များ\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings\": { \"v\": [\"Innstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings\": { \"v\": [\"Instellingen\"] } } }, { \"l\": \"oc\", \"t\": { \"Settings\": { \"v\": [\"Paramètres\"] } } }, { \"l\": \"pl\", \"t\": { \"Settings\": { \"v\": [\"Ustawienia\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings\": { \"v\": [\"Configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings\": { \"v\": [\"Definições\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings\": { \"v\": [\"Setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings\": { \"v\": [\"Параметры\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings\": { \"v\": [\"Nastavenia\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings\": { \"v\": [\"Nastavitve\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings\": { \"v\": [\"Поставке\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings\": { \"v\": [\"Inställningar\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings\": { \"v\": [\"Ayarlar\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings\": { \"v\": [\"Налаштування\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings\": { \"v\": [\"Sozlamalar\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings\": { \"v\": [\"设置\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings\": { \"v\": [\"設定\"] } } }];\nconst t48 = [{ \"l\": \"ar\", \"t\": { \"Settings navigation\": { \"v\": [\"إعدادات التّصفُّح\"] } } }, { \"l\": \"ast\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación pela configuración\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegació d'opcions\"] } } }, { \"l\": \"cs\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Settings navigation\": { \"v\": [\"Pohyb po nastavení\"] } } }, { \"l\": \"da\", \"t\": { \"Settings navigation\": { \"v\": [\"Naviger i indstillinger\"] } } }, { \"l\": \"de\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Settings navigation\": { \"v\": [\"Einstellungen für die Navigation\"] } } }, { \"l\": \"el\", \"t\": { \"Settings navigation\": { \"v\": [\"Πλοήγηση ρυθμίσεων\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Settings navigation\": { \"v\": [\"Settings navigation\"] } } }, { \"l\": \"eo\", \"t\": { \"Settings navigation\": { \"v\": [\"Agorda navigado\"] } } }, { \"l\": \"es\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de ajustes\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación de configuraciones\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación por ajustes\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Settings navigation\": { \"v\": [\"Liikumine seadistustes\"] } } }, { \"l\": \"eu\", \"t\": { \"Settings navigation\": { \"v\": [\"Nabigazio ezarpenak\"] } } }, { \"l\": \"fa\", \"t\": { \"Settings navigation\": { \"v\": [\"ناوبری تنظیمات\"] } } }, { \"l\": \"fi\", \"t\": { \"Settings navigation\": { \"v\": [\"Asetusten navigointi\"] } } }, { \"l\": \"fr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigation dans les paramètres\"] } } }, { \"l\": \"ga\", \"t\": { \"Settings navigation\": { \"v\": [\"Nascleanúint socruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegación polos axustes\"] } } }, { \"l\": \"he\", \"t\": { \"Settings navigation\": { \"v\": [\"ניווט בהגדרות\"] } } }, { \"l\": \"hr\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigacija postavki\"] } } }, { \"l\": \"hu\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigáció a beállításokban\"] } } }, { \"l\": \"id\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasi pengaturan\"] } } }, { \"l\": \"is\", \"t\": { \"Settings navigation\": { \"v\": [\"Flakk um stillingar\"] } } }, { \"l\": \"it\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigazione delle impostazioni\"] } } }, { \"l\": \"ja\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Settings navigation\": { \"v\": [\"ナビゲーション設定\"] } } }, { \"l\": \"ko\", \"t\": { \"Settings navigation\": { \"v\": [\"세팅 탐색\"] } } }, { \"l\": \"lo\", \"t\": { \"Settings navigation\": { \"v\": [\"ການນຳທາງການຕັ້ງຄ່າ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Settings navigation\": { \"v\": [\"Naršymas nustatymuose\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Settings navigation\": { \"v\": [\"Параметри за навигација\"] } } }, { \"l\": \"mn\", \"t\": { \"Settings navigation\": { \"v\": [\"Тохиргооны навигаци\"] } } }, { \"l\": \"my\", \"t\": { \"Settings navigation\": { \"v\": [\"ချိန်ညှိချက်အညွှန်း\"] } } }, { \"l\": \"nb\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigasjonsinstillinger\"] } } }, { \"l\": \"nl\", \"t\": { \"Settings navigation\": { \"v\": [\"Instellingen navigatie\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Settings navigation\": { \"v\": [\"Ustawienia nawigacji\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Settings navigation\": { \"v\": [\"Navegação de configurações\"] } } }, { \"l\": \"ro\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigare setări\"] } } }, { \"l\": \"ru\", \"t\": { \"Settings navigation\": { \"v\": [\"Навигация по настройкам\"] } } }, { \"l\": \"sk\", \"t\": { \"Settings navigation\": { \"v\": [\"Navigácia v nastaveniach\"] } } }, { \"l\": \"sl\", \"t\": { \"Settings navigation\": { \"v\": [\"Krmarjenje nastavitev\"] } } }, { \"l\": \"sr\", \"t\": { \"Settings navigation\": { \"v\": [\"Кретање по подешавањима\"] } } }, { \"l\": \"sv\", \"t\": { \"Settings navigation\": { \"v\": [\"Inställningsmeny\"] } } }, { \"l\": \"tr\", \"t\": { \"Settings navigation\": { \"v\": [\"Gezinme ayarları\"] } } }, { \"l\": \"uk\", \"t\": { \"Settings navigation\": { \"v\": [\"Навігація у налаштуваннях\"] } } }, { \"l\": \"uz\", \"t\": { \"Settings navigation\": { \"v\": [\"Sozlamalar navigatsiyasi\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Settings navigation\": { \"v\": [\"设置向导\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Settings navigation\": { \"v\": [\"設定值導覽\"] } } }];\nconst t49 = [{ \"l\": \"ar\", \"t\": { \"Submit\": { \"v\": [\"إرسال\"] } } }, { \"l\": \"ast\", \"t\": { \"Submit\": { \"v\": [\"Unviar\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Submit\": { \"v\": [\"Envia\"] } } }, { \"l\": \"cs\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Submit\": { \"v\": [\"Odeslat\"] } } }, { \"l\": \"da\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"de\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Submit\": { \"v\": [\"Einreichen\"] } } }, { \"l\": \"el\", \"t\": { \"Submit\": { \"v\": [\"Υποβολή\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Submit\": { \"v\": [\"Submit\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Submit\": { \"v\": [\"Saada\"] } } }, { \"l\": \"eu\", \"t\": { \"Submit\": { \"v\": [\"Bidali\"] } } }, { \"l\": \"fa\", \"t\": { \"Submit\": { \"v\": [\"ارسال\"] } } }, { \"l\": \"fi\", \"t\": { \"Submit\": { \"v\": [\"Lähetä\"] } } }, { \"l\": \"fr\", \"t\": { \"Submit\": { \"v\": [\"Valider\"] } } }, { \"l\": \"ga\", \"t\": { \"Submit\": { \"v\": [\"Cuir isteach\"] } } }, { \"l\": \"gl\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"he\", \"t\": { \"Submit\": { \"v\": [\"הגשה\"] } } }, { \"l\": \"hr\", \"t\": { \"Submit\": { \"v\": [\"Pošalji\"] } } }, { \"l\": \"hu\", \"t\": { \"Submit\": { \"v\": [\"Beküldés\"] } } }, { \"l\": \"id\", \"t\": { \"Submit\": { \"v\": [\"Kirimkan\"] } } }, { \"l\": \"is\", \"t\": { \"Submit\": { \"v\": [\"Senda inn\"] } } }, { \"l\": \"it\", \"t\": { \"Submit\": { \"v\": [\"Invia\"] } } }, { \"l\": \"ja\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Submit\": { \"v\": [\"提出\"] } } }, { \"l\": \"ko\", \"t\": { \"Submit\": { \"v\": [\"제출\"] } } }, { \"l\": \"lo\", \"t\": { \"Submit\": { \"v\": [\"ສົ່ງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Submit\": { \"v\": [\"Pateikti\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Submit\": { \"v\": [\"Испрати\"] } } }, { \"l\": \"mn\", \"t\": { \"Submit\": { \"v\": [\"Илгээх\"] } } }, { \"l\": \"my\", \"t\": { \"Submit\": { \"v\": [\"တင်သွင်းရန်\"] } } }, { \"l\": \"nb\", \"t\": { \"Submit\": { \"v\": [\"Send\"] } } }, { \"l\": \"nl\", \"t\": { \"Submit\": { \"v\": [\"Indienen\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Submit\": { \"v\": [\"Wyślij\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Submit\": { \"v\": [\"Enviar\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Submit\": { \"v\": [\"Submeter\"] } } }, { \"l\": \"ro\", \"t\": { \"Submit\": { \"v\": [\"Trimiteți\"] } } }, { \"l\": \"ru\", \"t\": { \"Submit\": { \"v\": [\"Утвердить\"] } } }, { \"l\": \"sk\", \"t\": { \"Submit\": { \"v\": [\"Odoslať\"] } } }, { \"l\": \"sl\", \"t\": { \"Submit\": { \"v\": [\"Pošlji\"] } } }, { \"l\": \"sr\", \"t\": { \"Submit\": { \"v\": [\"Поднеси\"] } } }, { \"l\": \"sv\", \"t\": { \"Submit\": { \"v\": [\"Skicka\"] } } }, { \"l\": \"tr\", \"t\": { \"Submit\": { \"v\": [\"Gönder\"] } } }, { \"l\": \"uk\", \"t\": { \"Submit\": { \"v\": [\"Надіслати\"] } } }, { \"l\": \"uz\", \"t\": { \"Submit\": { \"v\": [\"Yuborish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Submit\": { \"v\": [\"提交\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Submit\": { \"v\": [\"遞交\"] } } }];\nconst t50 = [{ \"l\": \"ar\", \"t\": { \"Unable to search the group\": { \"v\": [\"تعذّر البحث في المجموعة\"] } } }, { \"l\": \"ast\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nun ye posible buscar el grupu\"] } } }, { \"l\": \"br\", \"t\": { \"Unable to search the group\": { \"v\": [\"Dibosupl eo klask ar strollad\"] } } }, { \"l\": \"ca\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es pot cercar el grup\"] } } }, { \"l\": \"cs\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nedaří se hledat skupinu\"] } } }, { \"l\": \"da\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan ikke søge på denne gruppe\"] } } }, { \"l\": \"de\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Die Gruppe kann nicht durchsucht werden\"] } } }, { \"l\": \"el\", \"t\": { \"Unable to search the group\": { \"v\": [\"Δεν είναι δυνατή η αναζήτηση της ομάδας\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Unable to search the group\": { \"v\": [\"Unable to search the group\"] } } }, { \"l\": \"eo\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ne eblas serĉi en la grupo\"] } } }, { \"l\": \"es\", \"t\": { \"Unable to search the group\": { \"v\": [\"No es posible buscar en el grupo\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar el grupo\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Unable to search the group\": { \"v\": [\"No se puede buscar en el grupo\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Unable to search the group\": { \"v\": [\"No fue posible buscar en el grupo\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Unable to search the group\": { \"v\": [\"Gruppi ei ole võimalik otsida\"] } } }, { \"l\": \"eu\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ezin izan da taldea bilatu\"] } } }, { \"l\": \"fa\", \"t\": { \"Unable to search the group\": { \"v\": [\"امکان جستجوی گروه وجود ندارد\"] } } }, { \"l\": \"fi\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ryhmää ei voi hakea\"] } } }, { \"l\": \"fr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossible de chercher le groupe\"] } } }, { \"l\": \"ga\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ní féidir an grúpa a chuardach\"] } } }, { \"l\": \"gl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Non foi posíbel buscar o grupo\"] } } }, { \"l\": \"he\", \"t\": { \"Unable to search the group\": { \"v\": [\"לא ניתן לחפש בקבוצה\"] } } }, { \"l\": \"hr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nije moguće pretražiti grupu\"] } } }, { \"l\": \"hu\", \"t\": { \"Unable to search the group\": { \"v\": [\"A csoport nem kereshető\"] } } }, { \"l\": \"id\", \"t\": { \"Unable to search the group\": { \"v\": [\"Tidak dapat mencari dalam grup\"] } } }, { \"l\": \"is\", \"t\": { \"Unable to search the group\": { \"v\": [\"Get ekki leitað í hópnum\"] } } }, { \"l\": \"it\", \"t\": { \"Unable to search the group\": { \"v\": [\"Impossibile cercare il gruppo\"] } } }, { \"l\": \"ja\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Unable to search the group\": { \"v\": [\"グループを検索できません\"] } } }, { \"l\": \"ko\", \"t\": { \"Unable to search the group\": { \"v\": [\"그룹을 검색할 수 없음\"] } } }, { \"l\": \"lo\", \"t\": { \"Unable to search the group\": { \"v\": [\"ບໍ່ສາມາດຄົ້ນຫາກຸ່ມໄດ້\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nepavyko atlikti paiešką grupėje\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможе да се пронајде групата\"] } } }, { \"l\": \"mn\", \"t\": { \"Unable to search the group\": { \"v\": [\"Бүлгийг хайж чадсангүй\"] } } }, { \"l\": \"my\", \"t\": { \"Unable to search the group\": { \"v\": [\"အဖွဲ့အား ရှာဖွေ၍ မရနိုင်ပါ\"] } } }, { \"l\": \"nb\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunne ikke søke i gruppen\"] } } }, { \"l\": \"nl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kan niet zoeken in de groep\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Nie można przeszukać grupy\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não foi possível pesquisar o grupo\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Unable to search the group\": { \"v\": [\"Não é possível pesquisar o grupo\"] } } }, { \"l\": \"ro\", \"t\": { \"Unable to search the group\": { \"v\": [\"Imposibilitatea de a căuta în grup\"] } } }, { \"l\": \"ru\", \"t\": { \"Unable to search the group\": { \"v\": [\"Невозможно найти группу\"] } } }, { \"l\": \"sk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Skupinu sa nepodarilo nájsť\"] } } }, { \"l\": \"sl\", \"t\": { \"Unable to search the group\": { \"v\": [\"Ni mogoče iskati po skupini\"] } } }, { \"l\": \"sr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Група не може да се претражи\"] } } }, { \"l\": \"sv\", \"t\": { \"Unable to search the group\": { \"v\": [\"Kunde inte söka i gruppen\"] } } }, { \"l\": \"tr\", \"t\": { \"Unable to search the group\": { \"v\": [\"Grupta arama yapılamadı\"] } } }, { \"l\": \"uk\", \"t\": { \"Unable to search the group\": { \"v\": [\"Неможливо шукати в групі\"] } } }, { \"l\": \"uz\", \"t\": { \"Unable to search the group\": { \"v\": [\"Guruhni qidirish imkonsiz\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Unable to search the group\": { \"v\": [\"无法搜索分组\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Unable to search the group\": { \"v\": [\"無法搜尋群組\"] } } }];\nconst t51 = [{ \"l\": \"ar\", \"t\": { \"Undo changes\": { \"v\": [\"تراجَع عن التغييرات\"] } } }, { \"l\": \"ast\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer los cambeos\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": { \"Undo changes\": { \"v\": [\"Desfés els canvis\"] } } }, { \"l\": \"cs\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"Undo changes\": { \"v\": [\"Vzít změny zpět\"] } } }, { \"l\": \"da\", \"t\": { \"Undo changes\": { \"v\": [\"Fortryd ændringer\"] } } }, { \"l\": \"de\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"de-DE\", \"t\": { \"Undo changes\": { \"v\": [\"Änderungen rückgängig machen\"] } } }, { \"l\": \"el\", \"t\": { \"Undo changes\": { \"v\": [\"Αναίρεση Αλλαγών\"] } } }, { \"l\": \"en-GB\", \"t\": { \"Undo changes\": { \"v\": [\"Undo changes\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-AR\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-EC\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"es-MX\", \"t\": { \"Undo changes\": { \"v\": [\"Deshacer cambios\"] } } }, { \"l\": \"et-EE\", \"t\": { \"Undo changes\": { \"v\": [\"Pööra muudatused tagasi\"] } } }, { \"l\": \"eu\", \"t\": { \"Undo changes\": { \"v\": [\"Aldaketak desegin\"] } } }, { \"l\": \"fa\", \"t\": { \"Undo changes\": { \"v\": [\"لغو تغییرات\"] } } }, { \"l\": \"fi\", \"t\": { \"Undo changes\": { \"v\": [\"Kumoa muutokset\"] } } }, { \"l\": \"fr\", \"t\": { \"Undo changes\": { \"v\": [\"Annuler les changements\"] } } }, { \"l\": \"ga\", \"t\": { \"Undo changes\": { \"v\": [\"Cealaigh athruithe\"] } } }, { \"l\": \"gl\", \"t\": { \"Undo changes\": { \"v\": [\"Desfacer os cambios\"] } } }, { \"l\": \"he\", \"t\": { \"Undo changes\": { \"v\": [\"ביטול שינויים\"] } } }, { \"l\": \"hr\", \"t\": { \"Undo changes\": { \"v\": [\"Poništi promjene\"] } } }, { \"l\": \"hu\", \"t\": { \"Undo changes\": { \"v\": [\"Változtatások visszavonása\"] } } }, { \"l\": \"id\", \"t\": { \"Undo changes\": { \"v\": [\"Urungkan perubahan\"] } } }, { \"l\": \"is\", \"t\": { \"Undo changes\": { \"v\": [\"Afturkalla breytingar\"] } } }, { \"l\": \"it\", \"t\": { \"Undo changes\": { \"v\": [\"Cancella i cambiamenti\"] } } }, { \"l\": \"ja\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"Undo changes\": { \"v\": [\"変更を取り消し\"] } } }, { \"l\": \"ko\", \"t\": { \"Undo changes\": { \"v\": [\"변경 되돌리기\"] } } }, { \"l\": \"lo\", \"t\": { \"Undo changes\": { \"v\": [\"ຍ້ອນຄືນການປ່ຽນແປງ\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"Undo changes\": { \"v\": [\"Atšaukti pakeitimus\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"Undo changes\": { \"v\": [\"Врати ги промените\"] } } }, { \"l\": \"mn\", \"t\": { \"Undo changes\": { \"v\": [\"Өөрчлөлтийг буцаах\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"Undo changes\": { \"v\": [\"Tilbakestill endringer\"] } } }, { \"l\": \"nl\", \"t\": { \"Undo changes\": { \"v\": [\"Wijzigingen ongedaan maken\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"Undo changes\": { \"v\": [\"Cofnij zmiany\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"Undo changes\": { \"v\": [\"Desfazer modificações\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"Undo changes\": { \"v\": [\"Anular alterações\"] } } }, { \"l\": \"ro\", \"t\": { \"Undo changes\": { \"v\": [\"Anularea modificărilor\"] } } }, { \"l\": \"ru\", \"t\": { \"Undo changes\": { \"v\": [\"Отменить изменения\"] } } }, { \"l\": \"sk\", \"t\": { \"Undo changes\": { \"v\": [\"Vrátiť zmeny\"] } } }, { \"l\": \"sl\", \"t\": { \"Undo changes\": { \"v\": [\"Razveljavi spremembe\"] } } }, { \"l\": \"sr\", \"t\": { \"Undo changes\": { \"v\": [\"Поништи измене\"] } } }, { \"l\": \"sv\", \"t\": { \"Undo changes\": { \"v\": [\"Ångra ändringar\"] } } }, { \"l\": \"tr\", \"t\": { \"Undo changes\": { \"v\": [\"Değişiklikleri geri al\"] } } }, { \"l\": \"uk\", \"t\": { \"Undo changes\": { \"v\": [\"Скасувати зміни\"] } } }, { \"l\": \"uz\", \"t\": { \"Undo changes\": { \"v\": [\"O'zgarishlarni bekor qilish\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"Undo changes\": { \"v\": [\"撤销更改\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"Undo changes\": { \"v\": [\"取消更改\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"Undo changes\": { \"v\": [\"還原變更\"] } } }];\nconst t52 = [{ \"l\": \"ar\", \"t\": { \"User status: {status}\": { \"v\": [\"حالة المستخدِم: {status}\"] } } }, { \"l\": \"ast\", \"t\": { \"User status: {status}\": { \"v\": [\"Estáu del usuariu: {status}\"] } } }, { \"l\": \"br\", \"t\": {} }, { \"l\": \"ca\", \"t\": {} }, { \"l\": \"cs\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"cs-CZ\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav uživatele: {status}\"] } } }, { \"l\": \"da\", \"t\": { \"User status: {status}\": { \"v\": [\"Brugerstatus: {status}\"] } } }, { \"l\": \"de\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"de-DE\", \"t\": { \"User status: {status}\": { \"v\": [\"Benutzerstatus: {status}\"] } } }, { \"l\": \"el\", \"t\": { \"User status: {status}\": { \"v\": [\"Κατάσταση χρήστη: {status}\"] } } }, { \"l\": \"en-GB\", \"t\": { \"User status: {status}\": { \"v\": [\"User status: {status}\"] } } }, { \"l\": \"eo\", \"t\": {} }, { \"l\": \"es\", \"t\": { \"User status: {status}\": { \"v\": [\"Estatus del usuario: {status}\"] } } }, { \"l\": \"es-AR\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"es-EC\", \"t\": {} }, { \"l\": \"es-MX\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado del usuario: {status}\"] } } }, { \"l\": \"et-EE\", \"t\": { \"User status: {status}\": { \"v\": [\"Kasutaja olek: {status}\"] } } }, { \"l\": \"eu\", \"t\": {} }, { \"l\": \"fa\", \"t\": { \"User status: {status}\": { \"v\": [\"وضعیت کاربر: {status}\"] } } }, { \"l\": \"fi\", \"t\": { \"User status: {status}\": { \"v\": [\"Käyttäjän tila: {status}\"] } } }, { \"l\": \"fr\", \"t\": { \"User status: {status}\": { \"v\": [\"Statut de l'utilisateur : {status}\"] } } }, { \"l\": \"ga\", \"t\": { \"User status: {status}\": { \"v\": [\"Stádas úsáideora: {status}\"] } } }, { \"l\": \"gl\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do usuario: {status}\"] } } }, { \"l\": \"he\", \"t\": {} }, { \"l\": \"hr\", \"t\": { \"User status: {status}\": { \"v\": [\"Status korisnika: {status}\"] } } }, { \"l\": \"hu\", \"t\": { \"User status: {status}\": { \"v\": [\"Felhasználó állapota: {status}\"] } } }, { \"l\": \"id\", \"t\": { \"User status: {status}\": { \"v\": [\"Status pengguna: {status}\"] } } }, { \"l\": \"is\", \"t\": { \"User status: {status}\": { \"v\": [\"Staða notanda: {status}\"] } } }, { \"l\": \"it\", \"t\": { \"User status: {status}\": { \"v\": [\"Stato dell'utente: {status}\"] } } }, { \"l\": \"ja\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ja-JP\", \"t\": { \"User status: {status}\": { \"v\": [\"ユーザのステータス: {status}\"] } } }, { \"l\": \"ko\", \"t\": { \"User status: {status}\": { \"v\": [\"사용자 상태: {status}\"] } } }, { \"l\": \"lo\", \"t\": { \"User status: {status}\": { \"v\": [\"ສະຖານະຜູ້ໃຊ້: {status}\"] } } }, { \"l\": \"lt-LT\", \"t\": { \"User status: {status}\": { \"v\": [\"Naudotojo būsena: {status}\"] } } }, { \"l\": \"lv\", \"t\": {} }, { \"l\": \"mk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус: {status}\"] } } }, { \"l\": \"mn\", \"t\": { \"User status: {status}\": { \"v\": [\"Хэрэглэгчийн төлөв: {status}\"] } } }, { \"l\": \"my\", \"t\": {} }, { \"l\": \"nb\", \"t\": { \"User status: {status}\": { \"v\": [\"Brukerstatus: {status}\"] } } }, { \"l\": \"nl\", \"t\": { \"User status: {status}\": { \"v\": [\"Gebruikersstatus: {status}\"] } } }, { \"l\": \"oc\", \"t\": {} }, { \"l\": \"pl\", \"t\": { \"User status: {status}\": { \"v\": [\"Status użytkownika: {status}\"] } } }, { \"l\": \"pt-BR\", \"t\": { \"User status: {status}\": { \"v\": [\"Status do usuário: {status}\"] } } }, { \"l\": \"pt-PT\", \"t\": { \"User status: {status}\": { \"v\": [\"Estado do utilizador: {status}\"] } } }, { \"l\": \"ro\", \"t\": { \"User status: {status}\": { \"v\": [\"Status utilizator: {status}\"] } } }, { \"l\": \"ru\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус пользователя: {status}\"] } } }, { \"l\": \"sk\", \"t\": { \"User status: {status}\": { \"v\": [\"Stav užívateľa: {status}\"] } } }, { \"l\": \"sl\", \"t\": {} }, { \"l\": \"sr\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус корисника: {status}\"] } } }, { \"l\": \"sv\", \"t\": { \"User status: {status}\": { \"v\": [\"Användarstatus: {status}\"] } } }, { \"l\": \"tr\", \"t\": { \"User status: {status}\": { \"v\": [\"Kullanıcı durumu: {status}\"] } } }, { \"l\": \"uk\", \"t\": { \"User status: {status}\": { \"v\": [\"Статус користувача: {status}\"] } } }, { \"l\": \"uz\", \"t\": { \"User status: {status}\": { \"v\": [\"Foydalanuvchi holati: {status}\"] } } }, { \"l\": \"zh-CN\", \"t\": { \"User status: {status}\": { \"v\": [\"用户状态:{status}\"] } } }, { \"l\": \"zh-HK\", \"t\": { \"User status: {status}\": { \"v\": [\"用戶狀態:{status}\"] } } }, { \"l\": \"zh-TW\", \"t\": { \"User status: {status}\": { \"v\": [\"使用者狀態:{status}\"] } } }];\nexport {\n t32 as $,\n t19 as A,\n t47 as B,\n t44 as C,\n t36 as D,\n t26 as E,\n t4 as F,\n t27 as G,\n t30 as H,\n t48 as I,\n t34 as J,\n n as K,\n t28 as L,\n t6 as M,\n t21 as N,\n t23 as O,\n t20 as P,\n t52 as Q,\n t11 as R,\n t38 as S,\n t42 as T,\n t9 as U,\n t15 as V,\n t8 as W,\n t46 as X,\n t41 as Y,\n t24 as Z,\n t25 as _,\n t as a,\n t12 as a0,\n t51 as b,\n t18 as c,\n t2 as d,\n t22 as e,\n t33 as f,\n t17 as g,\n t45 as h,\n t50 as i,\n t0 as j,\n t14 as k,\n t49 as l,\n t10 as m,\n t29 as n,\n t7 as o,\n t31 as p,\n t43 as q,\n register as r,\n t37 as s,\n t3 as t,\n t16 as u,\n t5 as v,\n t1 as w,\n t40 as x,\n t13 as y,\n t35 as z\n};\n//# sourceMappingURL=_l10n-wdIzZwir.mjs.map\n","import { formatRelativeTime, getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { computed, toValue, ref, watchEffect, onUnmounted, readonly } from \"vue\";\nimport { r as register, d as t2, a as t } from \"../../chunks/_l10n-wdIzZwir.mjs\";\nregister(t2);\nconst FEW_SECONDS_AGO = {\n long: t(\"a few seconds ago\"),\n short: t(\"seconds ago\"),\n // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n narrow: t(\"sec. ago\")\n // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n};\nfunction useFormatRelativeTime(timestamp = Date.now(), opts = {}) {\n let timeoutId;\n const date = computed(() => new Date(toValue(timestamp)));\n const options = computed(() => {\n const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);\n return {\n ...language && { language },\n ...relativeTime2 && { relativeTime: relativeTime2 },\n ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || \"long\"] : false\n };\n });\n const relativeTime = ref(\"\");\n watchEffect(() => updateRelativeTime());\n function updateRelativeTime() {\n relativeTime.value = formatRelativeTime(date.value, options.value);\n if (toValue(opts).update !== false) {\n const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());\n const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;\n timeoutId = window.setTimeout(updateRelativeTime, interval);\n }\n }\n onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));\n return readonly(relativeTime);\n}\nfunction useFormatTime(timestamp, opts) {\n const options = computed(() => ({\n locale: getCanonicalLocale(),\n format: { dateStyle: \"short\", timeStyle: \"medium\" },\n ...toValue(opts)\n }));\n const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));\n return computed(() => formatter.value.format(toValue(timestamp)));\n}\nexport {\n useFormatRelativeTime,\n useFormatTime\n};\n//# sourceMappingURL=index.mjs.map\n","import { defineComponent, computed, toRef, openBlock, createElementBlock, toDisplayString, unref } from \"vue\";\nimport { useFormatTime, useFormatRelativeTime } from \"../composables/useFormatDateTime/index.mjs\";\nconst _hoisted_1 = [\"data-timestamp\", \"title\", \"textContent\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcDateTime\",\n props: {\n timestamp: {},\n format: { default: () => ({ timeStyle: \"medium\", dateStyle: \"short\" }) },\n relativeTime: { type: [Boolean, String], default: \"long\" },\n ignoreSeconds: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const timeOptions = computed(() => ({ format: props.format }));\n const relativeTimeOptions = computed(() => ({\n ignoreSeconds: props.ignoreSeconds,\n relativeTime: props.relativeTime || \"long\",\n update: props.relativeTime !== false\n }));\n const title = useFormatTime(toRef(() => props.timestamp), timeOptions);\n const relativeTime = useFormatRelativeTime(toRef(() => props.timestamp), relativeTimeOptions);\n const formattedTime = computed(() => props.relativeTime ? relativeTime.value : title.value);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n class: \"nc-datetime\",\n dir: \"auto\",\n \"data-timestamp\": __props.timestamp,\n title: unref(title),\n textContent: toDisplayString(formattedTime.value)\n }, null, 8, _hoisted_1);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7.mjs.map\n","var mdiAlert = \"M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z\";\nvar mdiAlertCircleOutline = \"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\";\nvar mdiAlertDecagram = \"M23,12L20.56,9.22L20.9,5.54L17.29,4.72L15.4,1.54L12,3L8.6,1.54L6.71,4.72L3.1,5.53L3.44,9.21L1,12L3.44,14.78L3.1,18.47L6.71,19.29L8.6,22.47L12,21L15.4,22.46L17.29,19.28L20.9,18.46L20.56,14.78L23,12M13,17H11V15H13V17M13,13H11V7H13V13Z\";\nvar mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCalendarBlank = \"M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiCheckboxMarkedCircle = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiChevronDown = \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiChevronUp = \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\";\nvar mdiClock = \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z\";\nvar mdiClose = \"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\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"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\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"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\";\nvar mdiEye = \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\";\nvar mdiEyeOff = \"M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z\";\nvar mdiInformation = \"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiMenu = \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\";\nvar mdiMenuOpen = \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiPause = \"M14,19H18V5H14M6,19H10V5H6V19Z\";\nvar mdiPlay = \"M8,5.14V19.14L19,12.14L8,5.14Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiClock as A,\n mdiCalendarBlank as B,\n mdiCog as C,\n mdiCogOutline as D,\n mdiPause as E,\n mdiPlay as F,\n mdiMenuOpen as G,\n mdiMenu as H,\n mdiUndo as a,\n mdiClose as b,\n mdiChevronRight as c,\n mdiCheck as d,\n mdiContentCopy as e,\n mdiRadioboxMarked as f,\n mdiRadioboxBlank as g,\n mdiCheckboxMarked as h,\n mdiCheckboxBlankOutline as i,\n mdiAlertCircleOutline as j,\n mdiAlert as k,\n mdiInformation as l,\n mdiArrowRight as m,\n mdiCheckboxMarkedCircle as n,\n mdiAlertDecagram as o,\n mdiCreation as p,\n mdiEyeOff as q,\n mdiEye as r,\n mdiOpenInNew as s,\n mdiArrowTopRight as t,\n mdiCloseCircleOutline as u,\n mdiArrowLeft as v,\n mdiDotsHorizontal as w,\n mdiChevronUp as x,\n mdiChevronDown as y,\n mdiChevronLeft as z\n};\n//# sourceMappingURL=mdi-CpchYUUV.mjs.map\n","const [majorVersion] = window.OC?.config?.version?.split(\".\") ?? [];\nconst major = Number.parseInt(majorVersion ?? \"34\");\nconst isLegacy = major < 32;\nconst isLegacy34 = major < 34;\nexport {\n isLegacy as a,\n isLegacy34 as i\n};\n//# sourceMappingURL=legacy-BoqDmOCa.mjs.map\n","const _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nexport {\n _export_sfc as _\n};\n//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map\n","import '../assets/NcIconSvgWrapper-N3OwSN9O.css';\nimport { defineComponent, useCssVars, computed, warn, openBlock, createElementBlock, normalizeClass, createElementVNode } from \"vue\";\nimport DOMPurify from \"dompurify\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = {\n key: 0,\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_3 = [\"d\"];\nconst _hoisted_4 = [\"innerHTML\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconSvgWrapper\",\n props: {\n directional: { type: Boolean },\n inline: { type: Boolean },\n svg: { default: \"\" },\n name: { default: void 0 },\n path: { default: \"\" },\n size: { default: 20 }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"fb515064\": iconSize.value\n }));\n const props = __props;\n const iconSize = computed(() => typeof props.size === \"number\" ? `${props.size}px` : props.size);\n const cleanSvg = computed(() => {\n if (!props.svg || props.path) {\n return;\n }\n const svg = DOMPurify.sanitize(props.svg);\n const svgDocument = new DOMParser().parseFromString(svg, \"image/svg+xml\");\n if (svgDocument.querySelector(\"parsererror\")) {\n warn(\"SVG is not valid\");\n return \"\";\n }\n if (svgDocument.documentElement.id) {\n svgDocument.documentElement.removeAttribute(\"id\");\n }\n return svgDocument.documentElement.outerHTML;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"span\", {\n \"aria-hidden\": __props.name ? void 0 : \"true\",\n \"aria-label\": __props.name || void 0,\n class: normalizeClass([\"icon-vue\", {\n \"icon-vue--directional\": __props.directional,\n \"icon-vue--inline\": __props.inline\n }]),\n role: \"img\"\n }, [\n !cleanSvg.value ? (openBlock(), createElementBlock(\"svg\", _hoisted_2, [\n createElementVNode(\"path\", { d: __props.path }, null, 8, _hoisted_3)\n ])) : (openBlock(), createElementBlock(\"span\", {\n key: 1,\n innerHTML: cleanSvg.value\n }, null, 8, _hoisted_4))\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-aaedb1c3\"]]);\nexport {\n NcIconSvgWrapper as N\n};\n//# sourceMappingURL=NcIconSvgWrapper-g8ubWhoz.mjs.map\n","import '../assets/NcNoteCard-DfescGKl.css';\nimport { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { k as mdiAlert, l as mdiInformation, n as mdiCheckboxMarkedCircle, o as mdiAlertDecagram } from \"./mdi-CpchYUUV.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"notecard__heading\"\n};\nconst _hoisted_3 = { class: \"notecard__text\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcNoteCard\",\n props: {\n heading: { default: void 0 },\n showAlert: { type: Boolean },\n text: { default: void 0 },\n type: { default: \"warning\" }\n },\n setup(__props) {\n const props = __props;\n const shouldShowAlert = computed(() => props.showAlert || props.type === \"error\");\n const iconPath = computed(() => {\n switch (props.type) {\n case \"error\":\n return mdiAlertDecagram;\n case \"success\":\n return mdiCheckboxMarkedCircle;\n case \"info\":\n return mdiInformation;\n case \"warning\":\n default:\n return mdiAlert;\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"notecard\", {\n [`notecard--${__props.type}`]: __props.type,\n \"notecard--legacy\": unref(isLegacy)\n }]),\n role: shouldShowAlert.value ? \"alert\" : \"note\"\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n createVNode(unref(NcIconSvgWrapper), {\n path: iconPath.value,\n class: normalizeClass([\"notecard__icon\", { \"notecard__icon--heading\": __props.heading }]),\n inline: \"\"\n }, null, 8, [\"path\", \"class\"])\n ], true),\n createElementVNode(\"div\", null, [\n __props.heading ? (openBlock(), createElementBlock(\"p\", _hoisted_2, toDisplayString(__props.heading), 1)) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createElementVNode(\"p\", _hoisted_3, toDisplayString(__props.text), 1)\n ], true)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcNoteCard = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-6be9fa31\"]]);\nexport {\n NcNoteCard as N\n};\n//# sourceMappingURL=NcNoteCard-mI7qVZ9j.mjs.map\n","\n\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get = typeof fn === \"function\" ? fn : fn.get;\n\tconst set = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset === null || set === void 0 || set(v);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n//#endregion\n//#region createDisposableDirective/index.ts\n/**\n* Utility for authoring disposable directives. Reactive effects created within `mounted` directive hook will be tracked and automatically disposed when directive is unmounted.\n*\n* @see https://vueuse.org/createDisposableDirective\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createDisposableDirective(origin = {}) {\n\tfunction isFunc(fn) {\n\t\treturn typeof fn === \"function\";\n\t}\n\tconst normalisedOrigin = isFunc(origin) ? {\n\t\tmounted: origin,\n\t\tupdated: origin\n\t} : origin;\n\tconst { mounted, unmounted } = normalisedOrigin;\n\tif (!isFunc(mounted)) return origin;\n\tconst scopeWeakMap = /* @__PURE__ */ new WeakMap();\n\treturn {\n\t\t...normalisedOrigin,\n\t\tmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get;\n\t\t\tconst scope = (_scopeWeakMap$get = scopeWeakMap.get(el)) !== null && _scopeWeakMap$get !== void 0 ? _scopeWeakMap$get : effectScope();\n\t\t\tscopeWeakMap.set(el, scope);\n\t\t\tscope.run(() => {\n\t\t\t\tmounted === null || mounted === void 0 || mounted(el, binding, vNode, prevNode);\n\t\t\t});\n\t\t},\n\t\tunmounted(el, binding, vNode, prevNode) {\n\t\t\tvar _scopeWeakMap$get2;\n\t\t\t(_scopeWeakMap$get2 = scopeWeakMap.get(el)) === null || _scopeWeakMap$get2 === void 0 || _scopeWeakMap$get2.stop();\n\t\t\tscopeWeakMap.delete(el);\n\t\t\tif (isFunc(unmounted)) unmounted(el, binding, vNode, prevNode);\n\t\t}\n\t};\n}\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n//#endregion\n//#region createInjectionState/index.ts\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef\n* @example createRef(1, false) // ShallowRef\n* @example createRef(1, true) // Ref\n* @example createRef(\"string\") // ShallowRef\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.hasOwn(val, key);\nconst isIOS = /* #__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && !!((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n//#endregion\n//#region utils/filters.ts\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\tif (\"cancel\" in filter) Object.assign(wrapper, {\n\t\tcancel: filter.cancel,\n\t\tflush: filter.flush,\n\t\tisPending: filter.isPending\n\t});\n\treturn wrapper;\n}\nconst bypassFilter = (invoke) => {\n\treturn invoke();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tlet lastResolve = noop;\n\tconst _pending = shallowRef(false);\n\tconst _clearTimeout = (timer) => {\n\t\tclearTimeout(timer);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst handler = (invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\treturn Promise.resolve(invoke());\n\t\t}\n\t\t_pending.value = true;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastResolve = resolve;\n\t\t\tlastInvoker = invoke;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\t_pending.value = false;\n\t\t\t\tresolve(invoke());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn Object.assign(handler, {\n\t\tcancel: () => {\n\t\t\tif (timer) {\n\t\t\t\t_clearTimeout(timer);\n\t\t\t\ttimer = void 0;\n\t\t\t}\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\t_pending.value = false;\n\t\t\tlastResolve = noop;\n\t\t},\n\t\tflush: () => {\n\t\t\tif (_pending.value) {\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t\ttimer = void 0;\n\t\t\t\t}\n\t\t\t\tif (maxTimer) {\n\t\t\t\t\tclearTimeout(maxTimer);\n\t\t\t\t\tmaxTimer = void 0;\n\t\t\t\t}\n\t\t\t\t_pending.value = false;\n\t\t\t\tconst resolve = lastResolve;\n\t\t\t\tlastRejector = noop;\n\t\t\t\tlastResolve = noop;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}\n\t\t},\n\t\tisPending: shallowReadonly(_pending)\n\t});\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(reject, ms, reason);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref;\n}\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounced, function with isPending, cancel, and flush properties.\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set(v, false);\n\treturn extendRef(ref, {\n\t\tget,\n\t\tset,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref, value] = args;\n\t\tref.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n//#endregion\n//#region watchPausable/index.ts\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\", ...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */\nconst pausableWatch = watchPausable;\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(watchPausable(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(watchPausable(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value) => element[key] === toValue(value);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value) => element === toValue(value));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get = () => count.value;\n\tconst set = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget,\n\t\tset,\n\t\treset\n\t};\n}\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count, ...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter, ...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true, ...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res;\n\t\tignoreUpdates(() => {\n\t\t\tres = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n//#endregion\n//#region whenever/index.ts\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createDisposableDirective, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\nexport * from \"@vueuse/shared\";\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true, name = \"ReusableTemplate\" } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({\n\t\tname: `${name}.define`,\n\t\tsetup(_, { slots }) {\n\t\t\treturn () => {\n\t\t\t\trender.value = slots.default;\n\t\t\t};\n\t\t}\n\t});\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tname: `${name}.reuse`,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index = instances.value.indexOf(props);\n\t\t\tif (index !== -1) instances.value.splice(index, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\treturn watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tconst cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));\n\t\tonCleanup(() => {\n\t\t\tcleanups.forEach((fn) => fn());\n\t\t});\n\t}, { flush: \"post\" });\n}\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target) => {\n\t\t\tif (typeof target === \"string\") return Array.from(window.document.querySelectorAll(target)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target) {\n\t\tconst vm = toValue(target);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target, event) {\n\t\tconst vm = toValue(target);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tlet activeEl = window.document.activeElement;\n\t\t\t\twhile (activeEl === null || activeEl === void 0 ? void 0 : activeEl.shadowRoot) activeEl = activeEl.shadowRoot.activeElement;\n\t\t\t\tif ((activeEl === null || activeEl === void 0 ? void 0 : activeEl.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window = defaultWindow, document = window === null || window === void 0 ? void 0 : window.document, flush = \"sync\" } = options;\n\tif (!window || !document) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed, ev);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document = defaultDocument, isTypedCharValid: isTypedCharValidFn = isTypedCharValid, isFocusedElementEditable: isFocusedElementEditableFn = isFocusedElementEditable } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditableFn() && isTypedCharValidFn(event)) callback(event);\n\t};\n\tif (document) useEventListener(document, \"keydown\", keydown, { passive: true });\n}\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window === null || window === void 0 ? void 0 : window.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document === null || document === void 0 ? void 0 : document.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document });\n\ttrigger();\n\treturn activeElement;\n}\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = null, window = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\tconst limit = toValue(fpsLimit);\n\t\treturn limit ? 1e3 / limit : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp) {\n\t\tif (!isActive.value || !window) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp;\n\t\tconst delta = timestamp - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window) {\n\t\t\twindow.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window) window.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay > 0) await promiseTimeout(delay);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst events = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"bluetooth\" in navigator);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator === null || navigator === void 0 ? void 0 : navigator.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: shallowReadonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tconst queryStrings = toValue(query).split(\",\");\n\t\t\tmatches.value = queryStrings.some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window) return false;\n\t\treturn window.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue(a)) && match(\"max\", getValue(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"BroadcastChannel\" in window);\n\tconst isClosed = shallowRef(false);\n\tconst channel = shallowRef();\n\tconst data = shallowRef();\n\tconst error = shallowRef(null);\n\tconst post = (data) => {\n\t\tif (channel.value) channel.value.postMessage(data);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state, length } = (window === null || window === void 0 ? void 0 : window.history) || {};\n\t\tconst { origin } = (window === null || window === void 0 ? void 0 : window.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window === null || window === void 0 || (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tfor (const [key, ref] of objectEntries(refs)) watch(ref, (value) => {\n\t\tif (!(window === null || window === void 0 ? void 0 : window.location) || window.location[key] === value) return;\n\t\twindow.location[key] = value;\n\t});\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (newSourceValue, cachedValue) => newSourceValue === cachedValue, options) {\n\tconst { deepRefs = true, ...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"permissions\" in navigator);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst copyPending = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tlet lastLegacyId = 0;\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value) {\n\t\tconst resolvedValue = value !== null && value !== void 0 ? value : toValue(source);\n\t\tif (isSupported.value && resolvedValue != null) {\n\t\t\tcopyPending.value = true;\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tconst clipboardItem = createClipboardItem(resolvedValue);\n\t\t\t\tawait navigator.clipboard.write([clipboardItem]);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) if (typeof resolvedValue === \"string\") {\n\t\t\t\ttext.value = resolvedValue;\n\t\t\t\tlegacyCopy(resolvedValue);\n\t\t\t} else {\n\t\t\t\tconst currentId = ++lastLegacyId;\n\t\t\t\tconst resolvedText = await resolvedValue();\n\t\t\t\tif (resolvedText != null && currentId === lastLegacyId) {\n\t\t\t\t\ttext.value = resolvedText;\n\t\t\t\t\tlegacyCopy(resolvedText);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t\tcopyPending.value = false;\n\t\t}\n\t}\n\tfunction createClipboardItem(value) {\n\t\tif (typeof value === \"string\") {\n\t\t\ttext.value = value;\n\t\t\treturn new ClipboardItem({ \"text/plain\": value });\n\t\t} else return new ClipboardItem({ \"text/plain\": value().then((resolvedText = \"\") => {\n\t\t\ttext.value = resolvedText;\n\t\t\treturn new Blob([resolvedText], { type: \"text/plain\" });\n\t\t}) });\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tta.setAttribute(\"readonly\", \"\");\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tcopyPending: shallowReadonly(copyPending),\n\t\tisSupported,\n\t\ttext: shallowReadonly(text),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy\n\t};\n}\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"clipboard\" in navigator);\n\tconst content = shallowRef([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: shallowReadonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* #__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = watchPausable(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector, attribute, value) => {\n\t\tconst el = typeof selector === \"string\" ? window === null || window === void 0 ? void 0 : window.document.querySelector(selector) : unrefElement(selector);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n//#endregion\n//#region useCountdown/index.ts\nfunction getDefaultScheduler$8(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = 1e3, immediate = false } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn (cb) => useIntervalFn(cb, 1e3, { immediate: false });\n}\n/**\n* Reactive countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options = {}) {\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst { scheduler = getDefaultScheduler$8(options), onTick, onComplete } = options;\n\tconst controls = scheduler(() => {\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\tonTick === null || onTick === void 0 || onTick();\n\t\tif (remaining.value <= 0) {\n\t\t\tcontrols.pause();\n\t\t\tonComplete === null || onComplete === void 0 || onComplete();\n\t\t}\n\t});\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tcontrols.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!controls.isActive.value) {\n\t\t\tif (remaining.value > 0) controls.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tcontrols.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: controls.pause,\n\t\tresume,\n\t\tisActive: controls.isActive\n\t};\n}\n//#endregion\n//#region useCssSupports/index.ts\nfunction useCssSupports(...args) {\n\tlet options = {};\n\tif (typeof toValue(args.at(-1)) === \"object\") options = args.pop();\n\tconst [prop, value] = args;\n\tconst { window = defaultWindow, ssrValue = false } = options;\n\tconst isMounted = useMounted();\n\treturn { isSupported: computed(() => {\n\t\tif (!isClient || !isMounted.value) return ssrValue;\n\t\treturn args.length === 2 ? window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop), toValue(value)) : window === null || window === void 0 ? void 0 : window.CSS.supports(toValue(prop));\n\t}) };\n}\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tconst value = (_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();\n\t\t\tvariable.value = value || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index < 0) index = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode === \"dark\", defaultHandler, mode);\n\t\t\telse defaultHandler(mode);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window) {\n\t\t\tconst onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n\t\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\t\tacceleration.value = {\n\t\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t\t};\n\t\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t\t};\n\t\t\t\trotationRate.value = {\n\t\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t\t};\n\t\t\t\tinterval.value = event.interval;\n\t\t\t});\n\t\t\tuseEventListener(window, \"devicemotion\", onDeviceMotion, { passive: true });\n\t\t}\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"DeviceOrientationEvent\" in window);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window && isSupported.value) useEventListener(window, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window) stop = watchImmediate(query, () => pixelRatio.value = window.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: shallowReadonly(pixelRatio),\n\t\tstop\n\t};\n}\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated } = options;\n\tconst devices = shallowRef([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator.mediaDevices.enumerateDevices();\n\t\tonUpdated === null || onUpdated === void 0 || onUpdated(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator === null || navigator === void 0 || (_navigator$mediaDevic = navigator.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tif (!document) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document.visibilityState);\n\tuseEventListener(document, \"visibilitychange\", () => {\n\t\tvisibility.value = document.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n//#endregion\n//#region useDraggable/index.ts\nconst defaultScrollConfig = {\n\tspeed: 2,\n\tmargin: 30,\n\tdirection: \"both\"\n};\nfunction clampContainerScroll(container) {\n\tif (container.scrollLeft > container.scrollWidth - container.clientWidth) container.scrollLeft = Math.max(0, container.scrollWidth - container.clientWidth);\n\tif (container.scrollTop > container.scrollHeight - container.clientHeight) container.scrollTop = Math.max(0, container.scrollHeight - container.clientHeight);\n}\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue, _toValue2, _toValue3, _scrollConfig$directi;\n\tconst { pointerTypes, preventDefault, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0], restrictInView, autoScroll = false } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst scrollConfig = toValue(autoScroll);\n\tconst scrollSettings = typeof scrollConfig === \"object\" ? {\n\t\tspeed: (_toValue2 = toValue(scrollConfig.speed)) !== null && _toValue2 !== void 0 ? _toValue2 : defaultScrollConfig.speed,\n\t\tmargin: (_toValue3 = toValue(scrollConfig.margin)) !== null && _toValue3 !== void 0 ? _toValue3 : defaultScrollConfig.margin,\n\t\tdirection: (_scrollConfig$directi = scrollConfig.direction) !== null && _scrollConfig$directi !== void 0 ? _scrollConfig$directi : defaultScrollConfig.direction\n\t} : defaultScrollConfig;\n\tconst getScrollAxisValues = (value) => typeof value === \"number\" ? [value, value] : [value.x, value.y];\n\tconst handleAutoScroll = (container, targetRect, position) => {\n\t\tconst { clientWidth, clientHeight, scrollLeft, scrollTop, scrollWidth, scrollHeight } = container;\n\t\tconst [marginX, marginY] = getScrollAxisValues(scrollSettings.margin);\n\t\tconst [speedX, speedY] = getScrollAxisValues(scrollSettings.speed);\n\t\tlet deltaX = 0;\n\t\tlet deltaY = 0;\n\t\tif (scrollSettings.direction === \"x\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.x < marginX && scrollLeft > 0) deltaX = -speedX;\n\t\t\telse if (position.x + targetRect.width > clientWidth - marginX && scrollLeft < scrollWidth - clientWidth) deltaX = speedX;\n\t\t}\n\t\tif (scrollSettings.direction === \"y\" || scrollSettings.direction === \"both\") {\n\t\t\tif (position.y < marginY && scrollTop > 0) deltaY = -speedY;\n\t\t\telse if (position.y + targetRect.height > clientHeight - marginY && scrollTop < scrollHeight - clientHeight) deltaY = speedY;\n\t\t}\n\t\tif (deltaX || deltaY) container.scrollBy({\n\t\t\tleft: deltaX,\n\t\t\ttop: deltaY,\n\t\t\tbehavior: \"auto\"\n\t\t});\n\t};\n\tlet autoScrollInterval = null;\n\tconst startAutoScroll = () => {\n\t\tconst container = toValue(containerElement);\n\t\tif (container && !autoScrollInterval) autoScrollInterval = setInterval(() => {\n\t\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\t\tconst { x, y } = position.value;\n\t\t\tconst relativePosition = {\n\t\t\t\tx: x - container.scrollLeft,\n\t\t\t\ty: y - container.scrollTop\n\t\t\t};\n\t\t\tif (relativePosition.x >= 0 && relativePosition.y >= 0) {\n\t\t\t\thandleAutoScroll(container, targetRect, relativePosition);\n\t\t\t\trelativePosition.x += container.scrollLeft;\n\t\t\t\trelativePosition.y += container.scrollTop;\n\t\t\t\tposition.value = relativePosition;\n\t\t\t}\n\t\t}, 1e3 / 60);\n\t};\n\tconst stopAutoScroll = () => {\n\t\tif (autoScrollInterval) {\n\t\t\tclearInterval(autoScrollInterval);\n\t\t\tautoScrollInterval = null;\n\t\t}\n\t};\n\tconst isPointerNearEdge = (pointer, container, margin, targetRect) => {\n\t\tconst [marginX, marginY] = typeof margin === \"number\" ? [margin, margin] : [margin.x, margin.y];\n\t\tconst { clientWidth, clientHeight } = container;\n\t\treturn pointer.x < marginX || pointer.x + targetRect.width > clientWidth - marginX || pointer.y < marginY || pointer.y + targetRect.height > clientHeight - marginY;\n\t};\n\tconst checkAutoScroll = () => {\n\t\tif (toValue(options.disabled) || !pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (!container) return;\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst { x, y } = position.value;\n\t\tconst relativePosition = {\n\t\t\tx: x - container.scrollLeft,\n\t\t\ty: y - container.scrollTop\n\t\t};\n\t\tif (isPointerNearEdge(relativePosition, container, scrollSettings.margin, targetRect)) startAutoScroll();\n\t\telse stopAutoScroll();\n\t};\n\tif (toValue(autoScroll)) watch(position, checkAutoScroll);\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + (autoScroll ? 0 : container.scrollLeft) : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + (autoScroll ? 0 : container.scrollTop) : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tif (container instanceof HTMLElement) clampContainerScroll(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tif (toValue(autoScroll) && container) {\n\t\t\tif (autoScrollInterval === null) handleAutoScroll(container, targetRect, {\n\t\t\t\tx,\n\t\t\t\ty\n\t\t\t});\n\t\t\tx += container.scrollLeft;\n\t\t\ty += container.scrollTop;\n\t\t}\n\t\tif (container && (restrictInView || autoScroll)) {\n\t\t\tif (axis !== \"y\") {\n\t\t\t\tconst relativeX = x - container.scrollLeft;\n\t\t\t\tif (relativeX < 0) x = container.scrollLeft;\n\t\t\t\telse if (relativeX > container.clientWidth - targetRect.width) x = container.clientWidth - targetRect.width + container.scrollLeft;\n\t\t\t}\n\t\t\tif (axis !== \"x\") {\n\t\t\t\tconst relativeY = y - container.scrollTop;\n\t\t\t\tif (relativeY < 0) y = container.scrollTop;\n\t\t\t\telse if (relativeY > container.clientHeight - targetRect.height) y = container.clientHeight - targetRect.height + container.scrollTop;\n\t\t\t}\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tif (autoScroll) stopAutoScroll();\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, [\"pointerup\", \"pointercancel\"], end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `\n left: ${position.value.x}px;\n top: ${position.value.y}px;\n ${autoScroll ? \"text-wrap: nowrap;\" : \"\"}\n `)\n\t};\n}\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tif (_options.checkValidity) return _options.checkValidity(items);\n\t\t\tconst types = Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type);\n\t\t\tconst dataTypesValid = checkDataTypes(types);\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n//#endregion\n//#region useElementByPoint/index.ts\nfunction getDefaultScheduler$7(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (cb) => useRafFn(cb, { immediate }) : (cb) => useIntervalFn(cb, interval, { immediate });\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document = defaultDocument, multiple, scheduler = getDefaultScheduler$7(options) } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document && \"elementsFromPoint\" in document;\n\t\treturn document && \"elementFromPoint\" in document;\n\t});\n\tconst element = shallowRef(null);\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...scheduler(() => {\n\t\t\tvar _document$elementsFro, _document$elementFrom;\n\t\t\telement.value = toValue(multiple) ? (_document$elementsFro = document === null || document === void 0 ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document === null || document === void 0 ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t\t})\n\t};\n}\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n//#endregion\n//#region useElementOverflow/index.ts\n/**\n* react a dom's overflow state\n* @see https://vueuse.org/useElementOverflow\n* @param target\n* @param option\n*/\nfunction useElementOverflow(target, option = {}) {\n\tconst { observeMutation = false, onUpdated, window = defaultWindow } = option;\n\tconst isXOverflowed = shallowRef(false);\n\tconst isYOverflowed = shallowRef(false);\n\tfunction update(htmlEl) {\n\t\tisXOverflowed.value = htmlEl.scrollWidth > htmlEl.offsetWidth;\n\t\tisYOverflowed.value = htmlEl.scrollHeight > htmlEl.offsetHeight;\n\t}\n\tconst onResizeUpdated = onUpdated;\n\tconst targetEl = computed(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (!el || el instanceof SVGElement) return void 0;\n\t\treturn el;\n\t});\n\tconst targets = () => {\n\t\tconst el = targetEl.value;\n\t\tif (!el || el instanceof SVGElement) return [];\n\t\treturn [el, ...Array.from(el.children).filter((i) => i instanceof HTMLElement)];\n\t};\n\tuseResizeObserver(targets, (entries, observer) => {\n\t\tconst el = targetEl.value;\n\t\tif (el) update(el);\n\t\tonResizeUpdated === null || onResizeUpdated === void 0 || onResizeUpdated(entries, observer);\n\t}, { window });\n\tif (observeMutation) {\n\t\tconst onMutationUpdated = onUpdated;\n\t\tuseMutationObserver(targets, (entries, observer) => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el) update(el);\n\t\t\tonMutationUpdated === null || onMutationUpdated === void 0 || onMutationUpdated(entries, observer);\n\t\t}, {\n\t\t\twindow,\n\t\t\t...typeof observeMutation === \"object\" ? observeMutation : {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true\n\t\t\t}\n\t\t});\n\t}\n\treturn {\n\t\tisXOverflowed: shallowReadonly(isXOverflowed),\n\t\tisYOverflowed: shallowReadonly(isYOverflowed),\n\t\tstop,\n\t\tupdate: () => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el && window) update(el);\n\t\t}\n\t};\n}\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele && \"offsetWidth\" in ele) if (box === \"content-box\" && window) {\n\t\t\tconst cs = window.getComputedStyle(ele);\n\t\t\tconst padX = Number.parseFloat(cs.paddingLeft) + Number.parseFloat(cs.paddingRight);\n\t\t\tconst padY = Number.parseFloat(cs.paddingTop) + Number.parseFloat(cs.paddingBottom);\n\t\t\tconst bdX = Number.parseFloat(cs.borderLeftWidth) + Number.parseFloat(cs.borderRightWidth);\n\t\t\tconst bdY = Number.parseFloat(cs.borderTopWidth) + Number.parseFloat(cs.borderBottomWidth);\n\t\t\twidth.value = ele.offsetWidth - padX - bdX;\n\t\t\theight.value = ele.offsetHeight - padY - bdY;\n\t\t} else {\n\t\t\twidth.value = ele.offsetWidth;\n\t\t\theight.value = ele.offsetHeight;\n\t\t}\n\t\telse if (ele) {\n\t\t\twidth.value = initialSize.width;\n\t\t\theight.value = initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects changes to a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin, threshold = 0, window = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"IntersectionObserver\" in window);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\ttoValue(rootMargin),\n\t\tisActive.value\n\t], ([targets, root, rootMargin]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n//#endregion\n//#region useElementVisibility/index.ts\nfunction useElementVisibility(element, options = {}) {\n\tconst { window = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false, initialValue = false } = options;\n\tconst isVisible = shallowRef(initialValue);\n\tconst observerController = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = isVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\tisVisible.value = isIntersecting;\n\t\tif (once) watchOnce(isVisible, () => {\n\t\t\tobserverController.stop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow,\n\t\tthreshold,\n\t\trootMargin\n\t});\n\treturn options.controls ? {\n\t\t...observerController,\n\t\tisVisible\n\t} : isVisible;\n}\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tfunction on(listener) {\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\ttryOnScopeDispose(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document === null || document === void 0 ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document === null || document === void 0 ? void 0 : document.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument === null || document === void 0 || document.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tif (currentExecuteCounter === executeCounter) {\n\t\t\t\terror.value = errorData;\n\t\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\t}\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch]) => refetch && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: shallowReadonly(isFinished),\n\t\tisFetching: shallowReadonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch]) => refetch && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document ? document.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tconst result = event.target;\n\t\t\t\tfiles.value = result.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options.multiple);\n\t\tel.accept = toValue(options.accept);\n\t\tel.webkitdirectory = toValue(options.directory);\n\t\tif (hasOwn(options, \"capture\")) el.capture = toValue(options.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document === null || document === void 0 ? void 0 : document.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document && m in document);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document === null || document === void 0 ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document && document[fullscreenEnabled.value] != null) return document[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[fullscreenEnabled.value]) != null) return Boolean(target[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document === null || document === void 0 ? void 0 : document[exitMethod.value]) != null) await document[exitMethod.value]();\n\t\telse {\n\t\t\tconst target = targetRef.value;\n\t\t\tif ((target === null || target === void 0 ? void 0 : target[exitMethod.value]) != null) await target[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target = targetRef.value;\n\t\tif (requestMethod.value && (target === null || target === void 0 ? void 0 : target[requestMethod.value]) != null) {\n\t\t\tawait target[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"getGamepads\" in navigator);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) {\n\t\t\tif (!gamepad) continue;\n\t\t\tconst index = gamepads.value.findIndex((x) => x.index === gamepad.index);\n\t\t\tif (index > -1) gamepads.value[index] = stateFromGamepad(gamepad);\n\t\t}\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator === null || navigator === void 0 ? void 0 : navigator.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"geolocation\" in navigator);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = shallowRef({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator) navigator.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events = defaultEvents$1, window = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window) {\n\t\tconst document = window.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events) useEventListener(window, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document, \"visibilitychange\", () => {\n\t\t\tif (document.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x) {\n\t\t\tscrollTo(x, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y) {\n\t\t\tscrollTo(void 0, y);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = window.getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window.document && !scrollTop) scrollTop = window.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window) return;\n\t\tconst eventTarget = (_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target;\n\t\tsetArrivedState(eventTarget);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = shallowRef();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tconst canLoad = computed(() => {\n\t\tif (!observedElement.value) return false;\n\t\treturn canLoadMore(observedElement.value);\n\t});\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoad.value || promise.value) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\tpromise.value = null;\n\t\t\tnextTick(() => checkAndLoad());\n\t\t});\n\t}\n\ttryOnUnmounted(watch(() => [\n\t\tstate.arrivedState[direction],\n\t\tisElementVisible.value,\n\t\tcanLoad.value\n\t], checkAndLoad, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t}));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events = defaultEvents, document = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document) events.forEach((listenerEvent) => {\n\t\tuseEventListener(document, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window === null || window === void 0 ? void 0 : window.localStorage, options);\n}\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n//#endregion\n//#region useMagicKeys/index.ts\n/**\n* Reactive keys pressed state, with magical keys combination support.\n*\n* @see https://vueuse.org/useMagicKeys\n*/\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = /* @__PURE__ */ new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (!key) return;\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key of values) {\n\t\t\tusedKeys.add(key);\n\t\t\tsetRefs(key, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key) => {\n\t\t\t\tcurrent.delete(key);\n\t\t\t\tsetRefs(key, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = shallowRef([]);\n\tconst tracks = shallowRef([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = Boolean(document && \"pictureInPictureEnabled\" in document);\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src, type, media }) => {\n\t\t\tconst source = document.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n//#endregion\n//#region useMemory/index.ts\nfunction getDefaultScheduler$6(options) {\n\tif (\"interval\" in options || \"immediate\" in options || \"immediateCallback\" in options) {\n\t\tconst { interval = 1e3, immediate, immediateCallback } = options;\n\t\treturn (cb) => useIntervalFn(cb, interval, {\n\t\t\timmediate,\n\t\t\timmediateCallback\n\t\t});\n\t}\n\treturn useIntervalFn;\n}\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = shallowRef();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { scheduler = getDefaultScheduler$6 } = options;\n\t\tscheduler(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window = defaultWindow, target = window, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window) {\n\t\t\t_prevScrollX = window.scrollX;\n\t\t\t_prevScrollY = window.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window === null || window === void 0 ? void 0 : window.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tfor (const rect of el.getClientRects()) {\n\t\t\tconst { left, top, width, height } = rect;\n\t\t\telementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n\t\t\telementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n\t\t\telementHeight.value = height;\n\t\t\telementWidth.value = width;\n\t\t\tconst elX = x.value - elementPositionX.value;\n\t\t\tconst elY = y.value - elementPositionY.value;\n\t\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\t\tif (handleOutside || !isOutside.value) {\n\t\t\t\telementX.value = elX;\n\t\t\t\telementY.value = elY;\n\t\t\t}\n\t\t\tif (!isOutside.value) break;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"language\" in navigator);\n\tconst language = shallowRef(navigator === null || navigator === void 0 ? void 0 : navigator.language);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tif (navigator) language.value = navigator.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst navigator = window === null || window === void 0 ? void 0 : window.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator && \"connection\" in navigator);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator) return;\n\t\tisOnline.value = navigator.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window) {\n\t\tuseEventListener(window, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: shallowReadonly(isOnline),\n\t\tsaveData: shallowReadonly(saveData),\n\t\tofflineAt: shallowReadonly(offlineAt),\n\t\tonlineAt: shallowReadonly(onlineAt),\n\t\tdownlink: shallowReadonly(downlink),\n\t\tdownlinkMax: shallowReadonly(downlinkMax),\n\t\teffectiveType: shallowReadonly(effectiveType),\n\t\trtt: shallowReadonly(rtt),\n\t\ttype: shallowReadonly(type)\n\t};\n}\n//#endregion\n//#region useNow/index.ts\nfunction getDefaultScheduler$5(options) {\n\tif (\"interval\" in options || \"immediate\" in options) {\n\t\tconst { interval = \"requestAnimationFrame\", immediate = true } = options;\n\t\treturn interval === \"requestAnimationFrame\" ? (fn) => useRafFn(fn, { immediate }) : (fn) => useIntervalFn(fn, interval, options);\n\t}\n\treturn useRafFn;\n}\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, scheduler = getDefaultScheduler$5(options) } = options;\n\tconst now = shallowRef(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = scheduler(update);\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn shallowReadonly(url);\n}\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value) {\n\t\t\t_value.value = clamp(value, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window) return;\n\t\tevent = event || window.event;\n\t\tconst from = event.relatedTarget || event.toElement;\n\t\tisLeft.value = !from;\n\t};\n\tif (window) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n\tconst screenOrientation = isSupported.value ? window.screen.orientation : {};\n\tconst orientation = shallowRef(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = -(y.value - height.value / 2) / height.value;\n\t\t\t\treturn mouseRollAdjust(value);\n\t\t\t}\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else {\n\t\t\t\tconst value = (x.value - width.value / 2) / width.value;\n\t\t\t\treturn mouseTiltAdjust(value);\n\t\t\t}\n\t\t}),\n\t\tsource\n\t};\n}\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window = defaultWindow, immediate = true, ...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"PerformanceObserver\" in window);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* #__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document && \"pointerLockElement\" in document);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, [\"pointerup\", \"pointercancel\"], (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: shallowReadonly(isSwiping),\n\t\tdirection: shallowReadonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window = defaultWindow } = options;\n\tif (!window) return shallowRef([\"en\"]);\n\tconst navigator = window.navigator;\n\tconst value = shallowRef(navigator.languages);\n\tuseEventListener(window, \"languagechange\", () => {\n\t\tvalue.value = navigator.languages;\n\t}, { passive: true });\n\treturn value;\n}\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the \n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { t } from '@nextcloud/l10n'\n\n/**\n * Formats a size in megabytes to a human-readable string.\n *\n * @param mb size in megabytes\n */\nexport function formatMegabytes(mb: number): string {\n\tconst units = ['MB', 'GB', 'TB', 'PB', 'EB']\n\tlet value = mb\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(2) + ' ' + units[i]\n}\n\n/**\n * Adds alpha to a CSS color string (handles #RRGGBB and rgb()).\n *\n * @param color base colour as #RRGGBB or rgb(...)\n * @param alpha opacity between 0 and 1\n */\nexport function withAlpha(color: string, alpha: number): string {\n\tif (color.startsWith('#') && color.length === 7) {\n\t\tconst r = parseInt(color.slice(1, 3), 16)\n\t\tconst g = parseInt(color.slice(3, 5), 16)\n\t\tconst b = parseInt(color.slice(5, 7), 16)\n\t\treturn `rgba(${r}, ${g}, ${b}, ${alpha})`\n\t}\n\tif (color.startsWith('rgb(')) {\n\t\treturn color.replace('rgb(', 'rgba(').replace(')', `, ${alpha})`)\n\t}\n\treturn color\n}\n\n/**\n * Formats a size in bytes to a human-readable string.\n *\n * @param bytes size in bytes\n */\nexport function formatBytes(bytes: number): string {\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\tlet value = Math.abs(bytes)\n\tlet i = 0\n\twhile (value >= 1024 && i < units.length - 1) {\n\t\tvalue /= 1024\n\t\ti++\n\t}\n\treturn value.toFixed(1) + ' ' + units[i]\n}\n\n/**\n * Reads a themed colour from the active theme's CSS custom properties, so that\n * canvas drawing (which cannot resolve `var(...)` itself) follows light/dark\n * mode and custom themes.\n *\n * @param name custom property name, including the leading dashes\n * @param fallback colour to use when the property is not set\n */\nexport function cssColor(name: string, fallback: string): string {\n\treturn getComputedStyle(document.documentElement)\n\t\t.getPropertyValue(name)\n\t\t.trim() || fallback\n}\n\n/**\n * The themed primary accent colour.\n */\nexport function primaryColor(): string {\n\treturn cssColor('--color-primary-element', '#3681c3')\n}\n\n/**\n * Shortens a job class for a table column: for an `OCA\\` job the second segment\n * is the app id, so `OCA\\Talk\\BackgroundJob\\RemoveEmptyRooms` becomes\n * \"Talk RemoveEmptyRooms\".\n *\n * @param className fully qualified class name\n */\nexport function jobName(className: string): string {\n\tconst parts = className.split('\\\\')\n\tconst name = parts.pop() ?? className\n\treturn parts[0] === 'OCA' && parts[1] ? `${parts[1]} ${name}` : name\n}\n\n/**\n * @param duration run time in milliseconds, null when the job reported none\n */\nexport function formatDuration(duration: number | null): string {\n\tif (duration === null) {\n\t\treturn '–'\n\t}\n\tif (duration < 1000) {\n\t\t// TRANSLATORS: {duration} is a number of milliseconds, e.g. \"412 ms\"\n\t\treturn t('serverinfo', '{duration} ms', { duration })\n\t}\n\t// TRANSLATORS: {duration} is a number of seconds with one decimal, e.g. \"1.4 s\"\n\treturn t('serverinfo', '{duration} s', { duration: (duration / 1000).toFixed(1) })\n}\n\n/**\n * @param memoryPeak peak memory in kilobytes, base 10 as the job runner reports it\n */\nexport function formatKilobytes(memoryPeak: number | null): string {\n\treturn memoryPeak === null ? '–' : formatBytes(memoryPeak * 1000)\n}\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { Chart as Chart$1, BarController, DoughnutController, LineController, PieController, PolarAreaController, RadarController, BubbleController, ScatterController } from 'chart.js';\nimport { version, isProxy, toRaw, defineComponent, ref, shallowRef, onMounted, onUnmounted, watch, nextTick, h } from 'vue';\n\nconst CommonProps = {\n data: {\n type: Object,\n required: true\n },\n options: {\n type: Object,\n default: ()=>({})\n },\n plugins: {\n type: Array,\n default: ()=>[]\n },\n datasetIdKey: {\n type: String,\n default: \"label\"\n },\n updateMode: {\n type: String,\n default: undefined\n }\n};\nconst A11yProps = {\n ariaLabel: {\n type: String\n },\n ariaDescribedby: {\n type: String\n }\n};\nconst Props = {\n type: {\n type: String,\n required: true\n },\n destroyDelay: {\n type: Number,\n default: 0 // No delay by default\n },\n ...CommonProps,\n ...A11yProps\n};\n\nconst compatProps = version[0] === \"2\" ? (internals, props)=>Object.assign(internals, {\n attrs: props\n }) : (internals, props)=>Object.assign(internals, props);\nfunction toRawIfProxy(obj) {\n return isProxy(obj) ? toRaw(obj) : obj;\n}\nfunction cloneProxy(obj) {\n let src = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : obj;\n return isProxy(src) ? new Proxy(obj, {}) : obj;\n}\nfunction setOptions(chart, nextOptions) {\n const options = chart.options;\n if (options && nextOptions) {\n Object.assign(options, nextOptions);\n }\n}\nfunction setLabels(currentData, nextLabels) {\n currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets, datasetIdKey) {\n const addedDatasets = [];\n currentData.datasets = nextDatasets.map((nextDataset)=>{\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find((dataset)=>dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n // There is no original to update, so simply add new one\n if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n return {\n ...nextDataset\n };\n }\n addedDatasets.push(currentDataset);\n Object.assign(currentDataset, nextDataset);\n return currentDataset;\n });\n}\nfunction cloneData(data, datasetIdKey) {\n const nextData = {\n labels: [],\n datasets: []\n };\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getDatasetAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"dataset\", {\n intersect: true\n }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"nearest\", {\n intersect: true\n }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */ function getElementsAtEvent(chart, event) {\n return chart.getElementsAtEventForMode(event, \"index\", {\n intersect: true\n }, false);\n}\n\nconst Chart = defineComponent({\n props: Props,\n setup (props, param) {\n let { expose , slots } = param;\n const canvasRef = ref(null);\n const chartRef = shallowRef(null);\n expose({\n chart: chartRef\n });\n const renderChart = ()=>{\n if (!canvasRef.value) return;\n const { type , data , options , plugins , datasetIdKey } = props;\n const clonedData = cloneData(data, datasetIdKey);\n const proxiedData = cloneProxy(clonedData, data);\n chartRef.value = new Chart$1(canvasRef.value, {\n type,\n data: proxiedData,\n options: {\n ...options\n },\n plugins\n });\n };\n const destroyChart = ()=>{\n const chart = toRaw(chartRef.value);\n if (chart) {\n if (props.destroyDelay > 0) {\n setTimeout(()=>{\n chart.destroy();\n chartRef.value = null;\n }, props.destroyDelay);\n } else {\n chart.destroy();\n chartRef.value = null;\n }\n }\n };\n const update = (chart)=>{\n chart.update(props.updateMode);\n };\n onMounted(renderChart);\n onUnmounted(destroyChart);\n watch([\n ()=>props.options,\n ()=>props.data\n ], (param, param1)=>{\n let [nextOptionsProxy, nextDataProxy] = param, [prevOptionsProxy, prevDataProxy] = param1;\n const chart = toRaw(chartRef.value);\n if (!chart) {\n return;\n }\n let shouldUpdate = false;\n if (nextOptionsProxy) {\n const nextOptions = toRawIfProxy(nextOptionsProxy);\n const prevOptions = toRawIfProxy(prevOptionsProxy);\n if (nextOptions && nextOptions !== prevOptions) {\n setOptions(chart, nextOptions);\n shouldUpdate = true;\n }\n }\n if (nextDataProxy) {\n const nextLabels = toRawIfProxy(nextDataProxy.labels);\n const prevLabels = toRawIfProxy(prevDataProxy.labels);\n const nextDatasets = toRawIfProxy(nextDataProxy.datasets);\n const prevDatasets = toRawIfProxy(prevDataProxy.datasets);\n if (nextLabels !== prevLabels) {\n setLabels(chart.config.data, nextLabels);\n shouldUpdate = true;\n }\n if (nextDatasets && nextDatasets !== prevDatasets) {\n setDatasets(chart.config.data, nextDatasets, props.datasetIdKey);\n shouldUpdate = true;\n }\n }\n if (shouldUpdate) {\n nextTick(()=>{\n update(chart);\n });\n }\n }, {\n deep: true\n });\n return ()=>{\n return h(\"canvas\", {\n role: \"img\",\n \"aria-label\": props.ariaLabel,\n \"aria-describedby\": props.ariaDescribedby,\n ref: canvasRef\n }, [\n h(\"p\", {}, [\n slots.default ? slots.default() : \"\"\n ])\n ]);\n };\n }\n});\n\nfunction createTypedChart(type, registerables) {\n Chart$1.register(registerables);\n return defineComponent({\n props: CommonProps,\n setup (props, param) {\n let { expose } = param;\n const ref = shallowRef(null);\n const reforwardRef = (chartRef)=>{\n ref.value = chartRef?.chart;\n };\n expose({\n chart: ref\n });\n return ()=>{\n return h(Chart, compatProps({\n ref: reforwardRef\n }, {\n type,\n ...props\n }));\n };\n }\n });\n}\nconst Bar = /* #__PURE__ */ createTypedChart(\"bar\", BarController);\nconst Doughnut = /* #__PURE__ */ createTypedChart(\"doughnut\", DoughnutController);\nconst Line = /* #__PURE__ */ createTypedChart(\"line\", LineController);\nconst Pie = /* #__PURE__ */ createTypedChart(\"pie\", PieController);\nconst PolarArea = /* #__PURE__ */ createTypedChart(\"polarArea\", PolarAreaController);\nconst Radar = /* #__PURE__ */ createTypedChart(\"radar\", RadarController);\nconst Bubble = /* #__PURE__ */ createTypedChart(\"bubble\", BubbleController);\nconst Scatter = /* #__PURE__ */ createTypedChart(\"scatter\", ScatterController);\n\nexport { Bar, Bubble, Chart, Doughnut, Line, Pie, PolarArea, Radar, Scatter, createTypedChart, getDatasetAtEvent, getElementAtEvent, getElementsAtEvent };\n//# sourceMappingURL=index.js.map\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","import '../assets/NcFormBox-TRgICDO3.css';\nimport { defineComponent, useCssModule, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from \"vue\";\nimport { N as NC_FORM_BOX_CONTEXT_KEY } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBox\",\n props: {\n row: { type: Boolean }\n },\n setup(__props) {\n const style = useCssModule();\n provide(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: true,\n formBoxItemClass: style.ncFormBox__item\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.ncFormBox, __props.row ? _ctx.$style.ncFormBox_row : _ctx.$style.ncFormBox_col])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n itemClass: _ctx.$style.ncFormBox__item\n })\n ], 2);\n };\n }\n});\nconst ncFormBox = \"_ncFormBox_s7kf-\";\nconst ncFormBox_row = \"_ncFormBox_row_GzYuE\";\nconst ncFormBox__item = \"_ncFormBox__item_691pI\";\nconst ncFormBox_col = \"_ncFormBox_col_Lt4lg\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_JPsV1\",\n ncFormBox,\n ncFormBox_row,\n ncFormBox__item,\n ncFormBox_col\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBox as N\n};\n//# sourceMappingURL=NcFormBox-Bmqar8nn.mjs.map\n","import '../assets/NcFormBoxItem-CABDVZLe.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createBlock, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { u as useNcFormBox } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { a as isLegacy } from \"./legacy-BoqDmOCa.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcFormBoxItem\",\n props: {\n tag: {},\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n class: { default: () => void 0 },\n itemClasses: { default: () => void 0 }\n },\n emits: [\"click\"],\n setup(__props) {\n const slots = useSlots();\n const { formBoxItemClass } = useNcFormBox();\n const descriptionId = createElementId();\n const hasDescription = () => !!__props.description || !!slots.description;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n __props.class,\n _ctx.$style.formBoxItem,\n unref(formBoxItemClass),\n {\n [_ctx.$style.formBoxItem_inverted]: __props.invertedAccent && hasDescription(),\n [_ctx.$style.formBoxItem_legacy]: unref(isLegacy)\n }\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__content)\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(__props.tag), mergeProps({\n class: [_ctx.$style.formBoxItem__element, __props.itemClasses]\n }, _ctx.$attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", { descriptionId: unref(descriptionId) }, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Label is missing\"), 1)\n ])\n ]),\n _: 3\n }, 16, [\"class\"])),\n hasDescription() ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: normalizeClass(_ctx.$style.formBoxItem__description)\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 10, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\", { descriptionId: unref(descriptionId) }, () => [\n _cache[1] || (_cache[1] = createTextVNode(\" ⚠️ Icon is missing \", -1))\n ])\n ], 2)\n ], 2);\n };\n }\n});\nconst formBoxItem = \"_formBoxItem_Gp-TA\";\nconst formBoxItem__description = \"_formBoxItem__description_UqZJ1\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_dP9aJ\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_BU-i-\";\nconst formBoxItem__element = \"_formBoxItem__element_jHCux\";\nconst formBoxItem__content = \"_formBoxItem__content_UKovC\";\nconst formBoxItem__icon = \"_formBoxItem__icon_AvkP3\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_8BFGk\",\n formBoxItem,\n formBoxItem__description,\n formBoxItem_legacy,\n formBoxItem_inverted,\n formBoxItem__element,\n formBoxItem__content,\n formBoxItem__icon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxItem as N\n};\n//# sourceMappingURL=NcFormBoxItem-Cm8aZaVJ.mjs.map\n","import '../assets/NcFormBoxButton-ClkxmO-H.css';\nimport { reactive, inject, computed, defineComponent, toRef, openBlock, createBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { s as mdiOpenInNew, t as mdiArrowTopRight } from \"./mdi-CpchYUUV.mjs\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { routerKey } from \"vue-router\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useButtonLink(options) {\n const props = reactive(options);\n const hasVueRouterContext = inject(routerKey, null) !== null;\n const tag = computed(() => {\n if (hasVueRouterContext && props.to) {\n return \"RouterLink\";\n } else if (props.href) {\n return \"a\";\n } else {\n return \"button\";\n }\n });\n const isLink = computed(() => tag.value === \"RouterLink\" || tag.value === \"a\");\n const isHyperLink = computed(() => tag.value === \"a\");\n const isRouterLink = computed(() => tag.value === \"RouterLink\");\n const isButton = computed(() => tag.value === \"button\");\n const attrs = computed(() => {\n if (tag.value === \"RouterLink\") {\n return {\n to: props.to,\n activeClass: \"active\",\n ...props.additionalAttrs?.(\"RouterLink\") ?? {}\n };\n } else if (tag.value === \"a\") {\n return {\n href: props.href,\n target: props.target,\n download: props.download || void 0,\n rel: \"nofollow noreferrer noopener\",\n ...props.additionalAttrs?.(\"a\") ?? {}\n };\n } else if (tag.value === \"button\") {\n return {\n type: props.type || \"button\",\n disabled: props.disabled,\n ...props.additionalAttrs?.(\"button\") ?? {}\n };\n }\n });\n return {\n tag,\n isLink,\n isHyperLink,\n isRouterLink,\n isButton,\n attrs\n };\n}\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxButton\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n to: { default: () => void 0 },\n href: { default: () => void 0 },\n target: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n },\n emits: [\"click\"],\n setup(__props) {\n const { tag, attrs, isLink } = useButtonLink({\n to: toRef(() => __props.to),\n href: toRef(() => __props.href),\n target: toRef(() => __props.target),\n disabled: toRef(() => __props.disabled)\n });\n const icon = computed(() => {\n if (isLink.value) {\n return __props.target === \"_blank\" ? mdiOpenInNew : mdiArrowTopRight;\n }\n return void 0;\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, mergeProps({\n tag: unref(tag),\n itemClasses: [\n \"button-vue\",\n /* Reset server's global HTML button styles */\n _ctx.$style.formBoxButton\n ],\n invertedAccent: __props.invertedAccent\n }, unref(attrs), {\n tabindex: \"0\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), createSlots({ _: 2 }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0,\n _ctx.$slots.icon || icon.value ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n icon.value ? (openBlock(), createBlock(NcIconSvgWrapper, {\n key: 0,\n path: icon.value,\n inline: \"\"\n }, null, 8, [\"path\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n key: \"2\"\n } : void 0\n ]), 1040, [\"tag\", \"itemClasses\", \"invertedAccent\"]);\n };\n }\n});\nconst formBoxButton = \"_formBoxButton_E8Xfr\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_MaIxG\",\n formBoxButton\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxButton = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxButton as N\n};\n//# sourceMappingURL=NcFormBoxButton-G_PkUiQy.mjs.map\n","import { d as mdiCheck, e as mdiContentCopy } from \"./mdi-CpchYUUV.mjs\";\nimport { ref, computed, toValue } from \"vue\";\nimport { r as register, e as t22, a as t } from \"./_l10n-wdIzZwir.mjs\";\nregister(t22);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DELAY = 2e3;\nfunction useCopy(content) {\n const isCopied = ref(false);\n const icon = computed(() => isCopied.value ? mdiCheck : mdiContentCopy);\n const altText = computed(() => isCopied.value ? t(\"Copied\") : t(\"Copy to clipboard\"));\n async function copy() {\n if (isCopied.value) {\n return;\n }\n const value = toValue(content);\n try {\n await navigator.clipboard.writeText(value);\n } catch {\n prompt(\"\", value);\n }\n isCopied.value = true;\n setTimeout(() => {\n isCopied.value = false;\n }, DELAY);\n }\n return {\n isCopied,\n copy,\n icon,\n altText\n };\n}\nexport {\n useCopy as u\n};\n//# sourceMappingURL=useCopy-6F-qWHq0.mjs.map\n","import { defineComponent, openBlock, createBlock, unref, createSlots, withCtx, createVNode, createTextVNode, toDisplayString, createElementVNode, renderSlot } from \"vue\";\nimport { whenever } from \"@vueuse/core\";\nimport { N as NcFormBoxButton } from \"./NcFormBoxButton-G_PkUiQy.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { u as useCopy } from \"./useCopy-6F-qWHq0.mjs\";\nconst _hoisted_1 = { class: \"hidden-visually\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxCopyButton\",\n props: {\n label: { default: () => void 0 },\n value: {},\n disabled: { type: Boolean, default: false }\n },\n emits: [\"copy\"],\n setup(__props, { emit: __emit }) {\n const emit = __emit;\n const { isCopied, copy, icon, altText } = useCopy(() => __props.value);\n whenever(isCopied, () => emit(\"copy\"));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxButton, {\n disabled: __props.disabled,\n invertedAccent: \"\",\n onClick: unref(copy)\n }, createSlots({\n description: withCtx(() => [\n createTextVNode(toDisplayString(__props.value), 1)\n ]),\n icon: withCtx(() => [\n createVNode(NcIconSvgWrapper, {\n path: unref(icon),\n inline: \"\"\n }, null, 8, [\"path\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n createElementVNode(\"span\", _hoisted_1, toDisplayString(unref(altText)), 1),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"disabled\", \"onClick\"]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-BA_gWnmz.mjs.map\n","import '../assets/NcIconToggleSwitch-zUXkaJHv.css';\nimport { defineComponent, useCssVars, computed, openBlock, createBlock, normalizeClass } from \"vue\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-g8ubWhoz.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst svg = `\n\t\n\t\n`;\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcIconToggleSwitch\",\n props: {\n checked: { type: Boolean },\n size: { default: 34 },\n inline: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v6bd152af\": color.value,\n \"v16fd8ca9\": cx.value\n }));\n const color = computed(() => __props.checked ? \"var(--color-primary-element)\" : \"var(--color-text-maxcontrast)\");\n const cx = computed(() => __props.checked ? \"calc(17 / 24 * 100%)\" : \"calc(7 / 24 * 100%)\");\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcIconSvgWrapper, {\n class: normalizeClass(_ctx.$style.iconToggleSwitch),\n svg,\n size: __props.size,\n inline: __props.inline\n }, null, 8, [\"class\", \"size\", \"inline\"]);\n };\n }\n});\nconst iconToggleSwitch = \"_iconToggleSwitch_IKWaj\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_63AMQ\",\n iconToggleSwitch\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcIconToggleSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcIconToggleSwitch as N\n};\n//# sourceMappingURL=NcIconToggleSwitch-CRvGt4su.mjs.map\n","import '../assets/NcFormBoxSwitch-NCjook_Z.css';\nimport { defineComponent, useModel, watch, openBlock, createBlock, unref, createSlots, withCtx, withDirectives, createElementVNode, normalizeClass, vModelCheckbox, createVNode, renderSlot, createTextVNode, toDisplayString, mergeModels } from \"vue\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-Cm8aZaVJ.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CRvGt4su.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-describedby\", \"disabled\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxSwitch\",\n props: /* @__PURE__ */ mergeModels({\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ required: true } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"enable\", \"disable\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const inputId = createElementId();\n watch(modelValue, () => {\n if (modelValue.value) {\n emit(\"enable\");\n } else {\n emit(\"disable\");\n }\n }, {\n // defineModel emits update:modelValue synchronously\n // Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n flush: \"sync\"\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, {\n tag: \"label\",\n for: unref(inputId)\n }, createSlots({\n icon: withCtx(({ descriptionId }) => [\n withDirectives(createElementVNode(\"input\", {\n id: unref(inputId),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: normalizeClass(_ctx.$style.formBoxSwitch__input),\n type: \"checkbox\",\n role: \"switch\",\n \"aria-describedby\": descriptionId,\n disabled: __props.disabled\n }, null, 10, _hoisted_1), [\n [vModelCheckbox, modelValue.value]\n ]),\n createVNode(NcIconToggleSwitch, {\n checked: modelValue.value,\n inline: \"\"\n }, null, 8, [\"checked\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || __props.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || __props.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"for\"]);\n };\n }\n});\nconst formBoxSwitch__input = \"_formBoxSwitch__input_n8432\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v0XYD\",\n formBoxSwitch__input\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxSwitch as N\n};\n//# sourceMappingURL=NcFormBoxSwitch-DSXiQcnq.mjs.map\n","import '../assets/NcFormGroup-eh8-PBGB.css';\nimport { defineComponent, useSlots, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-describedby\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormGroup\",\n props: {\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n hideLabel: { type: Boolean, default: false },\n hideDescription: { type: Boolean, default: false },\n noGap: { type: Boolean, default: false }\n },\n setup(__props) {\n const slots = useSlots();\n const id = `nc-form-group-${createElementId()}`;\n const descriptionId = `${id}-description`;\n const hasDescription = () => !!__props.description || !!slots.description;\n const getDescriptionId = () => hasDescription() ? descriptionId : void 0;\n const hasContentOnly = () => __props.hideLabel && (!hasDescription() || __props.hideDescription);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"fieldset\", {\n class: normalizeClass([_ctx.$style.formGroup, { [_ctx.$style.formGroup_noGap]: __props.noGap }]),\n \"aria-describedby\": getDescriptionId()\n }, [\n createElementVNode(\"legend\", {\n class: normalizeClass([_ctx.$style.formGroup__label, { \"hidden-visually\": __props.hideLabel }])\n }, [\n renderSlot(_ctx.$slots, \"label\", {}, () => [\n createTextVNode(toDisplayString(__props.label || \"⚠️ Missing label\"), 1)\n ])\n ], 2),\n hasDescription() ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: descriptionId,\n class: normalizeClass([_ctx.$style.formGroup__description, { \"hidden-visually\": __props.hideDescription }])\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(__props.description), 1)\n ])\n ], 2)) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([_ctx.$style.formGroup__content, { [_ctx.$style.formGroup__content_only]: hasContentOnly() }])\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ], 10, _hoisted_1);\n };\n }\n});\nconst formGroup = \"_formGroup_P4ub1\";\nconst formGroup_noGap = \"_formGroup_noGap_I25Tm\";\nconst formGroup__label = \"_formGroup__label_dvGhm\";\nconst formGroup__description = \"_formGroup__description_rqVc0\";\nconst formGroup__content = \"_formGroup__content_fnqsg\";\nconst formGroup__content_only = \"_formGroup__content_only_G-Ivq\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_2NWOj\",\n formGroup,\n formGroup_noGap,\n formGroup__label,\n formGroup__description,\n formGroup__content,\n formGroup__content_only\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormGroup as N\n};\n//# sourceMappingURL=NcFormGroup-N7qIFAwN.mjs.map\n","\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n","\n\n","import '../assets/NcProgressBar-B6wveIA1.css';\nimport { defineComponent, useCssVars, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"aria-valuenow\"];\nconst _hoisted_2 = [\"height\", \"width\"];\nconst _hoisted_3 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_4 = [\"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-width\", \"r\", \"cx\", \"cy\"];\nconst _hoisted_5 = {\n key: 1,\n class: \"progress-bar-container\"\n};\nconst _hoisted_6 = [\"value\"];\nconst _hoisted_7 = {\n key: 0,\n class: \"progress-bar__value\"\n};\nconst gridBaseline = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\nconst clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\nconst clickableAreaSmall = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--clickable-area-small\"));\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcProgressBar\",\n props: {\n value: { default: 0 },\n size: { default: \"small\" },\n error: { type: Boolean },\n type: { default: \"linear\" },\n color: { default: \"var(--color-primary-element)\" },\n showValue: { type: Boolean, default: false }\n },\n setup(__props) {\n useCssVars((_ctx) => ({\n \"v3a86fec2\": _ctx.color,\n \"v57442460\": heightPx.value\n }));\n const props = __props;\n const normalizedProgress = computed(() => Math.max(0, Math.min(100, props.value)) / 100);\n const height = computed(() => {\n if (typeof props.size === \"number\") {\n return Math.round(props.size);\n }\n if (props.type === \"circular\") {\n if (props.size === \"medium\") {\n return clickableArea;\n } else {\n return clickableAreaSmall;\n }\n }\n if (props.size === \"medium\") {\n return 1.5 * gridBaseline;\n }\n return gridBaseline;\n });\n const heightPx = computed(() => `${height.value}px`);\n const strokeWidth = computed(() => Math.max(gridBaseline, height.value / clickableArea * gridBaseline));\n const circleCenterPosition = computed(() => height.value / 2);\n const circleRadius = computed(() => height.value / 2 - strokeWidth.value);\n const circumference = computed(() => circleRadius.value * 2 * Math.PI);\n return (_ctx, _cache) => {\n return __props.type === \"circular\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n role: \"progressbar\",\n \"aria-valuenow\": __props.value,\n class: normalizeClass([{ \"progress-bar--error\": __props.error }, \"progress-bar progress-bar--circular\"])\n }, [\n (openBlock(), createElementBlock(\"svg\", {\n height: height.value,\n width: height.value\n }, [\n createElementVNode(\"circle\", {\n stroke: \"currentColor\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${normalizedProgress.value * circumference.value} ${(1 - normalizedProgress.value) * circumference.value}`,\n \"stroke-dashoffset\": 0.25 * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_3),\n createElementVNode(\"circle\", {\n stroke: \"var(--color-background-darker)\",\n fill: \"transparent\",\n \"stroke-dasharray\": `${(1 - normalizedProgress.value) * circumference.value} ${normalizedProgress.value * circumference.value}`,\n \"stroke-dashoffset\": (0.25 - normalizedProgress.value) * circumference.value,\n \"stroke-width\": strokeWidth.value,\n r: circleRadius.value,\n cx: circleCenterPosition.value,\n cy: circleCenterPosition.value\n }, null, 8, _hoisted_4)\n ], 8, _hoisted_2))\n ], 10, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", _hoisted_5, [\n createElementVNode(\"progress\", {\n class: normalizeClass([\"progress-bar progress-bar--linear vue\", { \"progress-bar--error\": __props.error }]),\n value: __props.value,\n max: \"100\"\n }, null, 10, _hoisted_6),\n __props.showValue ? (openBlock(), createElementBlock(\"span\", _hoisted_7, toDisplayString(__props.value) + \"%\", 1)) : createCommentVNode(\"\", true)\n ]));\n };\n }\n});\nconst NcProgressBar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-353fa414\"]]);\nexport {\n NcProgressBar as N\n};\n//# sourceMappingURL=NcProgressBar-C-ane-Ni.mjs.map\n","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n","\n\n\n\n","\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\n/**\n * Walk the prototype chain (excluding the shared Object.prototype) looking for\n * an own `prop`. This distinguishes genuine own/inherited members — including\n * class accessors and template prototypes — from members injected via\n * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which\n * live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null && obj !== Object.prototype) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = getPrototypeOf(obj);\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null ||\n prototype === Object.prototype ||\n getPrototypeOf(prototype) === null) &&\n // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or\n // Symbol.iterator as evidence the value is a tagged/iterable type rather\n // than a plain object, while ignoring keys injected onto Object.prototype.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n return this.get('set-cookie') || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n const axiosError = new AxiosError(error.message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(\n options,\n {\n metaTokens: true,\n dots: false,\n indexes: false,\n },\n false,\n function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n }\n );\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(value);\n }\n throw new AxiosError('Blob is not supported. Use a Buffer instead.', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n const path = [];\n const pattern = /\\w+|\\[(\\w*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || typeof e.loaded !== 'number') {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded;\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn) =>\n (...args) =>\n utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\nconst httpProtocolControlCharacters = /[\\t\\n\\r]/g;\n\nfunction stripLeadingC0ControlOrSpace(url) {\n let i = 0;\n while (i < url.length && url.charCodeAt(i) <= 0x20) {\n i++;\n }\n return url.slice(i);\n}\n\nfunction normalizeURLForProtocolCheck(url) {\n return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) {\n throw new AxiosError(\n 'Invalid URL: missing \"//\" after protocol',\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport buildURL from './buildURL.js';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\nfunction setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true);\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true }));\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: compute the exact percent-decoded UTF-8 byte length.\n *\n * @param {string} url\n * @returns {number}\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex = isHexDigit(a) && isHexDigit(b);\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n}\n","export const VERSION = \"1.18.1\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null\n ? utils.global\n : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, fetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = (() => {\n if (!dummy.stack) {\n return '';\n }\n\n const firstNewlineIndex = dummy.stack.indexOf('\\n');\n\n return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);\n })();\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n","/*!\n * SPDX-License-Identifier: GPL-3.0-or-later\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n */\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth';\nimport Axios from 'axios';\n/**\n * Get an Axios instance with default Nextcloud headers and CSRF token handling.\n */\nexport function getCancelableClient() {\n const client = Axios.create({\n headers: {\n requesttoken: getRequestToken() ?? '',\n 'X-Requested-With': 'XMLHttpRequest',\n },\n });\n onRequestTokenUpdate((token) => {\n client.defaults.headers.requesttoken = token;\n });\n return Object.assign(client, {\n CancelToken: Axios.CancelToken,\n isCancel: Axios.isCancel,\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { fetchRequestToken } from '@nextcloud/auth';\nimport { isAxiosError } from 'axios';\nconst RETRY_KEY = '_nextcloudCsrfTokenReloaded';\n/**\n * Handle CSRF token errors in Axios requests.\n *\n * @param axios - The axios instance the interceptor is attached to\n */\nexport function onCsrfTokenError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n if (config\n && !(RETRY_KEY in config)\n && response?.status === 412\n && response?.data?.message === 'CSRF check failed') {\n console.warn(`Request to ${responseURL} failed because of a CSRF mismatch. Fetching a new token.`);\n const token = await fetchRequestToken();\n axios.defaults.headers.requesttoken = token;\n return axios({\n ...config,\n [RETRY_KEY]: true,\n headers: {\n ...config.headers,\n requesttoken: token,\n },\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\nconst RETRY_DELAY_KEY = '_nextcloudMaintenanceModeRetryDelay';\n/**\n * Handles Nextcloud maintenance mode errors in Axios requests.\n *\n * @param axios - The current Axios instance\n */\nexport function onMaintenanceModeError(axios) {\n return async (error) => {\n if (!isAxiosError(error)) {\n throw error;\n }\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n const headers = response?.headers;\n let retryDelay = config?.[RETRY_DELAY_KEY] ?? 1;\n /**\n * Retry requests if they failed due to maintenance mode\n *\n * The delay is exponential. It starts at 2s and then doubles\n * until a final retry after 32s. This results in roughly 1m of\n * retries until we give up and throw the axios error towards\n * the caller.\n */\n if (status === 503\n && headers?.['x-nextcloud-maintenance-mode'] === '1'\n && config?.retryIfMaintenanceMode) {\n retryDelay *= 2;\n if (retryDelay > 32) {\n console.error('Retry delay exceeded one minute, giving up.', { responseURL });\n throw error;\n }\n console.warn(`Request to ${responseURL} failed because of maintenance mode. Retrying in ${retryDelay}s`);\n await new Promise((resolve) => {\n setTimeout(resolve, retryDelay * 1000);\n });\n return axios({\n ...config,\n [RETRY_DELAY_KEY]: retryDelay,\n });\n }\n throw error;\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { isAxiosError } from 'axios';\n/**\n * Axios response interceptor onError callback.\n * This interceptor checks if the response failed because of a expired user session\n * and if enabled it will cause a redirect to the login.\n *\n * @param error - The response error\n */\nexport async function onNotLoggedInError(error) {\n if (isAxiosError(error)) {\n const { config, response, request } = error;\n const responseURL = request?.responseURL;\n const status = response?.status;\n if (status === 401\n && response?.data?.message === 'Current user is not logged in'\n && config?.reloadExpiredSession\n && globalThis.location?.reload) {\n console.error(`Request to ${responseURL} failed because the user session expired. Reloading the page …`);\n if (globalThis.OC?.reload) {\n globalThis.OC.reload();\n }\n else {\n globalThis.location.reload();\n }\n }\n }\n throw error;\n}\n","/**\n * SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport { getCancelableClient } from \"./client.js\";\nimport { onCsrfTokenError } from \"./interceptors/csrf-token.js\";\nimport { onMaintenanceModeError } from \"./interceptors/maintenance-mode.js\";\nimport { onNotLoggedInError } from \"./interceptors/not-logged-in.js\";\nconst cancelableClient = getCancelableClient();\ncancelableClient.interceptors.response.use((r) => r, onCsrfTokenError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onMaintenanceModeError(cancelableClient));\ncancelableClient.interceptors.response.use((r) => r, onNotLoggedInError);\nexport { isAxiosError, isCancel } from 'axios';\nexport default cancelableClient;\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Ref } from 'vue'\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { onUnmounted, ref } from 'vue'\n\n/**\n * Polls an endpoint until the component goes away. A failed request keeps the\n * previous values rather than blanking the charts.\n *\n * @param url app-relative endpoint to poll\n * @param intervalMs delay between two requests\n */\nexport function useLiveData(url: string, intervalMs = 2000) {\n\tconst data = ref(null) as Ref\n\tconst tick = ref(0)\n\n\tlet timeoutId: ReturnType | null = null\n\tlet stopped = false\n\n\tasync function poll() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl(url))\n\t\t\tdata.value = response.data as T\n\t\t\ttick.value++\n\t\t} catch {\n\t\t\t// Keep previous values on error\n\t\t} finally {\n\t\t\tif (!stopped) {\n\t\t\t\ttimeoutId = setTimeout(poll, intervalMs)\n\t\t\t}\n\t\t}\n\t}\n\n\ttimeoutId = setTimeout(poll, 0)\n\n\tonUnmounted(() => {\n\t\tstopped = true\n\t\tif (timeoutId !== null) {\n\t\t\tclearTimeout(timeoutId)\n\t\t\ttimeoutId = null\n\t\t}\n\t})\n\n\treturn { data, tick }\n}\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { OpcacheStatus } from '../types.ts'\n\nimport axios from '@nextcloud/axios'\nimport { generateUrl } from '@nextcloud/router'\nimport { ref } from 'vue'\n\nexport interface StaticData {\n\thostname: string\n\tosname: string\n\tcpu: { name: string, threads: number }\n\tdiskinfo: Array<{ device: string, fs: string, used: number, available: number, percent: string, mount: string }>\n\tnetworkinfo: { hostname: string, gateway: string, dns: string }\n\tnetworkinterfaces: Array<{\n\t\tname: string\n\t\tup: boolean\n\t\tipv4: string[]\n\t\tipv6: string[]\n\t\tmac: string\n\t\tspeed: string\n\t\tduplex: string\n\t\tloopback: boolean\n\t}>\n\tocs: string\n\tstorage: { num_files: number, num_storages: number, num_users: number }\n\tshares: {\n\t\tnum_shares: number\n\t\tnum_shares_user: number\n\t\tnum_shares_groups: number\n\t\tnum_shares_link: number\n\t\tnum_shares_mail: number\n\t\tnum_fed_shares_sent: number\n\t\tnum_fed_shares_received: number\n\t\tnum_shares_room: number\n\t}\n\tphp: {\n\t\tversion: string\n\t\tsapi: string\n\t\tmemoryLimit: number\n\t\tmaxExecutionTime: number\n\t\tuploadMaxFilesize: number\n\t\tpostMaxSize: number\n\t\textensions: string[] | null\n\t}\n\topcache: OpcacheStatus\n\tfpm: Record | false\n\tdatabase: { type: string, version: string, size: number }\n\tactiveUsers: { last1hour: number, last24hours: number, last7days: number, last1month: number }\n\tfreeSpace: number | null\n\tmemTotal: number\n\tphpinfo: boolean\n\tphpinfoUrl: string\n}\n\nexport function useStaticData() {\n\tconst data = ref(null)\n\tconst loading = ref(true)\n\tconst error = ref(false)\n\n\tasync function load() {\n\t\ttry {\n\t\t\tconst response = await axios.get(generateUrl('/apps/serverinfo/data'))\n\t\t\tdata.value = response.data\n\t\t} catch {\n\t\t\terror.value = true\n\t\t} finally {\n\t\t\tloading.value = false\n\t\t}\n\t}\n\n\tload()\n\n\treturn { data, loading, error }\n}\n","\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport SettingsAdmin from './views/SettingsAdmin.vue'\n\nimport './main.css'\n\ncreateApp(SettingsAdmin).mount('#serverinfo-settings')\n"],"names":["global","makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","normalizeCssVarValue","activeEffectScope","EffectScope","detached","l","currentEffectScope","current","fromParent","last","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","toReactive","shallowReadArray","toRaw","toWrapped","isReadonly","toReadonly","isReactive","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","isShallow","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","wrapInitialAccumulator","acc","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","proto","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","reactive","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isProxy","markRaw","r","ref","createRef","shallowRef","RefImpl","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","set","newVal","customRef","ObjectRefImpl","_object","_defaultValue","nestedRef","GetterRefImpl","_getter","toRef","defaultValue","propertyToRef","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","pushScopeId","popScopeId","withScopeId","_id","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","treatDefaultAsFactory","getCurrentInstance","currentApp","ssrContextKey","useSSRContext","watchEffect","doWatch","watchSyncEffect","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","pendingMounts","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","parentNode","disabled","dynamicChildren","mount","container2","anchor2","mountToTarget","disabled2","targetAnchor","prepareAnchor","updateCssVars","queuePendingMount","mountJob","mountContainer","placeholder","mainAnchor","pendingMount","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","shapeFlag","children","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","hydrateChildren","hydrateAnchor","target2","targetNode","hydrateDisabledTeleport","node2","vnode2","Teleport","isDisabled","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getTransitionRawChildren","findNonCommentChild","createCommentVNode","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","useTemplateRef","refs","isTemplateRefKey","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","warnMissing","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","keys","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","hasProps","openBlock","createBlock","createVNode","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","isVNode","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","useSlots","getContext","calledFunctionName","createSetupContext","normalizePropsOrEmits","mergeModels","applyOptions","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","createWatcher","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","lastApp","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","i2","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","renderComponentRoot","withProxy","propsOptions","attrs","renderCache","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","root","filterModelListeners","shouldUpdateComponent","nextVNode","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","hasPropValueChanged","emitsOptions","nextKeys","nextProp","prevProp","updateHOCHostEl","parent","suspense","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","leave","delayLeave","afterLeave","remove2","performLeave","wasLeaving","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","selector","content","before","template","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","decorate$1","t","Transition","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","shouldPreserveTextareaResizeStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","originalStop","handlers","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","useCssModule","modules","getModelAssigner","assignKey","vModelCheckbox","_","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","keyNames","withKeys","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","_generateUrlPath","url","params","allOptions","_build","generateUrl","baseOrRootURL","getRootUrl","webroot","pos","_arrayLikeToArray","_arrayWithHoles","_iterableToArrayLimit","f","o","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","construct","func","_len","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","newObject","_ref2","_ref3","property","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","fallbackValue","isRegex","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","customElementHandling","previousTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkSvgNamespace","tagName","parentTagName","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","attributes","attribute","_removeAttribute","_stripDisallowedAttributes","stack","_neutralizePatchLinkage","nodeType","lcTag","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_stripTemplateExpressions","_scrubTemplateExpressions2","_node$querySelectorAl","walker","currentNode","templates","tmpl","_isDocumentFragment","_isClobbered","realTagName","_isNode","_executeHooks","_isUnsafeNode","_sanitizeDisallowedNode","_isBasicCustomElement","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","removed","_isValidAttribute","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_sanitizeAttributes","hookEvent","attr","attrValue","initValue","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","isElement","rootName","sr","importedNode","returnNode","inPlace","nn","walkRoot","nodeIterator","entry","serializedHTML","entryPoint","hookFunction","purify","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","match","escape","lastIndex","getLocale","getCanonicalLocale","getLanguage","isRTL","language","languageCode","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","replacement","translation","translatePlural","textSingular","textPlural","identifier","bundle","plural","getPlural","formatRelativeTime","timestamp","opts","date","formatter","seconds","minutes","hours","days","weeks","months","format","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","__props","_createTextVNode","percentageOfAllUsers","count","percentage","SectionHeading","AccountGroup","_unref","_hoisted_2","_hoisted_4","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","GettextWrapper","pluralFunction","dict","msgid","msgidPlural","msgstr","original","placeholders","singular","GettextBuilder","getGettextBuilder","gettext","chunks","chunk","translations","decompressed","t2","t4","t19","t22","t33","t36","FEW_SECONDS_AGO","useFormatRelativeTime","timeoutId","relativeTime2","ignoreSeconds","relativeTime","updateRelativeTime","diff","interval","useFormatTime","timeOptions","relativeTimeOptions","title","formattedTime","mdiAlert","mdiAlertDecagram","mdiArrowTopRight","mdiCheck","mdiCheckboxMarkedCircle","mdiChevronLeft","mdiChevronRight","mdiClose","mdiContentCopy","mdiInformation","mdiOpenInNew","mdiPause","mdiPlay","majorVersion","major","isLegacy","isLegacy34","_export_sfc","sfc","iconSize","cleanSvg","svgDocument","createElementVNode","NcIconSvgWrapper","shouldShowAlert","iconPath","NcNoteCard","tryOnScopeDispose","isClient","toString","toArray","getLifeCycleTarget","tryOnMounted","sync","useIntervalFn","immediateCallback","timer","isActive","clean","pause","resume","intervalValue","watchImmediate","whenever","ov","onInvalidate","defaultWindow","unrefElement","elRef","_$el","plain","useEventListener","listener","firstParamTargets","test","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","onCleanup","optionsClone","useMounted","useSupported","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","predicate","useResizeObserver","observerOptions","observer","isSupported","stopWatch","_targets","els","_el","stop","useElementSize","initialSize","box","_unrefElement","width","height","stop1","boxSize","$elem","rect","formatBoxSize","inlineSize","blockSize","ele","cs","padX","padY","bdX","bdY","stop2","useSwipe","threshold","onSwipe","onSwipeEnd","onSwipeStart","coordsStart","coordsEnd","diffX","diffY","max","abs","isThresholdExceeded","isSwiping","direction","getTouchEventCoords","updateCoordsStart","y","updateCoordsEnd","listenerOptions","onTouchEnd","stops","createElementId","routerKey","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","num","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","createBuffer","length","buf","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","size","alloc","fill","encoding","actual","fromArrayLike","arrayView","copy","byteOffset","numberIsNaN","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","checkIEEE754","writeFloat","littleEndian","writeDouble","errors","E","sym","getMessage","Base","range","input","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","BufferBigIntNotDefined","NC_FORM_BOX_CONTEXT_KEY","useNcFormBox","__emit","formBoxItemClass","hasVueRouterContext","hasPressedState","variantWithPressed","isTertiaryVariant","flexAlignment","isReverseAligned","getNcPopoverTriggerAttrs","ncPopoverTriggerAttrs","onClick","NcButton","colors","colors2","NcLoadingIcon","isLoading","handleClick","candidateSelectors","candidateSelector","NoElement","getRootNode","_element$getRootNode","_isInert","lookUp","_node$getAttribute","inertAtt","inert","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","filter","candidates","_getCandidatesIteratively","elements","elementsToCheck","assigned","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","isInput","isHiddenInput","isDetailsWithSummary","getCheckedRadio","nodes","form","isTabbableRadio","radioScope","queryRadios","radioSet","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","isHidden","displayCheck","visible","_getComputedStyle","visibility","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isShadowRootTabbable","shadowHostNode","_sortByOrder","regularTabbables","orderedTabbables","candidateTabindex","sortable","tabbable","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayWithoutHoles","_createForOfIteratorHelper","F","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_toPrimitive","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","delay","valueOrHandler","getActualTarget","internalTrapStack","createFocusTrap","userOptions","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","_getActiveElement","activeElement","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","promise","collectAdjacentElements","containers","containerAncestors","adjacentElements","_iterator","_step","insideShadowRoot","siblings","_iterator2","_step2","removeListeners","checkDomRemoval","mutations","focusedNode","isFocusedNodeRemoved","mutation","removedNodes","initialFocusNode","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_preexistingTrap$_set","finishActivation","afterListeners","listenersPromise","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","delayReturnFocus","returnFocus","completeDeactivation","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","finishUnpause","isEnabled","_el$getAttribute","getTrapStack","createTrapStackController","pausedStack","useTrapStackControl","shouldPause","trapStackController","sides","alignments","placements","side","oppositeSideMap","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","firstChar","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","padding","_padding$top","_padding$right","_padding$bottom","_padding$left","getPaddingObject","rectToClientRect","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","_await$platform$isEle","platform","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","middlewareData","currentMiddleware","nextX","nextY","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","center","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","currentIndex","currentPlacement","overflow","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","clampCoord","coord","limitedCoords","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","shiftData","noShift","availableHeight","availableWidth","nextDimensions","w","L","R","T","C","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","ue","fe","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","V","Ee","ve","Se","Ht","kt","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","Item","noop","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","module","safeRe","safeSrc","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","other","release","identifierBase","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","ProxyBus","bus2","valid","SimpleBus","bus","getBus","subscribe","unsubscribe","ScopedStorage","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","_subscribeToTokenUpdates","getRequestToken","setRequestToken","fetchRequestToken","response","onRequestTokenUpdate","_internal","currentUser","getAttribute","getCurrentUser","LogLevel","LogLevel2","ConsoleLogger","message","level","buildConsoleLogger","LoggerBuilder","user","onLoaded","getLoggerBuilder","logger","isRtl","_sfc_main$1","ncPopover","style0","theme","Dropdown","triggerElements","options2","_sfc_render","$setup","$data","$options","_component_NcPopoverTriggerProvider","_component_Dropdown","slotProps","NcPopover","NC_ACTIONS_IS_SEMANTIC_MENU","NC_ACTIONS_CLOSE_MENU","IconDotsHorizontal","isSlotPopulated","focusableSelector","action","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","findActions","actions2","validInlineActions","inlineActions","menuActions","menuItemsActions","textInputActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","buttonText","propsToForward","renderActionsPopover","triggerIcon","triggerRandomId","NcActions","isMac","disableKeyboardShortcuts","derivedKeysRegex","nonAsciiPrintableRegex","shouldIgnoreEvent","eventHandler","useHotKey","keysOrFilter","validateKeyEvent","isKeyInLowerCase","isEventKeyInLowerCase","stopKeyDown","stopKeyUp","checkIfDarkTheme","backgroundInvertIfDark","isFullscreen","checkIfIsFullscreen","MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","isSmallMobile","getSameNodeParent","getSameNodeAncestors","ancestors","useScopeIdAttrs","scopeIds","instance2","numHeaderActions","cssSlideshowDelay","showModal","scopeIdAttrs","modalId","maskElement","focusTrap","clearFocusTrap","isPlaying","stopSlideshow","startSlideshow","nextSlide","animationKey","runSlideshow","stopSwipe","handleSwipe","close","previousSlide","restartSlideshow","handleClickModalWrapper","useFocusTrap","NcModal","open","wrapperElement","dialogWidth","isNavigationCollapsed","hasNavigation","navigationId","navigationAriaLabelAttr","navigationAriaLabelledbyAttr","dialogRootElement","dialogTagName","dialogListeners","handleButtonClose","handleClosing","handleClosed","modalProps","idx","NcDialog","label","_normalizeClass","formatMegabytes","mb","withAlpha","color","alpha","formatBytes","cssColor","primaryColor","jobName","className","formatDuration","formatKilobytes","memoryPeak","TIMESTAMP_FORMAT","$emit","JobStatusIndicator","NcDateTime","detailsLabel","_Fragment","_renderList","InformationOutline","statusLabel","_renderSlot","selectedRun","secondsSince","cronStatus","age","modeText","Update","StatTile","JobRunsTable","SlowJobsTable","JobRunDialog","round","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","eq","isShort","hexParse","hexString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","hueValue","rgb2hsl","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","names$1","unpack","unpacked","tkeys","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","interpolate","rgb1","rgb2","modHSL","ratio","functionParse","Color","weight","w2","w1","isNullOrUndef","isNumberFinite","finiteOrDefault","valueOrDefault","toPercentage","dimension","toDimension","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","_splitKey","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","setsEqual","_isClickEvent","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","niceNum","roundedRange","niceRange","fraction","_factorize","sqrt","isNonPrimitive","isNumber","almostWhole","rounded","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","cmp","mid","_lookupByKey","ti","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","unlistenArrayEvents","stub","listeners","_arrayUnique","items","requestAnimFrame","throttled","argsToUse","ticking","debounce","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","iScale","vScale","_parsed","spanGaps","minDefined","maxDefined","distanceToDefinedLo","point","distanceToDefinedHi","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","applyAnimationsDefaults","defaults","applyLayoutsDefaults","intlCache","getNumberFormat","locale","formatNumber","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","Ticks","applyScaleDefaults","overrides","descriptors","getScope$1","Defaults","_descriptors","_appliers","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","toFontString","font","_measureText","gc","longest","textWidth","_alignPixel","chart","pixel","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","xOffsetW","yOffsetW","rotation","radius","rad","_isPointInArea","area","margin","clipArea","unclipArea","_steppedLineTo","previous","midpoint","_bezierCurveTo","setRenderOpts","decorateText","line","metrics","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","lines","stroke","addRoundedRectPath","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","_readValueToProps","objProps","toTRBL","toTRBLCorners","toPadding","toFont","inputs","info","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","subProxy","descriptorDefaults","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","_stack","createSubResolver","isIndexable","resolver","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","getStyle","positions","getPositionedStyle","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","getRelativePosition","currentDevicePixelRatio","borderBox","paddings","borders","getContainerSize","maxWidth","maxHeight","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","findStartAndEnd","solidSegments","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","addStyle","styleChanged","getSizeForArea","scale","chartArea","field","getDatasetArea","getDatasetClipArea","clip","Animator","anims","callbacks","numSteps","draw","charts","animator","transparent","interpolators","factor","c0","Animation","currentValue","elapsed","remain","promises","rej","Animations","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","dsIndex","singleMode","otherValue","convertObjectDataToArray","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","shared","createStack","canStack","DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","active","drawActiveElementsOnTop","elementType","sharing","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","newCount","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","DoughnutController","pointStyle","textAlign","useBorderRadius","borderRadius","legendItem","legend","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","setLayoutDims","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","horizontal","marginForPositions","fitBoxes","refitBoxes","refit","same","setBoxDims","placeBoxes","userPadding","layoutItem","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","Element$1","final","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","reverseAlign","offsetFromEdge","edge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","gcLen","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","startPixel","endPixel","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","minSize","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","jlen","tickFont","fontString","lineHeight","nestedLabel","valueAt","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","tz","gz","bz","axisID","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","reg","itemReg","camelMethod","PluginService","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","Chart$1","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","dataIndex","_add","_remove","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","eventFilter","Chart","clipSelf","borderWidth","borderJoinStyle","outerAngleClip","innerAngleClip","clipWidth","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","inner","ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","strokePathDirect","segmentMethod","usePath2D","LineElement","_interpolate","interpolated","inRange$1","PointElement","mouseX","mouseY","_segments","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","linePoints","_createBoundaryLine","_loop","_shouldApplyFill","_resolveTarget","propagate","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","startValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_getTarget","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","above","doFill","fillColor","clipVertical","clipHorizontal","clipY","lineLoop","clipX","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","_args","getBoxSize","labelOpts","boxHeight","boxWidth","itemsEqual","Legend","legendItems","labelFont","itemHeight","hitboxes","lineWidths","totalHeight","row","_itemHeight","columnSizes","heightLimit","totalWidth","currentColWidth","currentColHeight","col","calculateItemSize","rtlHelper","hitbox","defaultColor","halfFontSize","cursor","drawLegendBox","drawOptions","yBoxTop","xBoxLeft","fillText","realX","fontLineHeight","calculateLegendItemHeight","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","isListened","hoveredItem","sameItem","calculateItemWidth","calculateItemHeight","legendItemText","plugin_legend","ci","usePointStyle","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","outerX","innerX","we","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","plugin_tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","CategoryScale","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","LinearScale","INTERVALS","UNITS","sorter","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","setMajorTicks","majorUnit","ticksFromTimestamps","TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","span","TimeSeriesScale","curr","CommonProps","A11yProps","Props","compatProps","toRawIfProxy","cloneProxy","setOptions","nextOptions","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","cloneData","nextData","canvasRef","chartRef","renderChart","clonedData","proxiedData","destroyChart","param1","nextOptionsProxy","nextDataProxy","prevOptionsProxy","prevDataProxy","shouldUpdate","prevOptions","prevLabels","prevDatasets","createTypedChart","registerables","reforwardRef","Line","MAX_POINTS","Filler","passiveColor","datasetStyle","chartData","chartOptions","stats","load","cpuload","Chip","Database","canvasRefs","diskName","device","chartLabel","disk","shortPercent","percent","centerLabel","usedColor","availableColor","Harddisk","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","hasMemory","hasSwap","ramDataset","swapDataset","maxGB","memTotalText","memUsed","swapUsed","memTotalGB","swapTotalGB","memUsageGB","ramData","swapUsageGB","swapData","Memory","ncFormBox","ncFormBox_row","ncFormBox__item","ncFormBox_col","NcFormBox","descriptionId","hasDescription","formBoxItem","formBoxItem__description","formBoxItem_legacy","formBoxItem_inverted","formBoxItem__element","formBoxItem__content","formBoxItem__icon","NcFormBoxItem","useButtonLink","isLink","isHyperLink","isRouterLink","isButton","formBoxButton","NcFormBoxButton","DELAY","useCopy","isCopied","altText","cx","iconToggleSwitch","NcIconToggleSwitch","inputId","formBoxSwitch__input","NcFormBoxSwitch","getDescriptionId","hasContentOnly","formGroup","formGroup_noGap","formGroup__label","formGroup__description","formGroup__content","formGroup__content_only","NcFormGroup","TOKEN_HEADER","suggestedToken","byte","formatJson","skipApps","skipUpdate","endpointUrl","Connection","NcFormBoxCopyButton","Lan","iface","gridBaseline","clickableArea","clickableAreaSmall","heightPx","normalizedProgress","circleCenterPosition","circleRadius","NcProgressBar","WARNING_AT","CRITICAL_AT","reasonText","meterRow","detail","numerator","denominator","forceError","meters","memory","internedStrings","cacheFull","meter","jitText","Flash","UsageMeterBar","showExtensions","extensionsCountText","LanguagePhp","Cogs","_hoisted_21","_hoisted_22","PhpExtensionsDialog","memoryRow","used","rows","memTotal","swapTotal","Gauge","ShareVariant","Monitor","Thermometer","zone","bind","toStringTag","hasOwnInPrototypeChain","thing","getSafeProp","kindOf","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","prototype","isEmptyObject","isFile","isReactNativeBlob","isReactNative","formData","isBlob","isFileList","isStream","FormDataCtor","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","objs","caseless","skipUndefined","assignValue","targetKey","symbols","symbol","propertyIsEnumerable","stripBOM","inherits","constructor","superConstructor","toFlatObject","sourceObj","destObj","propFilter","endsWith","searchString","isTypedArray","TypedArray","forEachEntry","pair","matchAll","regExp","isHTMLForm","toCamelCase","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","asap","isIterable","isSafeIterable","utils$1","ignoreDuplicateOf","utils","parseHeaders","rawHeaders","trimSPorHTAB","INVALID_UNICODE_HEADER_VALUE_CHARS","INVALID_BYTE_STRING_HEADER_VALUE_CHARS","sanitizeValue","invalidChars","sanitizeHeaderValue","sanitizeByteStringHeaderValue","toByteStringHeaderObject","headers","byteStringHeaders","header","$internals","normalizeHeader","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","matcher","deleted","deleteHeader","targets","asStrings","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","REDACTED","hasOwnOrPrototypeToJSON","redactConfig","redactKeys","lowerKeys","AxiosError","request","customProps","axiosError","serializedConfig","httpAdapter","DEFAULT_FORM_DATA_MAX_DEPTH","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","metaTokens","visitor","defaultVisitor","indexes","_Blob","maxDepth","useBlob","convertValue","throwIfMaxDepthExceeded","stringifyWithDepthLimit","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","_options","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","toURLEncodedForm","helpers","MAX_DEPTH","throwIfDepthExceeded","parsePropPath","pattern","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","own","stringifySafely","contentType","hasJSONContentType","isObjectPayload","formSerializer","env","_FormData","transitional","forcedJSONParsing","responseType","JSONRequested","strictJSONParsing","status","transformData","isCancel","settle","reject","validateStatus","parseProtocol","speedometer","samplesCount","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","lastArgs","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","rawLoaded","loaded","progressBytes","rate","progressEventDecorator","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","malformedHttpProtocol","httpProtocolControlCharacters","stripLeadingC0ControlOrSpace","normalizeURLForProtocolCheck","assertValidHttpProtocolURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","getMergedTransitionalOption","transitional2","transitional1","mergeDirectKeys","mergeMap","configValue","FORM_DATA_CONTENT_HEADERS","setFormDataHeaders","formHeaders","encodeUTF8","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","username","password","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","CanceledError","protocol","composeSignals","signals","aborted","onabort","reason","signal","streamChunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isHexDigit","charCode","isPercentEncodedByte","estimateDataURLDecodedBytes","comma","effectiveLen","pad","tailIsPct3D","VERSION","DEFAULT_CHUNK_SIZE","decodeURIComponentSafe","maybeWithAuthCredentials","protocolIndex","urlToCheck","globalObject","ReadableStream","TextEncoder","envFetch","Request","Response","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","getBodyLength","resolveBodyLength","cancelToken","withCredentials","fetchOptions","maxContentLength","maxBodyLength","hasMaxContentLength","hasMaxBodyLength","_fetch","composedSignal","requestContentLength","pendingBodyError","maxBodyLengthError","configAuth","parsedURL","urlUsername","urlPassword","outboundLength","mustEnforceStreamBody","trackRequestStream","_request","contentTypeHeader","isCredentialsSupported","resolvedOptions","declaredLength","isStreamResponse","responseContentLength","bytesRead","onChunkProgress","responseData","materializedSize","canceledError","networkError","seedCache","getFetch","fetch","seeds","seed","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","getAdapter","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","firstNewlineIndex","secondNewlineIndex","stackWithoutTwoTopLines","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","Cancel","formToJSON","getCancelableClient","client","RETRY_KEY","onCsrfTokenError","responseURL","RETRY_DELAY_KEY","onMaintenanceModeError","retryDelay","onNotLoggedInError","cancelableClient","useLiveData","intervalMs","stopped","poll","useStaticData","loading","staticData","liveData","periodicData","SystemSection","ResourceOverviewSection","SectionSkeleton","CpuChartSection","MemoryChartSection","DiskSection","NetworkSection","BackgroundJobsSection","ActiveUsersSection","SharesSection","ThermalSection","PhpSection","OpcacheSection","DatabaseSection","MonitoringSection","SettingsAdmin"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,71,76,77,78,79,80,82,84,86,88,89,90,91,92,93,94,95,96,98,100,101,104,105,108,111,113,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173]} \ No newline at end of file From 0e5df5b9b3fc279b72d1b52f32851e82ea99e037 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 23 Aug 2026 21:34:16 +0000 Subject: [PATCH 3/3] test: show details about phpunit warnings Signed-off-by: Daniel --- tests/lib/PhpStatisticsTest.php | 32 -------------------------------- tests/phpunit.xml | 1 + 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 tests/lib/PhpStatisticsTest.php diff --git a/tests/lib/PhpStatisticsTest.php b/tests/lib/PhpStatisticsTest.php deleted file mode 100644 index 8a07a77d..00000000 --- a/tests/lib/PhpStatisticsTest.php +++ /dev/null @@ -1,32 +0,0 @@ -createMock(IniGetWrapper::class); - $instance = new PhpStatistics($iniGetWrapper); - - $stats = $instance->getPhpStatistics(); - - $this->assertArrayHasKey('opcache', $stats); - $this->assertArrayHasKey('apcu', $stats); - $this->assertArrayHasKey('extensions', $stats); - $this->assertArrayHasKey('opcache_revalidate_freq', $stats); - } -} diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 811d7539..01f357e3 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -7,6 +7,7 @@ xsi:noNamespaceSchemaLocation="../vendor-bin/phpunit/vendor/phpunit/phpunit/phpunit.xsd" colors="true" bootstrap="bootstrap.php" + displayDetailsOnTestsThatTriggerWarnings="true" >