diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 56a69c048..4a9f74343 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -23,7 +23,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 ref: ${{ github.head_ref }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6845b3d56..e19762fe9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -37,7 +37,7 @@ jobs: coverage: none - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.composer/cache/files key: dependencies-composer-${{ hashFiles('composer.lock') }} @@ -51,7 +51,7 @@ jobs: - name: Run Rector run: ./vendor/bin/rector process - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "refactor: code quality assurance" commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> @@ -69,7 +69,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -82,7 +82,7 @@ jobs: coverage: none - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.composer/cache/files key: dependencies-composer-${{ hashFiles('composer.lock') }} @@ -96,7 +96,7 @@ jobs: - name: Run Laravel Pint run: ./vendor/bin/pint - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "style: resolve style guide violations" commit_author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> @@ -114,7 +114,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -124,7 +124,7 @@ jobs: coverage: none - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.composer/cache/files key: dependencies-composer-${{ hashFiles('composer.lock') }} @@ -166,7 +166,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -182,7 +182,7 @@ jobs: coverage: pcov - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.composer/cache/files key: dependencies-composer-${{ hashFiles('composer.lock') }} @@ -192,7 +192,7 @@ jobs: - name: Restore Build Output id: restore_build_output - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: public/build # Notice that the cache key include all the files that may affect the @@ -212,7 +212,7 @@ jobs: # (see `steps.restore_build_output.outputs.cache-hit != 'true'` condition) - name: Cache pnpm dependencies if: steps.restore_build_output.outputs.cache-hit != 'true' - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | node_modules @@ -235,7 +235,7 @@ jobs: run: pnpm build - name: Cache Build Output - uses: actions/cache@v3 + uses: actions/cache@v4 if: steps.restore_build_output.outputs.cache-hit != 'true' with: path: public/build diff --git a/.github/workflows/conflicts.yml b/.github/workflows/conflicts.yml index 27713c955..6c995c356 100644 --- a/.github/workflows/conflicts.yml +++ b/.github/workflows/conflicts.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/deps.yml b/.github/workflows/deps.yml index 40622db1c..a12a3635e 100644 --- a/.github/workflows/deps.yml +++ b/.github/workflows/deps.yml @@ -14,7 +14,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -66,7 +66,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index 0d87597db..5663d63ab 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -10,7 +10,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 34e0a4b64..b04aedadb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,7 +30,7 @@ jobs: with: node-version: 20 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -64,7 +64,7 @@ jobs: with: node-version: 20 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -98,7 +98,7 @@ jobs: with: node-version: 20 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/ui.yml b/.github/workflows/ui.yml index adddd2372..966ab8452 100644 --- a/.github/workflows/ui.yml +++ b/.github/workflows/ui.yml @@ -23,7 +23,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -43,7 +43,7 @@ jobs: - name: Run eslint run: pnpm run lint - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "style: resolve linting violations" branch: ${{ github.head_ref }} @@ -56,7 +56,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -84,7 +84,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -104,7 +104,7 @@ jobs: - name: Run prettier run: pnpm run prettier --write 'resources/**/*.{css,js,vue}' - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "style: resolve style guide violations" branch: ${{ github.head_ref }} @@ -117,7 +117,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -135,7 +135,7 @@ jobs: run: | pnpm add -g rustywind rustywind --write resources/views - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "style: resolve style guide violations" branch: ${{ github.head_ref }} @@ -149,7 +149,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -163,7 +163,7 @@ jobs: svgo-config: .svgo.js - name: Commit optimizations - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 if: ${{steps.svgo.outputs.DID_OPTIMIZE}} with: commit_message: Optimize ${{steps.svgo.outputs.OPTIMIZED_COUNT}} SVG(s) @@ -178,7 +178,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.GH_TOKEN }} @@ -200,7 +200,7 @@ jobs: coverage: none - name: Cache dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.composer/cache/files key: dependencies-composer-${{ hashFiles('composer.lock') }} @@ -210,7 +210,7 @@ jobs: - name: Restore Build Output id: restore_build_output - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: public/build # @see same step `ci.yml` for details @@ -220,7 +220,7 @@ jobs: - name: Cache pnpm dependencies if: steps.restore_build_output.outputs.cache-hit != 'true' - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | node_modules @@ -243,13 +243,13 @@ jobs: run: pnpm build - name: Cache Build Output - uses: actions/cache@v3 + uses: actions/cache@v4 if: steps.restore_build_output.outputs.cache-hit != 'true' with: path: public/build key: ${{ runner.os }}-build-output-${{ hashFiles('**/pnpm-lock.yml', 'resources/**', 'lang/**') }} - - uses: stefanzweifel/git-auto-commit-action@v4 + - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "chore: rebuild assets" branch: ${{ github.head_ref }} diff --git a/app/Console/Commands/AggregateWinners.php b/app/Console/Commands/AggregateWinners.php new file mode 100644 index 000000000..b06a633bb --- /dev/null +++ b/app/Console/Commands/AggregateWinners.php @@ -0,0 +1,85 @@ +isLocal()) { + $this->error('This command can only run in local environment.'); + + return Command::FAILURE; + } + + $date = $this->option('current-month') ? now() : now()->subMonth(); + + $winners = $this->winners(); + + if ($winners->isEmpty()) { + AggregateCollectionWinners::dispatchSync($this->option('current-month')); + } + + $winners = $this->winners(); + + if ($winners->isEmpty()) { + $this->warn(sprintf('There have been no winners for %s.', $date->format('F Y'))); + + return Command::SUCCESS; + } + + $this->info(sprintf('Done! Here are the winners for %s.', $date->format('F Y'))); + + $this->table(['#', 'Collection', 'Votes'], $winners->map(fn ($winner) => [ + $winner->rank, + $winner->collection->name, + $winner->votes, + ])); + + return Command::SUCCESS; + } + + /** + * @return Collection + */ + private function winners(): Collection + { + $date = $this->option('current-month') ? now() : now()->subMonth(); + + return CollectionWinner::query() + ->where('month', $date->month) + ->where('year', $date->year) + ->with('collection') + ->orderBy('rank', 'asc') + ->get(); + } +} + +// @codeCoverageIgnoreEnd diff --git a/app/Console/Commands/DependsOnCoingeckoRateLimit.php b/app/Console/Commands/DependsOnCoingeckoRateLimit.php index 25f8fd7d8..c6983c87d 100644 --- a/app/Console/Commands/DependsOnCoingeckoRateLimit.php +++ b/app/Console/Commands/DependsOnCoingeckoRateLimit.php @@ -109,7 +109,7 @@ private function runsFetchPriceHistory(): bool return $isAfter1245; } - private function dispatchDelayed(Closure $callback, int $index, string $job, int $delayThreshold = null): void + private function dispatchDelayed(Closure $callback, int $index, string $job, ?int $delayThreshold = null): void { // Note: I cant use delay directly on the job because it throws // the "too many attempts" error after some time so im delaying diff --git a/app/Console/Commands/FetchBurnActivity.php b/app/Console/Commands/FetchBurnActivity.php new file mode 100644 index 000000000..93dbd8d92 --- /dev/null +++ b/app/Console/Commands/FetchBurnActivity.php @@ -0,0 +1,53 @@ + */ + return $query->whereNotNull('activity_updated_at') + ->whereNotNull('supply') + ->where('supply', '<=', config('dashbrd.collections_max_cap')); + }; + + $this->forEachCollection(function ($collection) { + Job::dispatch($collection, isFirstRun: true); + }, $queryCallback); + + return Command::SUCCESS; + } +} diff --git a/app/Console/Commands/FetchCollectionBanner.php b/app/Console/Commands/FetchCollectionBanner.php index dc5f654b9..178a54e95 100644 --- a/app/Console/Commands/FetchCollectionBanner.php +++ b/app/Console/Commands/FetchCollectionBanner.php @@ -16,7 +16,7 @@ class FetchCollectionBanner extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-banner {--collection-id=}'; + protected $signature = 'collections:fetch-banner {--collection-id=}'; /** * The console command description. @@ -31,7 +31,7 @@ class FetchCollectionBanner extends Command public function handle(): int { if (empty($this->option('collection-id'))) { - $this->error('The `collection-id` is missing. Please either set `collection-id` flag or use `nfts:fetch-collection-banner-batch` command to fetch banner of multiple collections'); + $this->error('The `collection-id` is missing. Please either set `collection-id` flag or use `collections:fetch-banner-batch` command to fetch banner of multiple collections'); return Command::INVALID; } diff --git a/app/Console/Commands/FetchCollectionBannerBatch.php b/app/Console/Commands/FetchCollectionBannerBatch.php index 2ac2990e1..7fe409114 100644 --- a/app/Console/Commands/FetchCollectionBannerBatch.php +++ b/app/Console/Commands/FetchCollectionBannerBatch.php @@ -19,7 +19,7 @@ class FetchCollectionBannerBatch extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-banner-batch {--missing-only}'; + protected $signature = 'collections:fetch-banner-batch {--missing-only}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionFloorPrice.php b/app/Console/Commands/FetchCollectionFloorPrice.php index 783a77bc9..cfcb2c093 100644 --- a/app/Console/Commands/FetchCollectionFloorPrice.php +++ b/app/Console/Commands/FetchCollectionFloorPrice.php @@ -16,7 +16,7 @@ class FetchCollectionFloorPrice extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-floor-price {--collection-id=}'; + protected $signature = 'collections:fetch-floor-price {--collection-id=}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionMetadata.php b/app/Console/Commands/FetchCollectionMetadata.php index 846f5f0b3..4eb0d9eea 100644 --- a/app/Console/Commands/FetchCollectionMetadata.php +++ b/app/Console/Commands/FetchCollectionMetadata.php @@ -25,7 +25,7 @@ class FetchCollectionMetadata extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-metadata'; + protected $signature = 'collections:fetch-metadata'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionOpenseaSlug.php b/app/Console/Commands/FetchCollectionOpenseaSlug.php index 86a3dd3eb..dfa9dc419 100644 --- a/app/Console/Commands/FetchCollectionOpenseaSlug.php +++ b/app/Console/Commands/FetchCollectionOpenseaSlug.php @@ -16,7 +16,7 @@ class FetchCollectionOpenseaSlug extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-opensea-slug {--collection-id=}'; + protected $signature = 'collections:fetch-opensea-slug {--collection-id=}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionOwners.php b/app/Console/Commands/FetchCollectionOwners.php index 038e9540b..e826a7163 100644 --- a/app/Console/Commands/FetchCollectionOwners.php +++ b/app/Console/Commands/FetchCollectionOwners.php @@ -16,7 +16,7 @@ class FetchCollectionOwners extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-owners {--collection-id=}'; + protected $signature = 'collections:fetch-owners {--collection-id=}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionTotalVolume.php b/app/Console/Commands/FetchCollectionTotalVolume.php new file mode 100644 index 000000000..6a5506ef8 --- /dev/null +++ b/app/Console/Commands/FetchCollectionTotalVolume.php @@ -0,0 +1,41 @@ + $query->whereNotNull('extra_attributes->opensea_slug'); + + $this->forEachCollection(function ($collection) { + FetchCollectionTotalVolumeJob::dispatch($collection); + }, queryCallback: $queryCallback); + + return Command::SUCCESS; + } +} diff --git a/app/Console/Commands/FetchCollectionTraits.php b/app/Console/Commands/FetchCollectionTraits.php index 9f21f242f..c6e881584 100644 --- a/app/Console/Commands/FetchCollectionTraits.php +++ b/app/Console/Commands/FetchCollectionTraits.php @@ -16,7 +16,7 @@ class FetchCollectionTraits extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-traits {--collection-id}'; + protected $signature = 'collections:fetch-traits {--collection-id}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionVolume.php b/app/Console/Commands/FetchCollectionVolume.php index 245e79d7a..8a9d91e30 100644 --- a/app/Console/Commands/FetchCollectionVolume.php +++ b/app/Console/Commands/FetchCollectionVolume.php @@ -16,7 +16,7 @@ class FetchCollectionVolume extends Command * * @var string */ - protected $signature = 'nfts:fetch-collection-volume {--collection-id=}'; + protected $signature = 'collections:fetch-volume {--collection-id=}'; /** * The console command description. diff --git a/app/Console/Commands/FetchCollectionVolumeHistory.php b/app/Console/Commands/FetchCollectionVolumeHistory.php new file mode 100644 index 000000000..c1597cb78 --- /dev/null +++ b/app/Console/Commands/FetchCollectionVolumeHistory.php @@ -0,0 +1,39 @@ +forEachCollection(function ($collection) { + FetchCollectionVolumeHistoryJob::dispatch($collection); + }); + + return Command::SUCCESS; + } +} diff --git a/app/Console/Commands/InteractsWithCollections.php b/app/Console/Commands/InteractsWithCollections.php index 4e0e60610..fbb9c2faa 100644 --- a/app/Console/Commands/InteractsWithCollections.php +++ b/app/Console/Commands/InteractsWithCollections.php @@ -14,7 +14,7 @@ trait InteractsWithCollections * @param Closure(Collection, int):void $callback * @param Closure(Builder):Builder|null $queryCallback */ - public function forEachCollection(Closure $callback, Closure $queryCallback = null, int $limit = null): void + public function forEachCollection(Closure $callback, ?Closure $queryCallback = null, ?int $limit = null): void { // Apply `$queryCallback` to modify the query before fetching collections... @@ -23,6 +23,7 @@ public function forEachCollection(Closure $callback, Closure $queryCallback = nu ->select('collections.*') ->where('collections.id', '=', $this->option('collection-id')) ->withoutSpamContracts() + ->erc721() ->first(); $collection && $callback($collection, 0); @@ -34,6 +35,7 @@ public function forEachCollection(Closure $callback, Closure $queryCallback = nu ->when($queryCallback !== null, $queryCallback) ->select('collections.*') ->withoutSpamContracts() + ->erc721() ->when($limit !== null, fn ($query) => $query ->limit($limit) ->get() diff --git a/app/Console/Commands/LiveDumpNfts.php b/app/Console/Commands/LiveDumpNfts.php index 682d81424..54884286b 100644 --- a/app/Console/Commands/LiveDumpNfts.php +++ b/app/Console/Commands/LiveDumpNfts.php @@ -5,6 +5,7 @@ namespace App\Console\Commands; use App\Enums\Chain; +use App\Enums\TokenType; use App\Models\Collection as NftCollection; use App\Models\Network; use App\Models\Token; @@ -145,6 +146,7 @@ private function prepareCollectionModel(Chain $chain, stdClass $collection): Nft 'network_id' => $network->id, 'name' => trim($collection->name), 'slug' => Str::slug($collection->name), + 'type' => $collection->erc_type === 'erc721' ? TokenType::Erc721 : TokenType::Erc1155, 'symbol' => $collection->symbol ?? $collection->name, 'floor_price' => $collection->floor_price * 1e18, 'floor_price_token_id' => $token->id, @@ -194,7 +196,7 @@ private function removeEncodedAttributes(array $nft): array foreach ($potentiallyEncodedAttributes as $attribute) { $value = Arr::get($nft, $attribute); - if ($value !== null && isBase64EncodedImage($value)) { + if ($value !== null && Str::isEncodedImage($value)) { Arr::set($nft, $attribute, null); } } @@ -202,21 +204,12 @@ private function removeEncodedAttributes(array $nft): array return $nft; } - /** - * @param array $nft - * @return array - */ - private function filterNftAttributes(array $nft): array - { - return $this->removeEncodedAttributes(filterAttributes($nft, $this->requiredAttributes)); - } - private function getCollectionNftsAndPersist( NftCollection $collection, Chain $chain, int $itemsTotal, int $chunk, - string $cursor = null, + ?string $cursor = null, ): void { $perChunkLimit = 100; @@ -232,7 +225,9 @@ private function getCollectionNftsAndPersist( $data = Alchemy::collectionNftsRaw($collection, $cursor); - $data['nfts'] = array_map(fn ($nft) => $this->filterNftAttributes($nft), $data['nfts']); + $data['nfts'] = array_map(fn ($nft) => $this->removeEncodedAttributes( + $this->filteredAttributes($nft, $this->requiredAttributes) + ), $data['nfts']); $fileName = $path.$chunk.'.json'; @@ -298,7 +293,7 @@ private function getCollectionTraitsAndPersist(Chain $chain, string $address): v $fs = Storage::disk(self::diskName); - $traits = Mnemonic::getNftCollectionTraits($chain, $address); + $traits = Mnemonic::getCollectionTraits($chain, $address); $path = $this->prepareCollectionPath($chain, $address); @@ -308,4 +303,22 @@ private function getCollectionTraitsAndPersist(Chain $chain, string $address): v $this->info('Fetched collection traits, file: '.$fileName); } + + /** + * @param array $data + * @param array $attributes + * @return array + */ + private function filteredAttributes(array $data, array $attributes): array + { + foreach ($data as $key => $value) { + if (is_array($value) && isset($attributes[$key]) && is_array($attributes[$key])) { + $data[$key] = $this->filteredAttributes($data[$key], $attributes[$key]); + } elseif (! in_array($key, $attributes)) { + unset($data[$key]); + } + } + + return $data; + } } diff --git a/app/Console/Commands/LiveDumpWallets.php b/app/Console/Commands/LiveDumpWallets.php index 072f20c0f..d5253cb45 100644 --- a/app/Console/Commands/LiveDumpWallets.php +++ b/app/Console/Commands/LiveDumpWallets.php @@ -84,7 +84,7 @@ public function handle(): int $collectionFloorPrices = $collectionAddresses ->mapWithKeys(fn (string $collectionAddress - ) => [$collectionAddress => Mnemonic::getNftCollectionFloorPrice($chain, $collectionAddress)]); + ) => [$collectionAddress => Mnemonic::getCollectionFloorPrice($chain, $collectionAddress)]); // modify `network` and `retrievedAt` to make output stable between reruns as these change independent // of the API response. @@ -114,7 +114,7 @@ public function handle(): int // Download traits for each collection $allTraits = $nftCollections->mapWithKeys(function ($collectionAddresses, $chainId) { $traits = $collectionAddresses->unique() - ->mapWithKeys(fn ($collectionAddress) => [$collectionAddress => Mnemonic::getNftCollectionTraits(Chain::from($chainId), $collectionAddress)]); + ->mapWithKeys(fn ($collectionAddress) => [$collectionAddress => Mnemonic::getCollectionTraits(Chain::from($chainId), $collectionAddress)]); return [$chainId => $traits]; }); diff --git a/app/Console/Commands/MarketData/UpdateTokenDetails.php b/app/Console/Commands/MarketData/UpdateTokenDetails.php index 7b48a6d19..1600b743c 100644 --- a/app/Console/Commands/MarketData/UpdateTokenDetails.php +++ b/app/Console/Commands/MarketData/UpdateTokenDetails.php @@ -51,7 +51,7 @@ public function handle(): void } } - private function updateAllTokenDetails(Wallet $wallet = null): void + private function updateAllTokenDetails(?Wallet $wallet = null): void { $top = $this->option('top'); diff --git a/app/Console/Commands/UpdateArticlesViewCount.php b/app/Console/Commands/UpdateArticlesViewCount.php index 9a7e254d4..3fa019a16 100644 --- a/app/Console/Commands/UpdateArticlesViewCount.php +++ b/app/Console/Commands/UpdateArticlesViewCount.php @@ -7,6 +7,7 @@ use App\Models\Article; use App\Support\Queues; use Illuminate\Console\Command; +use Illuminate\Support\Facades\Cache; class UpdateArticlesViewCount extends Command { @@ -31,6 +32,10 @@ public function handle(): int { dispatch(static function () { Article::updateViewCounts(); + + // Flush the cached articles used on the "Collections" page... + Cache::forget('articles:latest'); + Cache::forget('articles:popular'); })->onQueue(Queues::SCHEDULED_DEFAULT); return Command::SUCCESS; diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 991bb0155..917b22f29 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -11,6 +11,8 @@ use App\Console\Commands\FetchCollectionMetadata; use App\Console\Commands\FetchCollectionNfts; use App\Console\Commands\FetchCollectionOpenseaSlug; +use App\Console\Commands\FetchCollectionTotalVolume; +use App\Console\Commands\FetchCollectionVolume; use App\Console\Commands\FetchEnsDetails; use App\Console\Commands\FetchNativeBalances; use App\Console\Commands\FetchTokens; @@ -28,6 +30,7 @@ use App\Console\Commands\UpdateGalleriesValue; use App\Console\Commands\UpdateTwitterFollowers; use App\Enums\Features; +use App\Jobs\AggregateCollectionWinners; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Laravel\Pennant\Feature; @@ -113,12 +116,22 @@ protected function schedule(Schedule $schedule): void private function scheduleJobsForCollectionsOrGalleries(Schedule $schedule): void { $schedule - // Command only fetches collections that doesn't have a slug yet + // Command only fetches collections that don't have a slug yet // so in most cases it will not run any request ->command(FetchCollectionOpenseaSlug::class) ->withoutOverlapping() ->hourly(); + $schedule + ->command(FetchCollectionTotalVolume::class) + ->withoutOverlapping() + ->daily(); + + $schedule + ->command(FetchCollectionVolume::class) + ->withoutOverlapping() + ->daily(); + $schedule ->command(FetchCollectionActivity::class) ->withoutOverlapping() @@ -165,6 +178,9 @@ private function scheduleJobsForGalleries(Schedule $schedule): void private function scheduleJobsForCollections(Schedule $schedule): void { + $schedule->job(AggregateCollectionWinners::class) + ->monthly(); + $schedule ->command(UpdateCollectionsFiatValue::class) ->withoutOverlapping() diff --git a/app/Contracts/MarketDataProvider.php b/app/Contracts/MarketDataProvider.php index 3891b70ad..e3cc5d733 100644 --- a/app/Contracts/MarketDataProvider.php +++ b/app/Contracts/MarketDataProvider.php @@ -48,18 +48,18 @@ public function getJobMiddleware(): array; * IMPORTANT: When implementing this method, make sure to set the timestamp * for every PriceHistoryData object in the collection in Unix milliseconds * - * @param int|null $sampleCount The max number of samples to return. If null, all samples will be returned. + * @param int|null $sampleCount The max number of samples to return. If null, all samples will be returned. * @return DataCollection */ - public function getPriceHistory(Token $token, CurrencyCode $currency, Period $period, int $sampleCount = null): DataCollection; + public function getPriceHistory(Token $token, CurrencyCode $currency, Period $period, ?int $sampleCount = null): DataCollection; /** * IMPORTANT: When implementing this method, make sure to set the timestamp * for every PriceHistoryData object in the collection in Unix milliseconds * * @param Collection $tokens - * @param int|null $sampleCount The max number of samples to return. If null, all samples will be returned. + * @param int|null $sampleCount The max number of samples to return. If null, all samples will be returned. * @return Collection> */ - public function getBatchPriceHistory(Collection $tokens, CurrencyCode $currency, Period $period, int $sampleCount = null): Collection; + public function getBatchPriceHistory(Collection $tokens, CurrencyCode $currency, Period $period, ?int $sampleCount = null): Collection; } diff --git a/app/Contracts/Web3DataProvider.php b/app/Contracts/Web3DataProvider.php index 43447d370..2aa001579 100644 --- a/app/Contracts/Web3DataProvider.php +++ b/app/Contracts/Web3DataProvider.php @@ -4,8 +4,8 @@ namespace App\Contracts; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Models\Collection as CollectionModel; @@ -38,5 +38,5 @@ public function getBlockTimestamp(Network $network, int $blockNumber): Carbon; */ public function getMiddleware(): array; - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice; + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice; } diff --git a/app/Data/Collections/CollectionData.php b/app/Data/Collections/CollectionData.php index ad8966dfc..196b3f3b0 100644 --- a/app/Data/Collections/CollectionData.php +++ b/app/Data/Collections/CollectionData.php @@ -4,7 +4,9 @@ namespace App\Data\Collections; +use App\Data\VolumeData; use App\Enums\CurrencyCode; +use App\Enums\Period; use App\Models\Collection; use App\Transformers\IpfsGatewayUrlTransformer; use Illuminate\Support\Str; @@ -32,6 +34,7 @@ public function __construct( public ?float $floorPriceFiat, public ?string $floorPriceCurrency, public ?int $floorPriceDecimals, + public ?int $supply, #[WithTransformer(IpfsGatewayUrlTransformer::class)] public ?string $image, public ?string $banner, @@ -40,11 +43,19 @@ public function __construct( public int $nftsCount, #[DataCollectionOf(SimpleNftData::class)] public DataCollection $nfts, + public VolumeData $volume, ) { } - public static function fromModel(Collection $collection, CurrencyCode $currency): self + public static function fromModel(Collection $collection, CurrencyCode $currency, ?Period $volumePeriod = null): self { + $volume = $volumePeriod !== null ? $collection->createVolumeData($volumePeriod, $currency) : new VolumeData( + value: null, + fiat: null, + currency: $collection->nativeToken()->symbol, + decimals: $collection->nativeToken()->decimals, + ); + return new self( id: $collection->id, name: $collection->name, @@ -55,12 +66,14 @@ public static function fromModel(Collection $collection, CurrencyCode $currency) floorPriceFiat: (float) $collection->fiatValue($currency), floorPriceCurrency: $collection->floorPriceToken ? Str::lower($collection->floorPriceToken->symbol) : null, floorPriceDecimals: $collection->floorPriceToken?->decimals, + supply: $collection->supply, image: $collection->extra_attributes->get('image'), banner: $collection->extra_attributes->get('banner'), openSeaSlug: $collection->extra_attributes->get('opensea_slug'), website: $collection->website(), nftsCount: $collection->nfts_count, nfts: SimpleNftData::collection($collection->nfts), + volume: $volume, ); } } diff --git a/app/Data/Collections/CollectionDetailData.php b/app/Data/Collections/CollectionDetailData.php index 38a1b2c8b..007eb6e76 100644 --- a/app/Data/Collections/CollectionDetailData.php +++ b/app/Data/Collections/CollectionDetailData.php @@ -48,7 +48,7 @@ public function __construct( ) { } - public static function fromModel(Collection $collection, CurrencyCode $currencyCode = null, User $user = null): self + public static function fromModel(Collection $collection, ?CurrencyCode $currencyCode = null, ?User $user = null): self { $symbol = $collection->floorPriceToken?->symbol; @@ -70,7 +70,7 @@ public static function fromModel(Collection $collection, CurrencyCode $currencyC twitter: $collection->twitter(), discord: $collection->discord(), supply: $collection->supply, - volume: $collection->volume, + volume: $collection->total_volume, owners: $collection->owners, nftsCount: $collection->nfts()->when($user !== null, fn ($q) => $q->ownedBy($user))->count(), mintedAt: $collection->minted_at?->getTimestampMs(), diff --git a/app/Data/Collections/CollectionFeaturedData.php b/app/Data/Collections/CollectionFeaturedData.php new file mode 100644 index 000000000..4f2295c36 --- /dev/null +++ b/app/Data/Collections/CollectionFeaturedData.php @@ -0,0 +1,78 @@ + $nfts + */ + public function __construct( + public int $id, + public string $name, + public string $slug, + public string $address, + #[LiteralTypeScriptType('App.Enums.Chain')] + public int $chainId, + public ?string $floorPrice, + public ?float $floorPriceFiat, + public ?string $floorPriceCurrency, + public ?int $floorPriceDecimals, + #[WithTransformer(IpfsGatewayUrlTransformer::class)] + public ?string $image, + public ?string $banner, + public ?string $openSeaSlug, + public string $website, + public ?int $supply, + #[DataCollectionOf(GalleryNftData::class)] + public DataCollection $nfts, + public bool $isFeatured, + public ?string $description, + public ?string $volume, + ) { + } + + public static function fromModel(Collection $collection, CurrencyCode $currency): self + { + $description = $collection->description === null + ? null + : html_entity_decode(strip_tags(app(MarkdownRenderer::class)->toHtml($collection->description))); + + return new self( + id: $collection->id, + name: $collection->name, + slug: $collection->slug, + address: $collection->address, + chainId: $collection->network->chain_id, + floorPrice: $collection->floor_price, + floorPriceFiat: (float) $collection->fiatValue($currency), + floorPriceCurrency: $collection->floorPriceToken ? Str::lower($collection->floorPriceToken->symbol) : null, + floorPriceDecimals: $collection->floorPriceToken?->decimals, + image: $collection->extra_attributes->get('image'), + banner: $collection->extra_attributes->get('banner'), + openSeaSlug: $collection->extra_attributes->get('opensea_slug'), + website: $collection->website(), + nfts: GalleryNftData::collection($collection->nfts), + supply: $collection->supply, + isFeatured: $collection->is_featured, + description: $description, + volume: $collection->volume, + ); + } +} diff --git a/app/Data/Collections/CollectionOfTheMonthData.php b/app/Data/Collections/CollectionOfTheMonthData.php new file mode 100644 index 000000000..9bddae120 --- /dev/null +++ b/app/Data/Collections/CollectionOfTheMonthData.php @@ -0,0 +1,44 @@ +collection->extra_attributes->get('image'), + votes: $winner->votes, + volume: $winner->collection->createVolumeData(Period::MONTH), + floorPrice: $winner->collection->floor_price, + floorPriceCurrency: $winner->collection->floorPriceToken?->symbol, + floorPriceDecimals: $winner->collection->floorPriceToken?->decimals, + name: $winner->collection->name, + slug: $winner->collection->slug, + ); + } +} diff --git a/app/Data/Collections/CollectionStatsData.php b/app/Data/Collections/CollectionStatsData.php index ec68954ca..4ea9ff950 100644 --- a/app/Data/Collections/CollectionStatsData.php +++ b/app/Data/Collections/CollectionStatsData.php @@ -4,13 +4,10 @@ namespace App\Data\Collections; -use Spatie\LaravelData\Attributes\MapInputName; use Spatie\LaravelData\Data; -use Spatie\LaravelData\Mappers\SnakeCaseMapper; use Spatie\TypeScriptTransformer\Attributes\TypeScript; #[TypeScript] -#[MapInputName(SnakeCaseMapper::class)] class CollectionStatsData extends Data { public function __construct( diff --git a/app/Data/Collections/CollectionWinnersData.php b/app/Data/Collections/CollectionWinnersData.php new file mode 100644 index 000000000..852f817d3 --- /dev/null +++ b/app/Data/Collections/CollectionWinnersData.php @@ -0,0 +1,25 @@ + $winners + */ + public function __construct( + public int $month, + public int $year, + #[LiteralTypeScriptType('App.Data.Collections.CollectionOfTheMonthData[]')] + public Collection $winners, + ) { + } +} diff --git a/app/Data/Collections/PopularCollectionData.php b/app/Data/Collections/PopularCollectionData.php new file mode 100644 index 000000000..7a9dee530 --- /dev/null +++ b/app/Data/Collections/PopularCollectionData.php @@ -0,0 +1,53 @@ +id, + name: $collection->name, + slug: $collection->slug, + chainId: $collection->network->chain_id, + floorPrice: $collection->floor_price, + floorPriceCurrency: $collection->floorPriceToken ? Str::lower($collection->floorPriceToken->symbol) : null, + floorPriceDecimals: $collection->floorPriceToken?->decimals, + floorPriceChange: $collection->price_change_24h !== null ? (float) $collection->price_change_24h : null, + volume: $collection->createVolumeData($volumePeriod, $currency), + image: $collection->extra_attributes->get('image'), + ); + } +} diff --git a/app/Data/Collections/VotableCollectionData.php b/app/Data/Collections/VotableCollectionData.php new file mode 100644 index 000000000..755c47ed5 --- /dev/null +++ b/app/Data/Collections/VotableCollectionData.php @@ -0,0 +1,62 @@ +id, + rank: $rank, + name: $collection->name, + address: $collection->address, + image: $collection->extra_attributes->get('image'), + votes: $showVotes ? $collection->votes_count : null, + floorPrice: $collection->floor_price, + floorPriceFiat: (float) $collection->fiatValue($currency), + floorPriceCurrency: $collection->floor_price_symbol, + floorPriceDecimals: $collection->floor_price_decimals, + floorPriceChange: $collection->price_change_24h !== null ? (float) $collection->price_change_24h : null, + volume: $collection->createVolumeData(Period::MONTH, $currency), // For votable collections, we only care about the volume in the last 30 days... + nftsCount: $collection->nfts_count, + // We are not using the `->twitter` method because we need the username + // not the twitter url + twitterUsername: $collection->extra_attributes->get('socials.twitter'), + alreadyWon: $alreadyWon, + ); + } +} diff --git a/app/Data/Gallery/GalleryCollectionData.php b/app/Data/Gallery/GalleryCollectionData.php index 342a4b991..1873598b2 100644 --- a/app/Data/Gallery/GalleryCollectionData.php +++ b/app/Data/Gallery/GalleryCollectionData.php @@ -37,7 +37,7 @@ public function __construct( ) { } - public static function fromModel(Collection $collection, CurrencyCode $currencyCode = null, User $user = null): self + public static function fromModel(Collection $collection, ?CurrencyCode $currencyCode = null, ?User $user = null): self { $symbol = $collection->floorPriceToken?->symbol; diff --git a/app/Data/Nfts/NftCollectionData.php b/app/Data/Nfts/NftCollectionData.php index 6c6f0be51..962b26fc0 100644 --- a/app/Data/Nfts/NftCollectionData.php +++ b/app/Data/Nfts/NftCollectionData.php @@ -30,7 +30,7 @@ public function __construct( ) { } - public static function fromModel(Collection $collection, CurrencyCode $currencyCode = null): self + public static function fromModel(Collection $collection, ?CurrencyCode $currencyCode = null): self { return new self( name: $collection->name, diff --git a/app/Data/TokenListItemData.php b/app/Data/TokenListItemData.php index 056da0407..9843ec52e 100644 --- a/app/Data/TokenListItemData.php +++ b/app/Data/TokenListItemData.php @@ -60,7 +60,7 @@ public function __construct( * @param Collection $chainIds * @return PaginatedDataCollection */ - public static function paginated(User $user, int $perPage, int $currentPage = null, string $sortBy, string $sortDirection, Collection $chainIds): PaginatedDataCollection + public static function paginated(User $user, int $perPage, ?int $currentPage, string $sortBy, string $sortDirection, Collection $chainIds): PaginatedDataCollection { $sortBy = in_array($sortBy, self::$sortByOptions) ? $sortBy : 'fiat_balance'; diff --git a/app/Data/VolumeData.php b/app/Data/VolumeData.php new file mode 100644 index 000000000..fc90f092e --- /dev/null +++ b/app/Data/VolumeData.php @@ -0,0 +1,20 @@ + '{tokens_fetched_at: number|null, native_balances_fetched_at: number|null}', 'isRefreshingCollections' => 'boolean', 'canRefreshCollections' => 'boolean', + 'hasErc1155Nfts' => '{eth: boolean, polygon: boolean}', ])] class WalletData extends Data { @@ -45,6 +46,10 @@ public function __construct( public bool $isRefreshingCollections, public bool $canRefreshCollections, + /** + * @var array{eth: bool, polygon: bool} $hasErc1155Nfts + */ + public array $hasErc1155Nfts, ) { } @@ -70,6 +75,10 @@ public static function fromModel(Wallet $wallet): self ], isRefreshingCollections: (bool) $wallet->is_refreshing_collections, canRefreshCollections: $wallet->canRefreshCollections(), + hasErc1155Nfts: [ + 'eth' => $wallet->owns_erc1155_tokens_eth ?? false, + 'polygon' => $wallet->owns_erc1155_tokens_polygon ?? false, + ], ); } } diff --git a/app/Data/Web3/Web3NftCollectionFloorPrice.php b/app/Data/Web3/Web3CollectionFloorPrice.php similarity index 88% rename from app/Data/Web3/Web3NftCollectionFloorPrice.php rename to app/Data/Web3/Web3CollectionFloorPrice.php index 2b51a9dfe..5b2fa3ffb 100644 --- a/app/Data/Web3/Web3NftCollectionFloorPrice.php +++ b/app/Data/Web3/Web3CollectionFloorPrice.php @@ -6,7 +6,7 @@ use Carbon\Carbon; -class Web3NftCollectionFloorPrice +class Web3CollectionFloorPrice { public function __construct( // WEI diff --git a/app/Data/Web3/Web3NftCollectionTrait.php b/app/Data/Web3/Web3CollectionTrait.php similarity index 93% rename from app/Data/Web3/Web3NftCollectionTrait.php rename to app/Data/Web3/Web3CollectionTrait.php index 1bb64b382..f836e79f4 100644 --- a/app/Data/Web3/Web3NftCollectionTrait.php +++ b/app/Data/Web3/Web3CollectionTrait.php @@ -6,7 +6,7 @@ use App\Enums\TraitDisplayType; -class Web3NftCollectionTrait +class Web3CollectionTrait { public function __construct( public string $name, diff --git a/app/Data/Web3/Web3NftData.php b/app/Data/Web3/Web3NftData.php index 0319da8c5..5ab2420db 100644 --- a/app/Data/Web3/Web3NftData.php +++ b/app/Data/Web3/Web3NftData.php @@ -4,6 +4,7 @@ namespace App\Data\Web3; +use App\Enums\TokenType; use App\Enums\TraitDisplayType; use App\Models\Token; use Carbon\Carbon; @@ -32,12 +33,13 @@ public function __construct( public ?string $name, public ?string $description, public array $extraAttributes, - public ?Web3NftCollectionFloorPrice $floorPrice, + public ?Web3CollectionFloorPrice $floorPrice, public array $traits, public int $mintedBlock, public ?Carbon $mintedAt, public ?bool $hasError, public ?string $info, + public TokenType $type = TokenType::Unknown, ) { } diff --git a/app/Data/Web3/Web3Volume.php b/app/Data/Web3/Web3Volume.php new file mode 100644 index 000000000..1962f541d --- /dev/null +++ b/app/Data/Web3/Web3Volume.php @@ -0,0 +1,16 @@ + 'MATIC', }; } + + public function nativeCurrencyDecimals(): int + { + return CryptoCurrencyDecimals::forCurrency($this->nativeCurrency()); + } } diff --git a/app/Enums/TokenType.php b/app/Enums/TokenType.php index f0782bf07..c9214f61f 100644 --- a/app/Enums/TokenType.php +++ b/app/Enums/TokenType.php @@ -10,9 +10,4 @@ enum TokenType: string case Erc721 = 'ERC721'; case Erc1155 = 'ERC1155'; case Unknown = 'UNKNOWN'; - - public static function compare(TokenType $type, string $value): bool - { - return strcasecmp($type->value, $value) == 0; - } } diff --git a/app/Filament/Resources/CollectionResource.php b/app/Filament/Resources/CollectionResource.php new file mode 100644 index 000000000..2cd5869be --- /dev/null +++ b/app/Filament/Resources/CollectionResource.php @@ -0,0 +1,132 @@ +schema([ + Select::make('is_featured') + ->label('Is featured?') + ->options([ + 0 => 'No', + 1 => 'Yes', + ]) + ->default(0) + ->required(), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + ImageColumn::make('image') + ->label('Image') + ->getStateUsing(fn (Collection $collection) => $collection->image() ?? null) + ->size(40) + ->url(fn (Collection $collection) => $collection->image()) + ->openUrlInNewTab(), + + TextColumn::make('name') + ->weight('medium') + ->color('primary') + ->label('Name') + ->searchable() + ->default('Unknown') + ->url(fn (Collection $collection) => route('collections.view', $collection)) + ->openUrlInNewTab() + ->sortable(), + + TextColumn::make('nfts_count') + ->label('Number of NFTs') + ->counts('nfts') + ->default(0), + + TextColumn::make('address') + ->label('Address') + ->searchable() + ->url(fn (Collection $collection) => $collection->website()) + ->default('Unknown'), + + IconColumn::make('is_featured') + ->label('Featured') + ->boolean() + ->sortable(), + ]) + ->filters([ + Filter::make('is_featured') + ->label('Featured') + ->query(fn (Builder $query): Builder => $query->where('is_featured', true)), + ]) + ->actions([ + ActionGroup::make([ + Action::make('updateIsFeatured') + ->action(function (Collection $collection) { + if ($collection->nfts()->count() === 0 && ! $collection->is_featured) { + Notification::make() + ->title('Collections with no NFTs cannot be marked as featured.') + ->danger() + ->send(); + } elseif (! $collection->is_featured && Collection::featured()->count() >= 4) { + Notification::make() + ->title('There are already 4 collections marked as featured. Please remove one before selecting a new one.') + ->warning() + ->send(); + } else { + $collection->update([ + 'is_featured' => ! $collection->is_featured, + ]); + + Cache::forget('featured-collections'); + } + }) + ->label(fn (Collection $collection) => $collection->is_featured ? 'Unmark as featured' : 'Mark as featured') + ->icon('heroicon-s-star'), + ]), + ]) + ->defaultSort('name', 'asc'); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => ListCollections::route('/'), + 'view' => ViewCollection::route('/{record}'), + 'edit' => EditCollection::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/CollectionResource/Pages/CreateCollection.php b/app/Filament/Resources/CollectionResource/Pages/CreateCollection.php new file mode 100644 index 000000000..b3a842254 --- /dev/null +++ b/app/Filament/Resources/CollectionResource/Pages/CreateCollection.php @@ -0,0 +1,13 @@ +apiUrl = $this->getNftV3ApiUrl(); @@ -259,8 +259,8 @@ public function nftMetadataBatch(Collection $nfts, Network $network): Web3NftsCh */ public function collectionNfts( CollectionModel $collection, - string $startToken = null, - int $limit = null + ?string $startToken = null, + ?int $limit = null ): Web3NftsChunk { $this->apiUrl = $this->getNftV3ApiUrl(); @@ -300,7 +300,7 @@ public function collectionNfts( /** * @return array|null */ - public function collectionNftsRaw(CollectionModel $collection, string $startToken = null): ?array + public function collectionNftsRaw(CollectionModel $collection, ?string $startToken = null): ?array { $this->apiUrl = $this->getNftV3ApiUrl(); @@ -435,7 +435,7 @@ public function parseNft(array $nft, int $networkId): Web3NftData description: $description, extraAttributes: $this->getNftExtraAttributes($nft), floorPrice: $extractedFloorPrice ? - new Web3NftCollectionFloorPrice( + new Web3CollectionFloorPrice( $extractedFloorPrice, 'eth', // always eth here Carbon::now(), @@ -445,6 +445,7 @@ traits: $this->extractTraits($nft), mintedAt: $mintTimestamp !== null ? Carbon::createFromTimestampMs($mintTimestamp) : null, hasError: ! empty($error), info: $nftInfo, + type: $this->getTokenType($nft['contract']['tokenType'] ?? ''), ); } @@ -483,7 +484,7 @@ private function tokenMetadata(string $tokenAddress): ?array } // https://docs.alchemy.com/reference/getfloorprice - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { // Only ETH is supported at the moment since this API is still considered in beta: @@ -538,7 +539,7 @@ public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress return null; } - return new Web3NftCollectionFloorPrice( + return new Web3CollectionFloorPrice( CryptoUtils::convertToWei($priceInfo['floorPrice'], CryptoCurrencyDecimals::forCurrency($priceInfo['priceCurrency'])), Str::lower($priceInfo['priceCurrency']), Carbon::parse($priceInfo['retrievedAt']), @@ -599,8 +600,8 @@ private function tryExtractAssetUrls(array $nft): array $original = Arr::get($nft, 'image.cachedUrl'); return [ - 'originalRaw' => empty($originalRaw) || isBase64EncodedImage($originalRaw) ? null : $originalRaw, - 'original' => empty($original) || isBase64EncodedImage($original) ? null : $original, + 'originalRaw' => empty($originalRaw) || Str::isEncodedImage($originalRaw) ? null : $originalRaw, + 'original' => empty($original) || Str::isEncodedImage($original) ? null : $original, ]; } @@ -619,7 +620,7 @@ private function tryExtractImage(array $nft): ?string foreach ($imageKeys as $imageKey) { $imageUrl = Arr::get($nft, $imageKey); - if (! empty($imageUrl) && ! isBase64EncodedImage($imageUrl)) { + if (! empty($imageUrl) && ! Str::isEncodedImage($imageUrl)) { return $imageUrl; } } @@ -696,6 +697,16 @@ private function extractTraits(array $nft): array ->toArray(); } + private function getTokenType(string $type): TokenType + { + return match ($type) { + 'ERC20' => TokenType::Erc20, + 'ERC721' => TokenType::Erc721, + 'ERC1155' => TokenType::Erc1155, + default => TokenType::Unknown, + }; + } + private function getNftV3ApiUrl(): string { return 'https://'.self::$apiUrlPlaceholder.'.g.alchemy.com/nft/v3/'; @@ -711,10 +722,6 @@ private function filterNft(mixed $nft, bool $filterError = true): bool return false; } - if (! TokenType::compare(TokenType::Erc721, Arr::get($nft, 'contract.tokenType', ''))) { - return false; - } - // Only one has to exist, the missing one gets substituted $hasCollectionName = ! empty($this->collectionName($nft)); $hasCollectionSymbol = ! empty(Arr::get($nft, 'contract.symbol')); diff --git a/app/Http/Client/MarketData/CoingeckoPendingRequest.php b/app/Http/Client/MarketData/CoingeckoPendingRequest.php index 242cda375..097d7177c 100644 --- a/app/Http/Client/MarketData/CoingeckoPendingRequest.php +++ b/app/Http/Client/MarketData/CoingeckoPendingRequest.php @@ -30,7 +30,7 @@ class CoingeckoPendingRequest extends PendingRequest * * @return void */ - public function __construct(Factory $factory = null) + public function __construct(?Factory $factory = null) { parent::__construct($factory); diff --git a/app/Http/Client/Mnemonic/MnemonicPendingRequest.php b/app/Http/Client/Mnemonic/MnemonicPendingRequest.php index 5289cfb39..d72d5b6ba 100644 --- a/app/Http/Client/Mnemonic/MnemonicPendingRequest.php +++ b/app/Http/Client/Mnemonic/MnemonicPendingRequest.php @@ -5,8 +5,9 @@ namespace App\Http\Client\Mnemonic; use App\Data\Web3\CollectionActivity; -use App\Data\Web3\Web3NftCollectionFloorPrice; -use App\Data\Web3\Web3NftCollectionTrait; +use App\Data\Web3\Web3CollectionFloorPrice; +use App\Data\Web3\Web3CollectionTrait; +use App\Data\Web3\Web3Volume; use App\Enums\Chain; use App\Enums\CryptoCurrencyDecimals; use App\Enums\CurrencyCode; @@ -46,7 +47,7 @@ class MnemonicPendingRequest extends PendingRequest * * @return void */ - public function __construct(Factory $factory = null) + public function __construct(?Factory $factory = null) { parent::__construct($factory); @@ -99,7 +100,7 @@ public function send(string $method, string $path, array $options = []): Respons } // https://docs.mnemonichq.com/reference/marketplacesservice_getfloorprice - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { $this->chain = MnemonicChain::fromChain($chain); @@ -158,7 +159,7 @@ public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress } } - return new Web3NftCollectionFloorPrice( + return new Web3CollectionFloorPrice( CryptoUtils::convertToWei($value, $decimals), Str::lower($currency), Carbon::now(), @@ -179,86 +180,95 @@ public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress } } - // https://docs.mnemonichq.com/reference/collectionsservice_getmetadata - public function getNftCollectionBanner(Chain $chain, string $contractAddress): ?string + /** + * Fetch the banner image for the collection. + * + * @see https://docs.mnemonichq.com/reference/foundationalservice_getnftcontracts + */ + public function getCollectionBanner(Chain $chain, string $contractAddress): ?string { $this->chain = MnemonicChain::fromChain($chain); - /** @var array $data */ - $data = self::get(sprintf('/collections/v1beta2/%s/metadata', $contractAddress), [])->json('metadata'); - - $metadata = collect($data)->mapWithKeys(fn ($item) => [$item['type'] => $item['value']]); - - // *Note:* The API also returns an image for `TYPE_BANNER_IMAGE_URL`, - // however, I noticed that, (at least with the collections we have for - // testing), all images that return a value for - // `TYPE_ORIGINAL_BANNER_IMAGE_URL` also return a value for - // `TYPE_BANNER_IMAGE_URL`. On the other hand, images that don't return - // anything for `TYPE_ORIGINAL_BANNER_IMAGE_URL` do return a - // `TYPE_BANNER_IMAGE_URL` URL, but that URL shows an - // "Image metadata not found" message. Additionally, the image that - // comes from TYPE_BANNER_IMAGE_URL is too small to display in the header. - // In addition to that the image that comes from - // TYPE_ORIGINAL_BANNER_IMAGE_URL are urls from the OpenSea CDN,which - // seems to use the `imgix.com` API (or something similar). - // This means we can use GET attributes to resize the image to a more - // appropriate size for our banners. - $image = $metadata->get('TYPE_ORIGINAL_BANNER_IMAGE_URL'); - - if ($image === null) { + $url = $this->get('/foundational/v1beta2/nft_contracts', [ + 'contractAddresses' => $contractAddress, + ])->json('nftContracts.0.bannerImageUrl'); + + if ($url === null || $url === '') { return null; } - // The image from `TYPE_ORIGINAL_BANNER_IMAGE_URL` includes a w= parameter - // that we can use to store a bigger image in our db. - return NftImageUrl::get($image, ImageSize::Banner); + // The URL includes a w= parameter. We want to normalize it, so that we can store a higher resolution image... + return NftImageUrl::get($url, ImageSize::Banner); } - // https://docs.mnemonichq.com/reference/collectionsservice_getownerscount - public function getNftCollectionOwners(Chain $chain, string $contractAddress): ?int + /** + * Retrieve the number of owners of the collection. + * + * @see https://docs.mnemonichq.com/reference/collectionsservice_gettotals + */ + public function getCollectionOwners(Chain $chain, string $contractAddress): int { $this->chain = MnemonicChain::fromChain($chain); - /** @var array $data */ - $data = self::get(sprintf('/collections/v1beta2/%s/metadata', $contractAddress), [ - 'includeStats' => true, - ])->json(); + return (int) $this->get( + '/collections/v1beta2/'.$contractAddress.'/totals' + )->json('ownersCount'); + } - if (! is_numeric($data['ownersCount'])) { - return null; - } + /** + * Retrieve the 30-day volume history for the collection address. + * + * @see https://docs.mnemonichq.com/reference/collectionsservice_getsalesvolume + * + * @return Collection + */ + public function getCollectionVolumeHistory(Chain $chain, string $address): Collection + { + $this->chain = MnemonicChain::fromChain($chain); + + /** @var array{timestamp: string, volume: string}[] */ + $response = $this->get( + '/collections/v1beta2/'.$address.'/sales_volume/DURATION_30_DAYS/GROUP_BY_PERIOD_1_DAY' + )->json('dataPoints'); - return intval($data['ownersCount']); + return collect($response)->map(fn ($dataPoint) => new Web3Volume( + value: CryptoUtils::convertToWei($dataPoint['volume'], $chain->nativeCurrencyDecimals()), + date: Carbon::parse($dataPoint['timestamp']), + )); } - // https://docs.mnemonichq.com/reference/collectionsservice_getsalesvolume - public function getNftCollectionVolume(Chain $chain, string $contractAddress): ?string + /** + * Retrieve the latest sales volume amount for the collection address. + * + * @see https://docs.mnemonichq.com/reference/collectionsservice_getsalesvolume + */ + public function getLatestCollectionVolume(Chain $chain, string $contractAddress): Web3Volume { $this->chain = MnemonicChain::fromChain($chain); - /** @var array $data */ - $data = self::get(sprintf( - '/collections/v1beta2/%s/sales_volume/DURATION_1_DAY/GROUP_BY_PERIOD_1_DAY', - $contractAddress, - ), [])->json(); + $response = $this->get( + '/collections/v1beta2/'.$contractAddress.'/sales_volume/DURATION_1_DAY/GROUP_BY_PERIOD_1_DAY' + )->json('dataPoints.0'); - $volume = Arr::get($data, 'dataPoints.0.volume'); - if (empty($volume)) { - return null; + if (empty($response)) { + return new Web3Volume( + value: '0', + date: today(), + ); } - $currency = $chain->nativeCurrency(); - $decimals = CryptoCurrencyDecimals::forCurrency($currency); - - return CryptoUtils::convertToWei($volume, $decimals); + return new Web3Volume( + value: CryptoUtils::convertToWei($response['volume'] ?? '0', $chain->nativeCurrencyDecimals()), + date: Carbon::parse($response['timestamp'] ?? today()), + ); } // https://docs.mnemonichq.com/reference/collectionsservice_getnumerictraits // https://docs.mnemonichq.com/reference/collectionsservice_getstringtraits /** - * @return Collection + * @return Collection */ - public function getNftCollectionTraits(Chain $chain, string $contractAddress): Collection + public function getCollectionTraits(Chain $chain, string $contractAddress): Collection { // { // "name": "string", @@ -266,7 +276,7 @@ public function getNftCollectionTraits(Chain $chain, string $contractAddress): C // "nftsCount": "283", // "nftsPercentage": 2.8302830283028304 // } - $stringTraits = $this->fetchCollectionTraits($chain, $contractAddress, 'string', static fn (array $trait) => new Web3NftCollectionTrait( + $stringTraits = $this->fetchCollectionTraits($chain, $contractAddress, 'string', static fn (array $trait) => new Web3CollectionTrait( name: $trait['name'], value: $trait['value'], valueMin: null, @@ -282,7 +292,7 @@ public function getNftCollectionTraits(Chain $chain, string $contractAddress): C // "valueMin": 0, // "valueMax": 0 // } - $numericTraits = $this->fetchCollectionTraits($chain, $contractAddress, 'numeric', static fn (array $trait) => new Web3NftCollectionTrait( + $numericTraits = $this->fetchCollectionTraits($chain, $contractAddress, 'numeric', static fn (array $trait) => new Web3CollectionTrait( name: $trait['name'], value: Web3NftHandler::$numericTraitPlaceholder, valueMin: $trait['valueMin'], @@ -296,7 +306,7 @@ public function getNftCollectionTraits(Chain $chain, string $contractAddress): C } /** - * @return Collection + * @return Collection */ private function fetchCollectionTraits(Chain $chain, string $contractAddress, string $kind, callable $mapper): Collection { @@ -317,7 +327,7 @@ private function fetchCollectionTraits(Chain $chain, string $contractAddress, st $result = $result->merge( collect($data)->map(function ($trait) use ($mapper) { - /** @var Web3NftCollectionTrait $result */ + /** @var Web3CollectionTrait $result */ $result = $mapper($trait); // This ensures we deduplicate dates/numerics properly, so we do not end up with thousands of unique traits @@ -348,7 +358,7 @@ private function fetchCollectionTraits(Chain $chain, string $contractAddress, st * * @return Collection */ - public function getCollectionActivity(Chain $chain, string $contractAddress, int $limit, Carbon $from = null): Collection + public function getCollectionActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null): Collection { $this->chain = MnemonicChain::fromChain($chain); @@ -409,6 +419,65 @@ public function getCollectionActivity(Chain $chain, string $contractAddress, int })->values(); } + /** + * @see https://docs.mnemonichq.com/reference/foundationalservice_getnfttransfers + * + * @return Collection + */ + public function getBurnActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null): Collection + { + // Very similar to `getCollectionActivity` method, however this method only cares about `LABEL_BURN` labels... + + $this->chain = MnemonicChain::fromChain($chain); + + // Grab the ETH token regardless of the chain, because always want to report prices in ETH... + $ethToken = Token::query() + ->whereHas('network', fn ($query) => $query->where('chain_id', Chain::ETH->value)) + ->where('is_native_token', true) + ->firstOrFail(); + + $query = [ + 'limit' => $limit, + // Oldest first + 'sortDirection' => 'SORT_DIRECTION_ASC', + 'contractAddress' => $contractAddress, + 'labelsAny' => 'LABEL_BURN', + ]; + + if ($from !== null) { + $query['blockTimestampGt'] = $from->toISOString(); + } + + /** @var array $data */ + $data = self::get('/foundational/v1beta2/transfers/nft', $query)->json('nftTransfers'); + + return collect($data)->map(function ($transfer) use ($chain, $contractAddress, $ethToken) { + $currency = CurrencyCode::USD; + + $blockchainTimestamp = Carbon::parse($transfer['blockchainEvent']['blockTimestamp']); + $prices = $this->extractActivityPrices($chain, $transfer, $currency, $ethToken, $blockchainTimestamp); + + return new CollectionActivity( + contractAddress: $contractAddress, + tokenId: $transfer['tokenId'], + sender: $transfer['sender']['address'], + recipient: $transfer['recipient']['address'], + txHash: $transfer['blockchainEvent']['txHash'], + logIndex: $transfer['blockchainEvent']['logIndex'], + type: $this->extractNftTransferType($transfer['labels']), + timestamp: $blockchainTimestamp, + totalNative: $prices['native'], + totalUsd: $prices['usd'], + extraAttributes: [ + 'recipient' => Arr::get($transfer, 'recipient'), + 'recipientPaid' => Arr::get($transfer, 'recipientPaid'), + 'sender' => Arr::get($transfer, 'sender'), + 'senderReceived' => Arr::get($transfer, 'senderReceived'), + ] + ); + })->values(); + } + /** * @param array $transfer * @return array{ usd: float | null, native: float | null } diff --git a/app/Http/Client/Moralis/MoralisPendingRequest.php b/app/Http/Client/Moralis/MoralisPendingRequest.php index 8fbee299b..18b6c3393 100644 --- a/app/Http/Client/Moralis/MoralisPendingRequest.php +++ b/app/Http/Client/Moralis/MoralisPendingRequest.php @@ -5,8 +5,8 @@ namespace App\Http\Client\Moralis; use App\Data\Wallet\WalletBalance; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; @@ -37,7 +37,7 @@ class MoralisPendingRequest extends PendingRequest * * @return void */ - public function __construct(Factory $factory = null) + public function __construct(?Factory $factory = null) { parent::__construct($factory); @@ -175,6 +175,7 @@ traits: [], mintedAt: null, hasError: false, info: null, + type: $this->getTokenType($nft['contract_type'] ?? ''), ); })->values(); @@ -241,14 +242,14 @@ public function getNativeBalances(array $walletAddresses, Network $network): Col * @see https://docs.moralis.io/web3-data-api/evm/reference/get-nft-lowest-price * Get the lowest executed price for an NFT contract for the last x days (only trades paid in ETH). */ - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { try { $data = self::get(sprintf('nft/%s/lowestprice', $contractAddress), [ 'chain' => MoralisChain::fromChainId($chain->value)->value, ])->json(); - return new Web3NftCollectionFloorPrice( + return new Web3CollectionFloorPrice( $data['price'], 'eth', // always eth for moralis Carbon::parse($data['block_timestamp']), @@ -336,16 +337,22 @@ private function getNftName(array $nft): ?string return null; } + private function getTokenType(string $type): TokenType + { + return match ($type) { + 'ERC20' => TokenType::Erc20, + 'ERC721' => TokenType::Erc721, + 'ERC1155' => TokenType::Erc1155, + default => TokenType::Unknown, + }; + } + private function filterNft(mixed $nft): bool { if (Arr::get($nft, 'possible_spam', false)) { return false; } - if (! TokenType::compare(TokenType::Erc721, Arr::get($nft, 'contract_type', ''))) { - return false; - } - // Only one has to exist, the missing one gets substituted $hasCollectionName = ! empty(Arr::get($nft, 'name')); $hasCollectionSymbol = ! empty(Arr::get($nft, 'symbol')); diff --git a/app/Http/Client/Opensea/OpenseaPendingRequest.php b/app/Http/Client/Opensea/OpenseaPendingRequest.php index 7b80966f3..fd808e8f5 100644 --- a/app/Http/Client/Opensea/OpenseaPendingRequest.php +++ b/app/Http/Client/Opensea/OpenseaPendingRequest.php @@ -4,13 +4,14 @@ namespace App\Http\Client\Opensea; -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Enums\Chain; use App\Enums\CryptoCurrencyDecimals; use App\Enums\OpenseaChain; use App\Exceptions\ConnectionException; use App\Exceptions\RateLimitException; use App\Http\Client\Opensea\Data\OpenseaNftDetails; +use App\Models\Collection; use App\Support\CryptoUtils; use Carbon\Carbon; use GuzzleHttp\Exception\ClientException; @@ -19,6 +20,7 @@ use Illuminate\Http\Client\Factory; use Illuminate\Http\Client\PendingRequest; use Illuminate\Http\Client\Response; +use Illuminate\Support\Facades\Cache; use Throwable; class OpenseaPendingRequest extends PendingRequest @@ -30,7 +32,7 @@ class OpenseaPendingRequest extends PendingRequest * * @return void */ - public function __construct(Factory $factory = null) + public function __construct(?Factory $factory = null) { parent::__construct($factory); @@ -92,14 +94,14 @@ public function nft(Chain $chain, string $address, string $identifier): ?Opensea } /** - * @see https://docs.opensea.io/v1.0/reference/retrieving-collection-stats + * @see https://docs.opensea.io/reference/get_collection_stats */ - public function getNftCollectionFloorPrice(string $collectionSlug): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(string $collectionSlug): ?Web3CollectionFloorPrice { try { - $response = self::get(sprintf('collection/%s/stats', $collectionSlug)); + $response = $this->makeCollectionStatsRequest($collectionSlug); - $floorPrice = $response->json('stats.floor_price'); + $floorPrice = $response->json('total.floor_price'); $currency = 'eth'; // OpenSea reports everything in ETH @@ -108,7 +110,7 @@ public function getNftCollectionFloorPrice(string $collectionSlug): ?Web3NftColl return null; } - return new Web3NftCollectionFloorPrice( + return new Web3CollectionFloorPrice( price: CryptoUtils::convertToWei($floorPrice, CryptoCurrencyDecimals::forCurrency($currency)), currency: $currency, // For the rest of the providers we get the timestamp from the response @@ -124,4 +126,29 @@ public function getNftCollectionFloorPrice(string $collectionSlug): ?Web3NftColl throw $exception; } } + + /** + * @see https://docs.opensea.io/reference/get_collection_stats + */ + public function getCollectionTotalVolume(Collection $collection): ?string + { + $response = $this->makeCollectionStatsRequest($collection->openSeaSlug()); + + $volume = $response->json('total.volume'); + + return $volume === null + ? null + : CryptoUtils::convertToWei($volume, CryptoCurrencyDecimals::ETH->value); + } + + private function makeCollectionStatsRequest(string $collectionSlug): Response + { + // We cache for an hour because floor price job runs every hour... + // But we cache it just so that we can reuse the response for total volume without needing to hit an API endpoint again... + $ttl = now()->addMinutes(59); + + return Cache::remember('opensea:collections-stats:'.$collectionSlug, $ttl, function () use ($collectionSlug) { + return self::get(sprintf('collections/%s/stats', $collectionSlug), apiVersion: 2); + }); + } } diff --git a/app/Http/Controllers/Api/AllPopularCollectionController.php b/app/Http/Controllers/Api/AllPopularCollectionController.php new file mode 100644 index 000000000..415c28b5f --- /dev/null +++ b/app/Http/Controllers/Api/AllPopularCollectionController.php @@ -0,0 +1,45 @@ +currency(); + $period = $request->period(); + + /** @var string|null */ + $sortBy = in_array($request->query('sort'), $this->allowedSortByValues) ? $request->query('sort') : null; + + $collections = $collections->allPopular( + searchQuery: $request->get('query'), + period: $period, + chain: $request->chain(), + currency: $currency, + sortBy: $sortBy, + order: $request->sortDirection(default: $sortBy === null ? 'desc' : 'asc'), + perPage: $request->perPage(), + ); + + return response()->json([ + 'collections' => CollectionData::collection($collections->through( + fn ($collection) => CollectionData::fromModel($collection, $currency, volumePeriod: $period) + )), + ]); + } +} diff --git a/app/Http/Controllers/Api/NominatableCollectionController.php b/app/Http/Controllers/Api/NominatableCollectionController.php new file mode 100644 index 000000000..9bceaa5b9 --- /dev/null +++ b/app/Http/Controllers/Api/NominatableCollectionController.php @@ -0,0 +1,49 @@ +validate([ + 'query' => 'nullable|string', + ]); + + $currency = $request->user()?->currency() ?? CurrencyCode::USD; + + $collections = Collection::query() + ->with('network.nativeToken') + ->searchByName($request->get('query')) + ->limit(15) + ->votable() + ->withCount(['votes' => fn ($q) => $q->inCurrentMonth()]) + ->orderBy('votes_count', 'desc') + ->orderByVolume(period: Period::MONTH, currency: $currency) + ->get(); + + $winners = CollectionWinner::ineligibleCollectionIds(); + + return response()->json([ + 'collections' => $collections->map( + fn ($collection) => VotableCollectionData::fromModel( + $collection, + $currency, + showVotes: false, + alreadyWon: $winners->contains($collection->id), + ) + ), + ]); + } +} diff --git a/app/Http/Controllers/Api/PopularCollectionController.php b/app/Http/Controllers/Api/PopularCollectionController.php new file mode 100644 index 000000000..7a98d2072 --- /dev/null +++ b/app/Http/Controllers/Api/PopularCollectionController.php @@ -0,0 +1,43 @@ +chain(); + $currency = $request->currency(); + $period = $request->period(); + + /** @var Paginator $collections */ + $collections = Collection::query() + ->when($request->query('sort') !== 'floor-price', fn ($q) => $q->orderByVolume($period, currency: $chain === null ? $currency : null)) + ->filterByChainId($chain?->value) + ->orderByFloorPrice('desc', $currency) + ->with([ + 'network', + 'floorPriceToken', + ]) + ->addFloorPriceChange() + ->simplePaginate(12); + + return response()->json([ + 'collections' => $collections->through( + fn ($collection) => PopularCollectionData::fromModel($collection, $currency, $period) + ), + ]); + } +} diff --git a/app/Http/Controllers/Api/VotableCollectionController.php b/app/Http/Controllers/Api/VotableCollectionController.php new file mode 100644 index 000000000..9127e0f9e --- /dev/null +++ b/app/Http/Controllers/Api/VotableCollectionController.php @@ -0,0 +1,79 @@ +user(); + + $userVoted = $user !== null + ? Collection::votedByUserInCurrentMonth($user)->exists() + : false; + + $collections = Collection::votable() + ->withCount(['votes' => fn ($q) => $q->inCurrentMonth()]) + ->orderBy('votes_count', 'desc') + ->orderByVolume(Period::MONTH, $request->currency()) + ->with('network.nativeToken') + ->when($user === null, fn ($q) => $q->limit(13)) + ->when($user !== null, fn ($q) => $q->limit(700)) + ->get(); + + $winners = CollectionWinner::ineligibleCollectionIds(); + + return response()->json([ + 'votedCollection' => $user === null ? null : $this->getVotedCollection($user, $collections), + 'collections' => $collections->take(13)->map(fn ($collection) => VotableCollectionData::fromModel( + $collection, + currency: $request->currency(), + showVotes: $userVoted, + alreadyWon: $winners->contains($collection->id), + )), + ]); + } + + /** + * Get the collection that the user has voted on in the current month. + * + * @param EloquentCollection $collections + */ + private function getVotedCollection(User $user, EloquentCollection $collections): ?VotableCollectionData + { + $collection = Collection::query() + ->withCount(['nfts', 'votes' => fn ($q) => $q->inCurrentMonth()]) + ->with('network.nativeToken') + ->votedByUserInCurrentMonth($user) + ->first(); + + if ($collection === null) { + return null; + } + + /** @var int|false */ + $index = $collections->search(fn ($c) => $c->id === $collection->id); + + return VotableCollectionData::fromModel( + $collection, + $user->currency(), + showVotes: true, + rank: $index === false ? null : ($index + 1), + ); + } +} diff --git a/app/Http/Controllers/Auth/AuthenticatedSessionController.php b/app/Http/Controllers/Auth/AuthenticatedSessionController.php index c7d6daa23..4daf146bf 100644 --- a/app/Http/Controllers/Auth/AuthenticatedSessionController.php +++ b/app/Http/Controllers/Auth/AuthenticatedSessionController.php @@ -65,11 +65,11 @@ public function destroy(Request $request): RedirectResponse|JsonResponse if ($request->wantsJson()) { return response()->json([ - 'redirectTo' => $requiresRedirect ? 'galleries' : null, + 'redirectTo' => $requiresRedirect ? 'collections' : null, ]); } - return $requiresRedirect ? redirect()->route('galleries') : redirect()->back(); + return $requiresRedirect ? redirect('/') : redirect()->back(); } private function getAuthData(Request $request): AuthData diff --git a/app/Http/Controllers/CollectionController.php b/app/Http/Controllers/CollectionController.php index c36dff0c8..ea5e64884 100644 --- a/app/Http/Controllers/CollectionController.php +++ b/app/Http/Controllers/CollectionController.php @@ -6,147 +6,100 @@ use App\Data\Articles\ArticleData; use App\Data\Articles\ArticlesData; -use App\Data\Collections\CollectionData; use App\Data\Collections\CollectionDetailData; -use App\Data\Collections\CollectionStatsData; +use App\Data\Collections\CollectionFeaturedData; +use App\Data\Collections\CollectionOfTheMonthData; use App\Data\Collections\CollectionTraitFilterData; +use App\Data\Collections\CollectionWinnersData; use App\Data\Gallery\GalleryNftData; use App\Data\Gallery\GalleryNftsData; -use App\Data\Network\NetworkWithCollectionsData; use App\Data\Nfts\NftActivitiesData; use App\Data\Nfts\NftActivityData; use App\Data\Token\TokenData; use App\Enums\CurrencyCode; use App\Enums\NftTransferType; +use App\Enums\TokenType; use App\Enums\TraitDisplayType; +use App\Http\Controllers\Traits\HasCollectionFilters; use App\Jobs\FetchCollectionActivity; use App\Jobs\FetchCollectionBanner; use App\Jobs\SyncCollection; use App\Models\Collection; -use App\Models\Network; +use App\Models\CollectionWinner; use App\Models\User; -use App\Support\Cache\UserCache; +use App\Repositories\ArticleRepository; use App\Support\Queues; use App\Support\RateLimiterHelpers; use Carbon\Carbon; use Illuminate\Http\JsonResponse; -use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; -use Illuminate\Pagination\LengthAwarePaginator; +use Illuminate\Support\Collection as SupportCollection; +use Illuminate\Support\Facades\Cache; use Inertia\Inertia; use Inertia\Response; use Spatie\LaravelData\PaginatedDataCollection; class CollectionController extends Controller { - public function index(Request $request): Response|JsonResponse|RedirectResponse - { - $user = $request->user(); - - if ($user === null) { - return Inertia::render('Collections/Index', [ - 'title' => trans('metatags.collections.title'), - 'stats' => new CollectionStatsData( - nfts: 0, - collections: 0, - value: 0, - ), - 'sortBy' => null, - 'sortDirection' => 'desc', - 'showHidden' => false, - 'view' => 'list', - ]); - } - - $hiddenCollections = $user->hiddenCollections->pluck('address'); - $showHidden = $request->get('showHidden') === 'true'; - - $selectedChainIds = array_filter(explode(',', $request->get('chain', ''))); - $selectedChainIds = array_filter($selectedChainIds, fn ($id) => is_numeric($id)); + use HasCollectionFilters; - if ($showHidden && $hiddenCollections->isEmpty()) { - return redirect()->route('collections', $request->except('showHidden')); - } - - $cache = new UserCache($user); + public function index(Request $request, ArticleRepository $articles): Response + { + return Inertia::render('Collections/Index', [ + 'allowsGuests' => true, + 'filters' => fn () => $this->getFilters($request), + 'title' => fn () => trans('metatags.collections.title'), + 'collectionsOfTheMonth' => fn () => $this->getCollectionWinners(), + 'featuredCollections' => fn () => $this->getFeaturedCollections($request), + 'latestArticles' => fn () => $articles->latest(), + 'popularArticles' => fn () => $articles->popular(), + ]); + } - $sortBy = in_array($request->query('sort'), ['oldest', 'received', 'name', 'floor-price', 'value', 'chain']) ? $request->query('sort') : null; - $defaultSortDirection = $sortBy === null ? 'desc' : 'asc'; + /** + * Get all of the collections that won the latest "Collection of the Month". + */ + private function getCollectionWinners(): CollectionWinnersData + { + $ttl = now()->endOfDay(); - $sortDirection = in_array($request->query('direction'), ['asc', 'desc']) ? $request->query('direction') : $defaultSortDirection; - $networks = NetworkWithCollectionsData::fromModel($user, $showHidden); + return Cache::remember('collection-winners:current', $ttl, fn () => new CollectionWinnersData( + year: now()->subMonth()->year, + month: now()->subMonth()->month, + winners: CollectionWinner::current()->map(fn ($winner) => CollectionOfTheMonthData::fromModel($winner)) + )); + } - $selectedChainIds = array_filter($selectedChainIds, function ($id) use ($networks) { - return $networks->firstWhere('chainId', $id)?->collectionsCount > 0; + /** + * @return SupportCollection + */ + private function getFeaturedCollections(Request $request): SupportCollection + { + $currency = $request->user()?->currency() ?? CurrencyCode::USD; + + $collections = Cache::remember( + 'featured-collections', + now()->addHour(), + fn () => Collection::featured() + ->with([ + 'network', + 'floorPriceToken', + 'nfts' => fn ($q) => $q->inRandomOrder()->limit(3), + ]) + ->get() + ); + + return $collections->map(function (Collection $collection) use ($currency) { + $collection->nfts->each->setRelation('collection', $collection); + + return CollectionFeaturedData::fromModel($collection, $currency); }); - - if ($request->wantsJson()) { - $searchQuery = $request->get('query'); - - /** @var LengthAwarePaginator $collections */ - $collections = $user->collections() - ->when($showHidden, fn ($q) => $q->whereIn('collections.id', $user->hiddenCollections->modelKeys())) - ->when(! $showHidden, fn ($q) => $q->whereNotIn('collections.id', $user->hiddenCollections->modelKeys())) - ->when(count($selectedChainIds) > 0, fn ($q) => $q->whereIn('collections.network_id', Network::whereIn('chain_id', $selectedChainIds)->pluck('id'))) - ->when($sortBy === 'name', fn ($q) => $q->orderByName($sortDirection)) - ->when($sortBy === 'floor-price', fn ($q) => $q->orderByFloorPrice($sortDirection, $user->currency())) - ->when($sortBy === 'value', fn ($q) => $q->orderByValue($user->wallet, $sortDirection, $user->currency())) - ->when($sortBy === 'chain', fn ($q) => $q->orderByChainId($sortDirection)) - ->when($sortBy === 'oldest', fn ($q) => $q->orderByMintDate('asc')) - ->when($sortBy === 'received' || $sortBy === null, fn ($q) => $q->orderByReceivedDate($user->wallet, 'desc')) - ->search($user, $searchQuery) - ->with([ - 'reports', - 'network', - 'floorPriceToken', - 'nfts' => fn ($q) => $q->where('wallet_id', $user->wallet_id)->limit(4), - ]) - ->withCount(['nfts' => fn ($q) => $q->where('wallet_id', $user->wallet_id)]) - ->paginate(25); - - $reportByCollectionAvailableIn = $collections->mapWithKeys(function ($collection) use ($request) { - return [$collection->address => RateLimiterHelpers::collectionReportAvailableInHumanReadable($request, $collection)]; - }); - - $alreadyReportedByCollection = $collections->mapWithKeys(function ($collection) use ($user) { - return [$collection->address => $collection->wasReportedByUserRecently($user, useRelationship: true)]; - }); - - return new JsonResponse([ - 'collections' => CollectionData::collection( - $collections->through(fn ($collection) => CollectionData::fromModel($collection, $user->currency())) - ), - 'reportByCollectionAvailableIn' => $reportByCollectionAvailableIn, - 'alreadyReportedByCollection' => $alreadyReportedByCollection, - 'hiddenCollectionAddresses' => $hiddenCollections, - 'availableNetworks' => $networks, - 'selectedChainIds' => $selectedChainIds, - 'stats' => new CollectionStatsData( - nfts: $showHidden ? $cache->hiddenNftsCount() : $cache->shownNftsCount(), - collections: $showHidden ? $cache->hiddenCollectionsCount() : $cache->shownCollectionsCount(), - value: $user->collectionsValue($user->currency(), readFromDatabase: false, onlyHidden: $showHidden), - ), - ]); - } - - return Inertia::render('Collections/Index', [ - 'title' => trans('metatags.collections.title'), - 'initialStats' => new CollectionStatsData( - nfts: $showHidden ? $cache->hiddenNftsCount() : $cache->shownNftsCount(), - collections: $showHidden ? $cache->hiddenCollectionsCount() : $cache->shownCollectionsCount(), - value: $user->collectionsValue($user->currency(), readFromDatabase: false, onlyHidden: $showHidden), - ), - 'sortBy' => $sortBy, - 'sortDirection' => $sortDirection, - 'showHidden' => $showHidden, - 'selectedChainIds' => $selectedChainIds, - 'view' => $request->get('view') === 'grid' ? 'grid' : 'list', - 'availableNetworks' => $networks, - ]); } public function show(Request $request, Collection $collection): Response { + abort_if($collection->type !== TokenType::Erc721, 404); + /** @var User|null $user */ $user = $request->user(); diff --git a/app/Http/Controllers/CollectionOfTheMonthController.php b/app/Http/Controllers/CollectionOfTheMonthController.php new file mode 100644 index 000000000..3258963f0 --- /dev/null +++ b/app/Http/Controllers/CollectionOfTheMonthController.php @@ -0,0 +1,38 @@ + fn () => $this->getWinnerColletions(), + 'allowsGuests' => true, + 'title' => fn () => trans('metatags.collections.of-the-month.title', [ + 'month' => Carbon::now()->startOfMonth()->subMonth()->format('F Y'), + ]), + ]); + } + + /** + * @return Collection + */ + private function getWinnerColletions(): Collection + { + $winners = CollectionWinner::getByMonth(); + + abort_if($winners->isEmpty(), 404); + + return $winners; + } +} diff --git a/app/Http/Controllers/CollectionReportController.php b/app/Http/Controllers/CollectionReportController.php index 551a75ede..b0588eeb8 100644 --- a/app/Http/Controllers/CollectionReportController.php +++ b/app/Http/Controllers/CollectionReportController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; +use App\Enums\TokenType; use App\Models\Collection; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; @@ -13,6 +14,8 @@ class CollectionReportController extends Controller { public function store(Request $request, Collection $collection): RedirectResponse { + abort_if($collection->type !== TokenType::Erc721, 404); + $request->validate([ 'reason' => ['required', 'string', Rule::in(config('dashbrd.reports.reasons'))], ]); diff --git a/app/Http/Controllers/CollectionVoteController.php b/app/Http/Controllers/CollectionVoteController.php new file mode 100644 index 000000000..779a162cd --- /dev/null +++ b/app/Http/Controllers/CollectionVoteController.php @@ -0,0 +1,28 @@ +id)->where('rank', 1)->exists()) { + return back()->toast(trans('pages.collections.collection_of_the_month.already_won'), type: 'error'); + } + + if ($request->wallet()->votes()->inCurrentMonth()->exists()) { + return back()->toast(trans('pages.collections.collection_of_the_month.vote_failed'), type: 'error'); + } + + $collection->addVote($request->wallet()); + + return back()->toast(trans('pages.collections.collection_of_the_month.vote_success'), type: 'success'); + } +} diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index 62aff199e..921ef4429 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -24,12 +24,12 @@ public function __invoke(Request $request): Response|RedirectResponse private function redirectToEnabledSection(): RedirectResponse { - if (Feature::active(Features::Galleries->value)) { - return redirect()->route('galleries'); + if (Feature::active(Features::Collections->value)) { + return redirect('/'); } - if (Feature::active(Features::Collections->value)) { - return redirect()->route('collections'); + if (Feature::active(Features::Galleries->value)) { + return redirect()->route('galleries'); } return redirect()->route('settings.general'); diff --git a/app/Http/Controllers/Filament/LogoutController.php b/app/Http/Controllers/Filament/LogoutController.php index 3f8386103..229bc03f5 100644 --- a/app/Http/Controllers/Filament/LogoutController.php +++ b/app/Http/Controllers/Filament/LogoutController.php @@ -14,9 +14,10 @@ class LogoutController extends FilamentLogoutController public function logout(Request $request): RedirectResponse { Filament::auth()->logout(); + $request->session()->invalidate(); $request->session()->regenerateToken(); - return redirect()->route('galleries'); + return redirect('/'); } } diff --git a/app/Http/Controllers/LandingPageDataController.php b/app/Http/Controllers/LandingPageDataController.php index aadc5b34e..b71619f1f 100644 --- a/app/Http/Controllers/LandingPageDataController.php +++ b/app/Http/Controllers/LandingPageDataController.php @@ -8,6 +8,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Number; class LandingPageDataController extends Controller { @@ -22,9 +23,17 @@ public function __invoke(): JsonResponse } return response()->json([ - 'xFollowersFormatted' => format_amount_for_display((int) Cache::get('twitter_followers', 0)), - 'discordMembersFormatted' => format_amount_for_display((int) Cache::get('discord_members', 0)), + 'xFollowersFormatted' => $this->format((int) Cache::get('twitter_followers', 0)), + 'discordMembersFormatted' => $this->format((int) Cache::get('discord_members', 0)), 'wallets' => Cache::remember('landing:wallets', now()->addMinutes(5), static fn () => number_format(Wallet::count())), ]); } + + private function format(int $amount): string + { + /** @var string */ + $value = Number::abbreviate($amount, maxPrecision: 1); + + return strtolower($value); + } } diff --git a/app/Http/Controllers/MetaImageController.php b/app/Http/Controllers/MetaImageController.php index 4d1283870..68ea7c7d4 100644 --- a/app/Http/Controllers/MetaImageController.php +++ b/app/Http/Controllers/MetaImageController.php @@ -24,7 +24,7 @@ public function __invoke(Gallery $gallery): BinaryFileResponse private function generateMetaImage(Gallery $gallery, string $imagePath): void { - Cache::lock($gallery->slug.'_meta_image', config('dashbrd.browsershot.timeout') + 15)->get(function () use ($gallery, $imagePath) { + Cache::lock($gallery->slug.'_meta_image', config('services.browsershot.timeout') + 15)->get(function () use ($gallery, $imagePath) { if ($this->shouldGenerateMetaImage($imagePath)) { $screenshotPath = $this->takeScreenshot($gallery); @@ -63,10 +63,10 @@ private function takeScreenshot(Gallery $gallery): string app(Browsershot::class)->url(route('galleries.view', ['gallery' => $gallery->slug])) ->windowSize(1480, 768) - ->timeout(config('dashbrd.browsershot.timeout')) + ->timeout(config('services.browsershot.timeout')) ->waitForFunction("document.querySelectorAll('[data-testid=GalleryNfts__nft]').length > 0 && Array.from(document.querySelectorAll('[data-testid=GalleryNfts__nft]')).slice(0, 4).every(el => ! el.querySelector('[data-testid=Skeleton]'))") - ->setNodeBinary(config('dashbrd.browsershot.node_binary')) - ->setNpmBinary(config('dashbrd.browsershot.npm_binary')) + ->setNodeBinary(config('services.browsershot.node_binary')) + ->setNpmBinary(config('services.browsershot.npm_binary')) ->save($tempPath); $this->resizeScreenshot($tempPath); diff --git a/app/Http/Controllers/MyCollectionsController.php b/app/Http/Controllers/MyCollectionsController.php new file mode 100644 index 000000000..bc5b81012 --- /dev/null +++ b/app/Http/Controllers/MyCollectionsController.php @@ -0,0 +1,113 @@ +user(); + + if ($user === null) { + return Inertia::render('Collections/MyCollections/Index', [ + 'title' => trans('metatags.my-collections.title'), + 'stats' => $metrics->zeros(), + 'sortBy' => null, + 'sortDirection' => 'desc', + 'showHidden' => false, + 'view' => 'list', + ]); + } + + $hiddenCollections = $user->hiddenCollections->pluck('address'); + $showHidden = $request->get('showHidden') === 'true'; + + $selectedChainIds = array_filter(explode(',', $request->get('chain', ''))); + $selectedChainIds = array_filter($selectedChainIds, fn ($id) => is_numeric($id)); + + if ($showHidden && $hiddenCollections->isEmpty()) { + return redirect()->route('my-collections', $request->except('showHidden')); + } + + $sortBy = in_array($request->query('sort'), ['oldest', 'received', 'name', 'floor-price', 'value', 'chain']) ? $request->query('sort') : null; + $defaultSortDirection = $sortBy === null ? 'desc' : 'asc'; + + $sortDirection = in_array($request->query('direction'), ['asc', 'desc']) ? $request->query('direction') : $defaultSortDirection; + $networks = NetworkWithCollectionsData::fromModel($user, $showHidden); + + $selectedChainIds = array_filter($selectedChainIds, function ($id) use ($networks) { + return $networks->firstWhere('chainId', $id)?->collectionsCount > 0; + }); + + if ($request->wantsJson()) { + $searchQuery = $request->get('query'); + + /** @var LengthAwarePaginator $collections */ + $collections = $user->collections() + ->when($showHidden, fn ($q) => $q->whereIn('collections.id', $user->hiddenCollections->modelKeys())) + ->when(! $showHidden, fn ($q) => $q->whereNotIn('collections.id', $user->hiddenCollections->modelKeys())) + ->when(count($selectedChainIds) > 0, fn ($q) => $q->whereIn('collections.network_id', Network::whereIn('chain_id', $selectedChainIds)->pluck('id'))) + ->when($sortBy === 'name', fn ($q) => $q->orderByName($sortDirection)) + ->when($sortBy === 'floor-price', fn ($q) => $q->orderByFloorPrice($sortDirection, $user->currency())) + ->when($sortBy === 'value', fn ($q) => $q->orderByValue($user->wallet, $sortDirection, $user->currency())) + ->when($sortBy === 'chain', fn ($q) => $q->orderByChainId($sortDirection)) + ->when($sortBy === 'oldest', fn ($q) => $q->orderByMintDate('asc')) + ->when($sortBy === 'received' || $sortBy === null, fn ($q) => $q->orderByReceivedDate($user->wallet, 'desc')) + ->search($user, $searchQuery) + ->with([ + 'reports', + 'network', + 'floorPriceToken', + 'nfts' => fn ($q) => $q->where('wallet_id', $user->wallet_id)->limit(4), + ]) + ->withCount(['nfts' => fn ($q) => $q->where('wallet_id', $user->wallet_id)]) + ->paginate(25); + + $reportByCollectionAvailableIn = $collections->mapWithKeys(function ($collection) use ($request) { + return [$collection->address => RateLimiterHelpers::collectionReportAvailableInHumanReadable($request, $collection)]; + }); + + $alreadyReportedByCollection = $collections->mapWithKeys(function ($collection) use ($user) { + return [$collection->address => $collection->wasReportedByUserRecently($user, useRelationship: true)]; + }); + + return new JsonResponse([ + 'collections' => CollectionData::collection( + $collections->through(fn ($collection) => CollectionData::fromModel($collection, $user->currency())) + ), + 'reportByCollectionAvailableIn' => $reportByCollectionAvailableIn, + 'alreadyReportedByCollection' => $alreadyReportedByCollection, + 'hiddenCollectionAddresses' => $hiddenCollections, + 'availableNetworks' => $networks, + 'selectedChainIds' => $selectedChainIds, + 'stats' => $metrics->forUser($request->user(), $showHidden), + ]); + } + + return Inertia::render('Collections/MyCollections/Index', [ + 'title' => trans('metatags.my-collections.title'), + 'initialStats' => $metrics->forUser($request->user(), $showHidden), + 'sortBy' => $sortBy, + 'sortDirection' => $sortDirection, + 'showHidden' => $showHidden, + 'selectedChainIds' => $selectedChainIds, + 'view' => $request->get('view') === 'grid' ? 'grid' : 'list', + 'availableNetworks' => $networks, + ]); + } +} diff --git a/app/Http/Controllers/MyGalleryCollectionController.php b/app/Http/Controllers/MyGalleryCollectionController.php index 24b49dd21..96554f130 100644 --- a/app/Http/Controllers/MyGalleryCollectionController.php +++ b/app/Http/Controllers/MyGalleryCollectionController.php @@ -7,6 +7,7 @@ use App\Data\Gallery\GalleryCollectionData; use App\Data\Gallery\GalleryCollectionsData; use App\Data\Gallery\GalleryNftData; +use App\Enums\TokenType; use App\Models\Collection; use App\Models\Nft; use App\Models\User; @@ -44,6 +45,8 @@ public function index(Request $request): JsonResponse public function nfts(Request $request, Collection $collection): JsonResponse { + abort_if($collection->type !== TokenType::Erc721, 404); + $page = ($request->page ?? 1) - 1; $nftsPerPage = (int) config('dashbrd.gallery.pagination.nfts_per_page'); diff --git a/app/Http/Controllers/NftController.php b/app/Http/Controllers/NftController.php index a6eff5105..8a6f54ee6 100644 --- a/app/Http/Controllers/NftController.php +++ b/app/Http/Controllers/NftController.php @@ -10,6 +10,7 @@ use App\Data\Nfts\NftActivityData; use App\Data\Nfts\NftData; use App\Data\Token\TokenData; +use App\Enums\TokenType; use App\Models\Collection; use App\Models\Nft; use App\Models\User; @@ -22,6 +23,8 @@ class NftController extends Controller { public function show(Request $request, Collection $collection, Nft $nft): Response { + abort_if($collection->type !== TokenType::Erc721, 404); + /** @var User|null $user */ $user = $request->user(); diff --git a/app/Http/Controllers/PopularCollectionController.php b/app/Http/Controllers/PopularCollectionController.php new file mode 100644 index 000000000..155905bcb --- /dev/null +++ b/app/Http/Controllers/PopularCollectionController.php @@ -0,0 +1,29 @@ + trans('metatags.popular-collections.title'), + 'allowsGuests' => true, + 'stats' => $metrics->total($request->currency()), + 'filters' => $this->getFilters($request), + ]); + } +} diff --git a/app/Http/Controllers/RefreshedNftController.php b/app/Http/Controllers/RefreshedNftController.php index fc02d2706..0548e5a7e 100644 --- a/app/Http/Controllers/RefreshedNftController.php +++ b/app/Http/Controllers/RefreshedNftController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; +use App\Enums\TokenType; use App\Jobs\FetchCollectionActivity; use App\Jobs\RefreshNftMetadata; use App\Models\Collection; @@ -16,6 +17,8 @@ class RefreshedNftController extends Controller { public function __invoke(Collection $collection, Nft $nft): JsonResponse { + abort_if($collection->type !== TokenType::Erc721, 404); + // The job itself is rate-limited on NFT id to run only once per hour regardless of how many different users try // to refresh its metadata. A user is not really supposed to know about this internal "cooldown", // hence if the user didn't run into a per-user rate limit we consider it still a success. diff --git a/app/Http/Controllers/Traits/HasCollectionFilters.php b/app/Http/Controllers/Traits/HasCollectionFilters.php new file mode 100644 index 000000000..c6a692c51 --- /dev/null +++ b/app/Http/Controllers/Traits/HasCollectionFilters.php @@ -0,0 +1,44 @@ + + */ + private array $allowedSortByValues = ['name', 'floor-price', 'value', 'chain']; + + /** + * @return object{chain?: string, sort?: string, period?: string} + */ + private function getFilters(Request $request): object + { + $filter = [ + 'chain' => $this->getValidValue($request->get('chain'), ['polygon', 'ethereum']), + 'sort' => $this->getValidValue($request->get('sort'), ['floor-price']), + 'period' => $this->getValidValue($request->get('period'), ['24h', '7d', '30d']), + 'query' => boolval($query = $request->get('query')) ? $query : null, + 'direction' => $this->getValidValue($request->get('direction'), ['asc', 'desc']), + 'page' => $request->integer('page', 1), + ]; + + // If value is not defined (or invalid), remove it from the array since + // the frontend expect `undefined` values (not `null`) + + // Must be cast to an object due to some Inertia front-end stuff... + return (object) array_filter($filter); + } + + /** + * @param array $validValues + */ + private function getValidValue(?string $value, array $validValues): ?string + { + return in_array($value, $validValues) ? $value : null; + } +} diff --git a/app/Http/Controllers/WalletsLineChartController.php b/app/Http/Controllers/WalletsLineChartController.php index c16e3c8d7..d3def5b47 100644 --- a/app/Http/Controllers/WalletsLineChartController.php +++ b/app/Http/Controllers/WalletsLineChartController.php @@ -16,7 +16,7 @@ class WalletsLineChartController extends Controller { /** - * @return Collection> + * @return Collection> */ public function __invoke(Request $request, MarketDataProvider $provider): Collection { diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 5162044ac..14a9b94d5 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -18,7 +18,7 @@ class Authenticate extends Middleware protected function redirectTo($request) { if (! $request->expectsJson()) { - return route('galleries'); + return '/'; } } } diff --git a/app/Http/Middleware/ValidateWallet.php b/app/Http/Middleware/ValidateWallet.php index cb462440a..f75b6a452 100644 --- a/app/Http/Middleware/ValidateWallet.php +++ b/app/Http/Middleware/ValidateWallet.php @@ -25,7 +25,7 @@ public function handle(Request $request, Closure $next): Response if ($user->wallet_id === null) { Auth::guard('web')->logout(); - return redirect()->route('galleries'); + return redirect('/'); } } diff --git a/app/Http/Requests/FilterableCollectionRequest.php b/app/Http/Requests/FilterableCollectionRequest.php new file mode 100644 index 000000000..3d65a8292 --- /dev/null +++ b/app/Http/Requests/FilterableCollectionRequest.php @@ -0,0 +1,74 @@ +query('chain')) { + 'polygon' => Chain::Polygon, + 'ethereum' => Chain::ETH, + default => null, + }; + } + + /** + * Get the user's currency or fallback to the default currency. + */ + public function currency(): CurrencyCode + { + return $this->user()?->currency() ?? CurrencyCode::USD; + } + + /** + * Get the period value that the user wants to filter collections by. + */ + public function period(): Period + { + return match ($this->query('period')) { + '7d' => Period::WEEK, + '30d' => Period::MONTH, + default => Period::DAY, + }; + } + + /** + * Get the number of collection items in the pagination. + */ + public function perPage(): int + { + return min($this->integer('perPage', 50), 100); + } + + /** + * Get the sorting direction for the request. + */ + public function sortDirection(string $default): string + { + /** @var string|null */ + $direction = $this->query('direction'); + + return in_array($direction, ['asc', 'desc']) + ? $direction + : $default; + } +} diff --git a/app/Jobs/AggregateCollectionWinners.php b/app/Jobs/AggregateCollectionWinners.php new file mode 100644 index 000000000..3b21116fa --- /dev/null +++ b/app/Jobs/AggregateCollectionWinners.php @@ -0,0 +1,86 @@ +currentMonth + ? now() + : now()->subMonth(); + + $winners = $this->winners(); + + $collections = $winners->map(fn ($collection, $index) => [ + 'collection_id' => $collection->id, + 'votes' => $collection->votes_count, + 'month' => $previousMonth->month, + 'year' => $previousMonth->year, + 'rank' => $index + 1, + 'created_at' => now(), + 'updated_at' => now(), + ])->toArray(); + + DB::transaction(function () use ($collections, $previousMonth) { + // We created the 3 winners, so remove all others for the month and year... + // This is to prevent accidental bugs if this job runs multiple times in a month... + CollectionWinner::query() + ->where('month', $previousMonth->month) + ->where('year', $previousMonth->year) + ->delete(); + + CollectionWinner::upsert($collections, uniqueBy: ['collection_id', 'month', 'year']); + }); + + Cache::forget('collection-winners:current'); + } + + /** + * @return LaravelCollection + */ + private function winners(): LaravelCollection + { + return Collection::query() + ->eligibleToWin() + ->whereHas('votes', fn ($q) => $this->currentMonth ? $q->inCurrentMonth() : $q->inPreviousMonth()) + ->withCount([ + 'votes' => fn ($q) => $this->currentMonth ? $q->inCurrentMonth() : $q->inPreviousMonth(), + ]) + ->limit(3) + ->orderBy('votes_count', 'desc') + ->orderByVolume(Period::MONTH, currency: CurrencyCode::USD) + ->get(); + } + + public function uniqueId(): string + { + return static::class; + } +} diff --git a/app/Jobs/FetchBurnActivity.php b/app/Jobs/FetchBurnActivity.php new file mode 100644 index 000000000..eb69339f5 --- /dev/null +++ b/app/Jobs/FetchBurnActivity.php @@ -0,0 +1,129 @@ +onQueue(Queues::SCHEDULED_NFTS); + } + + /** + * Execute the job. + */ + public function handle(MnemonicWeb3DataProvider $provider): void + { + if (! config('dashbrd.features.activities') || $this->shouldIgnoreCollection()) { + return; + } + + if ($this->collection->isInvalid()) { + return; + } + + // This collection never had its activity retrieved, so we don't want to fetch only burn activity... + if ($this->collection->activity_updated_at === null) { + return; + } + + $activities = $provider->getBurnActivity( + chain: $this->collection->network->chain(), + contractAddress: $this->collection->address, + limit: static::LIMIT, + from: $this->latestActivityTimestamp(), + ); + + if ($activities->isEmpty()) { + return; + } + + $formattedActivities = $activities + ->filter(fn ($activity) => $activity->type === NftTransferType::Burn) + ->unique->key() + ->map(fn (CollectionActivity $activity) => [ + 'collection_id' => $this->collection->id, + 'token_number' => $activity->tokenId, + 'type' => $activity->type->value, + 'sender' => $activity->sender, + 'recipient' => $activity->recipient, + 'tx_hash' => $activity->txHash, + 'log_index' => $activity->logIndex, + 'timestamp' => $activity->timestamp, + 'total_native' => $activity->totalNative, + 'total_usd' => $activity->totalUsd, + 'extra_attributes' => json_encode($activity->extraAttributes), + ])->toArray(); + + if (count($formattedActivities) === 0) { + return; + } + + DB::transaction(function () use ($formattedActivities, $activities) { + NftActivity::upsert($formattedActivities, uniqueBy: ['tx_hash', 'log_index', 'collection_id', 'token_number', 'type']); + + // If we get the limit it may be that there are more activities to fetch... + if (static::LIMIT === count($activities)) { + self::dispatch($this->collection, isFirstRun: false)->afterCommit(); + } + }, attempts: 5); + } + + private function latestActivityTimestamp(): ?Carbon + { + if ($this->isFirstRun) { + return null; + } + + return $this->collection + ->activities() + ->where('type', NftTransferType::Burn) + ->latest('timestamp') + ->value('timestamp'); + } + + private function shouldIgnoreCollection(): bool + { + /** + * @var string[] + */ + $blacklisted = config('dashbrd.activity_blacklist', []); + + return collect($blacklisted) + ->map(fn ($collection) => Str::lower($collection)) + ->contains(Str::lower($this->collection->address)); + } + + public function retryUntil(): DateTime + { + return now()->addHours(2); // This is retry PER JOB (i.e. per request)... + } +} diff --git a/app/Jobs/FetchCollectionActivity.php b/app/Jobs/FetchCollectionActivity.php index 2950189ad..6b90462c9 100644 --- a/app/Jobs/FetchCollectionActivity.php +++ b/app/Jobs/FetchCollectionActivity.php @@ -5,6 +5,7 @@ namespace App\Jobs; use App\Data\Web3\CollectionActivity; +use App\Enums\NftTransferType; use App\Jobs\Traits\RecoversFromProviderErrors; use App\Models\Collection; use App\Models\NftActivity; @@ -89,8 +90,6 @@ public function handle(MnemonicWeb3DataProvider $provider): void } $formattedActivities = $activities - // Sometimes the request is returning transfers that are not labeled as any of the values we expect. - // There were times when Mnemonic returned `LABEL_BURN` transfers, so we're filtering them here. ->reject(fn ($activity) => $activity->type === null) ->unique->key() ->map(fn (CollectionActivity $activity) => [ @@ -116,6 +115,12 @@ public function handle(MnemonicWeb3DataProvider $provider): void return; } + $burnActivities = $activities->filter(fn ($activity) => $activity->type === NftTransferType::Burn); + + if ($burnActivities->isNotEmpty()) { + SyncBurnedNfts::dispatch($this->collection, $burnActivities); + } + DB::transaction(function () use ($formattedActivities, $activities) { NftActivity::upsert($formattedActivities, uniqueBy: ['tx_hash', 'log_index', 'collection_id', 'token_number', 'type']); diff --git a/app/Jobs/FetchCollectionBanner.php b/app/Jobs/FetchCollectionBanner.php index a89e1201d..27d86b0f5 100644 --- a/app/Jobs/FetchCollectionBanner.php +++ b/app/Jobs/FetchCollectionBanner.php @@ -40,7 +40,7 @@ public function handle(): void 'collection' => $this->collection->address, ]); - $banner = Mnemonic::getNftCollectionBanner( + $banner = Mnemonic::getCollectionBanner( chain: $this->collection->network->chain(), contractAddress: $this->collection->address ); diff --git a/app/Jobs/FetchCollectionBannerBatch.php b/app/Jobs/FetchCollectionBannerBatch.php index 2e45fa201..4c6fcd3f5 100644 --- a/app/Jobs/FetchCollectionBannerBatch.php +++ b/app/Jobs/FetchCollectionBannerBatch.php @@ -51,7 +51,7 @@ public function handle(): void $collections = Collection::query() ->whereIn('address', $metadata->pluck('contractAddress')) - ->select(['id', 'address', 'extra_attributes']) + ->select(['id', 'name', 'address', 'extra_attributes']) ->get(); $metadata diff --git a/app/Jobs/FetchCollectionFloorPrice.php b/app/Jobs/FetchCollectionFloorPrice.php index 2d6ded945..51ebc7462 100644 --- a/app/Jobs/FetchCollectionFloorPrice.php +++ b/app/Jobs/FetchCollectionFloorPrice.php @@ -53,7 +53,7 @@ public function handle(): void $collection->save(); $web3DataProvider = $this->getWeb3DataProvider(); - $floorPrice = $web3DataProvider->getNftCollectionFloorPrice( + $floorPrice = $web3DataProvider->getCollectionFloorPrice( Chain::from($this->chainId), $this->address ); @@ -79,9 +79,17 @@ public function handle(): void $collection->update([ 'floor_price' => $price, 'floor_price_token_id' => $token?->id, - 'floor_price_retrieved_at' => $token ? $floorPrice->retrievedAt : null, + 'floor_price_retrieved_at' => $floorPrice->retrievedAt, ]); + if ($price !== null) { + $collection->floorPriceHistory()->create([ + 'floor_price' => $price, + 'token_id' => $token->id, + 'retrieved_at' => $floorPrice->retrievedAt, + ]); + } + Log::info('FetchCollectionFloorPrice Job: Set floor price', [ 'chainId' => $this->chainId, 'address' => $this->address, diff --git a/app/Jobs/FetchCollectionNfts.php b/app/Jobs/FetchCollectionNfts.php index 5b97c5139..c4718e582 100644 --- a/app/Jobs/FetchCollectionNfts.php +++ b/app/Jobs/FetchCollectionNfts.php @@ -4,6 +4,7 @@ namespace App\Jobs; +use App\Enums\TokenType; use App\Jobs\Traits\RecoversFromProviderErrors; use App\Jobs\Traits\WithWeb3DataProvider; use App\Models\Collection; @@ -50,6 +51,10 @@ public function handle(): void return; } + if ($this->collection->type !== TokenType::Erc721) { + return; + } + $result = $this->getWeb3DataProvider()->getCollectionsNfts($this->collection, $this->startToken); (new Web3NftHandler(collection: $this->collection)) diff --git a/app/Jobs/FetchCollectionOwners.php b/app/Jobs/FetchCollectionOwners.php index b8dc999cd..f116789c8 100644 --- a/app/Jobs/FetchCollectionOwners.php +++ b/app/Jobs/FetchCollectionOwners.php @@ -15,7 +15,6 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; -use Illuminate\Support\Facades\Log; class FetchCollectionOwners implements ShouldQueue { @@ -35,11 +34,7 @@ public function __construct( */ public function handle(): void { - Log::info('FetchCollectionOwners Job: Processing', [ - 'collection' => $this->collection->address, - ]); - - $owners = Mnemonic::getNftCollectionOwners( + $owners = Mnemonic::getCollectionOwners( chain: $this->collection->network->chain(), contractAddress: $this->collection->address ); @@ -47,11 +42,6 @@ public function handle(): void $this->collection->update([ 'owners' => $owners, ]); - - Log::info('FetchCollectionOwners Job: Handled', [ - 'collection' => $this->collection->address, - 'owners' => $owners, - ]); } public function uniqueId(): string diff --git a/app/Jobs/FetchCollectionTotalVolume.php b/app/Jobs/FetchCollectionTotalVolume.php new file mode 100644 index 000000000..6d14895c0 --- /dev/null +++ b/app/Jobs/FetchCollectionTotalVolume.php @@ -0,0 +1,53 @@ +onQueue(Queues::SCHEDULED_NFTS); + } + + /** + * Execute the job. + */ + public function handle(): void + { + if ($this->collection->openSeaSlug() !== null) { + $this->collection->update([ + 'total_volume' => Opensea::getCollectionTotalVolume($this->collection), + ]); + } + } + + public function uniqueId(): string + { + return static::class.':'.$this->collection->id; + } + + public function retryUntil(): DateTime + { + return now()->addMinutes(20); + } +} diff --git a/app/Jobs/FetchCollectionTraits.php b/app/Jobs/FetchCollectionTraits.php index f866b4589..d450ff05e 100644 --- a/app/Jobs/FetchCollectionTraits.php +++ b/app/Jobs/FetchCollectionTraits.php @@ -8,7 +8,7 @@ use App\Models\Collection; use App\Support\Facades\Mnemonic; use App\Support\Queues; -use App\Support\Web3NftCollectionHandler; +use App\Support\Web3CollectionHandler; use DateTime; use Illuminate\Bus\Batchable; use Illuminate\Bus\Queueable; @@ -41,12 +41,12 @@ public function handle(): void 'collection' => $this->collection->address, ]); - $traits = Mnemonic::getNftCollectionTraits( + $traits = Mnemonic::getCollectionTraits( chain: $this->collection->network->chain(), contractAddress: $this->collection->address ); - (new Web3NftCollectionHandler())->storeTraits($this->collection->id, $traits); + (new Web3CollectionHandler())->storeTraits($this->collection->id, $traits); Log::info('FetchCollectionTraits Job: Handled', [ 'collection' => $this->collection->address, diff --git a/app/Jobs/FetchCollectionVolume.php b/app/Jobs/FetchCollectionVolume.php index 153b35dd8..0a254f71f 100644 --- a/app/Jobs/FetchCollectionVolume.php +++ b/app/Jobs/FetchCollectionVolume.php @@ -6,6 +6,7 @@ use App\Jobs\Traits\RecoversFromProviderErrors; use App\Models\Collection; +use App\Models\TradingVolume; use App\Support\Facades\Mnemonic; use App\Support\Queues; use DateTime; @@ -15,7 +16,6 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; -use Illuminate\Support\Facades\Log; class FetchCollectionVolume implements ShouldQueue { @@ -35,22 +35,22 @@ public function __construct( */ public function handle(): void { - Log::info('FetchCollectionVolume Job: Processing', [ - 'collection' => $this->collection->address, - ]); - - $volume = Mnemonic::getNftCollectionVolume( + $volume = Mnemonic::getLatestCollectionVolume( chain: $this->collection->network->chain(), contractAddress: $this->collection->address ); - $this->collection->update([ - 'volume' => $volume, - ]); + TradingVolume::upsert([ + 'collection_id' => $this->collection->id, + 'volume' => $volume->value, + 'created_at' => $volume->date->toDateString(), + ], uniqueBy: ['collection_id', 'created_at']); - Log::info('FetchCollectionVolume Job: Handled', [ - 'collection' => $this->collection->address, - 'volume' => $volume, + $this->collection->update([ + 'volume' => $volume->value, + 'volume_1d' => $this->collection->totalVolumeSince(now()->subDays(1)), + 'volume_7d' => $this->collection->totalVolumeSince(now()->subDays(7)), + 'volume_30d' => $this->collection->totalVolumeSince(now()->subDays(30)), ]); } diff --git a/app/Jobs/FetchCollectionVolumeHistory.php b/app/Jobs/FetchCollectionVolumeHistory.php new file mode 100644 index 000000000..f82a61a45 --- /dev/null +++ b/app/Jobs/FetchCollectionVolumeHistory.php @@ -0,0 +1,65 @@ +onQueue(Queues::SCHEDULED_COLLECTIONS); + } + + /** + * Execute the job. + */ + public function handle(): void + { + $volumes = Mnemonic::getCollectionVolumeHistory( + chain: $this->collection->network->chain(), + address: $this->collection->address, + ); + + TradingVolume::upsert($volumes->map(fn (Web3Volume $volume) => [ + 'collection_id' => $this->collection->id, + 'volume' => $volume->value, + 'created_at' => $volume->date->toDateString(), + ])->toArray(), uniqueBy: ['collection_id', 'created_at']); + + $this->collection->update([ + 'volume_1d' => $volumes->sortByDesc(fn ($volume) => $volume->date->timestamp)->first()->value, + 'volume_7d' => $this->collection->totalVolumeSince(now()->subDays(7)), + 'volume_30d' => $this->collection->totalVolumeSince(now()->subDays(30)), + ]); + } + + public function uniqueId(): string + { + return static::class.':'.$this->collection->id; + } + + public function retryUntil(): DateTime + { + return now()->addMinutes(10); + } +} diff --git a/app/Jobs/FetchWalletNfts.php b/app/Jobs/FetchWalletNfts.php index 1c294ab81..fc8ebac52 100644 --- a/app/Jobs/FetchWalletNfts.php +++ b/app/Jobs/FetchWalletNfts.php @@ -4,6 +4,8 @@ namespace App\Jobs; +use App\Enums\Chain; +use App\Enums\TokenType; use App\Jobs\Traits\RecoversFromProviderErrors; use App\Jobs\Traits\WithWeb3DataProvider; use App\Models\Network; @@ -34,6 +36,7 @@ public function __construct( public Network $network, public ?string $cursor = null, public ?Carbon $startTimestamp = null, + public ?bool $ownsErc1155Nfts = null, ) { $this->onQueue(Queues::SCHEDULED_WALLET_NFTS); $this->startTimestamp = $this->startTimestamp ?? Carbon::now(); @@ -53,6 +56,8 @@ public function handle(): void $result = $this->getWeb3DataProvider()->getWalletNfts($this->wallet, $this->network, $this->cursor); + $containsErc1155 = $result->nfts->contains(fn ($nft) => $nft->type === TokenType::Erc1155); + $nftHandler = new Web3NftHandler(wallet: $this->wallet, network: $this->network); $nftHandler->store($result->nfts, true); @@ -62,7 +67,8 @@ public function handle(): void $this->wallet, $this->network, $result->nextToken, - $this->startTimestamp + $this->startTimestamp, + $containsErc1155 === true ? true : $this->ownsErc1155Nfts, // If the current set of NFTs contains ERC1155, set to `true`, otherwise proxy through... ); if ($result->nextToken === null) { @@ -74,6 +80,14 @@ public function handle(): void ]); $nftHandler->cleanupNftsAndGalleries($this->startTimestamp); + + $field = $this->network->chain() === Chain::ETH + ? 'owns_erc1155_tokens_eth' + : 'owns_erc1155_tokens_polygon'; + + $this->wallet->update([ + $field => $this->ownsErc1155Nfts || $containsErc1155, + ]); } // clear individual dirty gallery caches so they update ASAP diff --git a/app/Jobs/RefreshNftMetadata.php b/app/Jobs/RefreshNftMetadata.php index 94dcad77d..529880d2a 100644 --- a/app/Jobs/RefreshNftMetadata.php +++ b/app/Jobs/RefreshNftMetadata.php @@ -22,30 +22,47 @@ class RefreshNftMetadata implements ShouldBeUnique, ShouldQueue { - use Dispatchable; - use InteractsWithQueue; - use Queueable; - use RecoversFromProviderErrors; - use SerializesModels; + use Dispatchable, InteractsWithQueue, Queueable, RecoversFromProviderErrors, SerializesModels; /** - * Create a new job instance. + * Execute the job. */ - public function __construct() + public function handle(AlchemyWeb3DataProvider $provider): void { - // + Network::onlyMainnet()->get()->each(function ($network) use ($provider) { + $this->refreshForNetwork($network, $provider); + }); } - /** - * Execute the job. - */ - public function handle(AlchemyWeb3DataProvider $provider): void + private function refreshForNetwork(Network $network, AlchemyWeb3DataProvider $provider): void { - $networks = Network::onlyMainnet()->get(); + $nfts = Nft::query() + ->whereNull('burned_at') + ->whereNotNull('metadata_requested_at') + ->whereHas('collection', fn ($q) => $q->where('network_id', $network->id)) + ->where(function ($query) { + return $query->whereNull('metadata_fetched_at') + ->orWhereRaw('metadata_fetched_at < metadata_requested_at'); + }) + ->get(); + + if (count($nfts) === 0) { + Log::info('RefreshNftMetadata Job: No nfts found for metadata update. Aborting.'); - foreach ($networks as $network) { - $this->refreshNftMetadataByNetwork($network, $provider); + return; } + + // Chunk by 100 to comply with Alchemy's batch limit... + $nfts->chunk(100)->map(function ($nftsChunk) use ($provider, $network) { + $result = $provider->getNftMetadata($nftsChunk, $network); + + (new Web3NftHandler(network: $network))->store($result->nfts); + }); + + Log::info('RefreshNftMetadata Job: Handled with Web3NftHandler', [ + 'nfts_count' => $nfts->count(), + 'network' => $network->id, + ]); } public function uniqueId(): string @@ -68,40 +85,4 @@ public function retryUntil(): DateTime { return now()->addMinutes(10); } - - /** - * Fetch nft metadata for a network. - * - * @return void - */ - private function refreshNftMetadataByNetwork(Network $network, AlchemyWeb3DataProvider $provider) - { - - $nfts = Nft::whereNotNull('metadata_requested_at') - ->whereHas('collection', function ($query) use ($network) { - $query->where('network_id', $network->id); - }) - ->where(function ($query) { - $query->whereNull('metadata_fetched_at')->orWhereRaw('metadata_fetched_at < metadata_requested_at'); - }) - ->get(); - - if (count($nfts) === 0) { - Log::info('RefreshNftMetadata Job: No nfts found for metadata update. Aborting.'); - - return; - } - - // Chunk by 100 to comply with Alchemy's nfts batch limit. - $nfts->chunk(100)->map(function ($nftsChunk) use ($provider, $network) { - $result = $provider->getNftMetadata($nftsChunk, $network); - - (new Web3NftHandler(network: $network))->store($result->nfts); - }); - - Log::info('RefreshNftMetadata Job: Handled with Web3NftHandler', [ - 'nfts_count' => $nfts->count(), - 'network' => $network->id, - ]); - } } diff --git a/app/Jobs/RefreshWalletCollections.php b/app/Jobs/RefreshWalletCollections.php index e88729743..cd358e01d 100644 --- a/app/Jobs/RefreshWalletCollections.php +++ b/app/Jobs/RefreshWalletCollections.php @@ -44,7 +44,7 @@ public function handle(): void new FetchCollectionFloorPrice($collection->network->chain_id, $collection->address), new FetchCollectionTraits($collection), new FetchCollectionOwners($collection), - new FetchCollectionVolume($collection), + new FetchCollectionTotalVolume($collection), ]))->finally(function () use ($wallet) { $wallet->update([ 'is_refreshing_collections' => false, diff --git a/app/Jobs/SyncBurnedNfts.php b/app/Jobs/SyncBurnedNfts.php new file mode 100644 index 000000000..f91ed7a38 --- /dev/null +++ b/app/Jobs/SyncBurnedNfts.php @@ -0,0 +1,69 @@ + $activity + */ + public function __construct( + public Collection $collection, + public LaravelCollection $activity, + ) { + $this->onQueue(Queues::SCHEDULED_NFTS); + } + + /** + * Execute the job. + */ + public function handle(): void + { + if (! config('dashbrd.features.activities') || ! $this->collection->indexesActivities()) { + return; + } + + $nfts = $this->collection + ->nfts() + ->whereIn('token_number', $this->activity->map->tokenId) + ->get(); + + if ($nfts->contains->isBurned()) { + report(new RuntimeException( + 'There are some NFTs that have been previously burned, yet we got another LABEL_BURN event for them. IDs: '.$nfts->filter->isBurned()->pluck('id')->join(',') + )); + } + + $activity = $this->activity->unique('tokenId')->keyBy('tokenId'); + + DB::transaction(function () use ($nfts, $activity) { + $nfts->each(fn ($nft) => $nft->update([ + 'burned_at' => $activity[$nft->token_number]->timestamp, + ])); + }, attempts: 3); + } + + public function retryUntil(): DateTime + { + // This job only runs database queries, so we don't expect it to fail... However, let's give it some time to run, so we are covered. + + return now()->addHours(1); + } +} diff --git a/app/Jobs/SyncCollection.php b/app/Jobs/SyncCollection.php index 7d3093b34..370cedb07 100644 --- a/app/Jobs/SyncCollection.php +++ b/app/Jobs/SyncCollection.php @@ -33,7 +33,6 @@ public function handle(): void Bus::batch([ new FetchCollectionTraits($this->collection), new FetchCollectionOwners($this->collection), - new FetchCollectionVolume($this->collection), ])->name('Syncing Collection #'.$this->collection->id)->dispatch(); } diff --git a/app/Models/Article.php b/app/Models/Article.php index 3cf236558..8e70f4ca5 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -82,7 +82,9 @@ public function renderedMarkdown(): string */ public function collections(): BelongsToMany { - return $this->belongsToMany(Collection::class, 'article_collection')->withPivot('order_index'); + return $this->belongsToMany(Collection::class, 'article_collection') + ->erc721() + ->withPivot('order_index'); } /** diff --git a/app/Models/Collection.php b/app/Models/Collection.php index 41a0dcb82..5ed0bec61 100644 --- a/app/Models/Collection.php +++ b/app/Models/Collection.php @@ -6,7 +6,11 @@ use App\Casts\StrippedHtml; use App\Enums\CurrencyCode; +use App\Enums\TokenType; use App\Models\Traits\BelongsToNetwork; +use App\Models\Traits\HasFloorPriceHistory; +use App\Models\Traits\HasVolume; +use App\Models\Traits\HasWalletVotes; use App\Models\Traits\Reportable; use App\Notifications\CollectionReport; use App\Support\BlacklistedCollections; @@ -33,17 +37,24 @@ * @property ?string $floor_price * @property ?string $last_indexed_token_number * @property ?string $image + * @property \Illuminate\Database\Eloquent\Collection $cachedNfts * * @method BelongsToMany
articlesWithCollections() */ class Collection extends Model { - use BelongsToNetwork, HasEagerLimit, HasFactory, HasSlug, Reportable, SoftDeletes; + use BelongsToNetwork, HasEagerLimit, HasFactory, HasFloorPriceHistory, + HasSlug, HasVolume, HasWalletVotes, Reportable, SoftDeletes; const TWITTER_URL = 'https://x.com/'; const DISCORD_URL = 'https://discord.gg/'; + /** + * @var \Illuminate\Database\Eloquent\Collection + */ + public $cachedNfts; + /** * @var array */ @@ -56,6 +67,7 @@ class Collection extends Model */ protected $casts = [ 'description' => StrippedHtml::class, + 'type' => TokenType::class, 'floor_price_retrieved_at' => 'datetime', 'extra_attributes' => SchemalessAttributes::class, 'fiat_value' => 'json', @@ -65,6 +77,7 @@ class Collection extends Model 'is_fetching_activity' => 'bool', 'activity_updated_at' => 'datetime', 'activity_update_requested_at' => 'datetime', + 'is_featured' => 'bool', ]; /** @@ -81,10 +94,21 @@ public function floorPriceToken(): HasOne public function getSlugOptions(): SlugOptions { return SlugOptions::create() - ->generateSlugsFrom('name') + ->generateSlugsFrom(fn (self $model) => $this->preventForbiddenSlugs($model)) ->saveSlugsTo('slug'); } + private function preventForbiddenSlugs(self $model): string + { + $forbidden = ['collection-of-the-month', 'popular']; + + if (in_array(Str::slug($model->name), $forbidden, true)) { + return $model->name.' Collection'; + } + + return $model->name; + } + /** * @return HasMany */ @@ -201,9 +225,18 @@ public function fiatValue(CurrencyCode $currency): ?float * @param Builder $query * @return Builder */ - public function scopeOrderByValue(Builder $query, Wallet $wallet, string $direction, CurrencyCode $currency = CurrencyCode::USD): Builder + public function scopeErc721(Builder $query): Builder + { + return $query->where('collections.type', TokenType::Erc721); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeOrderByValue(Builder $query, ?Wallet $wallet, ?string $direction, ?CurrencyCode $currency = CurrencyCode::USD): Builder { - $nullsPosition = strtolower($direction) === 'asc' ? 'NULLS FIRST' : 'NULLS LAST'; + $walletFilter = $wallet ? "WHERE nfts.wallet_id = $wallet->id" : ''; return $query->selectRaw( sprintf('collections.*, (CAST(collections.fiat_value->>\'%s\' AS float)::float * MAX(nc.nfts_count)::float) as total_value', $currency->value) @@ -213,11 +246,11 @@ public function scopeOrderByValue(Builder $query, Wallet $wallet, string $direct collection_id, count(*) as nfts_count FROM nfts - WHERE nfts.wallet_id = $wallet->id + {$walletFilter} GROUP BY collection_id ) nc"), 'collections.id', '=', 'nc.collection_id') ->groupBy('collections.id') - ->orderByRaw("total_value {$direction} {$nullsPosition}") + ->orderByWithNulls('total_value', $direction) ->orderBy('collections.id', $direction); } @@ -228,11 +261,9 @@ public function scopeOrderByValue(Builder $query, Wallet $wallet, string $direct */ public function scopeOrderByFloorPrice(Builder $query, string $direction, CurrencyCode $currency = CurrencyCode::USD): Builder { - $nullsPosition = $direction === 'asc' ? 'NULLS FIRST' : 'NULLS LAST'; - return $query->selectRaw( sprintf('collections.*, CAST(collections.fiat_value->>\'%s\' AS float) as total_floor_price', $currency->value) - )->orderByRaw("total_floor_price {$direction} {$nullsPosition}"); + )->orderByWithNulls('total_floor_price', $direction); } /** @@ -242,9 +273,7 @@ public function scopeOrderByFloorPrice(Builder $query, string $direction, Curren */ public function scopeOrderByName(Builder $query, string $direction): Builder { - $nullsPosition = $direction === 'asc' ? 'NULLS FIRST' : 'NULLS LAST'; - - return $query->orderByRaw("lower(collections.name) {$direction} {$nullsPosition}"); + return $query->orderByWithNulls('lower(collections.name)', $direction); } /** @@ -254,11 +283,7 @@ public function scopeOrderByName(Builder $query, string $direction): Builder */ public function scopeOrderByMintDate(Builder $query, string $direction): Builder { - if ($direction === 'asc') { - return $query->orderByRaw('minted_at ASC NULLS FIRST'); - } - - return $query->orderByRaw('minted_at DESC NULLS LAST'); + return $query->orderByWithNulls('minted_at', $direction); } /** @@ -280,11 +305,7 @@ public function scopeOrderByReceivedDate(Builder $query, Wallet $wallet, string ->addSelect(DB::raw('MAX(nft_activity.timestamp) as received_at')) ->groupBy('collections.id'); - if ($direction === 'asc') { - return $query->orderByRaw('received_at ASC NULLS FIRST'); - } - - return $query->orderByRaw('received_at DESC NULLS LAST'); + return $query->orderByWithNulls('received_at', $direction); } /** @@ -302,6 +323,25 @@ public function scopeOrderByChainId(Builder $query, string $direction): Builder return $query->orderBy($select, $direction); } + /** + * @param Builder $query + * @return Builder + */ + public function scopeFilterByChainId(Builder $query, ?int $chainId): Builder + { + if (empty($chainId)) { + return $query; + } + + /** @var Network $network */ + $network = Network::query() + ->select('id') + ->where('networks.chain_id', $chainId) + ->first(); + + return $query->where('collections.network_id', $network->id); + } + /** * @param Builder $query * @return Builder @@ -330,6 +370,19 @@ public function scopeSearch(Builder $query, User $user, ?string $searchQuery): B }); } + /** + * @param Builder $query + * @return Builder + */ + public function scopeSearchByName(Builder $query, ?string $searchQuery): Builder + { + if ($searchQuery === null || $searchQuery === '') { + return $query; + } + + return $query->where('collections.name', 'ilike', sprintf('%%%s%%', $searchQuery)); + } + /** * @param Builder $query * @return Builder @@ -515,7 +568,7 @@ public function isBlacklisted(): bool */ public function scopeOrderByOldestNftLastFetchedAt(Builder $query): Builder { - return $query->orderByRaw('extra_attributes->>\'nft_last_fetched_at\' ASC NULLS FIRST'); + return $query->orderByWithNulls('extra_attributes->>\'nft_last_fetched_at\'', 'asc'); } /** @@ -524,7 +577,7 @@ public function scopeOrderByOldestNftLastFetchedAt(Builder $query): Builder */ public function scopeOrderByFloorPriceLastFetchedAt(Builder $query): Builder { - return $query->orderByRaw('extra_attributes->>\'floor_price_last_fetched_at\' ASC NULLS FIRST'); + return $query->orderByWithNulls('extra_attributes->>\'floor_price_last_fetched_at\'', 'asc'); } /** @@ -533,11 +586,120 @@ public function scopeOrderByFloorPriceLastFetchedAt(Builder $query): Builder */ public function scopeOrderByOpenseaSlugLastFetchedAt(Builder $query): Builder { - return $query->orderByRaw('extra_attributes->>\'opensea_slug_last_fetched_at\' ASC NULLS FIRST'); + return $query->orderByWithNulls('extra_attributes->>\'opensea_slug_last_fetched_at\'', 'asc'); } public function isSpam(): bool { return SpamContract::isSpam($this->address, $this->network); } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeFeatured(Builder $query): Builder + { + return $query->where('is_featured', true); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeVotable(Builder $query): Builder + { + return $query->addFloorPriceChange() + ->addSelect([ + 'collections.*', + DB::raw('MIN(floor_price_token.symbol) as floor_price_symbol'), + DB::raw('MIN(floor_price_token.decimals) as floor_price_decimals'), + ]) + ->leftJoin('tokens as floor_price_token', 'collections.floor_price_token_id', '=', 'floor_price_token.id') + ->withCount('nfts') + ->groupBy('collections.id'); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeAddFloorPriceChange(Builder $query): Builder + { + return $query->addSelect( + DB::raw("( + SELECT + (AVG(case when fp1.retrieved_at >= CURRENT_DATE then fp1.floor_price end) - + AVG(case when fp1.retrieved_at >= CURRENT_DATE - INTERVAL '1 DAY' AND fp1.retrieved_at < CURRENT_DATE then fp1.floor_price end)) / + NULLIF(AVG(case when fp1.retrieved_at >= CURRENT_DATE - INTERVAL '1 DAY' AND fp1.retrieved_at < CURRENT_DATE then fp1.floor_price end) * 100, 0) + FROM + floor_price_history fp1 + WHERE + fp1.collection_id = collections.id AND + fp1.retrieved_at >= CURRENT_DATE - INTERVAL '1 DAY' + ) AS price_change_24h + ") + ); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeVotedByUserInCurrentMonth(Builder $query, User $user): Builder + { + return $query->whereHas('votes', fn ($q) => $q->inCurrentMonth()->where('wallet_id', $user->wallet_id)); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeWinnersOfThePreviousMonth(Builder $query): Builder + { + return $query + ->withCount(['votes' => fn ($query) => $query->inPreviousMonth()]) + // order by votes count excluding nulls + ->whereHas('votes', fn ($query) => $query->inPreviousMonth()) + ->orderBy('votes_count', 'desc'); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeEligibleToWin(Builder $query): Builder + { + return $query->whereNotIn('collections.id', CollectionWinner::ineligibleCollectionIds()); + } + + /** + * @return array + */ + public static function getFiatValueSum(): array + { + return DB::select('SELECT + key, COALESCE(SUM(value::numeric), 0) as total + FROM + collections, jsonb_each_text(fiat_value) as currencies(key,value) + GROUP BY key;' + ); + } + + /** + * Modify the query to apply ORDER BY, but with respect to NULL values. + * If direction is ascending, the query will order NULL values first, + * otherwise it will order NULL values last. + * + * @param Builder $query + * @return Builder + */ + public function scopeOrderByWithNulls(Builder $query, string $column, string $direction): Builder + { + $nullsPosition = strtolower($direction) === 'asc' + ? 'NULLS FIRST' + : 'NULLS LAST'; + + return $query->orderByRaw("{$column} {$direction} {$nullsPosition}"); + } } diff --git a/app/Models/CollectionVote.php b/app/Models/CollectionVote.php new file mode 100644 index 000000000..3cbd056dd --- /dev/null +++ b/app/Models/CollectionVote.php @@ -0,0 +1,67 @@ + 'datetime', + ]; + + /** + * @return BelongsTo + */ + public function wallet(): BelongsTo + { + return $this->belongsTo(Wallet::class); + } + + /** + * @return BelongsTo + */ + public function collection(): BelongsTo + { + return $this->belongsTo(Collection::class); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeInCurrentMonth(Builder $query): Builder + { + return $query->whereBetween('voted_at', [ + Carbon::now()->startOfMonth(), + Carbon::now()->endOfMonth(), + ]); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeInPreviousMonth(Builder $query): Builder + { + return $query->whereBetween('voted_at', [ + Carbon::now()->subMonth()->startOfMonth(), + Carbon::now()->subMonth()->endOfMonth(), + ]); + } +} diff --git a/app/Models/CollectionWinner.php b/app/Models/CollectionWinner.php new file mode 100644 index 000000000..390358864 --- /dev/null +++ b/app/Models/CollectionWinner.php @@ -0,0 +1,89 @@ + + */ + protected $casts = [ + 'votes' => 'int', + 'month' => 'int', + 'year' => 'int', + 'rank' => 'int', + ]; + + /** + * @return BelongsTo + */ + public function collection(): BelongsTo + { + return $this->belongsTo(Collection::class); + } + + /** + * Ineligible collections are those that have already been announced winners. + * + * @return LaravelCollection + */ + public static function ineligibleCollectionIds(): LaravelCollection + { + return static::query() + ->distinct('collection_id') + ->where('rank', 1) + ->pluck('collection_id'); + } + + /** + * @return LaravelCollection + */ + public static function getByMonth(): LaravelCollection + { + $winners = static::query() + ->with('collection', 'collection.floorPriceToken', 'collection.network.nativeToken') + ->orderBy('year', 'desc') + ->orderBy('month', 'desc') + ->get() + ->groupBy(fn ($winner) => $winner->month.'-'.$winner->year); + + return $winners->map(function ($winners) { + $collections = $winners->sortBy('rank')->map( + fn ($winner) => CollectionOfTheMonthData::fromModel($winner) + )->values(); + + return new CollectionWinnersData( + year: $winners[0]->year, + month: $winners[0]->month, + winners: $collections, + ); + })->values(); + } + + /** + * @return LaravelCollection + */ + public static function current(): LaravelCollection + { + $previousMonth = now()->subMonth(); + + return static::query() + ->where('year', $previousMonth->year) + ->where('month', $previousMonth->month) + ->with('collection', 'collection.floorPriceToken', 'collection.network.nativeToken') + ->orderBy('rank', 'asc') + ->limit(3) + ->get(); + } +} diff --git a/app/Models/FloorPriceHistory.php b/app/Models/FloorPriceHistory.php new file mode 100644 index 000000000..d90e08fb7 --- /dev/null +++ b/app/Models/FloorPriceHistory.php @@ -0,0 +1,38 @@ + + */ + protected $fillable = [ + 'floor_price', + 'token_id', + 'retrieved_at', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'retrieved_at' => 'datetime', + ]; +} diff --git a/app/Models/Gallery.php b/app/Models/Gallery.php index e46d297ed..06f93383b 100644 --- a/app/Models/Gallery.php +++ b/app/Models/Gallery.php @@ -79,8 +79,8 @@ public function getRouteKeyName() public function nfts(): BelongsToMany { return $this->belongsToMany(Nft::class, 'nft_gallery') - ->whereNull('nft_gallery.deleted_at') - ->withPivot('order_index'); + ->whereNull('nft_gallery.deleted_at') + ->withPivot('order_index'); } public function value(CurrencyCode $currency): ?float @@ -95,7 +95,7 @@ public function value(CurrencyCode $currency): ?float */ public function collections(): Collection { - return CollectionModel::with('network')->whereIn('id', function ($query) { + return CollectionModel::erc721()->with('network')->whereIn('id', function ($query) { return $query->select('collection_id')->from('nfts')->whereIn('nfts.id', function ($query) { return $query->select('nft_id')->from('nft_gallery')->where('gallery_id', $this->id); }); @@ -158,7 +158,7 @@ public function scopeMostValuable(Builder $query, CurrencyCode $currency): Build /** * @param null|array $galleriesIds */ - public static function updateValues(array $galleriesIds = null): void + public static function updateValues(?array $galleriesIds = null): void { $calculateValueQuery = get_query('gallery.calculate_value'); diff --git a/app/Models/Nft.php b/app/Models/Nft.php index b3c2671d0..1f9cf3d5e 100644 --- a/app/Models/Nft.php +++ b/app/Models/Nft.php @@ -36,6 +36,7 @@ class Nft extends Model 'name', 'extra_attributes', 'token_number', + 'burned_at', ]; /** @@ -44,6 +45,7 @@ class Nft extends Model * @var array */ protected $casts = [ + 'burned_at' => 'datetime', 'last_viewed_at' => 'datetime', 'last_activity_fetched_at' => 'datetime', 'extra_attributes' => SchemalessAttributes::class, @@ -293,4 +295,9 @@ public static function paginatedCollectionNfts( $collections->firstWhere('id', $nft->collection_id) )); } + + public function isBurned(): bool + { + return $this->burned_at !== null; + } } diff --git a/app/Models/Token.php b/app/Models/Token.php index 8a018e300..cf3a0136d 100644 --- a/app/Models/Token.php +++ b/app/Models/Token.php @@ -9,6 +9,9 @@ use App\Enums\CurrencyCode; use App\Models\Traits\BelongsToNetwork; use App\Models\Traits\BelongsToTokenGuid; +use Brick\Math\BigDecimal; +use Brick\Math\BigInteger; +use Brick\Math\RoundingMode; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; @@ -265,4 +268,30 @@ public function marketData(CurrencyCode $currency = CurrencyCode::USD): array 'atl' => $resolve('atl'), ]; } + + /** + * Get the current fiat price of a token in the given currency. + */ + public function currentPrice(CurrencyCode $currency): ?float + { + return $this->extra_attributes->get('market_data.current_prices')[$currency->canonical()] ?? null; + } + + /** + * Calculate the current fiat price of a value of a token in a given currency. + */ + public function toCurrentFiat(string $value, CurrencyCode $currency = CurrencyCode::USD): ?BigDecimal + { + $price = $this->currentPrice($currency); + + if ($price === null) { + return null; + } + + // (amount * price) / 10^decimals + + return BigDecimal::of($value) + ->multipliedBy($price) + ->dividedBy(BigInteger::ten()->power($this->decimals), roundingMode: RoundingMode::DOWN); + } } diff --git a/app/Models/TradingVolume.php b/app/Models/TradingVolume.php new file mode 100644 index 000000000..fcf579168 --- /dev/null +++ b/app/Models/TradingVolume.php @@ -0,0 +1,24 @@ + + */ + public function collection(): BelongsTo + { + return $this->belongsTo(Collection::class); + } +} diff --git a/app/Models/Traits/BelongsToNetwork.php b/app/Models/Traits/BelongsToNetwork.php index 81ecfed96..88d263940 100644 --- a/app/Models/Traits/BelongsToNetwork.php +++ b/app/Models/Traits/BelongsToNetwork.php @@ -5,6 +5,7 @@ namespace App\Models\Traits; use App\Models\Network; +use App\Models\Token; use Illuminate\Database\Eloquent\Relations\BelongsTo; trait BelongsToNetwork @@ -16,4 +17,9 @@ public function network(): BelongsTo { return $this->belongsTo(Network::class); } + + public function nativeToken(): Token + { + return $this->network->nativeToken; + } } diff --git a/app/Models/Traits/HasFloorPriceHistory.php b/app/Models/Traits/HasFloorPriceHistory.php new file mode 100644 index 000000000..51dd149ed --- /dev/null +++ b/app/Models/Traits/HasFloorPriceHistory.php @@ -0,0 +1,19 @@ + + */ + public function floorPriceHistory(): HasMany + { + return $this->hasMany(FloorPriceHistory::class); + } +} diff --git a/app/Models/Traits/HasVolume.php b/app/Models/Traits/HasVolume.php new file mode 100644 index 000000000..cf643f70d --- /dev/null +++ b/app/Models/Traits/HasVolume.php @@ -0,0 +1,101 @@ + + */ + public function volumes(): HasMany + { + return $this->hasMany(TradingVolume::class); + } + + /** + * Calculate the total collection volume since the given time period. + */ + public function totalVolumeSince(Carbon $date): string + { + return $this->volumes() + ->selectRaw('sum(volume::numeric) as total') + ->where('created_at', '>=', $date->startOfDay()) + ->value('total') ?? '0'; + } + + /** + * Get the collection volume, but respecting the volume in the given period. + * If no period is provided, get the total collection volume. + */ + public function getVolume(?Period $period = null): ?string + { + return match ($period) { + Period::DAY => $this->volume_1d, + Period::WEEK => $this->volume_7d, + Period::MONTH => $this->volume_30d, + default => $this->total_volume, + }; + } + + /** + * Create a volume DTO based on the volume in the given period. + */ + public function createVolumeData(Period $period, ?CurrencyCode $currency = CurrencyCode::USD): VolumeData + { + $volume = $this->getVolume($period); + $token = $this->nativeToken(); + + return new VolumeData( + value: $volume, + fiat: $volume !== null ? $token->toCurrentFiat($volume, $currency)?->toFloat() : null, + currency: $token->symbol, + decimals: $token->decimals, + ); + } + + /** + * Scope the query to order the collections by the volume, but respecting the volume in the given period. + * + * @param Builder $query + * @return Builder + */ + public function scopeOrderByVolume(Builder $query, ?Period $period = null, ?CurrencyCode $currency = null): Builder + { + $column = match ($period) { + Period::DAY => 'volume_1d::numeric', + Period::WEEK => 'volume_7d::numeric', + Period::MONTH => 'volume_30d::numeric', + default => 'total_volume::numeric', + }; + + // If no currency is passed, we'll order by the WEI value... + if ($currency === null) { + return $query->orderByWithNulls($column, 'desc'); + } + + $subselect = DB::raw("(min(native_token.extra_attributes->'market_data'->'current_prices'->>'{$currency->canonical()}')::numeric * {$column} / (10 ^ max(native_token.decimals))) as volume_fiat"); + + return $query + ->addSelect('collections.*') + ->leftJoin( + 'tokens as native_token', + 'native_token.id', + '=', + DB::raw('(select max(id) from tokens where "tokens"."network_id" = "collections"."network_id" and is_native_token = true limit 1)') + ) + ->addSelect($subselect) + ->groupBy('collections.id') + ->orderByWithNulls('volume_fiat', 'desc'); + } +} diff --git a/app/Models/Traits/HasWalletVotes.php b/app/Models/Traits/HasWalletVotes.php new file mode 100644 index 000000000..140b3a0a3 --- /dev/null +++ b/app/Models/Traits/HasWalletVotes.php @@ -0,0 +1,29 @@ + + */ + public function votes(): HasMany + { + return $this->hasMany(CollectionVote::class); + } + + public function addVote(Wallet $wallet): void + { + $this->votes()->updateOrCreate([ + 'wallet_id' => $wallet->id, + 'voted_at' => Carbon::now(), + ]); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index f36ad1432..b8c9dc43f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -115,7 +115,7 @@ public function nfts(): HasManyThrough */ public function collections(): Builder { - return Collection::whereIn('collections.id', function ($query) { + return Collection::erc721()->whereIn('collections.id', function ($query) { return $query->select('collection_id')->from('nfts')->whereIn('nfts.wallet_id', $this->wallets()->select('id')); }); } @@ -128,7 +128,7 @@ public function hiddenCollections(): BelongsToMany return $this->belongsToMany(Collection::class, 'hidden_collections'); } - public function collectionsValue(CurrencyCode $currency, bool $readFromDatabase = true, bool $onlyHidden = null): ?float + public function collectionsValue(CurrencyCode $currency, bool $readFromDatabase = true, ?bool $onlyHidden = null): ?float { if (! $readFromDatabase) { $query = get_query($onlyHidden ? 'users.calculate_collections_value_hidden' : 'users.calculate_collections_value_shown', [ diff --git a/app/Models/Wallet.php b/app/Models/Wallet.php index 92c742e4f..3b19b1764 100644 --- a/app/Models/Wallet.php +++ b/app/Models/Wallet.php @@ -46,9 +46,13 @@ class Wallet extends Model 'onboarded_at', 'is_refreshing_collections', 'refreshed_collections_at', + 'owns_erc1155_tokens_eth', + 'owns_erc1155_tokens_polygon', ]; protected $casts = [ + 'owns_erc1155_tokens_eth' => 'bool', + 'owns_erc1155_tokens_polygon' => 'bool', 'extra_attributes' => SchemalessAttributes::class, 'total_usd' => 'float', 'last_activity_at' => 'datetime', @@ -63,6 +67,14 @@ public static function findByAddress(string $address): ?self return Wallet::where('address', $address)->first(); } + /** + * @return HasMany + */ + public function votes(): HasMany + { + return $this->hasMany(CollectionVote::class); + } + /** * @return HasOne */ diff --git a/app/Observers/ArticleObserver.php b/app/Observers/ArticleObserver.php index 51fb62e73..537d25b03 100644 --- a/app/Observers/ArticleObserver.php +++ b/app/Observers/ArticleObserver.php @@ -24,6 +24,28 @@ public function updated(Article $article): void $this->forgetMetaDescriptionCache($article); } + public function saved(): void + { + $this->flushCache(); + } + + public function deleted(): void + { + $this->flushCache(); + } + + public function restored(): void + { + $this->flushCache(); + } + + private function flushCache(): void + { + // Flush the cached articles used on the "Collections" page... + Cache::forget('articles:latest'); + Cache::forget('articles:popular'); + } + private function prepareArticleSpeech(Article $article): void { if (! config('dashbrd.text_to_speech.enabled')) { diff --git a/app/Policies/CollectionPolicy.php b/app/Policies/CollectionPolicy.php index 725ce804c..e2d4517b1 100644 --- a/app/Policies/CollectionPolicy.php +++ b/app/Policies/CollectionPolicy.php @@ -16,7 +16,7 @@ public function viewAny(User $user): bool public function view(User $user, Collection $collection): bool { - return $user->hasPermissionTo('user:view', 'admin'); + return $user->hasPermissionTo('collection:view', 'admin'); } public function create(User $user): bool @@ -26,7 +26,7 @@ public function create(User $user): bool public function update(User $user, Collection $collection): bool { - return false; + return $user->hasPermissionTo('collection:update', 'admin'); } public function delete(User $user, Collection $collection): bool diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 866bef907..362c63163 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -19,6 +19,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Str; class AppServiceProvider extends ServiceProvider { @@ -54,6 +55,10 @@ public function register(): void */ public function boot(): void { + Str::macro('isEncodedImage', function (string $value) { + return Str::startsWith($value, 'data:image'); + }); + // `$type` needs to be an instance of ToastType. However, adding that makes PHPStan fail with Internal Error... // Make sure to check this from time to time if this has been fixed... We'd much more prefer to have an enum instead of string.. RedirectResponse::macro('toast', function (string $message, string $type = 'info', bool $expanded = false, bool $loading = false) { diff --git a/app/Repositories/ArticleRepository.php b/app/Repositories/ArticleRepository.php new file mode 100644 index 000000000..70322e96c --- /dev/null +++ b/app/Repositories/ArticleRepository.php @@ -0,0 +1,59 @@ + + */ + public function latest(): DataCollection + { + // TTL is mostly irrelevant here as the cache will be flushed whenever any article is + // updated and whenever we update the view count (once an hour)... + $ttl = now()->addHours(24); + + return Cache::remember('articles:latest', $ttl, function () { + $articles = Article::isPublished() + ->with('media', 'user.media') + ->withRelatedCollections() + ->sortByPublishedDate() + ->limit(8) + ->get(); + + return ArticleData::collection($articles); + }); + } + + /** + * Get the 8 most popular articles for the home page. + * + * @return DataCollection + */ + public function popular(): DataCollection + { + // TTL is mostly irrelevant here as the cache will be flushed whenever any article is + // updated and whenever we update the view count (once an hour)... + $ttl = now()->addHours(24); + + return Cache::remember('articles:popular', $ttl, function () { + $articles = Article::isPublished() + ->with('media', 'user.media') + ->withRelatedCollections() + ->sortByPopularity() + ->limit(8) + ->get(); + + return ArticleData::collection($articles); + }); + } +} diff --git a/app/Repositories/CollectionMetricsRepository.php b/app/Repositories/CollectionMetricsRepository.php new file mode 100644 index 000000000..791bca4e0 --- /dev/null +++ b/app/Repositories/CollectionMetricsRepository.php @@ -0,0 +1,60 @@ +addHour(), fn () => [ + 'fiatValues' => collect(Collection::getFiatValueSum()), + 'collectionsCount' => Collection::count(), + 'nftsCount' => Nft::count(), + ]); + + return new CollectionStatsData( + nfts: $stats['nftsCount'], + collections: $stats['collectionsCount'], + value: (float) $stats['fiatValues']->where('key', $currency->value)->first()?->total ?: 0 + ); + } + + /** + * Generate the metrics for the user's collections. + */ + public function forUser(User $user, bool $showHidden): CollectionStatsData + { + $cache = new UserCache($user); + + return new CollectionStatsData( + nfts: $showHidden ? $cache->hiddenNftsCount() : $cache->shownNftsCount(), + collections: $showHidden ? $cache->hiddenCollectionsCount() : $cache->shownCollectionsCount(), + value: $user->collectionsValue($user->currency(), readFromDatabase: false, onlyHidden: $showHidden), + ); + } + + /** + * Generate the dummy metrics data filled with zeros. + */ + public function zeros(): CollectionStatsData + { + return new CollectionStatsData( + nfts: 0, + collections: 0, + value: 0, + ); + } +} diff --git a/app/Repositories/CollectionRepository.php b/app/Repositories/CollectionRepository.php new file mode 100644 index 000000000..c63d2f8bd --- /dev/null +++ b/app/Repositories/CollectionRepository.php @@ -0,0 +1,42 @@ + + */ + public function allPopular( + ?string $searchQuery, Period $period, CurrencyCode $currency, int $perPage, ?Chain $chain, ?string $sortBy, string $order + ): LengthAwarePaginator { + return Collection::query() + ->searchByName($searchQuery) + ->when($sortBy === null, fn ($q) => $q->orderByVolume($period, currency: $chain === null ? $currency : null)) + ->when($sortBy === 'name', fn ($q) => $q->orderByName($order)) + ->when($sortBy === 'value', fn ($q) => $q->orderByValue(null, $order, $currency)) + ->when($sortBy === 'floor-price', fn ($q) => $q->orderByFloorPrice($order, $currency)) + ->when($sortBy === 'chain', fn ($q) => $q->orderByChainId($order)) + ->filterByChainId($chain?->value) + ->orderByFloorPrice('desc', $currency) + ->with([ + 'network', + 'network.nativeToken', + 'floorPriceToken', + 'nfts' => fn ($q) => $q->limit(4), + ]) + ->withCount('nfts') + ->paginate($perPage) + ->withQueryString(); + } +} diff --git a/app/Services/MarketData/Providers/CoingeckoProvider.php b/app/Services/MarketData/Providers/CoingeckoProvider.php index 769aa5e26..fba1ea83d 100644 --- a/app/Services/MarketData/Providers/CoingeckoProvider.php +++ b/app/Services/MarketData/Providers/CoingeckoProvider.php @@ -110,7 +110,7 @@ public function getCurrencies(): array * * @return DataCollection */ - public function getPriceHistory(Token $token, CurrencyCode $currency, Period $period, int $sampleCount = null): DataCollection + public function getPriceHistory(Token $token, CurrencyCode $currency, Period $period, ?int $sampleCount = null): DataCollection { $coingeckoId = $this->lookupCoingeckoTokenId($token); @@ -136,7 +136,7 @@ public function getPriceHistory(Token $token, CurrencyCode $currency, Period $pe * @param Collection $tokens * @return Collection> */ - public function getBatchPriceHistory(Collection $tokens, CurrencyCode $currency, Period $period, int $sampleCount = null): Collection + public function getBatchPriceHistory(Collection $tokens, CurrencyCode $currency, Period $period, ?int $sampleCount = null): Collection { $tokensWithCoingeckoIds = $this->getTokensWithCoingeckoId($tokens); @@ -295,7 +295,7 @@ private function lookupCoingeckoTokenId(Token $token): string } /** - * @param CoingeckoTokens $tokens The complete token list from Coingecko + * @param CoingeckoTokens $tokens The complete token list from Coingecko * @return array */ private function filterTokens(CoingeckoTokens $tokens): array diff --git a/app/Services/Traits/LoadsFromCache.php b/app/Services/Traits/LoadsFromCache.php index 2049885e9..1c450d642 100644 --- a/app/Services/Traits/LoadsFromCache.php +++ b/app/Services/Traits/LoadsFromCache.php @@ -20,7 +20,7 @@ trait LoadsFromCache /** * @param string|array $uniqueKeyParts */ - protected function fromCache(Closure $callback, array|string $uniqueKeyParts, int $ttl = null, bool $ignoreCache = false): mixed + protected function fromCache(Closure $callback, array|string $uniqueKeyParts, ?int $ttl = null, bool $ignoreCache = false): mixed { $methodName = $this->getMethodName(); diff --git a/app/Services/Web3/Alchemy/AlchemyWeb3DataProvider.php b/app/Services/Web3/Alchemy/AlchemyWeb3DataProvider.php index b8d4e4dbb..ec7cf5f82 100644 --- a/app/Services/Web3/Alchemy/AlchemyWeb3DataProvider.php +++ b/app/Services/Web3/Alchemy/AlchemyWeb3DataProvider.php @@ -4,8 +4,8 @@ namespace App\Services\Web3\Alchemy; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Exceptions\NotImplementedException; @@ -31,15 +31,15 @@ public function getWalletTokens(Wallet $wallet, Network $network): Collection return Alchemy::getWalletTokens($wallet, $network); } - public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = null, int $limit = null): Web3NftsChunk + public function getWalletNfts(Wallet $wallet, Network $network, ?string $cursor = null, ?int $limit = null): Web3NftsChunk { return Alchemy::getWalletNfts($wallet, $network, $cursor, $limit); } public function getCollectionsNfts( CollectionModel $collection, - string $startToken = null, - int $limit = null + ?string $startToken = null, + ?int $limit = null ): Web3NftsChunk { return Alchemy::collectionNfts($collection, $startToken, $limit); } @@ -82,10 +82,10 @@ public function getMiddleware(): array return []; } - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { return $this->fromCache( - static fn () => Alchemy::getNftCollectionFloorPrice($chain, $contractAddress), + static fn () => Alchemy::getCollectionFloorPrice($chain, $contractAddress), [$chain->name, $contractAddress] ); } diff --git a/app/Services/Web3/Fake/FakeWeb3DataProvider.php b/app/Services/Web3/Fake/FakeWeb3DataProvider.php index 9be46bc9e..3555c6ea2 100644 --- a/app/Services/Web3/Fake/FakeWeb3DataProvider.php +++ b/app/Services/Web3/Fake/FakeWeb3DataProvider.php @@ -4,8 +4,8 @@ namespace App\Services\Web3\Fake; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; @@ -58,7 +58,7 @@ public function getWalletTokens(Wallet $wallet, Network $network): Collection }); } - public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = null): Web3NftsChunk + public function getWalletNfts(Wallet $wallet, Network $network, ?string $cursor = null): Web3NftsChunk { $nfts = Nft::with('collection') ->whereHas('collection', static fn ($query) => $query->where('network_id', $network->id)) @@ -82,7 +82,7 @@ public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = name: $nft->name, description: null, extraAttributes: $nft['extra_attributes']->toArray(), - floorPrice: $this->getNftCollectionFloorPrice(Chain::ETH, $wallet->address), + floorPrice: $this->getCollectionFloorPrice(Chain::ETH, $wallet->address), traits: [], mintedBlock: random_int(1, 10000), mintedAt: now(), @@ -114,9 +114,9 @@ public function getBlockTimestamp(Network $network, int $blockNumber): Carbon return now(); } - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { - return new Web3NftCollectionFloorPrice((string) (random_int(50, 1000) * 1e18), 'eth', Carbon::now()); + return new Web3CollectionFloorPrice((string) (random_int(50, 1000) * 1e18), 'eth', Carbon::now()); } public function getCollectionsNfts(CollectionModel $collection, ?string $startToken): Web3NftsChunk diff --git a/app/Services/Web3/Mnemonic/MnemonicWeb3DataProvider.php b/app/Services/Web3/Mnemonic/MnemonicWeb3DataProvider.php index 4133f3011..4b045155e 100644 --- a/app/Services/Web3/Mnemonic/MnemonicWeb3DataProvider.php +++ b/app/Services/Web3/Mnemonic/MnemonicWeb3DataProvider.php @@ -5,7 +5,7 @@ namespace App\Services\Web3\Mnemonic; use App\Data\Web3\CollectionActivity; -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Enums\Service; @@ -29,7 +29,7 @@ public function getWalletTokens(Wallet $wallet, Network $network): Collection throw new NotImplementedException(); } - public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = null): Web3NftsChunk + public function getWalletNfts(Wallet $wallet, Network $network, ?string $cursor = null): Web3NftsChunk { throw new NotImplementedException(); } @@ -49,10 +49,10 @@ public function getCollectionsNfts(CollectionModel $collection, ?string $startTo throw new NotImplementedException(); } - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { return $this->fromCache( - static fn () => Mnemonic::getNftCollectionFloorPrice($chain, $contractAddress), + static fn () => Mnemonic::getCollectionFloorPrice($chain, $contractAddress), [$chain->name, $contractAddress] ); } @@ -60,11 +60,19 @@ public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress /** * @return Collection */ - public function getCollectionActivity(Chain $chain, string $contractAddress, int $limit, Carbon $from = null): Collection + public function getCollectionActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null): Collection { return Mnemonic::getCollectionActivity($chain, $contractAddress, $limit, $from); } + /** + * @return Collection + */ + public function getBurnActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null): Collection + { + return Mnemonic::getBurnActivity($chain, $contractAddress, $limit, $from); + } + public function getBlockTimestamp(Network $network, int $blockNumber): Carbon { throw new NotImplementedException(); diff --git a/app/Services/Web3/Moralis/MoralisWeb3DataProvider.php b/app/Services/Web3/Moralis/MoralisWeb3DataProvider.php index 0a5b92b50..eac3f8032 100644 --- a/app/Services/Web3/Moralis/MoralisWeb3DataProvider.php +++ b/app/Services/Web3/Moralis/MoralisWeb3DataProvider.php @@ -4,8 +4,8 @@ namespace App\Services\Web3\Moralis; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Enums\Service; @@ -32,7 +32,7 @@ public function getWalletTokens(Wallet $wallet, Network $network): Collection return Moralis::getWalletTokens($wallet, $network); } - public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = null): Web3NftsChunk + public function getWalletNfts(Wallet $wallet, Network $network, ?string $cursor = null): Web3NftsChunk { return Moralis::getWalletNfts($wallet, $network, $cursor); } @@ -76,10 +76,10 @@ public function getMiddleware(): array return [new RateLimited(Service::Moralis)]; } - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { return $this->fromCache( - static fn () => Moralis::getNftCollectionFloorPrice($chain, $contractAddress), + static fn () => Moralis::getCollectionFloorPrice($chain, $contractAddress), [$chain->name, $contractAddress] ); } diff --git a/app/Services/Web3/Opensea/OpenseaWeb3DataProvider.php b/app/Services/Web3/Opensea/OpenseaWeb3DataProvider.php index 208a4812f..b318157bc 100644 --- a/app/Services/Web3/Opensea/OpenseaWeb3DataProvider.php +++ b/app/Services/Web3/Opensea/OpenseaWeb3DataProvider.php @@ -4,7 +4,7 @@ namespace App\Services\Web3\Opensea; -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Enums\Service; @@ -30,7 +30,7 @@ public function getWalletTokens(Wallet $wallet, Network $network): Collection throw new NotImplementedException(); } - public function getWalletNfts(Wallet $wallet, Network $network, string $cursor = null): Web3NftsChunk + public function getWalletNfts(Wallet $wallet, Network $network, ?string $cursor = null): Web3NftsChunk { throw new NotImplementedException(); } @@ -50,7 +50,7 @@ public function getCollectionsNfts(CollectionModel $collection, ?string $startTo throw new NotImplementedException(); } - public function getNftCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3NftCollectionFloorPrice + public function getCollectionFloorPrice(Chain $chain, string $contractAddress): ?Web3CollectionFloorPrice { return $this->fromCache( function () use ($contractAddress, $chain) { @@ -64,7 +64,7 @@ function () use ($contractAddress, $chain) { return null; } - return Opensea::getNftCollectionFloorPrice($openseaSlug); + return Opensea::getCollectionFloorPrice($openseaSlug); }, [$chain->name, $contractAddress] ); diff --git a/app/Support/Cache/GalleryCache.php b/app/Support/Cache/GalleryCache.php index bc544b5ed..9e41f2d3e 100644 --- a/app/Support/Cache/GalleryCache.php +++ b/app/Support/Cache/GalleryCache.php @@ -91,7 +91,7 @@ public function collections(CurrencyCode $currencyCode): DataCollection ); } - public static function clearCollections(int $galleryId = null): void + public static function clearCollections(?int $galleryId = null): void { $tags = $galleryId ? [self::TAG_COLLECTIONS.'_'.$galleryId] : [self::TAG_COLLECTIONS]; diff --git a/app/Support/CryptoUtils.php b/app/Support/CryptoUtils.php index 933383f4e..084738645 100644 --- a/app/Support/CryptoUtils.php +++ b/app/Support/CryptoUtils.php @@ -13,12 +13,10 @@ final class CryptoUtils { public static function convertToWei(string|float $amount, int $decimals): string { - return strval( - BigDecimal::of($amount) - ->toScale($decimals, RoundingMode::DOWN) - ->multipliedBy(BigInteger::ten()->power($decimals)) - ->toBigInteger() - ); + return (string) BigDecimal::of($amount) + ->toScale($decimals, RoundingMode::DOWN) + ->multipliedBy(BigInteger::ten()->power($decimals)) + ->toBigInteger(); } public static function hexToBigIntStr(string $value): string diff --git a/app/Support/Facades/Alchemy.php b/app/Support/Facades/Alchemy.php index b8189a267..950e633bd 100644 --- a/app/Support/Facades/Alchemy.php +++ b/app/Support/Facades/Alchemy.php @@ -4,9 +4,9 @@ namespace App\Support\Facades; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3ContractMetadata; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; @@ -29,7 +29,7 @@ * @method static Web3NftData parseNft(array $nft, int $networkId) * @method static string getNativeBalance(Wallet $wallet, Network $network) * @method static Carbon getBlockTimestamp(Network $network, int $blockNumber) - * @method static Web3NftCollectionFloorPrice | null getNftCollectionFloorPrice(Chain $chain, string $contractAddress) + * @method static Web3CollectionFloorPrice | null getCollectionFloorPrice(Chain $chain, string $contractAddress) * * @see App\Http\Client\Alchemy\AlchemyPendingRequest */ diff --git a/app/Support/Facades/Mnemonic.php b/app/Support/Facades/Mnemonic.php index cf4c8ffc6..b0372144b 100644 --- a/app/Support/Facades/Mnemonic.php +++ b/app/Support/Facades/Mnemonic.php @@ -5,8 +5,9 @@ namespace App\Support\Facades; use App\Data\Web3\CollectionActivity; -use App\Data\Web3\Web3NftCollectionFloorPrice; -use App\Data\Web3\Web3NftCollectionTrait; +use App\Data\Web3\Web3CollectionFloorPrice; +use App\Data\Web3\Web3CollectionTrait; +use App\Data\Web3\Web3Volume; use App\Enums\Chain; use App\Http\Client\Mnemonic\MnemonicFactory; use App\Models\Network; @@ -17,12 +18,14 @@ /** * @method static string getNativeBalance(Wallet $wallet, Network $network) - * @method static Web3NftCollectionFloorPrice | null getNftCollectionFloorPrice(Chain $chain, string $contractAddress) - * @method static string | null getNftCollectionBanner(Chain $chain, string $contractAddress) - * @method static int | null getNftCollectionOwners(Chain $chain, string $contractAddress) - * @method static string | null getNftCollectionVolume(Chain $chain, string $contractAddress) - * @method static Collection getNftCollectionTraits(Chain $chain, string $contractAddress) + * @method static Web3CollectionFloorPrice | null getCollectionFloorPrice(Chain $chain, string $contractAddress) + * @method static string | null getCollectionBanner(Chain $chain, string $contractAddress) + * @method static int getCollectionOwners(Chain $chain, string $contractAddress) + * @method static Web3Volume getLatestCollectionVolume(Chain $chain, string $contractAddress) + * @method static Collection getCollectionVolumeHistory(Chain $chain, string $address) + * @method static Collection getCollectionTraits(Chain $chain, string $contractAddress) * @method static Collection getCollectionActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null) + * @method static Collection getBurnActivity(Chain $chain, string $contractAddress, int $limit, ?Carbon $from = null) * * @see App\Http\Client\Mnemonic\MnemonicPendingRequest */ diff --git a/app/Support/Facades/Moralis.php b/app/Support/Facades/Moralis.php index b4b203f9b..89b6f249c 100644 --- a/app/Support/Facades/Moralis.php +++ b/app/Support/Facades/Moralis.php @@ -5,8 +5,8 @@ namespace App\Support\Facades; use App\Data\Wallet\WalletBalance; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; use App\Http\Client\Moralis\MoralisFactory; @@ -23,7 +23,7 @@ * @method static string getNativeBalance(Wallet $wallet, Network $network) * @method static Collection getNativeBalances(array $walletAddresses, Network $network) * @method static Carbon getBlockTimestamp(Network $network, int $blockNumber) - * @method static Web3NftCollectionFloorPrice | null getNftCollectionFloorPrice(Chain $chain, string $contractAddress) + * @method static Web3CollectionFloorPrice | null getCollectionFloorPrice(Chain $chain, string $contractAddress) * * @see App\Http\Client\Moralis\MoralisPendingRequest */ diff --git a/app/Support/Facades/Opensea.php b/app/Support/Facades/Opensea.php index edf4c2300..bf9ae2d94 100644 --- a/app/Support/Facades/Opensea.php +++ b/app/Support/Facades/Opensea.php @@ -4,14 +4,16 @@ namespace App\Support\Facades; -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Enums\Chain; use App\Http\Client\Opensea\Data\OpenseaNftDetails; use App\Http\Client\Opensea\OpenseaFactory; +use App\Models\Collection; use Illuminate\Support\Facades\Http; /** - * @method static Web3NftCollectionFloorPrice | null getNftCollectionFloorPrice(string $collectionSlug) + * @method static string getCollectionTotalVolume(Collection $collection) + * @method static Web3CollectionFloorPrice | null getCollectionFloorPrice(string $collectionSlug) * @method static OpenseaNftDetails | null nft(Chain $chain, string $address, string $identifier) * * @see App\Http\Client\Opensea\OpenseaPendingRequest diff --git a/app/Support/TokenSpam.php b/app/Support/TokenSpam.php index c95ca7832..835ed8761 100644 --- a/app/Support/TokenSpam.php +++ b/app/Support/TokenSpam.php @@ -74,9 +74,9 @@ private static function spam(string $reason): array } /** - * @param Token $token - the token we are checking - * @param mixed $addressByNetwork - json_decode of the platforms field from coingecko - * @param string $network - the network we are checking + * @param Token $token - the token we are checking + * @param mixed $addressByNetwork - json_decode of the platforms field from coingecko + * @param string $network - the network we are checking */ private static function matchesCoingeckoTokenAddress(Token $token, mixed $addressByNetwork, string $network): bool { @@ -88,8 +88,8 @@ private static function matchesCoingeckoTokenAddress(Token $token, mixed $addres } /** - * @param Token $token - the token we are checking - * @param CoingeckoToken $coingeckoToken - the coingecko token we are checking against + * @param Token $token - the token we are checking + * @param CoingeckoToken $coingeckoToken - the coingecko token we are checking against */ private static function validateAddressByNetwork(Token $token, CoingeckoToken $coingeckoToken): bool { diff --git a/app/Support/Web3NftCollectionHandler.php b/app/Support/Web3CollectionHandler.php similarity index 84% rename from app/Support/Web3NftCollectionHandler.php rename to app/Support/Web3CollectionHandler.php index d53a864d9..872dcc04d 100644 --- a/app/Support/Web3NftCollectionHandler.php +++ b/app/Support/Web3CollectionHandler.php @@ -4,11 +4,11 @@ namespace App\Support; -use App\Data\Web3\Web3NftCollectionTrait; +use App\Data\Web3\Web3CollectionTrait; use App\Models\CollectionTrait; use Illuminate\Support\Collection; -class Web3NftCollectionHandler +class Web3CollectionHandler { public function __construct() { @@ -16,13 +16,13 @@ public function __construct() } /** - * @param Collection $traits + * @param Collection $traits */ public function storeTraits(int $collectionId, Collection $traits): void { $filteredTraits = $traits->filter(fn ($trait) => CollectionTrait::isValidValue($trait->value)); - CollectionTrait::upsert($filteredTraits->map(function (Web3NftCollectionTrait $trait) use ($collectionId) { + CollectionTrait::upsert($filteredTraits->map(function (Web3CollectionTrait $trait) use ($collectionId) { return [ 'collection_id' => $collectionId, 'name' => $trait->name, diff --git a/app/Support/Web3NftHandler.php b/app/Support/Web3NftHandler.php index d8b203d16..ffe11b674 100644 --- a/app/Support/Web3NftHandler.php +++ b/app/Support/Web3NftHandler.php @@ -6,9 +6,11 @@ use App\Data\Web3\Web3NftData; use App\Enums\Features; +use App\Enums\TokenType; use App\Jobs\DetermineCollectionMintingDate; use App\Jobs\FetchCollectionActivity; use App\Jobs\FetchCollectionFloorPrice; +use App\Jobs\FetchCollectionVolumeHistory; use App\Models\Collection as CollectionModel; use App\Models\CollectionTrait; use App\Models\Network; @@ -86,13 +88,14 @@ public function store(Collection $nfts, bool $dispatchJobs = false): void json_encode($attributes), $nftData->mintedBlock, $nftData->mintedAt?->toDateTimeString(), + $nftData->type->value, $this->lastRetrievedTokenNumber($nftsInCollection->get($nftData->tokenAddress)), $now, $now, ]; }); - $valuesPlaceholders = $nftsGroupedByCollectionAddress->map(fn () => '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')->join(','); + $valuesPlaceholders = $nftsGroupedByCollectionAddress->map(fn () => '(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')->join(','); $ids = DB::transaction(function () use ($nfts, $collectionsData, $valuesPlaceholders, $dispatchJobs, $now) { // upsert nfts/collections (if any) @@ -104,7 +107,7 @@ public function store(Collection $nfts, bool $dispatchJobs = false): void // language=postgresql " insert into collections - (address, network_id, name, slug, symbol, description, supply, floor_price, floor_price_token_id, floor_price_retrieved_at, extra_attributes, minted_block, minted_at, last_indexed_token_number, created_at, updated_at) + (address, network_id, name, slug, symbol, description, supply, floor_price, floor_price_token_id, floor_price_retrieved_at, extra_attributes, minted_block, minted_at, type, last_indexed_token_number, created_at, updated_at) values {$valuesPlaceholders} on conflict (address, network_id) do update set name = trim(coalesce(excluded.name, collections.name)), @@ -116,6 +119,7 @@ public function store(Collection $nfts, bool $dispatchJobs = false): void extra_attributes = coalesce(collections.extra_attributes::jsonb, '{}') || excluded.extra_attributes::jsonb, minted_block = excluded.minted_block, minted_at = excluded.minted_at, + type = coalesce(excluded.type, collections.type), last_indexed_token_number = coalesce(excluded.last_indexed_token_number, collections.last_indexed_token_number) returning id, address, floor_price, supply ", @@ -128,7 +132,7 @@ public function store(Collection $nfts, bool $dispatchJobs = false): void $nfts = $nfts->filter(function ($nft) use ($groupedByAddress) { $collection = $groupedByAddress->get(Str::lower($nft->tokenAddress)); - return $this->shouldKeepNft($collection); + return $nft->type === TokenType::Erc721 && $this->shouldKeepNft($collection); }); $valuesToUpsert = $nfts->map(function ($nft) use ($groupedByAddress, $now) { @@ -192,13 +196,18 @@ public function store(Collection $nfts, bool $dispatchJobs = false): void }); // Index activity only for newly created collections... - CollectionModel::query() - ->where('is_fetching_activity', false) - ->whereNull('activity_updated_at') - ->whereIn('id', $ids) - ->chunkById(100, function ($collections) { - $collections->each(fn ($collection) => FetchCollectionActivity::dispatch($collection)->onQueue(Queues::NFTS)); - }); + CollectionModel::whereIn('id', $ids)->chunkById(100, function ($collections) { + $collections->each(function ($collection) { + if (! $collection->is_fetching_activity && $collection->activity_updated_at === null) { + FetchCollectionActivity::dispatch($collection)->onQueue(Queues::NFTS); + } + + // If the collection has just been created, pre-fetch the 30-day volume history... + if ($collection->created_at->gte(now()->subMinutes(3))) { + FetchCollectionVolumeHistory::dispatch($collection); + } + }); + }); } // Passing an empty array means we update all collections which is undesired here. @@ -291,7 +300,7 @@ private function getChainId(): int /** * @param Collection $nfts * @param Collection $collectionLookup - * NOTE: The caller is responsible for ensuring atomicity. Make sure to always call this inside a `DB::Transaction`. + * NOTE: The caller is responsible for ensuring atomicity. Make sure to always call this inside a `DB::Transaction`. */ public function upsertTraits(Collection $nfts, Collection $collectionLookup, Carbon $now): void { diff --git a/app/helpers.php b/app/helpers.php index 21f0c406a..e0a6762ca 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -19,61 +19,12 @@ function get_query(string $name, array $params = []): string throw new Exception(sprintf('Cannot read file: %s', $name)); } - // @codeCoverageIgnoreEnd - - return Blade::render($contents, $params); - } -} - -// @codeCoverageIgnoreStart -if (! function_exists('isBase64EncodedImage')) { - // @codeCoverageIgnoreEnd - - function isBase64EncodedImage(string $string): bool - { - return str_starts_with($string, 'data:image'); - } -} - -// @codeCoverageIgnoreStart -if (! function_exists('filterAttributes')) { - // @codeCoverageIgnoreEnd - - /** - * @param array $data - * @param array $attributes - * @return array - */ - function filterAttributes($data, $attributes): array - { - foreach ($data as $key => $value) { - if (is_array($value) && isset($attributes[$key])) { - if (is_array($attributes[$key])) { - $data[$key] = filterAttributes($data[$key], $attributes[$key]); - } - } elseif (! in_array($key, $attributes)) { - unset($data[$key]); - } + if (count($params) === 0) { + return $contents; } - return $data; - } -} - -// @codeCoverageIgnoreStart -if (! function_exists('format_amount_for_display')) { - // @codeCoverageIgnoreEnd - - function format_amount_for_display(int $number): string - { - if ($number >= 1000000) { - return number_format($number / 1000000, 1).'m'; - } - - if ($number >= 1000) { - return number_format($number / 1000, 1).'k'; - } + // @codeCoverageIgnoreEnd - return (string) $number; + return Blade::render($contents, $params); } } diff --git a/composer.json b/composer.json index dd781af82..4eda3cbba 100644 --- a/composer.json +++ b/composer.json @@ -10,49 +10,49 @@ "require": { "php": "^8.2", "atymic/twitter": "^3.2", - "aws/aws-sdk-php": "^3.293", + "aws/aws-sdk-php": "^3.298", "cyrildewit/eloquent-viewable": "dev-master", - "filament/filament": "^3.1", - "filament/spatie-laravel-media-library-plugin": "^3.1", + "filament/filament": "^3.2", + "filament/spatie-laravel-media-library-plugin": "^3.2", "guzzlehttp/guzzle": "^7.8", "halaxa/json-machine": "^1.1", "inertiajs/inertia-laravel": "^0.6", "jeffgreco13/filament-breezy": "^2.2", "kornrunner/keccak": "^1.1", - "laravel/framework": "^10.34", - "laravel/horizon": "^5.21", - "laravel/pennant": "^1.5", + "laravel/framework": "^10.43", + "laravel/horizon": "^5.22", + "laravel/pennant": "^1.6", "laravel/sanctum": "^3.3", - "laravel/slack-notification-channel": "^2.1", + "laravel/slack-notification-channel": "^2.2", "laravel/telescope": "^4.17", - "laravel/tinker": "^2.8", + "laravel/tinker": "^2.9", "monolog/monolog": "^3.5", - "sentry/sentry-laravel": "^3.1", + "sentry/sentry-laravel": "^3.2", "simplito/elliptic-php": "^1.0", - "spatie/browsershot": "^3.60", - "spatie/laravel-data": "^3.10", + "spatie/browsershot": "^3.0", + "spatie/laravel-data": "^3.11", "spatie/laravel-markdown": "^2.4", - "spatie/laravel-medialibrary": "^10.15", - "spatie/laravel-permission": "^5.1", + "spatie/laravel-medialibrary": "^10.2", + "spatie/laravel-permission": "^5.3", "spatie/laravel-schemaless-attributes": "^2.4", "spatie/laravel-sluggable": "^3.5", "spatie/laravel-typescript-transformer": "^2.3", "staudenmeir/eloquent-eager-limit": "^1.8", "tightenco/ziggy": "^1.0", - "tpetry/laravel-postgresql-enhanced": "^0.33" + "tpetry/laravel-postgresql-enhanced": "^0.34" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.9", "fakerphp/faker": "^1.23", - "graham-campbell/analyzer": "^4.0", - "laravel/breeze": "^1.26", + "graham-campbell/analyzer": "^4.1", + "laravel/breeze": "^1.28", "laravel/pint": "^1.13", - "laravel/sail": "^1.26", + "laravel/sail": "^1.27", "mockery/mockery": "^1.6", - "nunomaduro/larastan": "^2.6", - "pestphp/pest": "^2.26", - "rector/rector": "^0.18", - "spatie/laravel-ignition": "^2.3" + "nunomaduro/larastan": "^2.8", + "pestphp/pest": "^2.33", + "rector/rector": "^0.19", + "spatie/laravel-ignition": "^2.4" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index cf7af90b1..d7b3c97d8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,932 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8583d4d87c1d1f387c86b30606a4988c", + "content-hash": "8b6e99a1478e35614e1fecd9d80c098c", "packages": [ + { + "name": "amphp/amp", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "aaf0ec1d5a2c20b523258995a10e80c1fb765871" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/aaf0ec1d5a2c20b523258995a10e80c1fb765871", + "reference": "aaf0ec1d5a2c20b523258995a10e80c1fb765871", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^4.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Future/functions.php", + "src/Internal/functions.php" + ], + "psr-4": { + "Amp\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "https://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-12-18T16:52:44+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "0a4b0e80dad92c75e6131f8ad253919211540338" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/0a4b0e80dad92c75e6131f8ad253919211540338", + "reference": "0a4b0e80dad92c75e6131f8ad253919211540338", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/parser": "^1.1", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2.3" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php" + ], + "psr-4": { + "Amp\\ByteStream\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "https://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/v2.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-11-19T14:34:16+00:00" + }, + { + "name": "amphp/cache", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/cache.git", + "reference": "218bb3888d380eb9dd926cd06f803573c84391d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/cache/zipball/218bb3888d380eb9dd926cd06f803573c84391d3", + "reference": "218bb3888d380eb9dd926cd06f803573c84391d3", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/serialization": "^1", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Cache\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + } + ], + "description": "A fiber-aware cache API based on Amp and Revolt.", + "homepage": "https://amphp.org/cache", + "support": { + "issues": "https://github.com/amphp/cache/issues", + "source": "https://github.com/amphp/cache/tree/v2.0.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-01-09T21:04:12+00:00" + }, + { + "name": "amphp/dns", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/dns.git", + "reference": "3e3f413fbbaacd9632b1612941b363fa26a72e52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/dns/zipball/3e3f413fbbaacd9632b1612941b363fa26a72e52", + "reference": "3e3f413fbbaacd9632b1612941b363fa26a72e52", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/cache": "^2", + "amphp/parser": "^1", + "amphp/windows-registry": "^1.0.1", + "daverandom/libdns": "^2.0.2", + "ext-filter": "*", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "5.20" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Dns\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Wright", + "email": "addr@daverandom.com" + }, + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + } + ], + "description": "Async DNS resolution for Amp.", + "homepage": "https://github.com/amphp/dns", + "keywords": [ + "amp", + "amphp", + "async", + "client", + "dns", + "resolve" + ], + "support": { + "issues": "https://github.com/amphp/dns/issues", + "source": "https://github.com/amphp/dns/tree/v2.1.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-01-30T23:25:30+00:00" + }, + { + "name": "amphp/parallel", + "version": "v2.2.6", + "source": { + "type": "git", + "url": "https://github.com/amphp/parallel.git", + "reference": "5aeaad20297507cc754859236720501b54306eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parallel/zipball/5aeaad20297507cc754859236720501b54306eba", + "reference": "5aeaad20297507cc754859236720501b54306eba", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/parser": "^1", + "amphp/pipeline": "^1", + "amphp/process": "^2", + "amphp/serialization": "^1", + "amphp/socket": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.18" + }, + "type": "library", + "autoload": { + "files": [ + "src/Context/functions.php", + "src/Context/Internal/functions.php", + "src/Ipc/functions.php", + "src/Worker/functions.php" + ], + "psr-4": { + "Amp\\Parallel\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Parallel processing component for Amp.", + "homepage": "https://github.com/amphp/parallel", + "keywords": [ + "async", + "asynchronous", + "concurrent", + "multi-processing", + "multi-threading" + ], + "support": { + "issues": "https://github.com/amphp/parallel/issues", + "source": "https://github.com/amphp/parallel/tree/v2.2.6" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-01-07T18:12:13+00:00" + }, + { + "name": "amphp/parser", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/parser.git", + "reference": "ff1de4144726c5dad5fab97f66692ebe8de3e151" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/parser/zipball/ff1de4144726c5dad5fab97f66692ebe8de3e151", + "reference": "ff1de4144726c5dad5fab97f66692ebe8de3e151", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Parser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A generator parser to make streaming parsers simple.", + "homepage": "https://github.com/amphp/parser", + "keywords": [ + "async", + "non-blocking", + "parser", + "stream" + ], + "support": { + "issues": "https://github.com/amphp/parser/issues", + "source": "https://github.com/amphp/parser/tree/v1.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2022-12-30T18:08:47+00:00" + }, + { + "name": "amphp/pipeline", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/pipeline.git", + "reference": "8a0ecc281bb0932d6b4a786453aff18c55756e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/pipeline/zipball/8a0ecc281bb0932d6b4a786453aff18c55756e63", + "reference": "8a0ecc281bb0932d6b4a786453aff18c55756e63", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "php": ">=8.1", + "revolt/event-loop": "^1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.18" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\Pipeline\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Asynchronous iterators and operators.", + "homepage": "https://amphp.org/pipeline", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "iterator", + "non-blocking" + ], + "support": { + "issues": "https://github.com/amphp/pipeline/issues", + "source": "https://github.com/amphp/pipeline/tree/v1.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-12-23T04:34:28+00:00" + }, + { + "name": "amphp/process", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/process.git", + "reference": "a65d3bc1f36ef12d44df42a68f0f0643183f1052" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/process/zipball/a65d3bc1f36ef12d44df42a68f0f0643183f1052", + "reference": "a65d3bc1f36ef12d44df42a68f0f0643183f1052", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/sync": "^2", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Process\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A fiber-aware process manager based on Amp and Revolt.", + "homepage": "https://amphp.org/process", + "support": { + "issues": "https://github.com/amphp/process/issues", + "source": "https://github.com/amphp/process/tree/v2.0.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-01-15T16:00:57+00:00" + }, + { + "name": "amphp/serialization", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/serialization.git", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/serialization/zipball/693e77b2fb0b266c3c7d622317f881de44ae94a1", + "reference": "693e77b2fb0b266c3c7d622317f881de44ae94a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "phpunit/phpunit": "^9 || ^8 || ^7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Serialization\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Serialization tools for IPC and data storage in PHP.", + "homepage": "https://github.com/amphp/serialization", + "keywords": [ + "async", + "asynchronous", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/amphp/serialization/issues", + "source": "https://github.com/amphp/serialization/tree/master" + }, + "time": "2020-03-25T21:39:07+00:00" + }, + { + "name": "amphp/socket", + "version": "v2.2.2", + "source": { + "type": "git", + "url": "https://github.com/amphp/socket.git", + "reference": "eb6c5e6baae5aebd9a209f50e81bff38c7efef97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/socket/zipball/eb6c5e6baae5aebd9a209f50e81bff38c7efef97", + "reference": "eb6c5e6baae5aebd9a209f50e81bff38c7efef97", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/byte-stream": "^2", + "amphp/dns": "^2", + "ext-openssl": "*", + "kelunik/certificate": "^1.1", + "league/uri": "^6.5 | ^7", + "league/uri-interfaces": "^2.3 | ^7", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "amphp/process": "^2", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php", + "src/Internal/functions.php", + "src/SocketAddress/functions.php" + ], + "psr-4": { + "Amp\\Socket\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@gmail.com" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Non-blocking socket connection / server implementations based on Amp and Revolt.", + "homepage": "https://github.com/amphp/socket", + "keywords": [ + "amp", + "async", + "encryption", + "non-blocking", + "sockets", + "tcp", + "tls" + ], + "support": { + "issues": "https://github.com/amphp/socket/issues", + "source": "https://github.com/amphp/socket/tree/v2.2.2" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-12-31T18:12:01+00:00" + }, + { + "name": "amphp/sync", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/sync.git", + "reference": "50ddc7392cc8034b3e4798cef3cc90d3f4c0441c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/sync/zipball/50ddc7392cc8034b3e4798cef3cc90d3f4c0441c", + "reference": "50ddc7392cc8034b3e4798cef3cc90d3f4c0441c", + "shasum": "" + }, + "require": { + "amphp/amp": "^3", + "amphp/pipeline": "^1", + "amphp/serialization": "^1", + "php": ">=8.1", + "revolt/event-loop": "^1 || ^0.2" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "amphp/phpunit-util": "^3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Amp\\Sync\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + }, + { + "name": "Stephen Coakley", + "email": "me@stephencoakley.com" + } + ], + "description": "Non-blocking synchronization primitives for PHP based on Amp and Revolt.", + "homepage": "https://github.com/amphp/sync", + "keywords": [ + "async", + "asynchronous", + "mutex", + "semaphore", + "synchronization" + ], + "support": { + "issues": "https://github.com/amphp/sync/issues", + "source": "https://github.com/amphp/sync/tree/v2.1.0" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2023-08-19T13:53:40+00:00" + }, + { + "name": "amphp/windows-registry", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/windows-registry.git", + "reference": "0d569e8f256cca974e3842b6e78b4e434bf98306" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/windows-registry/zipball/0d569e8f256cca974e3842b6e78b4e434bf98306", + "reference": "0d569e8f256cca974e3842b6e78b4e434bf98306", + "shasum": "" + }, + "require": { + "amphp/byte-stream": "^2", + "amphp/process": "^2", + "php": ">=8.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "psalm/phar": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Amp\\WindowsRegistry\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Windows Registry Reader.", + "support": { + "issues": "https://github.com/amphp/windows-registry/issues", + "source": "https://github.com/amphp/windows-registry/tree/v1.0.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2024-01-30T23:01:51+00:00" + }, + { + "name": "anourvalar/eloquent-serialize", + "version": "1.2.17", + "source": { + "type": "git", + "url": "https://github.com/AnourValar/eloquent-serialize.git", + "reference": "1fcfdd5f41a0d2e7c8cf1d37e7227357bb827aef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/1fcfdd5f41a0d2e7c8cf1d37e7227357bb827aef", + "reference": "1fcfdd5f41a0d2e7c8cf1d37e7227357bb827aef", + "shasum": "" + }, + "require": { + "laravel/framework": "^6.0|^7.0|^8.0|^9.0|^10.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.26", + "laravel/legacy-factories": "^1.1", + "orchestra/testbench": "~3.6.0|~3.7.0|~3.8.0|^4.0|^5.0|^6.0|^7.0|^8.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5", + "psalm/plugin-laravel": "^2.8", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "EloquentSerialize": "AnourValar\\EloquentSerialize\\Facades\\EloquentSerializeFacade" + } + } + }, + "autoload": { + "psr-4": { + "AnourValar\\EloquentSerialize\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Laravel Query Builder (Eloquent) serialization", + "homepage": "https://github.com/AnourValar/eloquent-serialize", + "keywords": [ + "anourvalar", + "builder", + "copy", + "eloquent", + "job", + "laravel", + "query", + "querybuilder", + "queue", + "serializable", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/AnourValar/eloquent-serialize/issues", + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.17" + }, + "time": "2023-12-06T15:54:01+00:00" + }, { "name": "atymic/twitter", "version": "3.2.0", @@ -149,16 +1073,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.293.2", + "version": "3.298.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "1d3e952ea2f45bb0d42d7f873d1b4957bb6362c4" + "reference": "626f731c38e06ea483025334512f4c2afea1739d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1d3e952ea2f45bb0d42d7f873d1b4957bb6362c4", - "reference": "1d3e952ea2f45bb0d42d7f873d1b4957bb6362c4", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/626f731c38e06ea483025334512f4c2afea1739d", + "reference": "626f731c38e06ea483025334512f4c2afea1739d", "shasum": "" }, "require": { @@ -238,9 +1162,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.293.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.298.2" }, - "time": "2023-12-01T19:06:15+00:00" + "time": "2024-02-02T19:05:34+00:00" }, { "name": "bacon/bacon-qr-code", @@ -298,16 +1222,16 @@ }, { "name": "blade-ui-kit/blade-heroicons", - "version": "2.1.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/blade-ui-kit/blade-heroicons.git", - "reference": "f756c807b0d04afd2caf7079bac26492da9cc6d4" + "reference": "bcf4be8f6bbde0bb4c23f2e3fb189b88dec1580a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-heroicons/zipball/f756c807b0d04afd2caf7079bac26492da9cc6d4", - "reference": "f756c807b0d04afd2caf7079bac26492da9cc6d4", + "url": "https://api.github.com/repos/blade-ui-kit/blade-heroicons/zipball/bcf4be8f6bbde0bb4c23f2e3fb189b88dec1580a", + "reference": "bcf4be8f6bbde0bb4c23f2e3fb189b88dec1580a", "shasum": "" }, "require": { @@ -351,19 +1275,19 @@ ], "support": { "issues": "https://github.com/blade-ui-kit/blade-heroicons/issues", - "source": "https://github.com/blade-ui-kit/blade-heroicons/tree/2.1.0" + "source": "https://github.com/blade-ui-kit/blade-heroicons/tree/2.2.1" }, "funding": [ { - "url": "https://github.com/caneco", + "url": "https://github.com/sponsors/driesvints", "type": "github" }, { - "url": "https://github.com/driesvints", - "type": "github" + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" } ], - "time": "2023-01-11T08:38:22+00:00" + "time": "2023-12-18T20:44:03+00:00" }, { "name": "blade-ui-kit/blade-icons", @@ -503,16 +1427,16 @@ }, { "name": "carbonphp/carbon-doctrine-types", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5" + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/67a77972b9f398ae7068dabacc39c08aeee170d5", - "reference": "67a77972b9f398ae7068dabacc39c08aeee170d5", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", + "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb", "shasum": "" }, "require": { @@ -552,7 +1476,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.0.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0" }, "funding": [ { @@ -568,27 +1492,27 @@ "type": "tidelift" } ], - "time": "2023-10-01T14:29:01+00:00" + "time": "2023-12-11T17:09:12+00:00" }, { "name": "clue/stream-filter", - "version": "v1.6.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/clue/stream-filter.git", - "reference": "d6169430c7731d8509da7aecd0af756a5747b78e" + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e", - "reference": "d6169430c7731d8509da7aecd0af756a5747b78e", + "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7", + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7", "shasum": "" }, "require": { "php": ">=5.3" }, "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { @@ -610,7 +1534,7 @@ } ], "description": "A simple and modern approach to stream filtering in PHP", - "homepage": "https://github.com/clue/php-stream-filter", + "homepage": "https://github.com/clue/stream-filter", "keywords": [ "bucket brigade", "callback", @@ -622,7 +1546,7 @@ ], "support": { "issues": "https://github.com/clue/stream-filter/issues", - "source": "https://github.com/clue/stream-filter/tree/v1.6.0" + "source": "https://github.com/clue/stream-filter/tree/v1.7.0" }, "funding": [ { @@ -634,7 +1558,7 @@ "type": "github" } ], - "time": "2022-02-21T13:15:14+00:00" + "time": "2023-12-20T15:40:13+00:00" }, { "name": "cyrildewit/eloquent-viewable", @@ -768,26 +1692,26 @@ }, { "name": "danharrin/livewire-rate-limiting", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/danharrin/livewire-rate-limiting.git", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8" + "reference": "bf16003f0d977b5a41071526d697eec94ac41735" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bf16003f0d977b5a41071526d697eec94ac41735", + "reference": "bf16003f0d977b5a41071526d697eec94ac41735", "shasum": "" }, "require": { - "illuminate/support": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0|^11.0", "php": "^8.0" }, "require-dev": { "livewire/livewire": "^3.0", "livewire/volt": "^1.3", - "orchestra/testbench": "^7.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0", "phpunit/phpunit": "^9.0|^10.0" }, "type": "library", @@ -818,7 +1742,7 @@ "type": "github" } ], - "time": "2023-10-27T15:01:19+00:00" + "time": "2024-01-21T14:53:34+00:00" }, { "name": "dasprid/enum", @@ -870,6 +1794,50 @@ }, "time": "2023-08-25T16:18:39+00:00" }, + { + "name": "daverandom/libdns", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/DaveRandom/LibDNS.git", + "reference": "42c2d700d1178c9f9e78664793463f7f1aea248c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/DaveRandom/LibDNS/zipball/42c2d700d1178c9f9e78664793463f7f1aea248c", + "reference": "42c2d700d1178c9f9e78664793463f7f1aea248c", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": ">=7.0" + }, + "suggest": { + "ext-intl": "Required for IDN support" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "LibDNS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "DNS protocol implementation written in pure PHP", + "keywords": [ + "dns" + ], + "support": { + "issues": "https://github.com/DaveRandom/LibDNS/issues", + "source": "https://github.com/DaveRandom/LibDNS/tree/v2.0.3" + }, + "time": "2022-09-20T18:15:38+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -1040,16 +2008,16 @@ }, { "name": "doctrine/dbal", - "version": "3.7.2", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" + "reference": "c9ea252cdce4da324ede3d6c5913dd89f769afd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c9ea252cdce4da324ede3d6c5913dd89f769afd2", + "reference": "c9ea252cdce4da324ede3d6c5913dd89f769afd2", "shasum": "" }, "require": { @@ -1065,14 +2033,14 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.42", + "phpstan/phpstan": "1.10.57", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.13", + "phpunit/phpunit": "9.6.16", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "squizlabs/php_codesniffer": "3.8.1", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -1133,7 +2101,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.7.2" + "source": "https://github.com/doctrine/dbal/tree/3.8.1" }, "funding": [ { @@ -1149,20 +2117,20 @@ "type": "tidelift" } ], - "time": "2023-11-19T08:06:58+00:00" + "time": "2024-02-03T17:33:49+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -1194,9 +2162,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/event-manager", @@ -1291,16 +2259,16 @@ }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", "shasum": "" }, "require": { @@ -1362,7 +2330,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.0.9" }, "funding": [ { @@ -1378,7 +2346,7 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2024-01-15T18:05:13+00:00" }, { "name": "doctrine/lexer", @@ -1690,19 +2658,20 @@ }, { "name": "filament/actions", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "94528865f7a6666a3125da0cb872b17814437dbf" + "reference": "3f3128977df50b18cd266d42b16e445d9392e35e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/94528865f7a6666a3125da0cb872b17814437dbf", - "reference": "94528865f7a6666a3125da0cb872b17814437dbf", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/3f3128977df50b18cd266d42b16e445d9392e35e", + "reference": "3f3128977df50b18cd266d42b16e445d9392e35e", "shasum": "" }, "require": { + "anourvalar/eloquent-serialize": "^1.2", "filament/forms": "self.version", "filament/infolists": "self.version", "filament/notifications": "self.version", @@ -1710,7 +2679,8 @@ "illuminate/contracts": "^10.0", "illuminate/database": "^10.0", "illuminate/support": "^10.0", - "league/csv": "^9.11", + "league/csv": "9.11.0", + "openspout/openspout": "^4.23", "php": "^8.1", "spatie/laravel-package-tools": "^1.9" }, @@ -1737,20 +2707,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:03+00:00" + "time": "2024-02-01T11:30:09+00:00" }, { "name": "filament/filament", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "d857640aa5cc4f55f448edf1c13488fb882c0979" + "reference": "e0752c29e1c3fae7b1ca2af1caa88459263b4c6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/d857640aa5cc4f55f448edf1c13488fb882c0979", - "reference": "d857640aa5cc4f55f448edf1c13488fb882c0979", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/e0752c29e1c3fae7b1ca2af1caa88459263b4c6e", + "reference": "e0752c29e1c3fae7b1ca2af1caa88459263b4c6e", "shasum": "" }, "require": { @@ -1802,20 +2772,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:06+00:00" + "time": "2024-02-01T11:30:12+00:00" }, { "name": "filament/forms", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "6a26439d7ff7b81ba00d2ca88a27a57f8e22fb14" + "reference": "11e12292079d72067c438e340128285a823497d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/6a26439d7ff7b81ba00d2ca88a27a57f8e22fb14", - "reference": "6a26439d7ff7b81ba00d2ca88a27a57f8e22fb14", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/11e12292079d72067c438e340128285a823497d6", + "reference": "11e12292079d72067c438e340128285a823497d6", "shasum": "" }, "require": { @@ -1858,20 +2828,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:00+00:00" + "time": "2024-02-01T11:30:09+00:00" }, { "name": "filament/infolists", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "c99cef616da4b87640cb62e4869df9c5a8b306ce" + "reference": "288380cf9a7a4861354772008626da6fc4f4fbfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/c99cef616da4b87640cb62e4869df9c5a8b306ce", - "reference": "c99cef616da4b87640cb62e4869df9c5a8b306ce", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/288380cf9a7a4861354772008626da6fc4f4fbfd", + "reference": "288380cf9a7a4861354772008626da6fc4f4fbfd", "shasum": "" }, "require": { @@ -1909,20 +2879,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:00+00:00" + "time": "2024-01-31T12:14:26+00:00" }, { "name": "filament/notifications", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "b0a917a041bee3819a3b58c543d82ba463ffb20c" + "reference": "c5f4f51d949fafc52643f2be654a4da92422836c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/b0a917a041bee3819a3b58c543d82ba463ffb20c", - "reference": "b0a917a041bee3819a3b58c543d82ba463ffb20c", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/c5f4f51d949fafc52643f2be654a4da92422836c", + "reference": "c5f4f51d949fafc52643f2be654a4da92422836c", "shasum": "" }, "require": { @@ -1961,26 +2931,26 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:00+00:00" + "time": "2024-01-19T14:01:21+00:00" }, { "name": "filament/spatie-laravel-media-library-plugin", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/spatie-laravel-media-library-plugin.git", - "reference": "da46347a3ba57994254707a4c9cd20feb6377496" + "reference": "445a489a95a5f0e1bbce076c2836395606cb0cee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/spatie-laravel-media-library-plugin/zipball/da46347a3ba57994254707a4c9cd20feb6377496", - "reference": "da46347a3ba57994254707a4c9cd20feb6377496", + "url": "https://api.github.com/repos/filamentphp/spatie-laravel-media-library-plugin/zipball/445a489a95a5f0e1bbce076c2836395606cb0cee", + "reference": "445a489a95a5f0e1bbce076c2836395606cb0cee", "shasum": "" }, "require": { "illuminate/support": "^10.0", "php": "^8.1", - "spatie/laravel-medialibrary": "^10.0" + "spatie/laravel-medialibrary": "^10.0|^11.0" }, "type": "library", "autoload": { @@ -1998,30 +2968,30 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-10-30T09:52:29+00:00" + "time": "2024-01-29T13:20:08+00:00" }, { "name": "filament/support", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "2bdf07a954c9873e6b4c6f2654798d4b38f62a27" + "reference": "abf44826987b6e1efb0200d0068c48d0cf9d851a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/2bdf07a954c9873e6b4c6f2654798d4b38f62a27", - "reference": "2bdf07a954c9873e6b4c6f2654798d4b38f62a27", + "url": "https://api.github.com/repos/filamentphp/support/zipball/abf44826987b6e1efb0200d0068c48d0cf9d851a", + "reference": "abf44826987b6e1efb0200d0068c48d0cf9d851a", "shasum": "" }, "require": { - "blade-ui-kit/blade-heroicons": "^2.0", + "blade-ui-kit/blade-heroicons": "^2.2.1", "doctrine/dbal": "^3.2", "ext-intl": "*", "illuminate/contracts": "^10.0", "illuminate/support": "^10.0", "illuminate/view": "^10.0", - "livewire/livewire": "^3.0.8", + "livewire/livewire": "^3.2.3", "php": "^8.1", "ryangjchandler/blade-capture-directive": "^0.2|^0.3", "spatie/color": "^1.5", @@ -2055,20 +3025,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:03+00:00" + "time": "2024-02-01T11:30:19+00:00" }, { "name": "filament/tables", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "6a9a952aefc372e77eb07a44e4eb558d94f621b3" + "reference": "3bc3abe20caea68c31d3586f51d3e1d1f4a6b242" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/6a9a952aefc372e77eb07a44e4eb558d94f621b3", - "reference": "6a9a952aefc372e77eb07a44e4eb558d94f621b3", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/3bc3abe20caea68c31d3586f51d3e1d1f4a6b242", + "reference": "3bc3abe20caea68c31d3586f51d3e1d1f4a6b242", "shasum": "" }, "require": { @@ -2108,20 +3078,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-12-02T22:24:03+00:00" + "time": "2024-02-01T11:30:21+00:00" }, { "name": "filament/widgets", - "version": "v3.1.8", + "version": "v3.2.23", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "64c4e7074908426840f4b16f82822b178dc21afa" + "reference": "3aa945b635745c5731a9728134411d500cf3a30a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/64c4e7074908426840f4b16f82822b178dc21afa", - "reference": "64c4e7074908426840f4b16f82822b178dc21afa", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/3aa945b635745c5731a9728134411d500cf3a30a", + "reference": "3aa945b635745c5731a9728134411d500cf3a30a", "shasum": "" }, "require": { @@ -2152,7 +3122,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2023-11-29T15:29:52+00:00" + "time": "2024-02-01T11:30:24+00:00" }, { "name": "fruitcake/php-cors", @@ -2289,16 +3259,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { @@ -2313,11 +3283,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -2395,7 +3365,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -2411,7 +3381,7 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:20:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/oauth-subscriber", @@ -2474,24 +3444,24 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", - "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { @@ -2537,7 +3507,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.1" + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, "funding": [ { @@ -2553,20 +3523,20 @@ "type": "tidelift" } ], - "time": "2023-08-03T15:11:55+00:00" + "time": "2023-12-03T20:19:20+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.1", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727", - "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { @@ -2580,9 +3550,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -2653,7 +3623,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.1" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -2669,32 +3639,38 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:13:57+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.2", + "version": "v1.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d" + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/61bf437fc2197f587f6857d3ff903a24f1731b5d", - "reference": "61bf437fc2197f587f6857d3ff903a24f1731b5d", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "symfony/polyfill-php80": "^1.17" + "symfony/polyfill-php80": "^1.24" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.19 || ^9.5.8", + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "uri-template/tests": "1.0.0" }, "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, "autoload": { "psr-4": { "GuzzleHttp\\UriTemplate\\": "src" @@ -2733,7 +3709,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.2" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" }, "funding": [ { @@ -2749,7 +3725,7 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:19:19+00:00" + "time": "2023-12-03T19:50:20+00:00" }, { "name": "halaxa/json-machine", @@ -3137,32 +4113,38 @@ }, { "name": "jeffgreco13/filament-breezy", - "version": "v2.2.1", + "version": "v2.2.8", "source": { "type": "git", "url": "https://github.com/jeffgreco13/filament-breezy.git", - "reference": "bc82c222ab7b0b6bdd5896ff2bccd81d93887e76" + "reference": "cf5f9d55121603bf24f9c3e137af46de9799b5ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/bc82c222ab7b0b6bdd5896ff2bccd81d93887e76", - "reference": "bc82c222ab7b0b6bdd5896ff2bccd81d93887e76", + "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/cf5f9d55121603bf24f9c3e137af46de9799b5ea", + "reference": "cf5f9d55121603bf24f9c3e137af46de9799b5ea", "shasum": "" }, "require": { "bacon/bacon-qr-code": "^2.0", "filament/filament": "^3.0.9", + "illuminate/contracts": "^10.0", "php": "^8.1", "pragmarx/google2fa": "^7.0|^8.0", "spatie/laravel-package-tools": "^1.14.0" }, "require-dev": { + "larastan/larastan": "^2.0.1", "laravel/pint": "^1.0", "nunomaduro/collision": "^7.9", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^2.0", + "orchestra/testbench": "^8.8", + "pestphp/pest": "^2.20", "pestphp/pest-plugin-arch": "^2.0", "pestphp/pest-plugin-laravel": "^2.0", + "pestphp/pest-plugin-livewire": "^2.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", "spatie/laravel-ray": "^1.26" }, "type": "library", @@ -3178,8 +4160,7 @@ }, "autoload": { "psr-4": { - "Jeffgreco13\\FilamentBreezy\\": "src/", - "Jeffgreco13\\FilamentBreezy\\Database\\Factories\\": "database/factories/" + "Jeffgreco13\\FilamentBreezy\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3202,9 +4183,9 @@ ], "support": { "issues": "https://github.com/jeffgreco13/filament-breezy/issues", - "source": "https://github.com/jeffgreco13/filament-breezy/tree/v2.2.1" + "source": "https://github.com/jeffgreco13/filament-breezy/tree/v2.2.8" }, - "time": "2023-11-26T19:20:35+00:00" + "time": "2024-01-31T15:37:01+00:00" }, { "name": "kamermans/guzzle-oauth2-subscriber", @@ -3253,18 +4234,76 @@ }, "time": "2023-07-11T21:43:27+00:00" }, + { + "name": "kelunik/certificate", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/kelunik/certificate.git", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kelunik/certificate/zipball/7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "reference": "7e00d498c264d5eb4f78c69f41c8bd6719c0199e", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "php": ">=7.0" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "^2", + "phpunit/phpunit": "^6 | 7 | ^8 | ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Kelunik\\Certificate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Access certificate details and transform between different formats.", + "keywords": [ + "DER", + "certificate", + "certificates", + "openssl", + "pem", + "x509" + ], + "support": { + "issues": "https://github.com/kelunik/certificate/issues", + "source": "https://github.com/kelunik/certificate/tree/v1.1.3" + }, + "time": "2023-02-03T21:26:53+00:00" + }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "3.3.3", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "e55fa70dfa4a5e897443454825b9d4ce6081786a" + "reference": "9238fcb53d777265ee9d8d139810e2cadecde079" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/e55fa70dfa4a5e897443454825b9d4ce6081786a", - "reference": "e55fa70dfa4a5e897443454825b9d4ce6081786a", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/9238fcb53d777265ee9d8d139810e2cadecde079", + "reference": "9238fcb53d777265ee9d8d139810e2cadecde079", "shasum": "" }, "require": { @@ -3311,9 +4350,9 @@ ], "support": { "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", - "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/3.3.3" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/3.4.0" }, - "time": "2023-10-31T18:01:18+00:00" + "time": "2023-12-07T10:44:41+00:00" }, { "name": "kornrunner/keccak", @@ -3366,20 +4405,20 @@ }, { "name": "laravel/framework", - "version": "v10.34.2", + "version": "v10.43.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "c581caa233e380610b34cc491490bfa147a3b62b" + "reference": "4f7802dfc9993cb57cf69615491ce1a7eb2e9529" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/c581caa233e380610b34cc491490bfa147a3b62b", - "reference": "c581caa233e380610b34cc491490bfa147a3b62b", + "url": "https://api.github.com/repos/laravel/framework/zipball/4f7802dfc9993cb57cf69615491ce1a7eb2e9529", + "reference": "4f7802dfc9993cb57cf69615491ce1a7eb2e9529", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.3.2", @@ -3408,7 +4447,7 @@ "symfony/console": "^6.2", "symfony/error-handler": "^6.2", "symfony/finder": "^6.2", - "symfony/http-foundation": "^6.3", + "symfony/http-foundation": "^6.4", "symfony/http-kernel": "^6.2", "symfony/mailer": "^6.2", "symfony/mime": "^6.2", @@ -3421,6 +4460,8 @@ "voku/portable-ascii": "^2.0" }, "conflict": { + "carbonphp/carbon-doctrine-types": ">=3.0", + "doctrine/dbal": ">=4.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -3476,7 +4517,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.15.1", + "orchestra/testbench-core": "^8.18", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", @@ -3532,6 +4573,7 @@ "files": [ "src/Illuminate/Collections/helpers.php", "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Support/helpers.php" ], @@ -3564,40 +4606,40 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-11-28T19:06:27+00:00" + "time": "2024-01-30T16:25:02+00:00" }, { "name": "laravel/horizon", - "version": "v5.21.4", + "version": "v5.22.1", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "bdf58c84b592b83f62262cc6ca98b0debbbc308b" + "reference": "8618d65fad70308b8a5e438c4cfc0a1c6c14eea6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/bdf58c84b592b83f62262cc6ca98b0debbbc308b", - "reference": "bdf58c84b592b83f62262cc6ca98b0debbbc308b", + "url": "https://api.github.com/repos/laravel/horizon/zipball/8618d65fad70308b8a5e438c4cfc0a1c6c14eea6", + "reference": "8618d65fad70308b8a5e438c4cfc0a1c6c14eea6", "shasum": "" }, "require": { "ext-json": "*", "ext-pcntl": "*", "ext-posix": "*", - "illuminate/contracts": "^8.17|^9.0|^10.0", - "illuminate/queue": "^8.17|^9.0|^10.0", - "illuminate/support": "^8.17|^9.0|^10.0", - "nesbot/carbon": "^2.17", + "illuminate/contracts": "^8.17|^9.0|^10.0|^11.0", + "illuminate/queue": "^8.17|^9.0|^10.0|^11.0", + "illuminate/support": "^8.17|^9.0|^10.0|^11.0", + "nesbot/carbon": "^2.17|^3.0", "php": "^7.3|^8.0", "ramsey/uuid": "^4.0", - "symfony/error-handler": "^5.0|^6.0", - "symfony/process": "^5.0|^6.0" + "symfony/error-handler": "^5.0|^6.0|^7.0", + "symfony/process": "^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "^1.0", - "orchestra/testbench": "^6.0|^7.0|^8.0", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.0", + "phpunit/phpunit": "^9.0|^10.4", "predis/predis": "^1.1|^2.0" }, "suggest": { @@ -3640,39 +4682,39 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.21.4" + "source": "https://github.com/laravel/horizon/tree/v5.22.1" }, - "time": "2023-11-23T15:47:58+00:00" + "time": "2024-01-30T03:04:51+00:00" }, { "name": "laravel/pennant", - "version": "v1.5.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/laravel/pennant.git", - "reference": "a76f147694e588db5656fbb608168dab534e2216" + "reference": "c1c49cbac1a50efe31484f504b7dbfefc502830a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pennant/zipball/a76f147694e588db5656fbb608168dab534e2216", - "reference": "a76f147694e588db5656fbb608168dab534e2216", + "url": "https://api.github.com/repos/laravel/pennant/zipball/c1c49cbac1a50efe31484f504b7dbfefc502830a", + "reference": "c1c49cbac1a50efe31484f504b7dbfefc502830a", "shasum": "" - }, - "require": { - "illuminate/console": "^10.0", - "illuminate/container": "^10.0", - "illuminate/contracts": "^10.0", - "illuminate/database": "^10.0", - "illuminate/queue": "^10.0", - "illuminate/support": "^10.0", + }, + "require": { + "illuminate/console": "^10.0|^11.0", + "illuminate/container": "^10.0|^11.0", + "illuminate/contracts": "^10.0|^11.0", + "illuminate/database": "^10.0|^11.0", + "illuminate/queue": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", "php": "^8.1", - "symfony/finder": "^6.0" + "symfony/finder": "^6.0|^7.0" }, "require-dev": { - "laravel/octane": "^1.4", - "orchestra/testbench": "^8.0", + "laravel/octane": "^1.4|^2.0", + "orchestra/testbench": "^8.0|^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.0|^10.4" }, "type": "library", "extra": { @@ -3718,20 +4760,20 @@ "issues": "https://github.com/laravel/pennant/issues", "source": "https://github.com/laravel/pennant" }, - "time": "2023-08-31T12:48:24+00:00" + "time": "2024-01-15T16:44:04+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.13", + "version": "v0.1.15", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a" + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/e1379d8ead15edd6cc4369c22274345982edc95a", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a", + "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", "shasum": "" }, "require": { @@ -3747,7 +4789,7 @@ "require-dev": { "mockery/mockery": "^1.5", "pestphp/pest": "^2.3", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, "suggest": { @@ -3773,22 +4815,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.13" + "source": "https://github.com/laravel/prompts/tree/v0.1.15" }, - "time": "2023-10-27T13:53:59+00:00" + "time": "2023-12-29T22:37:42+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60" + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", "shasum": "" }, "require": { @@ -3841,7 +4883,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-11-03T13:42:14+00:00" + "time": "2023-12-19T18:44:48+00:00" }, { "name": "laravel/serializable-closure", @@ -3966,16 +5008,16 @@ }, { "name": "laravel/telescope", - "version": "v4.17.2", + "version": "v4.17.5", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "64da53ee46b99ef328458eaed32202b51e325a11" + "reference": "2c5295261d1459e4f9b157c407a663a6685f3ddf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/64da53ee46b99ef328458eaed32202b51e325a11", - "reference": "64da53ee46b99ef328458eaed32202b51e325a11", + "url": "https://api.github.com/repos/laravel/telescope/zipball/2c5295261d1459e4f9b157c407a663a6685f3ddf", + "reference": "2c5295261d1459e4f9b157c407a663a6685f3ddf", "shasum": "" }, "require": { @@ -4031,31 +5073,31 @@ ], "support": { "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v4.17.2" + "source": "https://github.com/laravel/telescope/tree/v4.17.5" }, - "time": "2023-11-01T14:01:06+00:00" + "time": "2024-01-30T15:41:45+00:00" }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -4063,13 +5105,10 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -4100,22 +5139,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "league/commonmark", - "version": "2.4.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { @@ -4128,7 +5167,7 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", + "commonmark/cmark": "0.30.3", "commonmark/commonmark.js": "0.30.0", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", @@ -4138,10 +5177,10 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -4208,7 +5247,7 @@ "type": "tidelift" } ], - "time": "2023-08-30T16:55:00+00:00" + "time": "2024-02-02T11:59:32+00:00" }, { "name": "league/config", @@ -4294,36 +5333,35 @@ }, { "name": "league/csv", - "version": "9.12.0", + "version": "9.11.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21" + "reference": "33149c4bea4949aa4fa3d03fb11ed28682168b39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21", - "reference": "c1dc31e23eb3cd0f7b537ee1a669d5f58d5cfe21", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/33149c4bea4949aa4fa3d03fb11ed28682168b39", + "reference": "33149c4bea4949aa4fa3d03fb11ed28682168b39", "shasum": "" }, "require": { - "ext-filter": "*", "ext-json": "*", "ext-mbstring": "*", "php": "^8.1.2" }, "require-dev": { - "doctrine/collections": "^2.1.4", + "doctrine/collections": "^2.1.3", "ext-dom": "*", "ext-xdebug": "*", "friendsofphp/php-cs-fixer": "^v3.22.0", - "phpbench/phpbench": "^1.2.15", - "phpstan/phpstan": "^1.10.46", - "phpstan/phpstan-deprecation-rules": "^1.1.4", - "phpstan/phpstan-phpunit": "^1.3.15", - "phpstan/phpstan-strict-rules": "^1.5.2", - "phpunit/phpunit": "^10.4.2", - "symfony/var-dumper": "^6.4.0" + "phpbench/phpbench": "^1.2.14", + "phpstan/phpstan": "^1.10.26", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^10.3.1", + "symfony/var-dumper": "^6.3.3" }, "suggest": { "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", @@ -4379,20 +5417,20 @@ "type": "github" } ], - "time": "2023-12-01T17:54:07+00:00" + "time": "2023-09-23T10:09:54+00:00" }, { "name": "league/flysystem", - "version": "3.21.0", + "version": "3.23.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "a326d8a2d007e4ca327a57470846e34363789258" + "reference": "199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a326d8a2d007e4ca327a57470846e34363789258", - "reference": "a326d8a2d007e4ca327a57470846e34363789258", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e", + "reference": "199e1aebbe3e62bd39f4d4fc8c61ce0b3786197e", "shasum": "" }, "require": { @@ -4420,7 +5458,7 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.14", + "phpseclib/phpseclib": "^3.0.34", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", "sabre/dav": "^4.3.1" @@ -4457,7 +5495,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.23.1" }, "funding": [ { @@ -4469,20 +5507,20 @@ "type": "github" } ], - "time": "2023-11-18T13:59:15+00:00" + "time": "2024-01-26T18:42:03+00:00" }, { "name": "league/flysystem-local", - "version": "3.21.0", + "version": "3.23.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7" + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/470eb1c09eaabd49ebd908ae06f23983ba3ecfe7", - "reference": "470eb1c09eaabd49ebd908ae06f23983ba3ecfe7", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", "shasum": "" }, "require": { @@ -4517,7 +5555,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" }, "funding": [ { @@ -4529,7 +5567,7 @@ "type": "github" } ], - "time": "2023-11-18T13:41:42+00:00" + "time": "2024-01-26T18:25:23+00:00" }, { "name": "league/glide", @@ -4598,16 +5636,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.14.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { @@ -4638,7 +5676,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -4650,7 +5688,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T14:13:20+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "league/oauth2-client", @@ -4898,35 +5936,36 @@ }, { "name": "livewire/livewire", - "version": "v3.2.3", + "version": "v3.4.4", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "724e712cac25c40455102f0b5abd002fd269433b" + "reference": "c0489d4a76382f6dcf6e2702112f86aa089d0c8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/724e712cac25c40455102f0b5abd002fd269433b", - "reference": "724e712cac25c40455102f0b5abd002fd269433b", + "url": "https://api.github.com/repos/livewire/livewire/zipball/c0489d4a76382f6dcf6e2702112f86aa089d0c8d", + "reference": "c0489d4a76382f6dcf6e2702112f86aa089d0c8d", "shasum": "" }, "require": { - "illuminate/database": "^10.0", - "illuminate/support": "^10.0", - "illuminate/validation": "^10.0", + "illuminate/database": "^10.0|^11.0", + "illuminate/routing": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "illuminate/validation": "^10.0|^11.0", "league/mime-type-detection": "^1.9", "php": "^8.1", - "symfony/http-kernel": "^6.2" + "symfony/http-kernel": "^6.2|^7.0" }, "require-dev": { "calebporzio/sushi": "^2.1", - "laravel/framework": "^10.0", + "laravel/framework": "^10.0|^11.0", "laravel/prompts": "^0.1.6", "mockery/mockery": "^1.3.1", - "orchestra/testbench": "^8.0", - "orchestra/testbench-dusk": "^8.0", - "phpunit/phpunit": "^9.0", - "psy/psysh": "@stable" + "orchestra/testbench": "8.20.0|^9.0", + "orchestra/testbench-dusk": "8.20.0|^9.0", + "phpunit/phpunit": "^10.4", + "psy/psysh": "^0.11.22|^0.12" }, "type": "library", "extra": { @@ -4960,7 +5999,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.2.3" + "source": "https://github.com/livewire/livewire/tree/v3.4.4" }, "funding": [ { @@ -4968,7 +6007,7 @@ "type": "github" } ], - "time": "2023-12-02T18:55:31+00:00" + "time": "2024-01-28T19:07:11+00:00" }, { "name": "maennchen/zipstream-php", @@ -5287,16 +6326,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.0", + "version": "2.72.3", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "a6885fcbad2ec4360b0e200ee0da7d9b7c90786b" + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/a6885fcbad2ec4360b0e200ee0da7d9b7c90786b", - "reference": "a6885fcbad2ec4360b0e200ee0da7d9b7c90786b", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { @@ -5390,35 +6429,35 @@ "type": "tidelift" } ], - "time": "2023-11-28T10:13:25+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -5450,22 +6489,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.3", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { @@ -5536,22 +6575,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.3" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-10-29T21:02:13+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", "shasum": "" }, "require": { @@ -5592,9 +6631,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2023-12-10T21:03:43+00:00" }, { "name": "nunomaduro/termwind", @@ -5760,6 +6799,99 @@ ], "time": "2023-11-13T09:31:12+00:00" }, + { + "name": "openspout/openspout", + "version": "v4.23.0", + "source": { + "type": "git", + "url": "https://github.com/openspout/openspout.git", + "reference": "28f6a0e45acc3377f34c26cc3866e21f0447e0c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/openspout/openspout/zipball/28f6a0e45acc3377f34c26cc3866e21f0447e0c8", + "reference": "28f6a0e45acc3377f34c26cc3866e21f0447e0c8", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-filter": "*", + "ext-libxml": "*", + "ext-xmlreader": "*", + "ext-zip": "*", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "require-dev": { + "ext-zlib": "*", + "friendsofphp/php-cs-fixer": "^3.46.0", + "infection/infection": "^0.27.9", + "phpbench/phpbench": "^1.2.15", + "phpstan/phpstan": "^1.10.55", + "phpstan/phpstan-phpunit": "^1.3.15", + "phpstan/phpstan-strict-rules": "^1.5.2", + "phpunit/phpunit": "^10.5.5" + }, + "suggest": { + "ext-iconv": "To handle non UTF-8 CSV files (if \"php-mbstring\" is not already installed or is too limited)", + "ext-mbstring": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "OpenSpout\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adrien Loison", + "email": "adrien@box.com" + } + ], + "description": "PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way", + "homepage": "https://github.com/openspout/openspout", + "keywords": [ + "OOXML", + "csv", + "excel", + "memory", + "odf", + "ods", + "office", + "open", + "php", + "read", + "scale", + "spreadsheet", + "stream", + "write", + "xlsx" + ], + "support": { + "issues": "https://github.com/openspout/openspout/issues", + "source": "https://github.com/openspout/openspout/tree/v4.23.0" + }, + "funding": [ + { + "url": "https://paypal.me/filippotessarotto", + "type": "custom" + }, + { + "url": "https://github.com/Slamdunk", + "type": "github" + } + ], + "time": "2024-01-09T09:30:37+00:00" + }, { "name": "paragonie/constant_time_encoding", "version": "v2.6.3", @@ -6335,16 +7467,16 @@ }, { "name": "php-http/promise", - "version": "1.2.1", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/php-http/promise.git", - "reference": "44a67cb59f708f826f3bec35f22030b3edb90119" + "reference": "2916a606d3b390f4e9e8e2b8dd68581508be0f07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/promise/zipball/44a67cb59f708f826f3bec35f22030b3edb90119", - "reference": "44a67cb59f708f826f3bec35f22030b3edb90119", + "url": "https://api.github.com/repos/php-http/promise/zipball/2916a606d3b390f4e9e8e2b8dd68581508be0f07", + "reference": "2916a606d3b390f4e9e8e2b8dd68581508be0f07", "shasum": "" }, "require": { @@ -6381,9 +7513,9 @@ ], "support": { "issues": "https://github.com/php-http/promise/issues", - "source": "https://github.com/php-http/promise/tree/1.2.1" + "source": "https://github.com/php-http/promise/tree/1.3.0" }, - "time": "2023-11-08T12:57:08+00:00" + "time": "2024-01-04T18:49:48+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -6440,16 +7572,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.3", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", "shasum": "" }, "require": { @@ -6492,9 +7624,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" }, - "time": "2023-08-12T11:01:26+00:00" + "time": "2024-01-11T11:49:22+00:00" }, { "name": "phpoption/phpoption", @@ -6573,16 +7705,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.4", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496" + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6bd0c26f3786cd9b7c359675cb789e35a8e07496", - "reference": "6bd0c26f3786cd9b7c359675cb789e35a8e07496", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { @@ -6614,9 +7746,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.4" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "time": "2023-11-26T18:29:22+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { "name": "pragmarx/google2fa", @@ -7133,25 +8265,25 @@ }, { "name": "psy/psysh", - "version": "v0.11.22", + "version": "v0.12.0", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -7162,8 +8294,7 @@ "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" @@ -7171,7 +8302,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-0.11": "0.11.x-dev" + "dev-main": "0.12.x-dev" }, "bamarni-bin": { "bin-links": false, @@ -7207,9 +8338,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" }, - "time": "2023-10-14T21:56:36+00:00" + "time": "2023-12-20T15:28:09+00:00" }, { "name": "ralouphie/getallheaders", @@ -7823,16 +8954,16 @@ }, { "name": "react/socket", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6" + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/21591111d3ea62e31f2254280ca0656bc2b1bda6", - "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6", + "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", "shasum": "" }, "require": { @@ -7844,7 +8975,7 @@ "react/stream": "^1.2" }, "require-dev": { - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", "react/async": "^4 || ^3 || ^2", "react/promise-stream": "^1.4", "react/promise-timer": "^1.10" @@ -7852,7 +8983,7 @@ "type": "library", "autoload": { "psr-4": { - "React\\Socket\\": "src" + "React\\Socket\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -7891,7 +9022,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.14.0" + "source": "https://github.com/reactphp/socket/tree/v1.15.0" }, "funding": [ { @@ -7899,7 +9030,7 @@ "type": "open_collective" } ], - "time": "2023-08-25T13:48:09+00:00" + "time": "2023-12-15T11:02:10+00:00" }, { "name": "react/stream", @@ -7979,6 +9110,78 @@ ], "time": "2023-06-16T10:52:11+00:00" }, + { + "name": "revolt/event-loop", + "version": "v1.0.6", + "source": { + "type": "git", + "url": "https://github.com/revoltphp/event-loop.git", + "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/25de49af7223ba039f64da4ae9a28ec2d10d0254", + "reference": "25de49af7223ba039f64da4ae9a28ec2d10d0254", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^9", + "psalm/phar": "^5.15" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Revolt\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "ceesjank@gmail.com" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "Rock-solid event loop for concurrent PHP applications.", + "keywords": [ + "async", + "asynchronous", + "concurrency", + "event", + "event-loop", + "non-blocking", + "scheduler" + ], + "support": { + "issues": "https://github.com/revoltphp/event-loop/issues", + "source": "https://github.com/revoltphp/event-loop/tree/v1.0.6" + }, + "time": "2023-11-30T05:34:44+00:00" + }, { "name": "ringcentral/psr7", "version": "1.3.0", @@ -8120,22 +9323,22 @@ }, { "name": "sentry/sdk", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php-sdk.git", - "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d" + "reference": "24c235ff2027401cbea099bf88689e1a1f197c7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/cd91b752f07c4bab9fb3b173f81af68a78a78d6d", - "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d", + "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/24c235ff2027401cbea099bf88689e1a1f197c7a", + "reference": "24c235ff2027401cbea099bf88689e1a1f197c7a", "shasum": "" }, "require": { "http-interop/http-factory-guzzle": "^1.0", - "sentry/sentry": "^3.19", - "symfony/http-client": "^4.3|^5.0|^6.0" + "sentry/sentry": "^3.22", + "symfony/http-client": "^4.3|^5.0|^6.0|^7.0" }, "type": "metapackage", "notification-url": "https://packagist.org/downloads/", @@ -8161,7 +9364,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php-sdk/issues", - "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.5.0" + "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.6.0" }, "funding": [ { @@ -8173,7 +9376,7 @@ "type": "custom" } ], - "time": "2023-06-12T17:50:36+00:00" + "time": "2023-12-04T10:49:33+00:00" }, { "name": "sentry/sentry", @@ -8407,16 +9610,16 @@ }, { "name": "simplito/bn-php", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/simplito/bn-php.git", - "reference": "189167f940cdb681288a967b0f4d66de81adcd97" + "reference": "83446756a81720eacc2ffb87ff97958431451fd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplito/bn-php/zipball/189167f940cdb681288a967b0f4d66de81adcd97", - "reference": "189167f940cdb681288a967b0f4d66de81adcd97", + "url": "https://api.github.com/repos/simplito/bn-php/zipball/83446756a81720eacc2ffb87ff97958431451fd6", + "reference": "83446756a81720eacc2ffb87ff97958431451fd6", "shasum": "" }, "require": { @@ -8445,22 +9648,22 @@ "description": "Big number implementation compatible with bn.js", "support": { "issues": "https://github.com/simplito/bn-php/issues", - "source": "https://github.com/simplito/bn-php/tree/1.1.3" + "source": "https://github.com/simplito/bn-php/tree/1.1.4" }, - "time": "2022-08-12T18:58:14+00:00" + "time": "2024-01-10T16:16:59+00:00" }, { "name": "simplito/elliptic-php", - "version": "1.0.11", + "version": "1.0.12", "source": { "type": "git", "url": "https://github.com/simplito/elliptic-php.git", - "reference": "d0957dd6461f19a5ceb94cf3a0a908d8a0485b40" + "reference": "be321666781be2be2c89c79c43ffcac834bc8868" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplito/elliptic-php/zipball/d0957dd6461f19a5ceb94cf3a0a908d8a0485b40", - "reference": "d0957dd6461f19a5ceb94cf3a0a908d8a0485b40", + "url": "https://api.github.com/repos/simplito/elliptic-php/zipball/be321666781be2be2c89c79c43ffcac834bc8868", + "reference": "be321666781be2be2c89c79c43ffcac834bc8868", "shasum": "" }, "require": { @@ -8510,22 +9713,22 @@ ], "support": { "issues": "https://github.com/simplito/elliptic-php/issues", - "source": "https://github.com/simplito/elliptic-php/tree/1.0.11" + "source": "https://github.com/simplito/elliptic-php/tree/1.0.12" }, - "time": "2023-08-28T15:27:19+00:00" + "time": "2024-01-09T14:57:04+00:00" }, { "name": "spatie/browsershot", - "version": "3.60.1", + "version": "3.61.0", "source": { "type": "git", "url": "https://github.com/spatie/browsershot.git", - "reference": "8779b2cd10dcd9dab4abd0127429e5578da3f9ab" + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/browsershot/zipball/8779b2cd10dcd9dab4abd0127429e5578da3f9ab", - "reference": "8779b2cd10dcd9dab4abd0127429e5578da3f9ab", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/14d75679390b8b84a71b3a17dc5905928deeb887", + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887", "shasum": "" }, "require": { @@ -8533,7 +9736,7 @@ "php": "^8.0", "spatie/image": "^1.5.3|^2.0", "spatie/temporary-directory": "^1.1|^2.0", - "symfony/process": "^4.2|^5.0|^6.0" + "symfony/process": "^4.2|^5.0|^6.0|^7.0" }, "require-dev": { "pestphp/pest": "^1.20", @@ -8570,7 +9773,7 @@ "webpage" ], "support": { - "source": "https://github.com/spatie/browsershot/tree/3.60.1" + "source": "https://github.com/spatie/browsershot/tree/3.61.0" }, "funding": [ { @@ -8578,7 +9781,7 @@ "type": "github" } ], - "time": "2023-11-28T10:50:45+00:00" + "time": "2023-12-21T10:00:28+00:00" }, { "name": "spatie/color", @@ -8884,28 +10087,30 @@ }, { "name": "spatie/laravel-data", - "version": "3.10.0", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-data.git", - "reference": "5b9e32824a17dd7c91499075fbae882398bd4220" + "reference": "e9cb66136974b6a6e290d6d2e2d484bac1727537" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-data/zipball/5b9e32824a17dd7c91499075fbae882398bd4220", - "reference": "5b9e32824a17dd7c91499075fbae882398bd4220", + "url": "https://api.github.com/repos/spatie/laravel-data/zipball/e9cb66136974b6a6e290d6d2e2d484bac1727537", + "reference": "e9cb66136974b6a6e290d6d2e2d484bac1727537", "shasum": "" }, "require": { "illuminate/contracts": "^9.30|^10.0", "php": "^8.1", "phpdocumentor/type-resolver": "^1.5", - "spatie/laravel-package-tools": "^1.9.0" + "spatie/laravel-package-tools": "^1.9.0", + "spatie/php-structure-discoverer": "^2.0" }, "require-dev": { "fakerphp/faker": "^1.14", "friendsofphp/php-cs-fixer": "^3.0", "inertiajs/inertia-laravel": "^0.6.3", + "mockery/mockery": "^1.6", "nesbot/carbon": "^2.63", "nette/php-generator": "^3.5", "nunomaduro/larastan": "^2.0", @@ -8955,7 +10160,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-data/issues", - "source": "https://github.com/spatie/laravel-data/tree/3.10.0" + "source": "https://github.com/spatie/laravel-data/tree/3.11.0" }, "funding": [ { @@ -8963,27 +10168,27 @@ "type": "github" } ], - "time": "2023-12-01T14:22:21+00:00" + "time": "2023-12-21T12:31:34+00:00" }, { "name": "spatie/laravel-markdown", - "version": "2.4.0", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-markdown.git", - "reference": "38d11c666ccdbf111535677c1d927b349b64aca4" + "reference": "7f23584b545d7ec66e6114d9b25c3ec3ddffbb76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-markdown/zipball/38d11c666ccdbf111535677c1d927b349b64aca4", - "reference": "38d11c666ccdbf111535677c1d927b349b64aca4", + "url": "https://api.github.com/repos/spatie/laravel-markdown/zipball/7f23584b545d7ec66e6114d9b25c3ec3ddffbb76", + "reference": "7f23584b545d7ec66e6114d9b25c3ec3ddffbb76", "shasum": "" }, "require": { - "illuminate/cache": "^8.49|^9.0|^10.0", - "illuminate/contracts": "^8.37|^9.0|^10.0", - "illuminate/support": "^8.49|^9.0|^10.0", - "illuminate/view": "^8.49|^9.0|^10.0", + "illuminate/cache": "^8.49|^9.0|^10.0|^11.0", + "illuminate/contracts": "^8.37|^9.0|^10.0|^11.0", + "illuminate/support": "^8.49|^9.0|^10.0|^11.0", + "illuminate/view": "^8.49|^9.0|^10.0|^11.0", "league/commonmark": "^2.2", "php": "^8.0", "spatie/commonmark-shiki-highlighter": "^2.0", @@ -9031,7 +10236,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-markdown/tree/2.4.0" + "source": "https://github.com/spatie/laravel-markdown/tree/2.4.2" }, "funding": [ { @@ -9039,7 +10244,7 @@ "type": "github" } ], - "time": "2023-08-17T06:59:15+00:00" + "time": "2024-01-11T08:43:31+00:00" }, { "name": "spatie/laravel-medialibrary", @@ -9151,20 +10356,20 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.16.1", + "version": "1.16.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d" + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/cc7c991555a37f9fa6b814aa03af73f88026a83d", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", "shasum": "" }, "require": { - "illuminate/contracts": "^9.28|^10.0", + "illuminate/contracts": "^9.28|^10.0|^11.0", "php": "^8.0" }, "require-dev": { @@ -9199,7 +10404,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2" }, "funding": [ { @@ -9207,7 +10412,7 @@ "type": "github" } ], - "time": "2023-08-23T09:04:39+00:00" + "time": "2024-01-11T08:43:00+00:00" }, { "name": "spatie/laravel-permission", @@ -9508,6 +10713,86 @@ ], "time": "2023-12-01T14:59:32+00:00" }, + { + "name": "spatie/php-structure-discoverer", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/php-structure-discoverer.git", + "reference": "d2e4e6cba962ce2a058ea415a123dd84b37765ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/php-structure-discoverer/zipball/d2e4e6cba962ce2a058ea415a123dd84b37765ac", + "reference": "d2e4e6cba962ce2a058ea415a123dd84b37765ac", + "shasum": "" + }, + "require": { + "amphp/amp": "^v3.0", + "amphp/parallel": "^2.2", + "illuminate/collections": "^9.30|^10.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.4.3", + "symfony/finder": "^6.0|^7.0" + }, + "require-dev": { + "illuminate/console": "^9.30|^10.0", + "laravel/pint": "^1.0", + "nunomaduro/collision": "^6.0", + "nunomaduro/larastan": "^2.0.1", + "orchestra/testbench": "^7.0|^8.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\StructureDiscoverer\\StructureDiscovererServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\StructureDiscoverer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ruben Van Assche", + "email": "ruben@spatie.be", + "role": "Developer" + } + ], + "description": "Automatically discover structures within your PHP application", + "homepage": "https://github.com/spatie/php-structure-discoverer", + "keywords": [ + "discover", + "laravel", + "php", + "php-structure-discoverer" + ], + "support": { + "issues": "https://github.com/spatie/php-structure-discoverer/issues", + "source": "https://github.com/spatie/php-structure-discoverer/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/LaravelAutoDiscoverer", + "type": "github" + } + ], + "time": "2024-01-08T21:01:26+00:00" + }, { "name": "spatie/shiki-php", "version": "1.3.0", @@ -9573,16 +10858,16 @@ }, { "name": "spatie/temporary-directory", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c" + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/efc258c9f4da28f0c7661765b8393e4ccee3d19c", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", "shasum": "" }, "require": { @@ -9618,7 +10903,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.2.0" + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" }, "funding": [ { @@ -9630,7 +10915,7 @@ "type": "github" } ], - "time": "2023-09-25T07:13:36+00:00" + "time": "2023-12-25T11:46:58+00:00" }, { "name": "spatie/typescript-transformer", @@ -9756,16 +11041,16 @@ }, { "name": "symfony/console", - "version": "v6.4.1", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd" + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a550a7c99daeedef3f9d23fb82e3531525ff11fd", - "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd", + "url": "https://api.github.com/repos/symfony/console/zipball/2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", + "reference": "2aaf83b4de5b9d43b93e4aec6f2f8b676f7c567e", "shasum": "" }, "require": { @@ -9830,7 +11115,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.1" + "source": "https://github.com/symfony/console/tree/v6.4.3" }, "funding": [ { @@ -9846,24 +11131,24 @@ "type": "tidelift" } ], - "time": "2023-11-30T10:54:28+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/css-selector", - "version": "v6.4.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4" + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/d036c6c0d0b09e24a14a35f8292146a658f986e4", - "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { - "php": ">=8.1" + "php": ">=8.2" }, "type": "library", "autoload": { @@ -9895,7 +11180,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.4.0" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { @@ -9911,7 +11196,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T08:40:20+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/deprecation-contracts", @@ -9982,16 +11267,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788" + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6dc3c76a278b77f01d864a6005d640822c6f26a6", + "reference": "6dc3c76a278b77f01d864a6005d640822c6f26a6", "shasum": "" }, "require": { @@ -10037,7 +11322,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.0" + "source": "https://github.com/symfony/error-handler/tree/v6.4.3" }, "funding": [ { @@ -10053,20 +11338,20 @@ "type": "tidelift" } ], - "time": "2023-10-18T09:43:34+00:00" + "time": "2024-01-29T15:40:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { @@ -10117,7 +11402,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { @@ -10133,7 +11418,7 @@ "type": "tidelift" } ], - "time": "2023-07-27T16:29:09+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -10277,16 +11562,16 @@ }, { "name": "symfony/html-sanitizer", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "9cc71f272eb62504872c80845074f236e8e43536" + "reference": "116335ab09e10b05405f01d8afd31ccc3832b08b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/9cc71f272eb62504872c80845074f236e8e43536", - "reference": "9cc71f272eb62504872c80845074f236e8e43536", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/116335ab09e10b05405f01d8afd31ccc3832b08b", + "reference": "116335ab09e10b05405f01d8afd31ccc3832b08b", "shasum": "" }, "require": { @@ -10326,7 +11611,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v6.4.0" + "source": "https://github.com/symfony/html-sanitizer/tree/v6.4.3" }, "funding": [ { @@ -10342,32 +11627,31 @@ "type": "tidelift" } ], - "time": "2023-10-28T23:12:08+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "5c584530b77aa10ae216989ffc48b4bedc9c0b29" + "reference": "3d2605c07cd14aec294f72f5bf8147702f7a5ada" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/5c584530b77aa10ae216989ffc48b4bedc9c0b29", - "reference": "5c584530b77aa10ae216989ffc48b4bedc9c0b29", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3d2605c07cd14aec294f72f5bf8147702f7a5ada", + "reference": "3d2605c07cd14aec294f72f5bf8147702f7a5ada", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "^3", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" + "symfony/http-foundation": "<6.4" }, "provide": { "php-http/async-client-implementation": "*", @@ -10384,11 +11668,11 @@ "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0" + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" }, "type": "library", "autoload": { @@ -10419,7 +11703,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.0" + "source": "https://github.com/symfony/http-client/tree/v7.0.3" }, "funding": [ { @@ -10435,7 +11719,7 @@ "type": "tidelift" } ], - "time": "2023-11-28T20:55:58+00:00" + "time": "2024-01-29T15:41:16+00:00" }, { "name": "symfony/http-client-contracts", @@ -10517,16 +11801,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771" + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/44a6d39a9cc11e154547d882d5aac1e014440771", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5677bdf7cade4619cb17fc9e1e7b31ec392244a9", + "reference": "5677bdf7cade4619cb17fc9e1e7b31ec392244a9", "shasum": "" }, "require": { @@ -10574,7 +11858,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.3" }, "funding": [ { @@ -10590,20 +11874,20 @@ "type": "tidelift" } ], - "time": "2023-11-20T16:41:16+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.1", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b" + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2953274c16a229b3933ef73a6898e18388e12e1b", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9c6ec4e543044f7568a53a76ab1484ecd30637a2", + "reference": "9c6ec4e543044f7568a53a76ab1484ecd30637a2", "shasum": "" }, "require": { @@ -10687,7 +11971,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.1" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.3" }, "funding": [ { @@ -10703,20 +11987,20 @@ "type": "tidelift" } ], - "time": "2023-12-01T17:02:02+00:00" + "time": "2024-01-31T07:21:29+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba" + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/74412c62f88a85a41b61f0b71ab0afcaad6f03ee", + "reference": "74412c62f88a85a41b61f0b71ab0afcaad6f03ee", "shasum": "" }, "require": { @@ -10767,7 +12051,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.0" + "source": "https://github.com/symfony/mailer/tree/v6.4.3" }, "funding": [ { @@ -10783,20 +12067,20 @@ "type": "tidelift" } ], - "time": "2023-11-12T18:02:22+00:00" + "time": "2024-01-29T15:01:07+00:00" }, { "name": "symfony/mime", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205" + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", "shasum": "" }, "require": { @@ -10851,7 +12135,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.0" + "source": "https://github.com/symfony/mime/tree/v6.4.3" }, "funding": [ { @@ -10867,7 +12151,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T11:49:05+00:00" + "time": "2024-01-30T08:32:12+00:00" }, { "name": "symfony/options-resolver", @@ -11676,16 +12960,16 @@ }, { "name": "symfony/process", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa" + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/191703b1566d97a5425dc969e4350d32b8ef17aa", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa", + "url": "https://api.github.com/repos/symfony/process/zipball/31642b0818bfcff85930344ef93193f8c607e0a3", + "reference": "31642b0818bfcff85930344ef93193f8c607e0a3", "shasum": "" }, "require": { @@ -11717,7 +13001,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.0" + "source": "https://github.com/symfony/process/tree/v6.4.3" }, "funding": [ { @@ -11733,7 +13017,7 @@ "type": "tidelift" } ], - "time": "2023-11-17T21:06:49+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -11826,16 +13110,16 @@ }, { "name": "symfony/routing", - "version": "v6.4.1", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40" + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0c95c164fdba18b12523b75e64199ca3503e6d40", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40", + "url": "https://api.github.com/repos/symfony/routing/zipball/3b2957ad54902f0f544df83e3d58b38d7e8e5842", + "reference": "3b2957ad54902f0f544df83e3d58b38d7e8e5842", "shasum": "" }, "require": { @@ -11889,7 +13173,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.1" + "source": "https://github.com/symfony/routing/tree/v6.4.3" }, "funding": [ { @@ -11905,25 +13189,25 @@ "type": "tidelift" } ], - "time": "2023-12-01T14:54:37+00:00" + "time": "2024-01-30T13:55:02+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -11971,7 +13255,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -11987,20 +13271,20 @@ "type": "tidelift" } ], - "time": "2023-07-30T20:28:31+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/string", - "version": "v7.0.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", + "url": "https://api.github.com/repos/symfony/string/zipball/524aac4a280b90a4420d8d6a040718d0586505ac", + "reference": "524aac4a280b90a4420d8d6a040718d0586505ac", "shasum": "" }, "require": { @@ -12057,7 +13341,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" + "source": "https://github.com/symfony/string/tree/v7.0.3" }, "funding": [ { @@ -12073,20 +13357,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:40:23+00:00" + "time": "2024-01-29T15:41:16+00:00" }, { "name": "symfony/translation", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37" + "reference": "637c51191b6b184184bbf98937702bcf554f7d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", + "url": "https://api.github.com/repos/symfony/translation/zipball/637c51191b6b184184bbf98937702bcf554f7d04", + "reference": "637c51191b6b184184bbf98937702bcf554f7d04", "shasum": "" }, "require": { @@ -12109,7 +13393,7 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", "symfony/config": "^5.4|^6.0|^7.0", "symfony/console": "^5.4|^6.0|^7.0", @@ -12152,7 +13436,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.0" + "source": "https://github.com/symfony/translation/tree/v6.4.3" }, "funding": [ { @@ -12168,20 +13452,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:14:36+00:00" + "time": "2024-01-29T13:11:52+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { @@ -12230,7 +13514,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -12246,20 +13530,20 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/uid", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92" + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { @@ -12304,7 +13588,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.0" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -12320,20 +13604,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T08:18:17+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6" + "reference": "0435a08f69125535336177c29d56af3abc1f69da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c40f7d17e91d8b407582ed51a2bbf83c52c367f6", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0435a08f69125535336177c29d56af3abc1f69da", + "reference": "0435a08f69125535336177c29d56af3abc1f69da", "shasum": "" }, "require": { @@ -12389,7 +13673,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.3" }, "funding": [ { @@ -12405,7 +13689,7 @@ "type": "tidelift" } ], - "time": "2023-11-09T08:28:32+00:00" + "time": "2024-01-23T14:53:30+00:00" }, { "name": "tightenco/ziggy", @@ -12476,23 +13760,23 @@ }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.6", + "version": "v2.2.7", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", - "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", + "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" @@ -12523,22 +13807,22 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" }, - "time": "2023-01-03T09:29:04+00:00" + "time": "2023-12-08T13:03:43+00:00" }, { "name": "tpetry/laravel-postgresql-enhanced", - "version": "0.33.0", + "version": "0.34.0", "source": { "type": "git", "url": "https://github.com/tpetry/laravel-postgresql-enhanced.git", - "reference": "a75749e45983ae548d4d85a9ef7c3240710a3384" + "reference": "c52890aa7099bfcc58a4a45b298780246f9c2b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tpetry/laravel-postgresql-enhanced/zipball/a75749e45983ae548d4d85a9ef7c3240710a3384", - "reference": "a75749e45983ae548d4d85a9ef7c3240710a3384", + "url": "https://api.github.com/repos/tpetry/laravel-postgresql-enhanced/zipball/c52890aa7099bfcc58a4a45b298780246f9c2b7a", + "reference": "c52890aa7099bfcc58a4a45b298780246f9c2b7a", "shasum": "" }, "require": { @@ -12588,9 +13872,9 @@ ], "support": { "issues": "https://github.com/tpetry/laravel-postgresql-enhanced/issues", - "source": "https://github.com/tpetry/laravel-postgresql-enhanced/tree/0.33.0" + "source": "https://github.com/tpetry/laravel-postgresql-enhanced/tree/0.34.0" }, - "time": "2023-10-23T15:36:21+00:00" + "time": "2024-01-26T16:33:42+00:00" }, { "name": "vlucas/phpdotenv", @@ -12896,16 +14180,16 @@ }, { "name": "brianium/paratest", - "version": "v7.3.1", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "551f46f52a93177d873f3be08a1649ae886b4a30" + "reference": "4ffc52ebbce2f259d6a15c1ddaf4ad837eef6703" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/551f46f52a93177d873f3be08a1649ae886b4a30", - "reference": "551f46f52a93177d873f3be08a1649ae886b4a30", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/4ffc52ebbce2f259d6a15c1ddaf4ad837eef6703", + "reference": "4ffc52ebbce2f259d6a15c1ddaf4ad837eef6703", "shasum": "" }, "require": { @@ -12913,28 +14197,27 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^0.5.1 || ^1.0.0", + "fidry/cpu-core-counter": "^1.0.0", "jean85/pretty-package-versions": "^2.0.5", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", - "phpunit/php-code-coverage": "^10.1.7", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-timer": "^6.0", - "phpunit/phpunit": "^10.4.2", - "sebastian/environment": "^6.0.1", - "symfony/console": "^6.3.4 || ^7.0.0", - "symfony/process": "^6.3.4 || ^7.0.0" + "php": "~8.2.0 || ~8.3.0", + "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", + "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", + "phpunit/php-timer": "^6.0.0 || ^7.0.0", + "phpunit/phpunit": "^10.5.9 || ^11.0.0", + "sebastian/environment": "^6.0.1 || ^7.0.0", + "symfony/console": "^6.4.3 || ^7.0.3", + "symfony/process": "^6.4.3 || ^7.0.3" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "infection/infection": "^0.27.6", - "phpstan/phpstan": "^1.10.40", + "phpstan/phpstan": "^1.10.57", "phpstan/phpstan-deprecation-rules": "^1.1.4", "phpstan/phpstan-phpunit": "^1.3.15", "phpstan/phpstan-strict-rules": "^1.5.2", - "squizlabs/php_codesniffer": "^3.7.2", - "symfony/filesystem": "^6.3.1 || ^7.0.0" + "squizlabs/php_codesniffer": "^3.8.1", + "symfony/filesystem": "^6.4.3 || ^7.0.3" }, "bin": [ "bin/paratest", @@ -12975,7 +14258,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.3.1" + "source": "https://github.com/paratestphp/paratest/tree/v7.4.0" }, "funding": [ { @@ -12987,20 +14270,20 @@ "type": "paypal" } ], - "time": "2023-10-31T09:24:17+00:00" + "time": "2024-02-02T09:37:18+00:00" }, { "name": "fakerphp/faker", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { @@ -13026,11 +14309,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.21-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -13053,9 +14331,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" }, - "time": "2023-06-12T08:44:38+00:00" + "time": "2024-01-02T13:46:09+00:00" }, { "name": "fidry/cpu-core-counter", @@ -13191,27 +14469,27 @@ }, { "name": "graham-campbell/analyzer", - "version": "v4.0.0", + "version": "v4.1.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Analyzer.git", - "reference": "5cc3c7c8a6d97ed934ac5a9b2dd1927d6dbb5316" + "reference": "4742cacf7f9d6d58a956d8380153c976c448d6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Analyzer/zipball/5cc3c7c8a6d97ed934ac5a9b2dd1927d6dbb5316", - "reference": "5cc3c7c8a6d97ed934ac5a9b2dd1927d6dbb5316", + "url": "https://api.github.com/repos/GrahamCampbell/Analyzer/zipball/4742cacf7f9d6d58a956d8380153c976c448d6ca", + "reference": "4742cacf7f9d6d58a956d8380153c976c448d6ca", "shasum": "" }, "require": { - "nikic/php-parser": "^4.15.3", + "nikic/php-parser": "^4.17.1", "php": "^7.4.15 || ^8.0.2", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/reflection-docblock": "^5.3", - "phpdocumentor/type-resolver": "^1.6.2" + "phpdocumentor/type-resolver": "^1.7.3" }, "require-dev": { - "phpunit/phpunit": "^9.6.3 || ^10.0.12" + "phpunit/phpunit": "^9.6.15 || ^10.5.1" }, "suggest": { "phpunit/phpunit": "Required to use the analysis trait." @@ -13244,7 +14522,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Analyzer/issues", - "source": "https://github.com/GrahamCampbell/Analyzer/tree/v4.0.0" + "source": "https://github.com/GrahamCampbell/Analyzer/tree/v4.1.0" }, "funding": [ { @@ -13256,7 +14534,7 @@ "type": "tidelift" } ], - "time": "2023-02-25T20:13:00+00:00" + "time": "2023-12-03T15:08:26+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -13311,16 +14589,16 @@ }, { "name": "laravel/breeze", - "version": "v1.26.2", + "version": "v1.28.1", "source": { "type": "git", "url": "https://github.com/laravel/breeze.git", - "reference": "60f339c38098bc5adbf8614bf5d89b77647a06c5" + "reference": "e853918e770822780efd160a73fd676992340aca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/breeze/zipball/60f339c38098bc5adbf8614bf5d89b77647a06c5", - "reference": "60f339c38098bc5adbf8614bf5d89b77647a06c5", + "url": "https://api.github.com/repos/laravel/breeze/zipball/e853918e770822780efd160a73fd676992340aca", + "reference": "e853918e770822780efd160a73fd676992340aca", "shasum": "" }, "require": { @@ -13369,20 +14647,20 @@ "issues": "https://github.com/laravel/breeze/issues", "source": "https://github.com/laravel/breeze" }, - "time": "2023-11-24T14:41:28+00:00" + "time": "2024-01-15T16:14:10+00:00" }, { "name": "laravel/pint", - "version": "v1.13.6", + "version": "v1.13.10", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7" + "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", - "reference": "3e3d2ab01c7d8b484c18e6100ecf53639c744fa7", + "url": "https://api.github.com/repos/laravel/pint/zipball/e2b5060885694ca30ac008c05dc9d47f10ed1abf", + "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf", "shasum": "" }, "require": { @@ -13393,13 +14671,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.38.0", - "illuminate/view": "^10.30.1", + "friendsofphp/php-cs-fixer": "^3.47.1", + "illuminate/view": "^10.41.0", + "larastan/larastan": "^2.8.1", "laravel-zero/framework": "^10.3.0", - "mockery/mockery": "^1.6.6", - "nunomaduro/larastan": "^2.6.4", + "mockery/mockery": "^1.6.7", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.24.2" + "pestphp/pest": "^2.31.0" }, "bin": [ "builds/pint" @@ -13435,26 +14713,26 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-11-07T17:59:57+00:00" + "time": "2024-01-22T09:04:15+00:00" }, { "name": "laravel/sail", - "version": "v1.26.2", + "version": "v1.27.3", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "c0177786b1cd05b687b0fa11364aeeecb42cd3d8" + "reference": "7e01b345072c9604ead9d7aed175bf7ac1d80289" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/c0177786b1cd05b687b0fa11364aeeecb42cd3d8", - "reference": "c0177786b1cd05b687b0fa11364aeeecb42cd3d8", + "url": "https://api.github.com/repos/laravel/sail/zipball/7e01b345072c9604ead9d7aed175bf7ac1d80289", + "reference": "7e01b345072c9604ead9d7aed175bf7ac1d80289", "shasum": "" }, "require": { - "illuminate/console": "^9.0|^10.0|^11.0", - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", "symfony/yaml": "^6.0|^7.0" }, @@ -13500,7 +14778,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-11-27T14:46:06+00:00" + "time": "2024-01-30T03:03:59+00:00" }, { "name": "maximebf/debugbar", @@ -13570,16 +14848,16 @@ }, { "name": "mockery/mockery", - "version": "1.6.6", + "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", "shasum": "" }, "require": { @@ -13592,9 +14870,7 @@ }, "require-dev": { "phpunit/phpunit": "^8.5 || ^9.6.10", - "psalm/plugin-phpunit": "^0.18.4", - "symplify/easy-coding-standard": "^11.5.0", - "vimeo/psalm": "^4.30" + "symplify/easy-coding-standard": "^12.0.8" }, "type": "library", "autoload": { @@ -13651,7 +14927,7 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-08-09T00:03:52+00:00" + "time": "2023-12-10T02:24:34+00:00" }, { "name": "myclabs/deep-copy", @@ -13810,35 +15086,36 @@ }, { "name": "nunomaduro/larastan", - "version": "v2.6.4", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/nunomaduro/larastan.git", - "reference": "6c5e8820f3db6397546f3ce48520af9d312aed27" + "url": "https://github.com/larastan/larastan.git", + "reference": "b7cc6a29c457a7d4f3de90466392ae9ad3e17022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/6c5e8820f3db6397546f3ce48520af9d312aed27", - "reference": "6c5e8820f3db6397546f3ce48520af9d312aed27", + "url": "https://api.github.com/repos/larastan/larastan/zipball/b7cc6a29c457a7d4f3de90466392ae9ad3e17022", + "reference": "b7cc6a29c457a7d4f3de90466392ae9ad3e17022", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^9.47.0 || ^10.0.0", - "illuminate/container": "^9.47.0 || ^10.0.0", - "illuminate/contracts": "^9.47.0 || ^10.0.0", - "illuminate/database": "^9.47.0 || ^10.0.0", - "illuminate/http": "^9.47.0 || ^10.0.0", - "illuminate/pipeline": "^9.47.0 || ^10.0.0", - "illuminate/support": "^9.47.0 || ^10.0.0", + "illuminate/console": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/container": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/contracts": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/database": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/http": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/pipeline": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", "php": "^8.0.2", - "phpmyadmin/sql-parser": "^5.6.0", - "phpstan/phpstan": "~1.10.6" + "phpmyadmin/sql-parser": "^5.8.2", + "phpstan/phpstan": "^1.10.50" }, "require-dev": { - "nikic/php-parser": "^4.15.2", - "orchestra/testbench": "^7.19.0 || ^8.0.0", - "phpunit/phpunit": "^9.5.27" + "nikic/php-parser": "^4.17.1", + "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.0", + "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.0", + "phpunit/phpunit": "^9.6.13 || ^10.5" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -13856,7 +15133,7 @@ }, "autoload": { "psr-4": { - "NunoMaduro\\Larastan\\": "src/" + "Larastan\\Larastan\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -13864,6 +15141,10 @@ "MIT" ], "authors": [ + { + "name": "Can Vural", + "email": "can9119@gmail.com" + }, { "name": "Nuno Maduro", "email": "enunomaduro@gmail.com" @@ -13881,8 +15162,8 @@ "static analysis" ], "support": { - "issues": "https://github.com/nunomaduro/larastan/issues", - "source": "https://github.com/nunomaduro/larastan/tree/v2.6.4" + "issues": "https://github.com/larastan/larastan/issues", + "source": "https://github.com/larastan/larastan/tree/v2.8.1" }, "funding": [ { @@ -13902,40 +15183,41 @@ "type": "patreon" } ], - "time": "2023-07-29T12:13:13+00:00" + "abandoned": "larastan/larastan", + "time": "2024-01-08T09:11:17+00:00" }, { "name": "pestphp/pest", - "version": "v2.26.0", + "version": "v2.33.4", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "90fb8c602cf982ec973c2d13b31ce7510154ebc2" + "reference": "4baf27911e088cd27c0114bd9b4ee579203f8810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/90fb8c602cf982ec973c2d13b31ce7510154ebc2", - "reference": "90fb8c602cf982ec973c2d13b31ce7510154ebc2", + "url": "https://api.github.com/repos/pestphp/pest/zipball/4baf27911e088cd27c0114bd9b4ee579203f8810", + "reference": "4baf27911e088cd27c0114bd9b4ee579203f8810", "shasum": "" }, "require": { "brianium/paratest": "^7.3.1", - "nunomaduro/collision": "^7.10.0|^8.0.0", + "nunomaduro/collision": "^7.10.0|^8.1.0", "nunomaduro/termwind": "^1.15.1|^2.0.0", "pestphp/pest-plugin": "^2.1.1", - "pestphp/pest-plugin-arch": "^2.4.1", + "pestphp/pest-plugin-arch": "^2.7.0", "php": "^8.1.0", - "phpunit/phpunit": "^10.4.2" + "phpunit/phpunit": "^10.5.9" }, "conflict": { - "phpunit/phpunit": ">10.4.2", + "phpunit/phpunit": ">10.5.9", "sebastian/exporter": "<5.1.0", "webmozart/assert": "<1.11.0" }, "require-dev": { "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.5.0", - "symfony/process": "^6.3.4" + "pestphp/pest-plugin-type-coverage": "^2.8.0", + "symfony/process": "^6.4.0|^7.0.3" }, "bin": [ "bin/pest" @@ -13998,7 +15280,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.26.0" + "source": "https://github.com/pestphp/pest/tree/v2.33.4" }, "funding": [ { @@ -14010,7 +15292,7 @@ "type": "github" } ], - "time": "2023-11-29T09:09:09+00:00" + "time": "2024-02-02T16:54:54+00:00" }, { "name": "pestphp/pest-plugin", @@ -14084,29 +15366,36 @@ }, { "name": "pestphp/pest-plugin-arch", - "version": "v2.4.1", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-arch.git", - "reference": "59698f0a381c5bc4fa2cd5b6ed331067c4501fdb" + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/59698f0a381c5bc4fa2cd5b6ed331067c4501fdb", - "reference": "59698f0a381c5bc4fa2cd5b6ed331067c4501fdb", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/d23b2d7498475354522c3818c42ef355dca3fcda", + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda", "shasum": "" }, "require": { - "nunomaduro/collision": "^7.10.0|^8.0.0", + "nunomaduro/collision": "^7.10.0|^8.1.0", "pestphp/pest-plugin": "^2.1.1", "php": "^8.1", - "ta-tikoma/phpunit-architecture-test": "^0.7.5" + "ta-tikoma/phpunit-architecture-test": "^0.8.4" }, "require-dev": { - "pestphp/pest": "^2.23.2", + "pestphp/pest": "^2.33.0", "pestphp/pest-dev-tools": "^2.16.0" }, "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Arch\\Plugin" + ] + } + }, "autoload": { "files": [ "src/Autoload.php" @@ -14132,7 +15421,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.4.1" + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.7.0" }, "funding": [ { @@ -14144,7 +15433,7 @@ "type": "github" } ], - "time": "2023-10-12T15:35:38+00:00" + "time": "2024-01-26T09:46:42+00:00" }, { "name": "phar-io/manifest", @@ -14316,16 +15605,16 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.8.2", + "version": "5.9.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "f1720ae19abe6294cb5599594a8a57bc3c8cc287" + "reference": "011fa18a4e55591fac6545a821921dd1d61c6984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/f1720ae19abe6294cb5599594a8a57bc3c8cc287", - "reference": "f1720ae19abe6294cb5599594a8a57bc3c8cc287", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/011fa18a4e55591fac6545a821921dd1d61c6984", + "reference": "011fa18a4e55591fac6545a821921dd1d61c6984", "shasum": "" }, "require": { @@ -14356,6 +15645,7 @@ "bin": [ "bin/highlight-query", "bin/lint-query", + "bin/sql-parser", "bin/tokenize-query" ], "type": "library", @@ -14399,20 +15689,20 @@ "type": "other" } ], - "time": "2023-09-19T12:34:29+00:00" + "time": "2024-01-20T20:34:02+00:00" }, { "name": "phpstan/phpstan", - "version": "1.10.47", + "version": "1.10.57", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "84dbb33b520ea28b6cf5676a3941f4bae1c1ff39" + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/84dbb33b520ea28b6cf5676a3941f4bae1c1ff39", - "reference": "84dbb33b520ea28b6cf5676a3941f4bae1c1ff39", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", "shasum": "" }, "require": { @@ -14461,27 +15751,27 @@ "type": "tidelift" } ], - "time": "2023-12-01T15:19:17+00:00" + "time": "2024-01-24T11:51:34+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.9", + "version": "10.1.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735" + "reference": "78c3b7625965c2513ee96569a4dbb62601784145" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a56a9ab2f680246adcf3db43f38ddf1765774735", - "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -14531,7 +15821,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.9" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" }, "funding": [ { @@ -14539,7 +15829,7 @@ "type": "github" } ], - "time": "2023-11-23T12:23:20+00:00" + "time": "2023-12-21T15:38:30+00:00" }, { "name": "phpunit/php-file-iterator", @@ -14786,16 +16076,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.4.2", + "version": "10.5.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" + "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", + "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", "shasum": "" }, "require": { @@ -14835,7 +16125,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.4-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -14867,7 +16157,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9" }, "funding": [ { @@ -14883,25 +16173,25 @@ "type": "tidelift" } ], - "time": "2023-10-26T07:21:45+00:00" + "time": "2024-01-22T14:35:40+00:00" }, { "name": "rector/rector", - "version": "0.18.11", + "version": "0.19.5", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "9621124c860066f56a4ab841349cb7c284edfaee" + "reference": "89c895d127b9d248d2af007068a824b5348ef81f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/9621124c860066f56a4ab841349cb7c284edfaee", - "reference": "9621124c860066f56a4ab841349cb7c284edfaee", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/89c895d127b9d248d2af007068a824b5348ef81f", + "reference": "89c895d127b9d248d2af007068a824b5348ef81f", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.35" + "phpstan/phpstan": "^1.10.56" }, "conflict": { "rector/rector-doctrine": "*", @@ -14931,7 +16221,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.18.11" + "source": "https://github.com/rectorphp/rector/tree/0.19.5" }, "funding": [ { @@ -14939,7 +16229,7 @@ "type": "github" } ], - "time": "2023-11-27T13:27:43+00:00" + "time": "2024-01-29T23:53:47+00:00" }, { "name": "sebastian/cli-parser", @@ -15187,20 +16477,20 @@ }, { "name": "sebastian/complexity", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -15209,7 +16499,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -15233,7 +16523,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -15241,20 +16531,20 @@ "type": "github" } ], - "time": "2023-09-28T11:50:59+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.3", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "shasum": "" }, "require": { @@ -15267,7 +16557,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -15300,7 +16590,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" }, "funding": [ { @@ -15308,7 +16598,7 @@ "type": "github" } ], - "time": "2023-05-01T07:48:21+00:00" + "time": "2023-12-22T10:55:06+00:00" }, { "name": "sebastian/environment", @@ -15516,20 +16806,20 @@ }, { "name": "sebastian/lines-of-code", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -15562,7 +16852,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -15570,7 +16860,7 @@ "type": "github" } ], - "time": "2023-08-31T09:25:50+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -15920,21 +17210,20 @@ }, { "name": "spatie/flare-client-php", - "version": "1.4.3", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.62.1", "php": "^8.0", "spatie/backtrace": "^1.5.2", "symfony/http-foundation": "^5.2|^6.0|^7.0", @@ -15978,7 +17267,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" }, "funding": [ { @@ -15986,20 +17275,20 @@ "type": "github" } ], - "time": "2023-10-17T15:54:07+00:00" + "time": "2024-01-31T14:18:45+00:00" }, { "name": "spatie/ignition", - "version": "1.11.3", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", "shasum": "" }, "require": { @@ -16069,39 +17358,39 @@ "type": "github" } ], - "time": "2023-10-18T14:09:40+00:00" + "time": "2024-01-03T15:49:39+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.1", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" + "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/005e1e7b1232f3b22d7e7be3f602693efc7dba67", + "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0", + "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", "spatie/ignition": "^1.9", - "symfony/console": "^6.2.3", - "symfony/var-dumper": "^6.2.3" + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" }, "require-dev": { - "livewire/livewire": "^2.11", + "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.3.4", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^1.22.3", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", "phpstan/extension-installer": "^1.2", "phpstan/phpstan-deprecation-rules": "^1.1.1", "phpstan/phpstan-phpunit": "^1.3.3", @@ -16161,20 +17450,20 @@ "type": "github" } ], - "time": "2023-10-09T12:55:26+00:00" + "time": "2024-01-12T13:14:58+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "0055b230c408428b9b5cde7c55659555be5c0278" + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0055b230c408428b9b5cde7c55659555be5c0278", - "reference": "0055b230c408428b9b5cde7c55659555be5c0278", + "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", "shasum": "" }, "require": { @@ -16216,7 +17505,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.0" + "source": "https://github.com/symfony/yaml/tree/v7.0.3" }, "funding": [ { @@ -16232,32 +17521,32 @@ "type": "tidelift" } ], - "time": "2023-11-07T10:26:03+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.7.5", + "version": "0.8.4", "source": { "type": "git", "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "9eb08437e8f0c0c75cc947a373cf49672c335827" + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/9eb08437e8f0c0c75cc947a373cf49672c335827", - "reference": "9eb08437e8f0c0c75cc947a373cf49672c335827", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", "shasum": "" }, "require": { - "nikic/php-parser": "^4.15.4", + "nikic/php-parser": "^4.18.0 || ^5.0.0", "php": "^8.1.0", "phpdocumentor/reflection-docblock": "^5.3.0", - "phpunit/phpunit": "^10.1.1", - "symfony/finder": "^6.2.7 || ^7.0.0" + "phpunit/phpunit": "^10.5.5 || ^11.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0" }, "require-dev": { - "laravel/pint": "^1.9.0", - "phpstan/phpstan": "^1.10.13" + "laravel/pint": "^1.13.7", + "phpstan/phpstan": "^1.10.52" }, "type": "library", "autoload": { @@ -16289,9 +17578,9 @@ ], "support": { "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.7.5" + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" }, - "time": "2023-10-12T15:31:50+00:00" + "time": "2024-01-05T14:10:56+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/dashbrd.php b/config/dashbrd.php index 6a78ed51d..5bc7feccb 100644 --- a/config/dashbrd.php +++ b/config/dashbrd.php @@ -5,11 +5,6 @@ use App\Enums\Period; return [ - 'browsershot' => [ - 'timeout' => (int) env('BROWSERSHOT_TIMEOUT', 60), - 'node_binary' => env('BROWSERSHOT_NODE_BINARY', '/usr/local/bin/node'), - 'npm_binary' => env('BROWSERSHOT_NPM_BINARY', '/usr/local/bin/npm'), - ], 'contact_email' => env('CONTACT_EMAIL', 'support@ardenthq.com'), 'features' => [ @@ -25,7 +20,6 @@ 'live_dump_wallets' => explode(',', env('LIVE_DUMP_WALLETS', '')), 'user_activity_ttl' => env('USER_ACTIVITY_CACHE_TTL', 60), - 'galleries_stats_ttl' => env('GALLERIES_STATS_TTL', 60), 'wallets' => [ // Time since last activity to consider a wallet as active @@ -81,19 +75,19 @@ 'cache_ttl' => [ 'alchemy' => [ 'getBlockTimestamp' => 60 * 60 * 24 * 10, // 10 days... Creation date for blocks will never change, so we can safely cache in a distant future... - 'getNftCollectionFloorPrice' => 60, // 1 minute + 'getCollectionFloorPrice' => 60, // 1 minute ], 'moralis' => [ 'getEnsDomain' => 60, // 1 minute 'getBlockTimestamp' => 60 * 60 * 24 * 10, // 10 days... Creation date for blocks will never change, so we can safely cache in a distant future... - 'getNftCollectionFloorPrice' => 60, // 1 minute + 'getCollectionFloorPrice' => 60, // 1 minute ], 'mnemonic' => [ 'getBlockTimestamp' => 60 * 60 * 24 * 10, // 10 days... Creation date for blocks will never change, so we can safely cache in a distant future... - 'getNftCollectionFloorPrice' => 60, // 1 minute + 'getCollectionFloorPrice' => 60, // 1 minute ], 'opensea' => [ - 'getNftCollectionFloorPrice' => 60, // 1 minute + 'getCollectionFloorPrice' => 60, // 1 minute ], 'coingecko' => [ 'getPriceHistory' => [ diff --git a/config/permission.php b/config/permission.php index 05e6b6031..af6bf6b01 100644 --- a/config/permission.php +++ b/config/permission.php @@ -23,6 +23,9 @@ 'report:viewAny' => 'View any Report', 'report:view' => 'View Report', 'report:update' => 'Update Report', + 'collection:viewAny' => 'View any Collection', + 'collection:view' => 'View Collection', + 'collection:update' => 'Update Collection', ], 'roles' => [ @@ -32,6 +35,7 @@ 'role:assignPermissions', 'admin:access', 'report:viewAny', 'report:view', 'report:update', + 'collection:viewAny', 'collection:view', 'collection:update', ], Role::Admin->value => [ @@ -40,6 +44,7 @@ 'role:assignPermissions', 'admin:access', 'report:viewAny', 'report:view', 'report:update', + 'collection:viewAny', 'collection:view', 'collection:update', ], Role::Editor->value => [ diff --git a/config/services.php b/config/services.php index 789b8ecfc..052c8303f 100644 --- a/config/services.php +++ b/config/services.php @@ -107,4 +107,11 @@ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), 'bucket' => env('AWS_BUCKET'), ], + + 'browsershot' => [ + 'timeout' => (int) env('BROWSERSHOT_TIMEOUT', 60), + 'node_binary' => env('BROWSERSHOT_NODE_BINARY', '/usr/local/bin/node'), + 'npm_binary' => env('BROWSERSHOT_NPM_BINARY', '/usr/local/bin/npm'), + ], + ]; diff --git a/database/factories/ArticleFactory.php b/database/factories/ArticleFactory.php index ac7604bf4..6cb5e7697 100644 --- a/database/factories/ArticleFactory.php +++ b/database/factories/ArticleFactory.php @@ -35,7 +35,7 @@ public function definition(): array ]; } - public function published(Carbon $publishedAt = null): Factory + public function published(?Carbon $publishedAt = null): Factory { return $this->state(function (array $attributes) use ($publishedAt) { return [ diff --git a/database/factories/CollectionFactory.php b/database/factories/CollectionFactory.php index 92a619610..4c1abf2d0 100644 --- a/database/factories/CollectionFactory.php +++ b/database/factories/CollectionFactory.php @@ -4,6 +4,7 @@ namespace Database\Factories; +use App\Enums\TokenType; use App\Models\Network; use App\Models\Token; use Carbon\Carbon; @@ -34,10 +35,12 @@ public function definition(): array 'floor_price_token_id' => fn () => Token::factory(), 'floor_price_retrieved_at' => Carbon::now(), 'minted_block' => random_int(1, 10000), + 'type' => TokenType::Erc721, 'extra_attributes' => fn () => json_encode([ 'image' => fake()->imageUrl(360, 360, 'animals', true), 'website' => fake()->url(), ]), + 'is_featured' => false, ]; } } diff --git a/database/factories/CollectionVoteFactory.php b/database/factories/CollectionVoteFactory.php new file mode 100644 index 000000000..8539e0237 --- /dev/null +++ b/database/factories/CollectionVoteFactory.php @@ -0,0 +1,29 @@ + + */ +class CollectionVoteFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'wallet_id' => fn () => Wallet::factory(), + 'collection_id' => fn () => Collection::factory(), + 'voted_at' => fake()->dateTimeBetween('-1 month', 'now'), + ]; + } +} diff --git a/database/factories/CollectionWinnerFactory.php b/database/factories/CollectionWinnerFactory.php new file mode 100644 index 000000000..9104cafdb --- /dev/null +++ b/database/factories/CollectionWinnerFactory.php @@ -0,0 +1,30 @@ + + */ +class CollectionWinnerFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'collection_id' => Collection::factory(), + 'votes' => random_int(1, 1000), + 'month' => random_int(1, 12), + 'year' => random_int(2020, 2023), + 'rank' => random_int(1, 3), + ]; + } +} diff --git a/database/factories/FloorPriceHistoryFactory.php b/database/factories/FloorPriceHistoryFactory.php new file mode 100644 index 000000000..17f9d0bf9 --- /dev/null +++ b/database/factories/FloorPriceHistoryFactory.php @@ -0,0 +1,30 @@ + + */ +class FloorPriceHistoryFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'collection_id' => fn () => Collection::factory(), + 'floor_price' => (string) (random_int(50, 1000) * 1e18), + 'token_id' => fn () => Token::factory(), + 'retrieved_at' => $this->faker->dateTimeBetween('-3 days', 'now'), + ]; + } +} diff --git a/database/factories/NetworkFactory.php b/database/factories/NetworkFactory.php index a01fdbf88..a45bad29a 100644 --- a/database/factories/NetworkFactory.php +++ b/database/factories/NetworkFactory.php @@ -4,6 +4,7 @@ namespace Database\Factories; +use App\Models\Token; use Illuminate\Database\Eloquent\Factories\Factory; /** @@ -26,4 +27,17 @@ public function definition() 'is_mainnet' => fn () => fake()->boolean(), ]; } + + /** + * Modify the model factory to create a native token after network was created. + * This is done to prevent bugs for missing native tokens, as every network has one. + */ + public function withNativeToken(): self + { + return $this->afterCreating(function ($network) { + Token::factory()->for($network)->create([ + 'is_native_token' => true, + ]); + }); + } } diff --git a/database/factories/TokenFactory.php b/database/factories/TokenFactory.php index 5632c238b..9b4f9d718 100644 --- a/database/factories/TokenFactory.php +++ b/database/factories/TokenFactory.php @@ -144,7 +144,7 @@ public function wethWithPrices(): self ]); } - public function withGuid(string $deterministicGuid = null): self + public function withGuid(?string $deterministicGuid = null): self { return $this->state(fn () => [ 'token_guid' => function ($params) use ($deterministicGuid) { diff --git a/database/factories/TradingVolumeFactory.php b/database/factories/TradingVolumeFactory.php new file mode 100644 index 000000000..33b1c8c5a --- /dev/null +++ b/database/factories/TradingVolumeFactory.php @@ -0,0 +1,27 @@ + + */ +class TradingVolumeFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'collection_id' => Collection::factory(), + 'volume' => random_int(1, 1000000), + ]; + } +} diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 678e0b9e2..b4650a2ac 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -34,7 +34,7 @@ public function definition() ]; } - public function withWallet(string $address = null) + public function withWallet(?string $address = null) { if ($address !== null) { return $this->state(fn () => [ diff --git a/database/migrations/2023_11_14_122252_add_type_column_to_collections_table.php b/database/migrations/2023_11_14_122252_add_type_column_to_collections_table.php new file mode 100644 index 000000000..c812e663f --- /dev/null +++ b/database/migrations/2023_11_14_122252_add_type_column_to_collections_table.php @@ -0,0 +1,115 @@ +string('type')->default(TokenType::Erc721->value); + }); + + DB::table('collections')->update([ + 'type' => TokenType::Erc721->value, + ]); + + $eth = $this->erc1155Addresses('eth'); + $polygon = $this->erc1155Addresses('polygon'); + + DB::table('collections')->where(function ($q) use ($polygon) { + return $q->whereIn('address', $polygon)->where('network_id', 1); + })->orWhere(function ($q) use ($eth) { + return $q->whereIn('address', $eth)->where('network_id', 3); + })->update([ + 'type' => TokenType::Erc1155, + ]); + } + + /** + * @return Collection + */ + private function erc1155Addresses(string $network): Collection + { + $path = database_path('seeders/fixtures/live-dump/collection-nfts/top-'.$network.'-collections.json'); + + // It's possible this file does not exist in situations like GitHub Actions (or production), + // so we hardcode the list of addresses taken from the file... + $addresses = $network === 'eth' ? collect([ + '0x495f947276749ce646f68ac8c248420045cb7b5e', + '0x76be3b62873462d2142405439777e971754e8e77', + '0x910152fca5149a50967cc3f0816d269287681ef2', + '0x7881c3a8d4a8d8a5d6b648164de823142d8aaf5d', + '0x22c36bfdcef207f9c0cc941936eff94d4246d14a', + '0x86825dfca7a6224cfbd2da48e85df2fc3aa7c4b1', + '0xc36cf0cfcb5d905b8b513860db0cfe63f6cf9f5c', + '0x341a1c534248966c4b6afad165b98daed4b964ef', + '0x28472a58a490c5e09a238847f66a68a47cc76f0f', + '0x4ba0be4d8d83b5ca9935d0e0284f707e8f2dd6d1', + '0x73da73ef3a6982109c4d5bdb0db9dd3e3783f313', + '0x348fc118bcc65a92dc033a951af153d14d945312', + '0x4a33f4f14989f5841a0807166bc43a7a7ec17c0c', + ]) : collect([ + '0x2953399124f0cbb46d2cbacd8a89cf0599974963', + '0x86935f11c86623dec8a25696e1c19a8659cbf95d', + '0x7888d293cd4544d7bc8e4ad5773b7d7083f594fe', + '0xcf1a0fe9781e4afa07ee0dabd6762c7bb73d7c27', + '0x99a558bdbde247c2b2716f0d4cfb0e246dfb697d', + '0xa4f709db1f2b5f78d5f44ea5f30e430193b532c3', + '0x45df11da3e03a3bcd55c36576b72c5c6956c151b', + '0xdf2d71c81d37b2165330c0ff80ff2e469501ef00', + '0x7703ee03046d15ea22c8afa72696885307eba1c4', + '0x13c7a9b6eca5a9c7a134dd918d73bbf3e7da70f8', + '0x95fcb7f46f1e652fdf23db087c0f24011775be00', + '0x3cb5379eee24533cd50292e912829722e7894a00', + '0xa5511e9941e303101b50675926fd4d9c1a8a8805', + '0xba6666b118f8303f990f3519df07e160227cce87', + '0x104ed06d70bde4106c7b61897af8f7c70763686e', + '0x96b5d0b04bdbf1cf60a2e2c7971323229c6f4638', + '0x22d5f9b75c524fec1d6619787e582644cd4d7422', + '0xb6041eae62c4591458af480679c6a497eda6cfcd', + '0x4e874c0a1196951c075ea2fe54fa7196bc117cee', + '0x0a82c7f7efe5526514448957ac5c05ab16ade5db', + '0x11c0d2ddfa514dce9dc4a8a7d8ae0eed2567641d', + '0xcf35c6b949fbd9b9fd182a3e4fd1aa0fddf53fc7', + '0x91ac106090fe2b0fa7d01efdf4487a5bfafad7fa', + '0x71529389174fdb537f33fe7b51a7dd434d7ee336', + '0xba3c9879fca47015558065adb44cad5e9fe3e119', + '0x3104820ca8c6fbad85f4229f069c5006431a82ae', + '0x8d0501d85becda92b89e56177ddfcea5fc1f0af2', + '0x5d1d281e2fe022b8b0f8f800fda75ec8c9b5415b', + '0xb9023662dc421e304976a778b0207b95b1d8cd25', + '0xb7c1facd24ab39e5a79a91f719f99d6494529a4c', + '0xc6f3bb843e34e0b4d1fb5109f348956460973114', + '0xcbc964dd716f07b4965b4526e30541a66f414ccf', + '0x6665b76657399c29480eeaa6c909a56db6062dd4', + '0x907808732079863886443057c65827a0f1c64357', + '0x5c76677fea2bf5dd37e4f1460968a23a537e3ee3', + '0x3e4627665bf2e52c69be03788e664ab545f2be71', + '0xe05b72d3b70be3c4e0b8461015198919e2b676fd', + '0x7c885c4bfd179fb59f1056fbea319d579a278075', + '0xadf46f34fbd7489603158555cf45bde696fd65e3', + '0x56b917d7fed613fa867d58454e591753f1de8fc6', + '0x6faa88e0c6bd11c50d5163f47f78c1c8146b7a27', + ]); + + if (file_exists($path)) { + $contents = file_get_contents($path); + + $addresses->merge( + collect(json_decode($contents, true)['data']) + ->filter(fn ($collection) => $collection['erc_type'] === 'erc1155') + ->pluck('contract_address') + ); + } + + return $addresses->unique(); + } +}; diff --git a/database/migrations/2023_11_20_143007_add_featured_column_to_collections_table.php b/database/migrations/2023_11_20_143007_add_featured_column_to_collections_table.php new file mode 100644 index 000000000..03711491d --- /dev/null +++ b/database/migrations/2023_11_20_143007_add_featured_column_to_collections_table.php @@ -0,0 +1,20 @@ +boolean('is_featured')->default(false); + }); + } +}; diff --git a/database/migrations/2023_11_20_143008_sync_collection_permissions_and_roles.php b/database/migrations/2023_11_20_143008_sync_collection_permissions_and_roles.php new file mode 100644 index 000000000..677e4b5ef --- /dev/null +++ b/database/migrations/2023_11_20_143008_sync_collection_permissions_and_roles.php @@ -0,0 +1,52 @@ +map(static fn ($permission) => [ + 'name' => $permission, + 'guard_name' => 'admin', + 'created_at' => now(), + 'updated_at' => now(), + ])->all(); + + // Sync permissions by name + Permission::upsert($permissions, ['name', 'guard_name'], []); + + /** + * @var array $roles + */ + $roles = config('permission.roles'); + + $rolesData = collect($roles)->map(static fn ($permissions, $role) => [ + 'name' => $role, + 'guard_name' => 'admin', + 'created_at' => now(), + 'updated_at' => now(), + ])->all(); + + Role::upsert($rolesData, ['name', 'guard_name'], []); + + $permissions = PermissionRepository::all(); + + collect($roles)->each(static fn ($permissions, $role) => Role::where('name', $role)->first()->givePermissionTo($permissions)); + + app()[PermissionRegistrar::class]->forgetCachedPermissions(); + + } +}; diff --git a/database/migrations/2023_11_23_110435_add_burned_at_column_to_nfts_table.php b/database/migrations/2023_11_23_110435_add_burned_at_column_to_nfts_table.php new file mode 100644 index 000000000..2680c5ec5 --- /dev/null +++ b/database/migrations/2023_11_23_110435_add_burned_at_column_to_nfts_table.php @@ -0,0 +1,20 @@ +timestamp('burned_at')->nullable(); + }); + } +}; diff --git a/database/migrations/2023_11_29_082909_add_owns_erc1155_tokens_column_to_wallets_table.php b/database/migrations/2023_11_29_082909_add_owns_erc1155_tokens_column_to_wallets_table.php new file mode 100644 index 000000000..7c6bbc3c8 --- /dev/null +++ b/database/migrations/2023_11_29_082909_add_owns_erc1155_tokens_column_to_wallets_table.php @@ -0,0 +1,21 @@ +boolean('owns_erc1155_tokens_eth')->default(false); + $table->boolean('owns_erc1155_tokens_polygon')->default(false); + }); + } +}; diff --git a/database/migrations/2023_12_01_161507_create_collection_votes_table.php b/database/migrations/2023_12_01_161507_create_collection_votes_table.php new file mode 100644 index 000000000..b7816eeca --- /dev/null +++ b/database/migrations/2023_12_01_161507_create_collection_votes_table.php @@ -0,0 +1,22 @@ +id(); + $table->foreignIdFor(Wallet::class, 'wallet_id')->constrained(); + $table->foreignIdFor(Collection::class, 'collection_id')->constrained(); + $table->timestamp('voted_at')->nullable(); + }); + } +}; diff --git a/database/migrations/2023_12_01_194317_add_has_won_at_to_collections_table.php b/database/migrations/2023_12_01_194317_add_has_won_at_to_collections_table.php new file mode 100644 index 000000000..9cc070452 --- /dev/null +++ b/database/migrations/2023_12_01_194317_add_has_won_at_to_collections_table.php @@ -0,0 +1,17 @@ +timestamp('has_won_at')->nullable(); + }); + } +}; diff --git a/database/migrations/2023_12_11_202944_create_floor_price_history_table.php b/database/migrations/2023_12_11_202944_create_floor_price_history_table.php new file mode 100644 index 000000000..9a2a7eee9 --- /dev/null +++ b/database/migrations/2023_12_11_202944_create_floor_price_history_table.php @@ -0,0 +1,29 @@ +get('numeric_type'); + }); + + Schema::create('floor_price_history', function (Blueprint $table) { + $table->id(); + $table->foreignIdFor(Collection::class)->constrained()->cascadeOnDelete()->index(); + $table->addColumn('numeric', 'floor_price', ['numeric_type' => 'numeric']); + $table->foreignIdFor(Token::class, 'token_id')->cascadeOnDelete(); + $table->timestamp('retrieved_at')->index(); + }); + } +}; diff --git a/database/migrations/2023_12_14_105529_create_collection_winners_table.php b/database/migrations/2023_12_14_105529_create_collection_winners_table.php new file mode 100644 index 000000000..da771c438 --- /dev/null +++ b/database/migrations/2023_12_14_105529_create_collection_winners_table.php @@ -0,0 +1,39 @@ +id(); + $table->foreignIdFor(Collection::class)->constrained()->cascadeOnDelete(); + $table->unsignedInteger('votes'); + $table->unsignedSmallInteger('month'); + $table->unsignedSmallInteger('year'); + $table->unsignedSmallInteger('rank'); + $table->timestamps(); + + $table->unique(['collection_id', 'month', 'year']); + + $table->unique(['month', 'year', 'rank']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('collection_winners'); + } +}; diff --git a/database/migrations/2023_12_14_142213_remove_has_won_at_column_from_collections_table.php b/database/migrations/2023_12_14_142213_remove_has_won_at_column_from_collections_table.php new file mode 100644 index 000000000..0bb080dcd --- /dev/null +++ b/database/migrations/2023_12_14_142213_remove_has_won_at_column_from_collections_table.php @@ -0,0 +1,20 @@ +dropColumn('has_won_at'); + }); + } +}; diff --git a/database/migrations/2023_12_19_122041_create_trading_volumes_table.php b/database/migrations/2023_12_19_122041_create_trading_volumes_table.php new file mode 100644 index 000000000..b6c104211 --- /dev/null +++ b/database/migrations/2023_12_19_122041_create_trading_volumes_table.php @@ -0,0 +1,24 @@ +id(); + $table->foreignIdFor(Collection::class)->constrained()->cascadeOnDelete(); + $table->string('volume'); + $table->timestamps(); + }); + } +}; diff --git a/database/migrations/2023_12_19_181634_add_volume_change_columns_to_collections_table.php b/database/migrations/2023_12_19_181634_add_volume_change_columns_to_collections_table.php new file mode 100644 index 000000000..3086859bc --- /dev/null +++ b/database/migrations/2023_12_19_181634_add_volume_change_columns_to_collections_table.php @@ -0,0 +1,22 @@ +string('avg_volume_1d')->nullable(); + $table->string('avg_volume_7d')->nullable(); + $table->string('avg_volume_30d')->nullable(); + }); + } +}; diff --git a/database/migrations/2023_12_21_152434_add_monthly_rank_to_collections_table.php b/database/migrations/2023_12_21_152434_add_monthly_rank_to_collections_table.php new file mode 100644 index 000000000..690d06aeb --- /dev/null +++ b/database/migrations/2023_12_21_152434_add_monthly_rank_to_collections_table.php @@ -0,0 +1,18 @@ +unsignedInteger('monthly_rank')->nullable(); + $table->unsignedInteger('monthly_votes')->nullable(); + }); + } +}; diff --git a/database/migrations/2024_01_10_121726_add_total_volume_column_to_collections_table.php b/database/migrations/2024_01_10_121726_add_total_volume_column_to_collections_table.php new file mode 100644 index 000000000..11edcef2d --- /dev/null +++ b/database/migrations/2024_01_10_121726_add_total_volume_column_to_collections_table.php @@ -0,0 +1,20 @@ +string('total_volume')->nullable(); + }); + } +}; diff --git a/database/migrations/2024_01_22_102544_add_volume_sum_columns_to_collections_table.php b/database/migrations/2024_01_22_102544_add_volume_sum_columns_to_collections_table.php new file mode 100644 index 000000000..063b8a4b0 --- /dev/null +++ b/database/migrations/2024_01_22_102544_add_volume_sum_columns_to_collections_table.php @@ -0,0 +1,28 @@ +string('volume_1d')->nullable(); + $table->string('volume_7d')->nullable(); + $table->string('volume_30d')->nullable(); + + $table->dropColumn([ + 'avg_volume_1d', + 'avg_volume_7d', + 'avg_volume_30d', + ]); + }); + } +}; diff --git a/database/migrations/2024_01_22_152605_add_unique_constraint_to_trading_volumes_table.php b/database/migrations/2024_01_22_152605_add_unique_constraint_to_trading_volumes_table.php new file mode 100644 index 000000000..15872c1b6 --- /dev/null +++ b/database/migrations/2024_01_22_152605_add_unique_constraint_to_trading_volumes_table.php @@ -0,0 +1,20 @@ +unique(['collection_id', 'created_at']); + }); + } +}; diff --git a/database/migrations/2024_01_25_083537_remove_rank_columns_from_collections_table.php b/database/migrations/2024_01_25_083537_remove_rank_columns_from_collections_table.php new file mode 100644 index 000000000..c4b860e46 --- /dev/null +++ b/database/migrations/2024_01_25_083537_remove_rank_columns_from_collections_table.php @@ -0,0 +1,23 @@ +dropColumn([ + 'monthly_rank', + 'monthly_votes', + ]); + }); + } +}; diff --git a/database/migrations/2024_01_29_120936_add_collection_id_deleted_at_index_to_nfts_table.php b/database/migrations/2024_01_29_120936_add_collection_id_deleted_at_index_to_nfts_table.php new file mode 100644 index 000000000..1dfe4152f --- /dev/null +++ b/database/migrations/2024_01_29_120936_add_collection_id_deleted_at_index_to_nfts_table.php @@ -0,0 +1,20 @@ +index(['collection_id', 'deleted_at']); + }); + } +}; diff --git a/database/migrations/2024_01_29_161909_add_index_to_tokens_table.php b/database/migrations/2024_01_29_161909_add_index_to_tokens_table.php new file mode 100644 index 000000000..24b53d243 --- /dev/null +++ b/database/migrations/2024_01_29_161909_add_index_to_tokens_table.php @@ -0,0 +1,20 @@ +index(['network_id', 'is_native_token']); + }); + } +}; diff --git a/database/seeders/CollectionFloorPriceHistorySeeder.php b/database/seeders/CollectionFloorPriceHistorySeeder.php new file mode 100644 index 000000000..0debcd247 --- /dev/null +++ b/database/seeders/CollectionFloorPriceHistorySeeder.php @@ -0,0 +1,33 @@ +flatMap(function (Collection $collection) { + // 30% chance of no entries, 70% chance of 1-10 entries + $totalEntries = fake()->boolean(30) ? 0 : fake()->numberBetween(1, 10); + + return collect(range(0, $totalEntries))->map(fn ($index) => FloorPriceHistory::factory()->raw([ + 'collection_id' => $collection->id, + ]))->sortBy('retrieved_at')->toArray(); + })->toArray(); + + FloorPriceHistory::insert($data); + + } +} diff --git a/database/seeders/CollectionVotesSeeder.php b/database/seeders/CollectionVotesSeeder.php new file mode 100644 index 000000000..02ce28f21 --- /dev/null +++ b/database/seeders/CollectionVotesSeeder.php @@ -0,0 +1,61 @@ +crossJoin(range(7, 12))->each(function ($item) use ($existingIds) { + [$year, $month] = $item; + + $collections = Collection::inRandomOrder()->whereNotIn('id', $existingIds)->limit(3)->get(); + + if (count($collections) < 3) { + return; + } + + $existingIds = array_merge($existingIds, $collections->modelKeys()); + + $collections->each(function ($collection, $index) use ($year, $month) { + $votes = [ + random_int(11, 15), + random_int(6, 10), + random_int(1, 5), + ][$index]; + + $voteTime = now()->setYear($year)->setMonth($month)->subMonth(); + + for ($i = 0; $i < $votes; $i++) { + $collection->votes()->create([ + 'wallet_id' => Wallet::factory()->create()->id, + 'voted_at' => Carbon::createFromTimestamp(random_int($voteTime->startOfMonth()->timestamp, $voteTime->endOfMonth()->timestamp)), + ]); + } + + if (now()->year !== $year || now()->month !== $month) { + CollectionWinner::factory()->for($collection)->create([ + 'rank' => $index + 1, + 'votes' => $votes, + 'month' => $month, + 'year' => $year, + ]); + } + }); + }); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 4513a56c3..07c5a15e0 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -33,6 +33,8 @@ public function run(): void if (Feature::active(Features::Collections->value) || Feature::active(Features::Galleries->value)) { $this->call(NftSeeder::class); + $this->call(CollectionVotesSeeder::class); + $this->call(CollectionFloorPriceHistorySeeder::class); } if (Feature::active(Features::Galleries->value)) { diff --git a/database/seeders/LiveUserSeeder.php b/database/seeders/LiveUserSeeder.php index ef31dd41b..bdd628787 100644 --- a/database/seeders/LiveUserSeeder.php +++ b/database/seeders/LiveUserSeeder.php @@ -4,11 +4,12 @@ namespace Database\Seeders; -use App\Data\Web3\Web3NftCollectionFloorPrice; -use App\Data\Web3\Web3NftCollectionTrait; +use App\Data\Web3\Web3CollectionFloorPrice; +use App\Data\Web3\Web3CollectionTrait; use App\Data\Web3\Web3NftData; use App\Enums\Chain; use App\Enums\Features; +use App\Enums\TokenType; use App\Enums\TraitDisplayType; use App\Exceptions\NotImplementedException; use App\Models\Gallery; @@ -18,7 +19,7 @@ use App\Rules\WalletAddress; use App\Services\Web3\Alchemy\AlchemyWeb3DataProvider; use App\Services\Web3\Moralis\MoralisWeb3DataProvider; -use App\Support\Web3NftCollectionHandler; +use App\Support\Web3CollectionHandler; use App\Support\Web3NftHandler; use Carbon\Carbon; use Illuminate\Support\Collection; @@ -161,7 +162,7 @@ private function loadWalletNftsFixtures(string $fileName, int $networkId): Colle name: $nft['name'], description: $nft['description'], extraAttributes: $nft['extraAttributes'], - floorPrice: $nft['floorPrice'] ? new Web3NftCollectionFloorPrice( + floorPrice: $nft['floorPrice'] ? new Web3CollectionFloorPrice( $nft['floorPrice']['price'], $nft['floorPrice']['currency'], Carbon::parse($nft['floorPrice']['retrievedAt']), @@ -175,6 +176,7 @@ traits: array_map(fn ($trait) => [ mintedBlock: $nft['mintedBlock'], hasError: false, info: null, + type: TokenType::Erc721, )); } @@ -188,7 +190,7 @@ private function ingestCollectionTraitsFixtures(string $fileName): void /** @var array $array */ $array = json_decode($contents, true); - $handler = new Web3NftCollectionHandler(); + $handler = new Web3CollectionHandler(); collect($array)->each(function ($collections, $chainId) use ($handler) { /** @var array $traits */ collect($collections)->filter(fn ($traits) => ! collect($traits)->isEmpty()) @@ -204,7 +206,7 @@ private function ingestCollectionTraitsFixtures(string $fileName): void return; } - $restored = collect($traits)->map(fn ($trait) => new Web3NftCollectionTrait( + $restored = collect($traits)->map(fn ($trait) => new Web3CollectionTrait( name: $trait['name'], value: $trait['value'], valueMin: $trait['valueMin'] ?? 0, diff --git a/database/seeders/NftSeeder.php b/database/seeders/NftSeeder.php index 895244e59..f200f6cd7 100644 --- a/database/seeders/NftSeeder.php +++ b/database/seeders/NftSeeder.php @@ -40,6 +40,8 @@ public function run(): void 'website' => $collectionArray['website'], ]), 'created_at' => fake()->dateTimeBetween('-2 months'), + 'is_featured' => $collectionArray['is_featured'] ?? false, + 'description' => $collectionArray['description'] ?? '', ]); if (Feature::active(Features::Collections->value)) { @@ -122,6 +124,8 @@ private function collections(): array ['Background', 'Cosmic Purple', TraitDisplayType::Property, 6, 0.06], ['Beak', 'Small', TraitDisplayType::Property, 4125, 42.15], ], + 'is_featured' => true, + 'description' => 'Moonbirds are a collection of 10,000 unique NFTs living on the Ethereum blockchain. Each Moonbird is algorithmically generated and has a unique combination of traits, including body, eyes, beak, wings, and background. Moonbirds are a Proof NFT project.', ], [ // https://opensea.io/collection/timelessnfts @@ -158,6 +162,8 @@ private function collections(): array 'traits' => [ ['Background', 'Blue', TraitDisplayType::Property, 1636, 16.36], ], + 'is_featured' => true, + 'description' => 'Tubby Cats are a collection of 10,000 unique NFTs living on the Ethereum blockchain. Each Tubby Cat is algorithmically generated and has a unique combination of traits, including body, eyes, mouth, and background. Tubby Cats are a Proof NFT project.', ], [ // https://opensea.io/collection/alphadogs @@ -176,6 +182,7 @@ private function collections(): array 'traits' => [ ['Background', 'Blue', TraitDisplayType::Property, 1636, 16.36], ], + 'is_featured' => true, ], [ // https://opensea.io/collection/devilvalley @@ -210,6 +217,8 @@ private function collections(): array 'traits' => [ ['Beak', 'Small', TraitDisplayType::Property, 4125, 42.15], ], + 'is_featured' => true, + 'description' => 'EDGEHOGS are a collection of 10,000 unique NFTs living on the Ethereum blockchain. Each EDGEHOG is algorithmically generated and has a unique combination of traits, including body, eyes, beak, wings, and background. EDGEHOGS are a Proof NFT project.', ], [ // https://opensea.io/collection/cryptoadz-by-gremplin diff --git a/database/seeders/TopCollectionsNftsSeeder.php b/database/seeders/TopCollectionsNftsSeeder.php index 62ece3c3b..e5859fc93 100644 --- a/database/seeders/TopCollectionsNftsSeeder.php +++ b/database/seeders/TopCollectionsNftsSeeder.php @@ -5,6 +5,7 @@ namespace Database\Seeders; use App\Enums\Chain; +use App\Enums\TokenType; use App\Models\Collection; use App\Models\Collection as NftCollection; use App\Models\CollectionTrait; @@ -154,6 +155,7 @@ private function createCollection( 'floor_price_token_id' => $token->id, 'volume' => $collection->volume_total, 'supply' => $collection->items_total, + 'type' => $collection->erc_type === 'erc721' ? TokenType::Erc721->value : TokenType::Erc1155->value, 'minted_block' => $collection->deploy_block_number, 'extra_attributes' => json_encode([ 'image' => $collection->logo_url ?? $collection->featured_url, diff --git a/jsconfig.json b/jsconfig.json index 5e0b365aa..7eeab4b55 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -4,8 +4,8 @@ "paths": { "@/*": ["resources/js/*"], "@icons/*": ["resources/icons/*"], - "@images/*": ["resources/images/*"] - } + "@images/*": ["resources/images/*"], + }, }, - "exclude": ["node_modules", "public"] + "exclude": ["node_modules", "public"], } diff --git a/lang/en/common.php b/lang/en/common.php index c0bb6319d..7132e2016 100644 --- a/lang/en/common.php +++ b/lang/en/common.php @@ -38,6 +38,7 @@ 'warning' => 'Warning', 'my_address' => 'My Address', 'my_wallet' => 'My Wallet', + 'my_collections' => 'My Collections', 'my_balance' => 'My Balance', 'na' => 'N/A', 'simple_plural_without_data' => 'One comment|Many comments', @@ -51,6 +52,7 @@ 'my_collection' => 'My Collection', 'max' => 'Max', 'chain' => 'Chain', + 'search' => 'Search', 'copied' => 'Copied!', 'coming_soon' => 'Coming Soon', 'more_details' => 'More Details', @@ -61,7 +63,8 @@ 'articles' => 'Articles', 'most_popular' => 'Most Popular', 'market_cap' => 'Market Cap', - 'volume' => 'Volume :frequency', + 'volume' => 'Volume', + 'volume_frequency' => 'Volume :frequency', 'value' => 'Value', 'last_n_days' => 'Last :count Days', 'details' => 'Details', @@ -112,6 +115,7 @@ 'n_hours' => '{0} :count hour|{1} :count hour|[2,*] :count hours', 'n_minutes' => '{0} :count minute|{1} :count minute|[2,*] :count minutes', 'report' => 'Report', + 'nfts' => 'NFTs', 'n_nfts' => '{0}NFTs|{1}NFT|[2,*]NFTs', 'n_collections' => '{0}collections|{1}collection|[2,*]collections', 'back' => 'Back', @@ -159,4 +163,30 @@ 'draft' => 'Draft', 'delete_draft' => 'Delete Draft', 'share_on' => 'Share on {{platform}}', + 'top' => 'Top', + 'all_chains' => 'All chains', + 'votes' => 'Votes', + 'vote' => 'Vote', + 'vol' => 'Vol', + 'collection_preview' => 'Collection Preview', + '24h' => '24h', + '7d' => '7d', + '30d' => '30d', + 'volume_24h' => 'Volume (24h)', + 'volume_7d' => 'Volume (7d)', + 'volume_30d' => 'Volume (30d)', + 'months' => [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ], ]; diff --git a/lang/en/metatags.php b/lang/en/metatags.php index 2b5cbed7d..e42774035 100644 --- a/lang/en/metatags.php +++ b/lang/en/metatags.php @@ -61,6 +61,17 @@ 'description' => 'Immerse yourself in the intricate details of :name collection, featuring remarkable digital assets. Start your NFT journey today!', 'image' => '/images/meta/nft-collection.png', ], + 'of-the-month' => [ + 'title' => 'Collection of the Month :month | Dashbrd', + ], + ], + + 'my-collections' => [ + 'title' => 'My Collections | Dashbrd', + ], + + 'popular-collections' => [ + 'title' => 'Popular NFT Collections | Dashbrd', ], 'nfts' => [ diff --git a/lang/en/pages.php b/lang/en/pages.php index c63a1464d..a0ef0c7d6 100644 --- a/lang/en/pages.php +++ b/lang/en/pages.php @@ -40,9 +40,11 @@ 'audio_version' => 'Audio version', 'consists_of_collections' => '{0} This article highlights :count collections|{1} This article highlights :count collection|[2,*] This article highlights :count collections', ], + 'collections' => [ 'title' => 'Collections', 'collections' => 'Collections', + 'popular_collections' => 'Popular Collections', 'collection_value' => 'Collection Value', 'nfts_owned' => 'NFTs Owned', 'header_title' => 'You own <0>:nftsCount :nfts across <0>:collectionsCount :collections, worth about <0><1>:worth', @@ -54,6 +56,7 @@ 'value' => 'Value', 'rarity' => 'Rarity', 'report' => 'Report', + 'search_by_name' => 'Search by Collection Name', 'hide_collection' => 'Hide Collection', 'unhide_collection' => 'Unhide Collection', 'no_collections' => 'You do not own any NFTs yet. Once you do they will be shown here.', @@ -74,7 +77,31 @@ 'LABEL_BURN' => 'Burn', ], ], + 'collection_of_the_month' => [ + 'title' => 'Collection of the Month :month', + 'winners_month' => 'Winners: :month', + 'winners_month_year' => 'Winners: :month :year', + 'vote_for_next_months_winners' => 'Vote now for next month\'s winners', + 'view_previous_winners' => 'View Previous Winners', + 'previous_winners' => 'Previous Winners', + 'vote_received_modal' => [ + 'title' => 'Vote Received', + 'description' => 'Your vote has been recorded. Share your vote on X and let everyone know!', + 'share_vote' => 'Share Vote', + 'img_alt' => 'I voted for Dashbrd Project of the Month', + 'x_text' => 'I voted for :collection for collection of the month @dashbrdapp! Go show your support!', + ], + 'vote_success' => 'Your vote has been successfully submitted', + 'vote_failed' => 'You already cast your vote', + 'already_won' => 'This collection has already won Collection of the Month.', + 'content_to_be_added' => [ + 'title' => 'Content to be added', + 'description' => 'There will be a list of previous month winners here soon!', + ], + 'has_won_already' => 'This collection has already
won Collection of the Month.', + ], 'articles' => [ + 'heading' => 'Latest NFT News & Features', 'no_articles' => 'No articles have been linked to this collection as of now.', 'no_articles_with_filters' => 'We could not find any articles matching your search criteria, please try again!', 'search_placeholder' => 'Search in Articles', @@ -88,6 +115,16 @@ 'no_results_ownership' => 'You do not own any NFTs in this collection', 'error' => 'Could not load search results. Please try again later.', ], + 'vote' => [ + 'vote_for_top_collection' => 'Vote for Top Collection of the Month', + 'vote' => 'Vote', + 'time_left' => 'Time Left', + 'or_nominate_collection' => 'Or nominate a collection', + 'nominate_collection' => 'Nominate a collection', + 'vote_to_reveal' => 'Vote to reveal data', + 'already_voted' => 'You’ve already nominated. Come back next month!', + 'select_collection' => 'Please, select a collection to nominate', + ], 'sorting' => [ 'token_number' => 'Token Number', 'recently_received' => 'Recently Received', @@ -121,6 +158,15 @@ 'notice_wait' => 'Please wait. You can refresh data every 15 minutes.', 'toast' => "We're updating information for your collection.", ], + 'featured' => [ + 'title' => 'Featured Collections', + 'button' => 'Explore Collection', + ], + 'footer' => [ + 'heading_broken' => ['Connect with MetaMask', '& Manage Your Collection'], + 'subtitle' => 'Explore, Filter, & Share your favorite NFTs with Dashbrd.', + 'button' => 'Manage Collections', + ], ], 'nfts' => [ @@ -132,6 +178,10 @@ 'properties' => 'Properties', 'activity' => 'Activity', ], + 'erc1155_support' => [ + 'title' => 'No ERC1155 Support', + 'description' => "We noticed you own some ERC1155 NFTs. Unfortunately, we don't support them yet.", + ], ], 'reports' => [ @@ -370,4 +420,8 @@ 'terms_of_service' => [ 'title' => 'Terms of Service', ], + 'popular_collections' => [ + 'title' => 'Popular NFT Collections', + 'header_title' => '<0>:nftsCount :nfts from <0>:collectionsCount :collections, worth about <0><1>:worth', + ], ]; diff --git a/package.json b/package.json index 666c062ea..479e707d3 100644 --- a/package.json +++ b/package.json @@ -23,59 +23,59 @@ "prepare": "husky install" }, "devDependencies": { - "@babel/core": "^7.23.5", + "@babel/core": "^7.23.9", "@ethersproject/abstract-provider": "^5.7.0", "@faker-js/faker": "^7.6.0", "@headlessui/react": "1.7.14", "@inertiajs/core": "^1.0.14", "@inertiajs/react": "^1.0.14", "@radix-ui/react-accordion": "^1.1.2", - "@storybook/addon-actions": "^7.6.3", - "@storybook/addon-essentials": "^7.6.3", - "@storybook/addon-interactions": "^7.6.3", - "@storybook/addon-links": "^7.6.3", - "@storybook/blocks": "^7.6.3", - "@storybook/react": "^7.6.3", - "@storybook/react-vite": "^7.6.3", + "@storybook/addon-actions": "^7.6.12", + "@storybook/addon-essentials": "^7.6.12", + "@storybook/addon-interactions": "^7.6.12", + "@storybook/addon-links": "^7.6.12", + "@storybook/blocks": "^7.6.12", + "@storybook/react": "^7.6.12", + "@storybook/react-vite": "^7.6.12", "@storybook/testing-library": "^0.2.2", - "@storybook/types": "^7.6.3", + "@storybook/types": "^7.6.12", "@tailwindcss/forms": "^0.5.7", - "@testing-library/dom": "^9.3.3", - "@testing-library/react": "^14.1.2", + "@testing-library/dom": "^9.3.4", + "@testing-library/react": "^14.2.1", "@testing-library/react-hooks": "^8.0.1", - "@testing-library/user-event": "^14.5.1", + "@testing-library/user-event": "^14.5.2", "@tippyjs/react": "^4.2.6", "@types/body-scroll-lock": "^3.1.2", "@types/file-saver": "^2.0.7", "@types/lodash": "^4.14.202", "@types/lru-cache": "^7.10.10", - "@types/node": "^18.19.1", - "@types/react": "^18.2.41", - "@types/react-dom": "^18.2.17", - "@types/react-table": "^7.7.18", + "@types/node": "^18.19.14", + "@types/react": "^18.2.52", + "@types/react-dom": "^18.2.18", + "@types/react-table": "^7.7.19", "@types/sortablejs": "^1.15.7", "@types/testing-library__jest-dom": "^6.0.0", "@types/ziggy-js": "^1.3.3", - "@typescript-eslint/eslint-plugin": "^6.13.1", - "@typescript-eslint/parser": "^6.13.1", + "@typescript-eslint/eslint-plugin": "^6.20.0", + "@typescript-eslint/parser": "^6.20.0", "@vavt/vite-plugin-import-markdown": "^1.0.0", - "@vitejs/plugin-react": "^4.2.0", + "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-istanbul": "^0.34.6", - "autoprefixer": "^10.4.16", - "axios": "^1.6.2", + "autoprefixer": "^10.4.17", + "axios": "^1.6.7", "babel-loader": "^8.3.0", "bignumber.js": "^9.1.2", - "chart.js": "^4.4.0", + "chart.js": "^4.4.1", "chartjs-adapter-date-fns": "^3.0.0", "chromatic": "^6.24.1", "date-fns": "^2.30.0", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard-with-typescript": "^39.1.1", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-n": "^16.3.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prefer-arrow": "^1.2.3", - "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-sonarjs": "^0.23.0", @@ -84,17 +84,17 @@ "eslint-plugin-unused-imports": "^3.0.0", "husky": "^8.0.3", "i18next-browser-languagedetector": "^7.2.0", - "i18next-http-backend": "^2.4.2", + "i18next-http-backend": "^2.4.3", "jsdom": "^21.1.2", "laravel-vite-plugin": "^0.8.1", "lodash": "^4.17.21", - "markdown-to-jsx": "^7.3.2", + "markdown-to-jsx": "^7.4.1", "mockdate": "^3.0.5", "msw": "^1.3.2", "php-parser": "^3.1.5", - "postcss": "^8.4.32", - "prettier": "^3.1.0", - "prettier-plugin-tailwindcss": "^0.5.7", + "postcss": "^8.4.33", + "prettier": "^3.2.4", + "prettier-plugin-tailwindcss": "^0.5.11", "react": "^18.2.0", "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", @@ -103,13 +103,13 @@ "react-qr-code": "^2.0.12", "react-responsive": "^9.0.2", "storybook": "next", - "storybook-react-i18next": "^2.0.9", + "storybook-react-i18next": "^2.0.10", "swiper": "^9.4.1", - "tailwindcss": "^3.3.5", + "tailwindcss": "^3.4.1", "ts-loader": "^9.5.1", - "typescript": "^5.3.2", + "typescript": "^5.3.3", "vanilla-cookieconsent": "^2.9.2", - "vite": "^4.5.0", + "vite": "^4.5.2", "vite-plugin-svgr": "^2.4.0", "vite-plugin-watch": "^0.2.0", "vitest": "^0.34.6" @@ -119,27 +119,27 @@ "@ardenthq/sdk-intl": "^1.2.7", "@metamask/providers": "^10.2.1", "@popperjs/core": "^2.11.8", - "@storybook/addon-docs": "^7.6.3", + "@storybook/addon-docs": "^7.6.12", "@tanstack/react-query": "^4.36.1", - "@testing-library/jest-dom": "^6.1.5", + "@testing-library/jest-dom": "^6.4.1", "@types/string-hash": "^1.1.3", "@types/unist": "^3.0.2", "assert": "^2.1.0", "body-scroll-lock": "4.0.0-beta.0", "browser-fs-access": "^0.35.0", - "chart.js": "^4.4.0", - "classnames": "^2.3.2", + "chart.js": "^4.4.1", + "classnames": "^2.5.1", "ethers": "^5.7.2", "fast-sort": "^3.4.0", "file-saver": "^2.0.5", "i18next": "^22.5.1", - "lru-cache": "^10.1.0", - "puppeteer": "^21.5.2", + "lru-cache": "^10.2.0", + "puppeteer": "^21.11.0", "react-chartjs-2": "^5.2.0", "react-i18next": "^12.3.1", "react-in-viewport": "1.0.0-alpha.30", "react-indexed-db-hook": "^1.0.14", - "react-loading-skeleton": "^3.3.1", + "react-loading-skeleton": "^3.4.0", "react-markdown": "^9.0.1", "react-popper": "^2.3.0", "react-resize-detector": "^8.1.0", @@ -150,13 +150,13 @@ "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.0", "remark-gfm": "^4.0.0", - "remark-rehype": "^11.0.0", - "sortablejs": "^1.15.1", + "remark-rehype": "^11.1.0", + "sortablejs": "^1.15.2", "string-hash": "^1.1.3", "tailwind-merge": "^1.14.0", "tippy.js": "^6.3.7", "unified": "^11.0.4", "unist-util-visit": "^5.0.0", - "wavesurfer.js": "^7.4.12" + "wavesurfer.js": "^7.7.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 918f30792..83cf0fc5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,14 +18,14 @@ dependencies: specifier: ^2.11.8 version: 2.11.8 '@storybook/addon-docs': - specifier: ^7.6.3 - version: 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.12 + version: 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-query': specifier: ^4.36.1 version: 4.36.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/jest-dom': - specifier: ^6.1.5 - version: 6.1.5(vitest@0.34.6) + specifier: ^6.4.1 + version: 6.4.1(vitest@0.34.6) '@types/string-hash': specifier: ^1.1.3 version: 1.1.3 @@ -42,11 +42,11 @@ dependencies: specifier: ^0.35.0 version: 0.35.0 chart.js: - specifier: ^4.4.0 - version: 4.4.0 + specifier: ^4.4.1 + version: 4.4.1 classnames: - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^2.5.1 + version: 2.5.1 ethers: specifier: ^5.7.2 version: 5.7.2 @@ -60,14 +60,14 @@ dependencies: specifier: ^22.5.1 version: 22.5.1 lru-cache: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^10.2.0 + version: 10.2.0 puppeteer: - specifier: ^21.5.2 - version: 21.5.2(typescript@5.3.2) + specifier: ^21.11.0 + version: 21.11.0(typescript@5.3.3) react-chartjs-2: specifier: ^5.2.0 - version: 5.2.0(chart.js@4.4.0)(react@18.2.0) + version: 5.2.0(chart.js@4.4.1)(react@18.2.0) react-i18next: specifier: ^12.3.1 version: 12.3.1(i18next@22.5.1)(react-dom@18.2.0)(react@18.2.0) @@ -78,11 +78,11 @@ dependencies: specifier: ^1.0.14 version: 1.0.14(react-dom@18.2.0)(react@18.2.0) react-loading-skeleton: - specifier: ^3.3.1 - version: 3.3.1(react@18.2.0) + specifier: ^3.4.0 + version: 3.4.0(react@18.2.0) react-markdown: specifier: ^9.0.1 - version: 9.0.1(@types/react@18.2.41)(react@18.2.0) + version: 9.0.1(@types/react@18.2.52)(react@18.2.0) react-popper: specifier: ^2.3.0 version: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0)(react@18.2.0) @@ -91,7 +91,7 @@ dependencies: version: 8.1.0(react-dom@18.2.0)(react@18.2.0) react-sortablejs: specifier: ^6.1.4 - version: 6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1) + version: 6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.2) react-table: specifier: ^7.8.0 version: 7.8.0(react@18.2.0) @@ -111,11 +111,11 @@ dependencies: specifier: ^4.0.0 version: 4.0.0 remark-rehype: - specifier: ^11.0.0 - version: 11.0.0 + specifier: ^11.1.0 + version: 11.1.0 sortablejs: - specifier: ^1.15.1 - version: 1.15.1 + specifier: ^1.15.2 + version: 1.15.2 string-hash: specifier: ^1.1.3 version: 1.1.3 @@ -132,13 +132,13 @@ dependencies: specifier: ^5.0.0 version: 5.0.0 wavesurfer.js: - specifier: ^7.4.12 - version: 7.4.12 + specifier: ^7.7.1 + version: 7.7.1 devDependencies: '@babel/core': - specifier: ^7.23.5 - version: 7.23.5 + specifier: ^7.23.9 + version: 7.23.9 '@ethersproject/abstract-provider': specifier: ^5.7.0 version: 5.7.0 @@ -156,49 +156,49 @@ devDependencies: version: 1.0.14(react@18.2.0) '@radix-ui/react-accordion': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + version: 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-actions': - specifier: ^7.6.3 - version: 7.6.3 + specifier: ^7.6.12 + version: 7.6.12 '@storybook/addon-essentials': - specifier: ^7.6.3 - version: 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.12 + version: 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': - specifier: ^7.6.3 - version: 7.6.3 + specifier: ^7.6.12 + version: 7.6.12 '@storybook/addon-links': - specifier: ^7.6.3 - version: 7.6.3(react@18.2.0) + specifier: ^7.6.12 + version: 7.6.12(react@18.2.0) '@storybook/blocks': - specifier: ^7.6.3 - version: 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.12 + version: 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) '@storybook/react': - specifier: ^7.6.3 - version: 7.6.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2) + specifier: ^7.6.12 + version: 7.6.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@storybook/react-vite': - specifier: ^7.6.3 - version: 7.6.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@4.5.0) + specifier: ^7.6.12 + version: 7.6.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@4.5.2) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 '@storybook/types': - specifier: ^7.6.3 - version: 7.6.3 + specifier: ^7.6.12 + version: 7.6.12 '@tailwindcss/forms': specifier: ^0.5.7 - version: 0.5.7(tailwindcss@3.3.5) + version: 0.5.7(tailwindcss@3.4.1) '@testing-library/dom': - specifier: ^9.3.3 - version: 9.3.3 + specifier: ^9.3.4 + version: 9.3.4 '@testing-library/react': - specifier: ^14.1.2 - version: 14.1.2(react-dom@18.2.0)(react@18.2.0) + specifier: ^14.2.1 + version: 14.2.1(react-dom@18.2.0)(react@18.2.0) '@testing-library/react-hooks': specifier: ^8.0.1 - version: 8.0.1(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + version: 8.0.1(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': - specifier: ^14.5.1 - version: 14.5.1(@testing-library/dom@9.3.3) + specifier: ^14.5.2 + version: 14.5.2(@testing-library/dom@9.3.4) '@tippyjs/react': specifier: ^4.2.6 version: 4.2.6(react-dom@18.2.0)(react@18.2.0) @@ -215,17 +215,17 @@ devDependencies: specifier: ^7.10.10 version: 7.10.10 '@types/node': - specifier: ^18.19.1 - version: 18.19.1 + specifier: ^18.19.14 + version: 18.19.14 '@types/react': - specifier: ^18.2.41 - version: 18.2.41 + specifier: ^18.2.52 + version: 18.2.52 '@types/react-dom': - specifier: ^18.2.17 - version: 18.2.17 + specifier: ^18.2.18 + version: 18.2.18 '@types/react-table': - specifier: ^7.7.18 - version: 7.7.18 + specifier: ^7.7.19 + version: 7.7.19 '@types/sortablejs': specifier: ^1.15.7 version: 1.15.7 @@ -236,35 +236,35 @@ devDependencies: specifier: ^1.3.3 version: 1.3.3 '@typescript-eslint/eslint-plugin': - specifier: ^6.13.1 - version: 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) + specifier: ^6.20.0 + version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.13.1 - version: 6.13.1(eslint@8.55.0)(typescript@5.3.2) + specifier: ^6.20.0 + version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) '@vavt/vite-plugin-import-markdown': specifier: ^1.0.0 - version: 1.0.0(vite@4.5.0) + version: 1.0.0(vite@4.5.2) '@vitejs/plugin-react': - specifier: ^4.2.0 - version: 4.2.0(vite@4.5.0) + specifier: ^4.2.1 + version: 4.2.1(vite@4.5.2) '@vitest/coverage-istanbul': specifier: ^0.34.6 version: 0.34.6(vitest@0.34.6) autoprefixer: - specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.32) + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.33) axios: - specifier: ^1.6.2 - version: 1.6.2 + specifier: ^1.6.7 + version: 1.6.7 babel-loader: specifier: ^8.3.0 - version: 8.3.0(@babel/core@7.23.5)(webpack@5.88.2) + version: 8.3.0(@babel/core@7.23.9)(webpack@5.88.2) bignumber.js: specifier: ^9.1.2 version: 9.1.2 chartjs-adapter-date-fns: specifier: ^3.0.0 - version: 3.0.0(chart.js@4.4.0)(date-fns@2.30.0) + version: 3.0.0(chart.js@4.4.1)(date-fns@2.30.0) chromatic: specifier: ^6.24.1 version: 6.24.1 @@ -272,44 +272,44 @@ devDependencies: specifier: ^2.30.0 version: 2.30.0 eslint: - specifier: ^8.55.0 - version: 8.55.0 + specifier: ^8.56.0 + version: 8.56.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.55.0) + version: 9.1.0(eslint@8.56.0) eslint-config-standard-with-typescript: specifier: ^39.1.1 - version: 39.1.1(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2) + version: 39.1.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: - specifier: ^2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) + specifier: ^2.29.1 + version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) eslint-plugin-n: - specifier: ^16.3.1 - version: 16.3.1(eslint@8.55.0) + specifier: ^16.6.2 + version: 16.6.2(eslint@8.56.0) eslint-plugin-prefer-arrow: specifier: ^1.2.3 - version: 1.2.3(eslint@8.55.0) + version: 1.2.3(eslint@8.56.0) eslint-plugin-prettier: - specifier: ^5.0.1 - version: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0) + specifier: ^5.1.3 + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.55.0) + version: 6.1.1(eslint@8.56.0) eslint-plugin-react: specifier: ^7.33.2 - version: 7.33.2(eslint@8.55.0) + version: 7.33.2(eslint@8.56.0) eslint-plugin-sonarjs: specifier: ^0.23.0 - version: 0.23.0(eslint@8.55.0) + version: 0.23.0(eslint@8.56.0) eslint-plugin-storybook: specifier: ^0.6.15 - version: 0.6.15(eslint@8.55.0)(typescript@5.3.2) + version: 0.6.15(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-unicorn: specifier: ^48.0.1 - version: 48.0.1(eslint@8.55.0) + version: 48.0.1(eslint@8.56.0) eslint-plugin-unused-imports: specifier: ^3.0.0 - version: 3.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.55.0) + version: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -317,38 +317,38 @@ devDependencies: specifier: ^7.2.0 version: 7.2.0 i18next-http-backend: - specifier: ^2.4.2 - version: 2.4.2 + specifier: ^2.4.3 + version: 2.4.3 jsdom: specifier: ^21.1.2 version: 21.1.2 laravel-vite-plugin: specifier: ^0.8.1 - version: 0.8.1(vite@4.5.0) + version: 0.8.1(vite@4.5.2) lodash: specifier: ^4.17.21 version: 4.17.21 markdown-to-jsx: - specifier: ^7.3.2 - version: 7.3.2(react@18.2.0) + specifier: ^7.4.1 + version: 7.4.1(react@18.2.0) mockdate: specifier: ^3.0.5 version: 3.0.5 msw: specifier: ^1.3.2 - version: 1.3.2(typescript@5.3.2) + version: 1.3.2(typescript@5.3.3) php-parser: specifier: ^3.1.5 version: 3.1.5 postcss: - specifier: ^8.4.32 - version: 8.4.32 + specifier: ^8.4.33 + version: 8.4.33 prettier: - specifier: ^3.1.0 - version: 3.1.0 + specifier: ^3.2.4 + version: 3.2.4 prettier-plugin-tailwindcss: - specifier: ^0.5.7 - version: 0.5.7(prettier@3.1.0) + specifier: ^0.5.11 + version: 0.5.11(prettier@3.2.4) react: specifier: ^18.2.0 version: 18.2.0 @@ -371,29 +371,29 @@ devDependencies: specifier: next version: 7.6.0-beta.2 storybook-react-i18next: - specifier: ^2.0.9 - version: 2.0.9(@storybook/components@7.5.3)(@storybook/manager-api@7.5.3)(@storybook/preview-api@7.5.3)(@storybook/types@7.6.3)(i18next-browser-languagedetector@7.2.0)(i18next-http-backend@2.4.2)(i18next@22.5.1)(react-dom@18.2.0)(react-i18next@12.3.1)(react@18.2.0) + specifier: ^2.0.10 + version: 2.0.10(@storybook/components@7.6.10)(@storybook/manager-api@7.6.10)(@storybook/preview-api@7.6.10)(@storybook/types@7.6.12)(i18next-browser-languagedetector@7.2.0)(i18next-http-backend@2.4.3)(i18next@22.5.1)(react-dom@18.2.0)(react-i18next@12.3.1)(react@18.2.0) swiper: specifier: ^9.4.1 version: 9.4.1 tailwindcss: - specifier: ^3.3.5 - version: 3.3.5 + specifier: ^3.4.1 + version: 3.4.1 ts-loader: specifier: ^9.5.1 - version: 9.5.1(typescript@5.3.2)(webpack@5.88.2) + version: 9.5.1(typescript@5.3.3)(webpack@5.88.2) typescript: - specifier: ^5.3.2 - version: 5.3.2 + specifier: ^5.3.3 + version: 5.3.3 vanilla-cookieconsent: specifier: ^2.9.2 version: 2.9.2 vite: - specifier: ^4.5.0 - version: 4.5.0(@types/node@18.19.1) + specifier: ^4.5.2 + version: 4.5.2(@types/node@18.19.14) vite-plugin-svgr: specifier: ^2.4.0 - version: 2.4.0(vite@4.5.0) + version: 2.4.0(vite@4.5.2) vite-plugin-watch: specifier: ^0.2.0 version: 0.2.0 @@ -408,8 +408,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@adobe/css-tools@4.3.1: - resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==} + /@adobe/css-tools@4.3.2: + resolution: {integrity: sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==} /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -455,20 +455,6 @@ packages: default-browser-id: 3.0.0 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.20 - chalk: 2.4.2 - - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.20 - dev: true - /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -476,24 +462,24 @@ packages: '@babel/highlight': 7.23.4 chalk: 2.4.2 - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - /@babel/core@7.23.5: - resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) - '@babel/helpers': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -502,20 +488,11 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.23.3: - resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.3 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.19 - jsesc: 2.5.2 - - /@babel/generator@7.23.5: - resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.9 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 @@ -524,63 +501,63 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.5): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.5): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.5): + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.9): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -597,35 +574,35 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.5 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.9 /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.9 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -636,32 +613,32 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.5): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.5): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -671,24 +648,20 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.9 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.5 - - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} - engines: {node: '>=6.9.0'} + '@babel/types': 7.23.9 /@babel/helper-string-parser@7.23.4: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} @@ -698,8 +671,8 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} /@babel/helper-wrap-function@7.22.20: @@ -708,27 +681,19 @@ packages: dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 dev: true - /@babel/helpers@7.23.5: - resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.5 - '@babel/types': 7.23.5 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 transitivePeerDependencies: - supports-color - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} @@ -737,972 +702,972 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.23.3: - resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.5 + '@babel/types': 7.23.9 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.5): + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.5): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.5): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.5): + /@babel/plugin-syntax-flow@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.5): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.5): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.5): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.5): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.5): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.5): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.5) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.5) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.5): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.5) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.5): + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.5) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.9) dev: true - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.5): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.3(@babel/core@7.23.5): + /@babel/preset-env@7.23.3(@babel/core@7.23.9): resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.5 - '@babel/helper-compilation-targets': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.5) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.5) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.5) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.5) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.5) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.5) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.5) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.5) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.5) + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.9) core-js-compat: 3.33.2 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-flow@7.22.15(@babel/core@7.23.5): + /@babel/preset-flow@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.23.5) + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.23.9) dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.5): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 esutils: 2.0.3 dev: true - /@babel/preset-typescript@7.23.0(@babel/core@7.23.5): + /@babel/preset-typescript@7.23.0(@babel/core@7.23.9): resolution: {integrity: sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.5) + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.9) dev: true - /@babel/register@7.22.15(@babel/core@7.23.5): + /@babel/register@7.22.15(@babel/core@7.23.9): resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -1731,53 +1696,45 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true - /@babel/traverse@7.23.3: - resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 - /@babel/traverse@7.23.5: - resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.5 - '@babel/types': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - /@babel/types@7.23.5: - resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.23.4 @@ -1983,13 +1940,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2005,7 +1962,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 + globals: 13.24.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -2015,8 +1972,8 @@ packages: - supports-color dev: true - /@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2402,7 +2359,7 @@ packages: /@inertiajs/core@1.0.14: resolution: {integrity: sha512-S33PU6mWEYbn/s2Op+CJ6MN7ON354vWw8Y+UvtQzPt0r7pVgOuIArrqqsoulf9oQz9sbP1+vp/tCvyBzm4XmpA==} dependencies: - axios: 1.6.2 + axios: 1.6.7 deepmerge: 4.3.1 nprogress: 0.2.0 qs: 6.11.2 @@ -2457,7 +2414,7 @@ packages: resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 @@ -2481,7 +2438,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -2493,11 +2450,11 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/yargs': 17.0.24 chalk: 4.1.2 - /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.2)(vite@4.5.0): + /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@4.5.2): resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} peerDependencies: typescript: '>= 4.3.x' @@ -2509,9 +2466,9 @@ packages: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.3.2) - typescript: 5.3.2 - vite: 4.5.0(@types/node@18.19.1) + react-docgen-typescript: 2.2.2(typescript@5.3.3) + typescript: 5.3.3 + vite: 4.5.2(@types/node@18.19.14) dev: true /@jridgewell/gen-mapping@0.3.3: @@ -2558,7 +2515,7 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.5 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 /@metamask/object-multiplex@1.2.0: @@ -2660,23 +2617,16 @@ packages: requiresBuild: true optional: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + /@pkgr/core@0.1.0: + resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 dev: true /@popperjs/core@2.11.8: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - /@puppeteer/browsers@1.8.0: - resolution: {integrity: sha512-TkRHIV6k2D8OlUe8RtG+5jgOF/H98Myx0M6AOafC8DdNVOFiBSFa5cpRDtpm8LXOa9sVwe0+e6Q3FC56X/DZfg==} + /@puppeteer/browsers@1.9.1: + resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} engines: {node: '>=16.3.0'} hasBin: true dependencies: @@ -2701,7 +2651,7 @@ packages: dependencies: '@babel/runtime': 7.23.2 - /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-accordion@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} peerDependencies: '@types/react': '*' @@ -2716,21 +2666,21 @@ packages: dependencies: '@babel/runtime': 7.22.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -2744,13 +2694,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -2765,20 +2715,20 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -2792,16 +2742,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -2811,10 +2761,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-context@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -2824,10 +2774,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-direction@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -2837,10 +2787,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -2855,16 +2805,16 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -2874,10 +2824,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -2891,15 +2841,15 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-id@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -2909,11 +2859,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -2928,21 +2878,21 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.41)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.52)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -2956,13 +2906,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -2976,15 +2926,15 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -2998,13 +2948,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -3019,20 +2969,20 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -3048,31 +2998,31 @@ packages: '@babel/runtime': 7.23.2 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.41)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.52)(react@18.2.0) - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -3086,13 +3036,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-slot@1.0.2(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -3102,11 +3052,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -3121,18 +3071,18 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -3147,14 +3097,14 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -3169,18 +3119,18 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -3190,10 +3140,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -3203,11 +3153,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -3217,11 +3167,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -3231,10 +3181,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -3244,10 +3194,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -3258,10 +3208,10 @@ packages: dependencies: '@babel/runtime': 7.23.2 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.41)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -3271,11 +3221,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.41)(react@18.2.0) - '@types/react': 18.2.41 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.52)(react@18.2.0) + '@types/react': 18.2.52 react: 18.2.0 - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -3289,9 +3239,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.2 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.41 - '@types/react-dom': 18.2.17 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.52 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3309,7 +3259,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.2 estree-walker: 2.0.2 picomatch: 2.3.1 dev: true @@ -3331,10 +3281,10 @@ packages: /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - /@storybook/addon-actions@7.6.3: - resolution: {integrity: sha512-f4HXteYE8IJXztAK+ab5heSjXWNWvyIAU63T3Fqe3zmqONwCerUKY54Op+RkAZc/R6aALTxvGRKAH2ff8g2vjQ==} + /@storybook/addon-actions@7.6.12: + resolution: {integrity: sha512-vK/H6K+AJ4ZSsCu/+MapYYI/xrynB6JoCOejt//flTigZOhwTWv7WXbmEeqGIIToXy0LA2IUZ1/kCjFXR0lEdQ==} dependencies: - '@storybook/core-events': 7.6.3 + '@storybook/core-events': 7.6.12 '@storybook/global': 5.0.0 '@types/uuid': 9.0.7 dequal: 2.0.3 @@ -3342,18 +3292,18 @@ packages: uuid: 9.0.0 dev: true - /@storybook/addon-backgrounds@7.6.3: - resolution: {integrity: sha512-ZZFNf8FBYBsuXvXdVk3sBgxJTn6s0HznuEE9OmAA7tMsLEDlUiWS9LEvjX2jX5K0kWivHTkJDTXV0NcLL1vWAg==} + /@storybook/addon-backgrounds@7.6.12: + resolution: {integrity: sha512-G14uN5lDXUtXw+dmEPaB6lpDpR9K25ssYuWWn8yYR44B1WMuD4kDgw0QGb0g+xYQj9R1TsalKEJHA4AuSYkVGQ==} dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xsM3z+CY1YOPqrcCldQLoon947fbd/o3gSO7hM3NwKiw/2WikExPO3VM4R2oi4W4PvnhkSOIO+ZDRuSs1yFmOg==} + /@storybook/addon-controls@7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NX4KajscOsuXyYE3hhniF+y0E59E6rM0FgIaZ48P9c0DD+wDo8bAISHjZvmKXtDVajLk4/JySvByx1eN6V3hmA==} dependencies: - '@storybook/blocks': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -3365,27 +3315,27 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2Ts+3EFg9ehkQdbjBWnCH1SE0BdyCLN6hO2N030tGxi0Vko9t9O7NLj5qdBwxLcEzb/XzL4zWukzfU17pktQwA==} + /@storybook/addon-docs@7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AzMgnGYfEg+Z1ycJh8MEp44x1DfjRijKCVYNaPFT6o+TjN/9GBaAkV4ydxmQzMEMnnnh/0E9YeHO+ivBVSkNog==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@jest/transform': 29.6.1 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.3 - '@storybook/components': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.6.3 - '@storybook/csf-tools': 7.6.3 + '@storybook/blocks': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.12 + '@storybook/components': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.6.12 + '@storybook/csf-tools': 7.6.12 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.3 - '@storybook/postinstall': 7.6.3 - '@storybook/preview-api': 7.6.3 - '@storybook/react-dom-shim': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.3 + '@storybook/node-logger': 7.6.12 + '@storybook/postinstall': 7.6.12 + '@storybook/preview-api': 7.6.12 + '@storybook/react-dom-shim': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.12 fs-extra: 11.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3398,25 +3348,25 @@ packages: - encoding - supports-color - /@storybook/addon-essentials@7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bpbt5O0wcB83VLZg8QMXut+8g+7EF4iuevpwiynN9mbpQFvG49c6SE6T2eFJKTvVb4zszyfcNA0Opne2G83wZw==} + /@storybook/addon-essentials@7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Pl6n+19QC/T+cuU8DZjCwILXVxrdRTivNxPOiy8SEX+jjR4H0uAfXC9+RXCPjRFn64t4j1K7oIyoNokEn39cNw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.6.3 - '@storybook/addon-backgrounds': 7.6.3 - '@storybook/addon-controls': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.6.3 - '@storybook/addon-measure': 7.6.3 - '@storybook/addon-outline': 7.6.3 - '@storybook/addon-toolbars': 7.6.3 - '@storybook/addon-viewport': 7.6.3 - '@storybook/core-common': 7.6.3 - '@storybook/manager-api': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.6.3 - '@storybook/preview-api': 7.6.3 + '@storybook/addon-actions': 7.6.12 + '@storybook/addon-backgrounds': 7.6.12 + '@storybook/addon-controls': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.6.12 + '@storybook/addon-measure': 7.6.12 + '@storybook/addon-outline': 7.6.12 + '@storybook/addon-toolbars': 7.6.12 + '@storybook/addon-viewport': 7.6.12 + '@storybook/core-common': 7.6.12 + '@storybook/manager-api': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.6.12 + '@storybook/preview-api': 7.6.12 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -3427,24 +3377,24 @@ packages: - supports-color dev: true - /@storybook/addon-highlight@7.6.3: - resolution: {integrity: sha512-Z9AJ05XCTzFZPAxQSkQf9/Hazf5/QQI0jYSsvKqt7Vk+03q5727oD9KcIY5IHPYqQqN9fHExQh1eyqY8AnS8mg==} + /@storybook/addon-highlight@7.6.12: + resolution: {integrity: sha512-rWNEyBhwncXEDd9z7l67BLBIPqn0SRI/CJpZvCSF5KLWrVaoSEDF8INavmbikd1JBMcajJ28Ur6NsGj+eJjJiw==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/addon-interactions@7.6.3: - resolution: {integrity: sha512-Gm2UJvQC8xs9KIbVZQegTLT3VBsEZIRsXy3htNqWjSdoJZK5M4/YJ3jB247CA/Jc+Mkj7d5SlJe+bCGEzjKTbw==} + /@storybook/addon-interactions@7.6.12: + resolution: {integrity: sha512-D8NX2xu9WiqPInoN842DU+KAFVC8HscGczqkDGEiWCAqq0DfXtW/0ClMSaE6d2+twhGv6uiPfeJ2IdynSZolXg==} dependencies: '@storybook/global': 5.0.0 - '@storybook/types': 7.6.3 + '@storybook/types': 7.6.12 jest-mock: 27.5.1 polished: 4.2.2 ts-dedent: 2.2.0 dev: true - /@storybook/addon-links@7.6.3(react@18.2.0): - resolution: {integrity: sha512-dUIf6Y0nckxZfVQvQSqcthaycRxy69dCJLo3aORrOPL8NvGz3v1bK0AUded5wv8vnOVxfSx/Zqu7MyFr9xyjOA==} + /@storybook/addon-links@7.6.12(react@18.2.0): + resolution: {integrity: sha512-rGwPYpZAANPrf2GaNi5t9zAjLF8PgzKizyBPltIXUtplxDg88ziXlDA1dhsuGDs4Kf0oXECyAHPw79JjkJQziA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -3457,52 +3407,52 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-measure@7.6.3: - resolution: {integrity: sha512-DqxADof04ktA5GSA8XnckYGdVYyC4oN8vfKSGcPzpcKrJ2uVr0BXbcyJAEcJAshEJimmpA6nH5TxabXDFBZgPQ==} + /@storybook/addon-measure@7.6.12: + resolution: {integrity: sha512-K3aKErr84V0eVK7t+wco5cSYDdeotwoXi4e7VLSa2cdUz0wanOb4R7v3kf6vxucUyp05Lv+yHkz9zsbwuezepA==} dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-outline@7.6.3: - resolution: {integrity: sha512-M7d2tcqBBl+mPBUS6Nrwis50QYSCcmT/uKamud7CnlIWsMH/5GZFfAzGSLY5ETfiGsSFYssOwrXLOV4y0enu2g==} + /@storybook/addon-outline@7.6.12: + resolution: {integrity: sha512-r6eO4EKh+zwGUNjxe8v/44BhyV+JD3Dl9GYMutsFqbwYsoWHJaZmzHuyqeFBXwx2MEoixdWdIzNMP71+srQqvw==} dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 dev: true - /@storybook/addon-toolbars@7.6.3: - resolution: {integrity: sha512-8GpwOt0J5yLrJhTr9/h0a/LTDjt49FhdvdxiVWLlLMrjIXSIc7j193ZgoHfnlwVhJS5zojcjB+HmRw/E+AneoA==} + /@storybook/addon-toolbars@7.6.12: + resolution: {integrity: sha512-TSwq8xO7fmS6GRTgJJa31OBzm+5zlgDYK2Q42jxFo/Vm10uMzCpjYJE6mIHpUDyjyBVQk6xxMMEcvo6no2eAWg==} dev: true - /@storybook/addon-viewport@7.6.3: - resolution: {integrity: sha512-I9FQxHi4W7RUyZut4NziYa+nkBCpD1k2YpEDE5IwSC3lqQpDzFZN89eNWQtZ38tIU4c90jL3L1k69IHvANGHsA==} + /@storybook/addon-viewport@7.6.12: + resolution: {integrity: sha512-51zsBeoaEzq699SKDCe+GG/2PDAJKKJtpjqxIc4lDskogaCJSb3Ie8LyookHAKYgbi2qealVgK8zaP27KUj3Pg==} dependencies: memoizerific: 1.11.3 dev: true - /@storybook/blocks@7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EyjyNNCZMcV9UnBSujwduiq+F1VLVX/f16fTTPqqZOHigyfrG5LoEYC6dwOC4yO/xfWY+h3qJ51yiugMxVl0Vg==} + /@storybook/blocks@7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-T47KOAjgZmhV+Ov59A70inE5edInh1Jh5w/5J5cjpk9a2p4uhd337SnK4B8J5YLhcM2lbKRWJjzIJ0nDZQTdnQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.6.3 - '@storybook/client-logger': 7.6.3 - '@storybook/components': 7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.6.3 + '@storybook/channels': 7.6.12 + '@storybook/client-logger': 7.6.12 + '@storybook/components': 7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.6.12 '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 7.6.3 + '@storybook/docs-tools': 7.6.12 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.6.3 - '@storybook/theming': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.3 + '@storybook/manager-api': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.6.12 + '@storybook/theming': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.12 '@types/lodash': 4.14.202 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.3.2(react@18.2.0) + markdown-to-jsx: 7.4.1(react@18.2.0) memoizerific: 1.11.3 polished: 4.2.2 react: 18.2.0 @@ -3542,8 +3492,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.6.3(typescript@5.3.2)(vite@4.5.0): - resolution: {integrity: sha512-r/G/6wdwgbhMiMZ8Z+Js8VLjIo7a0DG5SxJorTHSWNi0+jyM+3Qlg3Xj96I8yL4gfTIKWVScHqHprhjRb2E64g==} + /@storybook/builder-vite@7.6.12(typescript@5.3.3)(vite@4.5.2): + resolution: {integrity: sha512-VJIn+XYVVhdJHHMEtYDnEyQQU4fRupugSFpP9XLYTRYgXPN9PSVey4vI/IyuHcHYINPba39UY2+8PW+5NgShxQ==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -3557,14 +3507,14 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channels': 7.6.3 - '@storybook/client-logger': 7.6.3 - '@storybook/core-common': 7.6.3 - '@storybook/csf-plugin': 7.6.3 - '@storybook/node-logger': 7.6.3 - '@storybook/preview': 7.6.3 - '@storybook/preview-api': 7.6.3 - '@storybook/types': 7.6.3 + '@storybook/channels': 7.6.12 + '@storybook/client-logger': 7.6.12 + '@storybook/core-common': 7.6.12 + '@storybook/csf-plugin': 7.6.12 + '@storybook/node-logger': 7.6.12 + '@storybook/preview': 7.6.12 + '@storybook/preview-api': 7.6.12 + '@storybook/types': 7.6.12 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 @@ -3573,40 +3523,40 @@ packages: fs-extra: 11.1.1 magic-string: 0.30.1 rollup: 3.29.2 - typescript: 5.3.2 - vite: 4.5.0(@types/node@18.19.1) + typescript: 5.3.3 + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - encoding - supports-color dev: true - /@storybook/channels@7.5.3: - resolution: {integrity: sha512-dhWuV2o2lmxH0RKuzND8jxYzvSQTSmpE13P0IT/k8+I1up/rSNYOBQJT6SalakcNWXFAMXguo/8E7ApmnKKcEw==} + /@storybook/channels@7.6.0-beta.2: + resolution: {integrity: sha512-jNQU2TfmSjUFERmfYnQwB/5097Y4dlw931ViYCkrBN4DM6cGxLTLOjd/Y8nAgB7PRkHAysmuQqRa7vmYf8dINw==} dependencies: - '@storybook/client-logger': 7.5.3 - '@storybook/core-events': 7.5.3 + '@storybook/client-logger': 7.6.0-beta.2 + '@storybook/core-events': 7.6.0-beta.2 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.2.0 tiny-invariant: 1.3.1 dev: true - /@storybook/channels@7.6.0-beta.2: - resolution: {integrity: sha512-jNQU2TfmSjUFERmfYnQwB/5097Y4dlw931ViYCkrBN4DM6cGxLTLOjd/Y8nAgB7PRkHAysmuQqRa7vmYf8dINw==} + /@storybook/channels@7.6.10: + resolution: {integrity: sha512-ITCLhFuDBKgxetuKnWwYqMUWlU7zsfH3gEKZltTb+9/2OAWR7ez0iqU7H6bXP1ridm0DCKkt2UMWj2mmr9iQqg==} dependencies: - '@storybook/client-logger': 7.6.0-beta.2 - '@storybook/core-events': 7.6.0-beta.2 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.2.0 tiny-invariant: 1.3.1 dev: true - /@storybook/channels@7.6.3: - resolution: {integrity: sha512-o9J0TBbFon16tUlU5V6kJgzAlsloJcS1cTHWqh3VWczohbRm+X1PLNUihJ7Q8kBWXAuuJkgBu7RQH7Ib46WyYg==} + /@storybook/channels@7.6.12: + resolution: {integrity: sha512-TaPl5Y3lOoVi5kTLgKNRX8xh2sUPekH0Id1l4Ymw+lpgriEY6r60bmkZLysLG1GhlskpQ/da2+S2ap2ht8P2TQ==} dependencies: - '@storybook/client-logger': 7.6.3 - '@storybook/core-events': 7.6.3 + '@storybook/client-logger': 7.6.12 + '@storybook/core-events': 7.6.12 '@storybook/global': 5.0.0 qs: 6.11.2 telejson: 7.2.0 @@ -3616,9 +3566,9 @@ packages: resolution: {integrity: sha512-VYn9Rck3gSpa7RL/yAkMszx/6mscFr0EOII8yZd/JZqbwfBQYjyJ0e4w0exNMFWF0PXgqtYgm5LJ3j6P7kHNtA==} hasBin: true dependencies: - '@babel/core': 7.23.5 - '@babel/preset-env': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.3 + '@babel/core': 7.23.9 + '@babel/preset-env': 7.23.3(@babel/core@7.23.9) + '@babel/types': 7.23.6 '@ndelangen/get-tarball': 3.0.9 '@storybook/codemod': 7.6.0-beta.2 '@storybook/core-common': 7.6.0-beta.2 @@ -3664,29 +3614,29 @@ packages: - utf-8-validate dev: true - /@storybook/client-logger@7.5.3: - resolution: {integrity: sha512-vUFYALypjix5FoJ5M/XUP6KmyTnQJNW1poHdW7WXUVSg+lBM6E5eAtjTm0hdxNNDH8KSrdy24nCLra5h0X0BWg==} + /@storybook/client-logger@7.6.0-beta.2: + resolution: {integrity: sha512-NK3nz1t36JUVwn/1sem3t0fYI3C/IcKKcq8Qpgcy1DGqm/3EJEyWGf8Mv3/FEmtmixPWuwzY52x4R/+K6aFwag==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/client-logger@7.6.0-beta.2: - resolution: {integrity: sha512-NK3nz1t36JUVwn/1sem3t0fYI3C/IcKKcq8Qpgcy1DGqm/3EJEyWGf8Mv3/FEmtmixPWuwzY52x4R/+K6aFwag==} + /@storybook/client-logger@7.6.10: + resolution: {integrity: sha512-U7bbpu21ntgePMz/mKM18qvCSWCUGCUlYru8mgVlXLCKqFqfTeP887+CsPEQf29aoE3cLgDrxqbRJ1wxX9kL9A==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/client-logger@7.6.3: - resolution: {integrity: sha512-BpsCnefrBFdxD6ukMjAblm1D6zB4U5HR1I85VWw6LOqZrfzA6l/1uBxItz0XG96HTjngbvAabWf5k7ZFCx5UCg==} + /@storybook/client-logger@7.6.12: + resolution: {integrity: sha512-hiRv6dXsOttMPqm9SxEuFoAtDe9rs7TUS8XcO5rmJ9BgfwBJsYlHzAxXkazxmvlyZtKL7gMx6m8OYbCdZgUqtA==} dependencies: '@storybook/global': 5.0.0 /@storybook/codemod@7.6.0-beta.2: resolution: {integrity: sha512-rntgqX0saQPmr/bdTcc1xw4IDE373acLvNLimzBWHIWb1N8ITMuGHBZ7xNUQ48+JyvO7iO0BPwes9JJSiWjq8A==} dependencies: - '@babel/core': 7.23.5 - '@babel/preset-env': 7.23.3(@babel/core@7.23.5) - '@babel/types': 7.23.3 + '@babel/core': 7.23.9 + '@babel/preset-env': 7.23.3(@babel/core@7.23.9) + '@babel/types': 7.23.9 '@storybook/csf': 0.1.2 '@storybook/csf-tools': 7.6.0-beta.2 '@storybook/node-logger': 7.6.0-beta.2 @@ -3702,19 +3652,19 @@ packages: - supports-color dev: true - /@storybook/components@7.5.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-M3+cjvEsDGLUx8RvK5wyF6/13LNlUnKbMgiDE8Sxk/v/WPpyhOAIh/B8VmrU1psahS61Jd4MTkFmLf1cWau1vw==} + /@storybook/components@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.5.3 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.10 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/theming': 7.5.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.3 + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3725,19 +3675,19 @@ packages: - '@types/react-dom' dev: true - /@storybook/components@7.6.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UNV0WoUo+W0huOLvoEMuqRN/VB4p0CNswrXN1mi/oGWvAFJ8idu63lSuV4uQ/LKxAZ6v3Kpdd+oK/o+OeOoL6w==} + /@storybook/components@7.6.12(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PCijPqmlZd7qyTzNr+vD0Kf8sAI9vWJIaxbSjXwn/De3e63m4fsEcIf8FaUT8cMZ46AWZvaxaxX5km2u0UISJQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.3 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.12 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/theming': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.3 + '@storybook/theming': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.12 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3747,11 +3697,11 @@ packages: - '@types/react' - '@types/react-dom' - /@storybook/core-client@7.6.3: - resolution: {integrity: sha512-RM0Svlajddl8PP4Vq7LK8T22sFefNcTDgo82iRPZzGz0oH8LT0oXGFanj2Nkn0jruOBFClkiJ7EcwrbGJZHELg==} + /@storybook/core-client@7.6.12: + resolution: {integrity: sha512-VzVp32tMZsCzM4UIqfvCoJF7N9mBf6dsAxh1/ZgViy75Fht78pGo3JwZXW8osMbFSRpmWD7fxlUM5S7TQOYQug==} dependencies: - '@storybook/client-logger': 7.6.3 - '@storybook/preview-api': 7.6.3 + '@storybook/client-logger': 7.6.12 + '@storybook/preview-api': 7.6.12 dev: true /@storybook/core-common@7.6.0-beta.2: @@ -3761,7 +3711,7 @@ packages: '@storybook/node-logger': 7.6.0-beta.2 '@storybook/types': 7.6.0-beta.2 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/node-fetch': 2.6.6 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 @@ -3785,14 +3735,14 @@ packages: - supports-color dev: true - /@storybook/core-common@7.6.3: - resolution: {integrity: sha512-/ZE4BEyGwBHCQCOo681GyBKF4IqCiwVV/ZJCHTMTHFCPLJT2r+Qwv4tnI7xt1kwflOlbBlG6B6CvAqTjjVw/Ew==} + /@storybook/core-common@7.6.12: + resolution: {integrity: sha512-kM9YiBBMM2x5v/oylL7gdO1PS4oehgJC21MivS9p5QZ8uuXKtCQ6UQvI3rzaV+1ZzUA4n+I8MyaMrNIQk8KDbw==} dependencies: - '@storybook/core-events': 7.6.3 - '@storybook/node-logger': 7.6.3 - '@storybook/types': 7.6.3 + '@storybook/core-events': 7.6.12 + '@storybook/node-logger': 7.6.12 + '@storybook/types': 7.6.12 '@types/find-cache-dir': 3.2.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/node-fetch': 2.6.6 '@types/pretty-hrtime': 1.0.1 chalk: 4.1.2 @@ -3815,20 +3765,20 @@ packages: - encoding - supports-color - /@storybook/core-events@7.5.3: - resolution: {integrity: sha512-DFOpyQ22JD5C1oeOFzL8wlqSWZzrqgDfDbUGP8xdO4wJu+FVTxnnWN6ZYLdTPB1u27DOhd7TzjQMfLDHLu7kbQ==} + /@storybook/core-events@7.6.0-beta.2: + resolution: {integrity: sha512-5U8Ar4etAruQ6cQ99Eo/D/mBDye4hC3hUTHECdL9dsPyEIGab4B7wtMXhkQ4artbIKFm4f7JiI618Xv5e/Jwfw==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-events@7.6.0-beta.2: - resolution: {integrity: sha512-5U8Ar4etAruQ6cQ99Eo/D/mBDye4hC3hUTHECdL9dsPyEIGab4B7wtMXhkQ4artbIKFm4f7JiI618Xv5e/Jwfw==} + /@storybook/core-events@7.6.10: + resolution: {integrity: sha512-yccDH67KoROrdZbRKwxgTswFMAco5nlCyxszCDASCLygGSV2Q2e+YuywrhchQl3U6joiWi3Ps1qWu56NeNafag==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-events@7.6.3: - resolution: {integrity: sha512-Vu3JX1mjtR8AX84lyqWsi2s2lhD997jKRWVznI3wx+UpTk8t7TTMLFk2rGYJRjaornhrqwvLYpnmtxRSxW9BOQ==} + /@storybook/core-events@7.6.12: + resolution: {integrity: sha512-IO4cwk7bBCKH6lLnnIlHO9FwQXt/9CzLUAoZSY9msWsdPppCdKlw8ynJI5YarSNKDBUn8ArIfnRf0Mve0KQr9Q==} dependencies: ts-dedent: 2.2.0 @@ -3851,7 +3801,7 @@ packages: '@storybook/telemetry': 7.6.0-beta.2 '@storybook/types': 7.6.0-beta.2 '@types/detect-port': 1.3.3 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/pretty-hrtime': 1.0.1 '@types/semver': 7.5.3 better-opn: 3.0.2 @@ -3875,7 +3825,7 @@ packages: util: 0.12.5 util-deprecate: 1.0.2 watchpack: 2.4.0 - ws: 8.14.2 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - encoding @@ -3883,10 +3833,10 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@7.6.3: - resolution: {integrity: sha512-8bMYPsWw2tv+fqZ5H436l4x1KLSB6gIcm6snsjyF916yCHG6WcWm+EI6+wNUoySEtrQY2AiwFJqE37wI5OUJFg==} + /@storybook/csf-plugin@7.6.12: + resolution: {integrity: sha512-fe/84AyctJcrpH1F/tTBxKrbjv0ilmG3ZTwVcufEiAzupZuYjQ/0P+Pxs8m8VxiGJZZ1pWofFFDbYi+wERjamQ==} dependencies: - '@storybook/csf-tools': 7.6.3 + '@storybook/csf-tools': 7.6.12 unplugin: 1.4.0 transitivePeerDependencies: - supports-color @@ -3894,10 +3844,10 @@ packages: /@storybook/csf-tools@7.6.0-beta.2: resolution: {integrity: sha512-u/gcBaTKiUqZyHdFUe7/UXOFc7yyan5C+umKC+F6/jnqtRjiE/wUoa0qidVHgI6ZfTH7Z/1EeVCzspEdPIjbyA==} dependencies: - '@babel/generator': 7.23.3 - '@babel/parser': 7.23.3 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 '@storybook/csf': 0.1.2 '@storybook/types': 7.6.0-beta.2 fs-extra: 11.1.1 @@ -3907,15 +3857,15 @@ packages: - supports-color dev: true - /@storybook/csf-tools@7.6.3: - resolution: {integrity: sha512-Zi3pg2pg88/mvBKewkfWhFUR1J4uYpHI5fSjOE+J/FeZObX/DIE7r+wJxZ0UBGyrk0Wy7Jajlb2uSP56Y0i19w==} + /@storybook/csf-tools@7.6.12: + resolution: {integrity: sha512-MdhkYYxSW5I6Jpk34gTkAZsuj9sxe0xdyeUQpNa8CgJxG43F+ehZ6scW/IPjoSG9gCXBUJMekq26UrmbVfsLCQ==} dependencies: - '@babel/generator': 7.23.3 - '@babel/parser': 7.23.3 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 + '@babel/generator': 7.23.6 + '@babel/parser': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.3 + '@storybook/types': 7.6.12 fs-extra: 11.1.1 recast: 0.23.4 ts-dedent: 2.2.0 @@ -3937,12 +3887,12 @@ packages: resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} dev: true - /@storybook/docs-tools@7.6.3: - resolution: {integrity: sha512-6MtirRCQIkBeQ3bksPignZgUuFmjWqcFleTEN6vrNEfbCzMlMvuBGfm9tl4sS3n8ATWmKGj87DcJepPOT3FB4A==} + /@storybook/docs-tools@7.6.12: + resolution: {integrity: sha512-nY2lqEDTd/fR/D91ZLlIp+boSuJtkb8DqHW7pECy61rJqzGq4QpepRaWjQDKnGTgPItrsPfTPOu6iXvXNK07Ow==} dependencies: - '@storybook/core-common': 7.6.3 - '@storybook/preview-api': 7.6.3 - '@storybook/types': 7.6.3 + '@storybook/core-common': 7.6.12 + '@storybook/preview-api': 7.6.12 + '@storybook/types': 7.6.12 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -3954,46 +3904,42 @@ packages: /@storybook/global@5.0.0: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - /@storybook/manager-api@7.5.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-d8mVLr/5BEG4bAS2ZeqYTy/aX4jPEpZHdcLaWoB4mAM+PAL9wcWsirUyApKtDVYLITJf/hd8bb2Dm2ok6E45gA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + /@storybook/manager-api@7.6.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8eGVpRlpunuFScDtc7nxpPJf/4kJBAAZlNdlhmX09j8M3voX6GpcxabBamSEX5pXZqhwxQCshD4IbqBmjvadlw==} dependencies: - '@storybook/channels': 7.5.3 - '@storybook/client-logger': 7.5.3 - '@storybook/core-events': 7.5.3 + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/router': 7.5.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.5.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.3 + '@storybook/router': 7.6.10 + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - semver: 7.5.4 store2: 2.14.2 telejson: 7.2.0 ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom dev: true - /@storybook/manager-api@7.6.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-soDH7GZuukkhYRGzlw4jhCm5EzjfkuIAtb37/DFplqxuVbvlyJEVzkMUM2KQO7kq0/8GlWPiZ5mn56wagYyhKQ==} + /@storybook/manager-api@7.6.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XA5KQpY44d6mlqt0AlesZ7fsPpm1PCpoV+nRGFBR0YtF6RdPFvrPyHhlGgLkJC4xSyb2YJmLKn8cERSluAcEgQ==} dependencies: - '@storybook/channels': 7.6.3 - '@storybook/client-logger': 7.6.3 - '@storybook/core-events': 7.6.3 + '@storybook/channels': 7.6.12 + '@storybook/client-logger': 7.6.12 + '@storybook/core-events': 7.6.12 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/router': 7.6.3 - '@storybook/theming': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.3 + '@storybook/router': 7.6.12 + '@storybook/theming': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.12 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 - semver: 7.5.4 store2: 2.14.2 telejson: 7.2.0 ts-dedent: 2.2.0 @@ -4012,21 +3958,21 @@ packages: resolution: {integrity: sha512-MwIBjG4ICVKT2DjB6kZWohogBIiN70FmMNZOaKPKJtzgJ+cyn6xjBTDH2JPBTfsUZovN/vQj+0OVFts6x2v99Q==} dev: true - /@storybook/node-logger@7.6.3: - resolution: {integrity: sha512-7yL0CMHuh1DhpUAoKCU0a53DvxBpkUom9SX5RaC1G2A9BK/B3XcHtDPAC0uyUwNCKLJMZo9QtmJspvxWjR0LtA==} + /@storybook/node-logger@7.6.12: + resolution: {integrity: sha512-iS44/EjfF6hLecKzICmcpQoB9bmVi4tXx5gVXnbI5ZyziBibRQcg/U191Njl7wY2ScN/RCQOr8lh5k57rI3Prg==} - /@storybook/postinstall@7.6.3: - resolution: {integrity: sha512-WpgdpJpY6rionluxjFZLbKiSDjvQJ5cPgufjvBRuXTsnVOsH3JNRWnPdkQkJLT9uTUMoNcyBMxbjYkK3vU6wSg==} + /@storybook/postinstall@7.6.12: + resolution: {integrity: sha512-uR0mDPxLzPaouCNrLp8vID8lATVTOtG7HB6lfjjzMdE3sN6MLmK9n2z2nXjb5DRRxOFWMeE1/4Age1/Ml2tnmA==} - /@storybook/preview-api@7.5.3: - resolution: {integrity: sha512-LNmEf7oBRnZ1wG3bQ+P+TO29+NN5pSDJiAA6FabZBrtIVm+psc2lxBCDQvFYyAFzQSlt60toGKNW8+RfFNdR5Q==} + /@storybook/preview-api@7.6.0-beta.2: + resolution: {integrity: sha512-7T1qdcjAVOO8TGZMlrO9Nx+8ih4suG53YPGFyCn6drd3TJ4w8IefxLtp3zrYdrvCXiW26G8aKRmgvdQmzg70XQ==} dependencies: - '@storybook/channels': 7.5.3 - '@storybook/client-logger': 7.5.3 - '@storybook/core-events': 7.5.3 + '@storybook/channels': 7.6.0-beta.2 + '@storybook/client-logger': 7.6.0-beta.2 + '@storybook/core-events': 7.6.0-beta.2 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/types': 7.5.3 + '@storybook/types': 7.6.0-beta.2 '@types/qs': 6.9.8 dequal: 2.0.3 lodash: 4.17.21 @@ -4037,15 +3983,15 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview-api@7.6.0-beta.2: - resolution: {integrity: sha512-7T1qdcjAVOO8TGZMlrO9Nx+8ih4suG53YPGFyCn6drd3TJ4w8IefxLtp3zrYdrvCXiW26G8aKRmgvdQmzg70XQ==} + /@storybook/preview-api@7.6.10: + resolution: {integrity: sha512-5A3etoIwZCx05yuv3KSTv1wynN4SR4rrzaIs/CTBp3BC4q1RBL+Or/tClk0IJPXQMlx/4Y134GtNIBbkiDofpw==} dependencies: - '@storybook/channels': 7.6.0-beta.2 - '@storybook/client-logger': 7.6.0-beta.2 - '@storybook/core-events': 7.6.0-beta.2 + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/types': 7.6.0-beta.2 + '@storybook/types': 7.6.10 '@types/qs': 6.9.8 dequal: 2.0.3 lodash: 4.17.21 @@ -4056,15 +4002,15 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview-api@7.6.3: - resolution: {integrity: sha512-uPaK7yLE1P++F+IOb/1j9pgdCwfMYZrUPHogF/Mf9r4cfEjDCcIeKgGMcsbU1KnkzNQQGPh8JRzRr/iYnLjswg==} + /@storybook/preview-api@7.6.12: + resolution: {integrity: sha512-uSzeMSLnCRROjiofJP0F0niLWL+sboQ5ktHW6BAYoPwprumXduPxKBUVEZNxMbVYoAz9v/kEZmaLauh8LRP2Hg==} dependencies: - '@storybook/channels': 7.6.3 - '@storybook/client-logger': 7.6.3 - '@storybook/core-events': 7.6.3 + '@storybook/channels': 7.6.12 + '@storybook/client-logger': 7.6.12 + '@storybook/core-events': 7.6.12 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 - '@storybook/types': 7.6.3 + '@storybook/types': 7.6.12 '@types/qs': 6.9.8 dequal: 2.0.3 lodash: 4.17.21 @@ -4074,12 +4020,12 @@ packages: ts-dedent: 2.2.0 util-deprecate: 1.0.2 - /@storybook/preview@7.6.3: - resolution: {integrity: sha512-obSmKN8arWSHuLbCDM1H0lTVRMvAP/l7vOi6TQtFi6TxBz9MRCJA3Ugc0PZrbDADVZP+cp0ZJA0JQtAm+SqNAA==} + /@storybook/preview@7.6.12: + resolution: {integrity: sha512-7vbeqQY3X+FCt/ccgCuBmj4rkbQebLHGEBAt8elcX0E2pr7SGW57lWhnasU3jeMaz7tNrkcs0gfl4hyVRWUHDg==} dev: true - /@storybook/react-dom-shim@7.6.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-UtaEaTQB27aBsAmn5IfAYkX2xl4wWWXkoAO/jUtx86FQ/r85FG0zxh/rac6IgzjYUqzjJtjIeLdeciG/48hMMA==} + /@storybook/react-dom-shim@7.6.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-P8eu/s/RQlc/7Yvr260lqNa6rttxIYiPUuHQBu9oCacwkpB3Xep2R/PUY2CifRHqlDhaOINO/Z79oGZl4EBQRQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4087,24 +4033,24 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@storybook/react-vite@7.6.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2)(vite@4.5.0): - resolution: {integrity: sha512-sPrNJbnThmxsSeNj6vyG9pCCnnYzyiS+f7DVy2qeQrXvEuCYiQc503bavE3BKLxqjZQ3SkbhPsiEHcaw3I9x7A==} + /@storybook/react-vite@7.6.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(vite@4.5.2): + resolution: {integrity: sha512-kQjCWmTcHuZM1Mlt1QjpYNXP1TxfkSDFWC36fSEUC0q48wzyjUEZs6YraxZu0YE+zXK+X4tmaZhz8pUPgV3gLw==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.2)(vite@4.5.0) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@4.5.2) '@rollup/pluginutils': 5.0.2 - '@storybook/builder-vite': 7.6.3(typescript@5.3.2)(vite@4.5.0) - '@storybook/react': 7.6.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2) - '@vitejs/plugin-react': 3.1.0(vite@4.5.0) + '@storybook/builder-vite': 7.6.12(typescript@5.3.3)(vite@4.5.2) + '@storybook/react': 7.6.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@vitejs/plugin-react': 3.1.0(vite@4.5.2) magic-string: 0.30.1 react: 18.2.0 react-docgen: 7.0.1 react-dom: 18.2.0(react@18.2.0) - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -4114,8 +4060,8 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@7.6.3(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.2): - resolution: {integrity: sha512-W+530cC0BAU+yBc7NzSXYWR3e8Lo5qMsmFJjWYK7zGW/YZGhSG3mjhF9pDzNM+cMtHvUS6qf5PJPQM8jePpPhg==} + /@storybook/react@7.6.12(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-ITDRGi79Qg+z1kGYv+yyJESz/5AsJVdBTMO7tr1qV7gmHElkASt6UR8SBSqKgePOnYgy3k/1PLfbzOs6G4OgYQ==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4125,16 +4071,16 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.6.3 - '@storybook/core-client': 7.6.3 - '@storybook/docs-tools': 7.6.3 + '@storybook/client-logger': 7.6.12 + '@storybook/core-client': 7.6.12 + '@storybook/docs-tools': 7.6.12 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.3 - '@storybook/react-dom-shim': 7.6.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.3 + '@storybook/preview-api': 7.6.12 + '@storybook/react-dom-shim': 7.6.12(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.12 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.1 + '@types/node': 18.19.14 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 @@ -4147,30 +4093,25 @@ packages: react-element-to-jsx-string: 15.0.0(react-dom@18.2.0)(react@18.2.0) ts-dedent: 2.2.0 type-fest: 2.19.0 - typescript: 5.3.2 + typescript: 5.3.3 util-deprecate: 1.0.2 transitivePeerDependencies: - encoding - supports-color dev: true - /@storybook/router@7.5.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/iNYCFore7R5n6eFHbBYoB0P2/sybTVpA+uXTNUd3UEt7Ro6CEslTaFTEiH2RVQwOkceBp/NpyWon74xZuXhMg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + /@storybook/router@7.6.10: + resolution: {integrity: sha512-G/H4Jn2+y8PDe8Zbq4DVxF/TPn0/goSItdILts39JENucHiuGBCjKjSWGBe1rkwKi1tUbB3yhxJVrLagxFEPpQ==} dependencies: - '@storybook/client-logger': 7.5.3 + '@storybook/client-logger': 7.6.10 memoizerific: 1.11.3 qs: 6.11.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/router@7.6.3: - resolution: {integrity: sha512-NZfhJqsXYca9mZCL/LGx6FmZDbrxX2S4ImW7Tqdtcc/sSlZ0BpCDkNUTesCA287cmoKMhXZRh/+bU+C2h2a+bw==} + /@storybook/router@7.6.12: + resolution: {integrity: sha512-1fqscJbePFJXhapqiv7fAIIqAvouSsdPnqWjJGJrUMR6JBtRYMcrb3MnDeqi9OYnU73r65BrQBPtSzWM8nP0LQ==} dependencies: - '@storybook/client-logger': 7.6.3 + '@storybook/client-logger': 7.6.12 memoizerific: 1.11.3 qs: 6.11.2 @@ -4193,159 +4134,159 @@ packages: /@storybook/testing-library@0.2.2: resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} dependencies: - '@testing-library/dom': 9.3.3 - '@testing-library/user-event': 14.5.1(@testing-library/dom@9.3.3) + '@testing-library/dom': 9.3.4 + '@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4) ts-dedent: 2.2.0 dev: true - /@storybook/theming@7.5.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Cjmthe1MAk0z4RKCZ7m72gAD8YD0zTAH97z5ryM1Qv84QXjiCQ143fGOmYz1xEQdNFpOThPcwW6FEccLHTkVcg==} + /@storybook/theming@7.6.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-f5tuy7yV3TOP3fIboSqpgLHy0wKayAw/M8HxX0jVET4Z4fWlFK0BiHJabQ+XEdAfQM97XhPFHB2IPbwsqhCEcQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@storybook/client-logger': 7.5.3 + '@storybook/client-logger': 7.6.10 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/theming@7.6.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9ToNU2LM6a2kVBjOXitXEeEOuMurVLhn+uaZO1dJjv8NGnJVYiLwNPwrLsImiUD8/XXNuil972aanBR6+Aj9jw==} + /@storybook/theming@7.6.12(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-P4zoMKlSYbNrWJjQROuz+DZSDEpdf3TUvk203EqBRdElqw2EMHcqZ8+0HGPFfVHpqEj05+B9Mr6R/Z/BURj0lw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@storybook/client-logger': 7.6.3 + '@storybook/client-logger': 7.6.12 '@storybook/global': 5.0.0 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@storybook/types@7.5.3: - resolution: {integrity: sha512-iu5W0Kdd6nysN5CPkY4GRl+0BpxRTdSfBIJak7mb6xCIHSB5t1tw4BOuqMQ5EgpikRY3MWJ4gY647QkWBX3MNQ==} + /@storybook/types@7.6.0-beta.2: + resolution: {integrity: sha512-UJRRGxeqiD42leHMpLdd4XQ9IgMVgggozrFHhhg5sj1msPmwNz+tHv87TSMkcpqkNOgjIIBK2Z9iP670mbPHVQ==} dependencies: - '@storybook/channels': 7.5.3 - '@types/babel__core': 7.20.4 + '@storybook/channels': 7.6.0-beta.2 + '@types/babel__core': 7.20.5 '@types/express': 4.17.18 file-system-cache: 2.3.0 dev: true - /@storybook/types@7.6.0-beta.2: - resolution: {integrity: sha512-UJRRGxeqiD42leHMpLdd4XQ9IgMVgggozrFHhhg5sj1msPmwNz+tHv87TSMkcpqkNOgjIIBK2Z9iP670mbPHVQ==} + /@storybook/types@7.6.10: + resolution: {integrity: sha512-hcS2HloJblaMpCAj2axgGV+53kgSRYPT0a1PG1IHsZaYQILfHSMmBqM8XzXXYTsgf9250kz3dqFX1l0n3EqMlQ==} dependencies: - '@storybook/channels': 7.6.0-beta.2 - '@types/babel__core': 7.20.4 + '@storybook/channels': 7.6.10 + '@types/babel__core': 7.20.5 '@types/express': 4.17.18 file-system-cache: 2.3.0 dev: true - /@storybook/types@7.6.3: - resolution: {integrity: sha512-vj9Jzg5eR52l8O9512QywbQpNdo67Z6BQWR8QoZRcG+/Bhzt08YI8IZMPQLFMKzcmWDPK0blQ4GfyKDYplMjPA==} + /@storybook/types@7.6.12: + resolution: {integrity: sha512-Wsbd+NS10/2yMHQ/26rXHflXam0hm2qufTFiHOX6VXZWxij3slRU88Fnwzp+1QSyjXb0qkEr8dOx7aG00+ItVw==} dependencies: - '@storybook/channels': 7.6.3 - '@types/babel__core': 7.20.4 + '@storybook/channels': 7.6.12 + '@types/babel__core': 7.20.5 '@types/express': 4.17.18 file-system-cache: 2.3.0 - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.9): resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.5): + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.9): resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.5): + /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /@svgr/babel-preset@6.5.1(@babel/core@7.23.5): + /@svgr/babel-preset@6.5.1(@babel/core@7.23.9): resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} engines: {node: '>=10'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.23.5) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.5) - '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.23.5) - '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.23.5) - '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.23.5) - '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.23.5) - '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.23.9) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-replace-jsx-attribute-value': 6.5.1(@babel/core@7.23.9) + '@svgr/babel-plugin-svg-dynamic-title': 6.5.1(@babel/core@7.23.9) + '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.23.9) + '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.23.9) + '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.23.9) dev: true /@svgr/core@6.5.1: resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-preset': 6.5.1(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@svgr/babel-preset': 6.5.1(@babel/core@7.23.9) '@svgr/plugin-jsx': 6.5.1(@svgr/core@6.5.1) camelcase: 6.3.0 cosmiconfig: 7.1.0 @@ -4357,7 +4298,7 @@ packages: resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} engines: {node: '>=10'} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.9 entities: 4.5.0 dev: true @@ -4367,8 +4308,8 @@ packages: peerDependencies: '@svgr/core': ^6.0.0 dependencies: - '@babel/core': 7.23.5 - '@svgr/babel-preset': 6.5.1(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@svgr/babel-preset': 6.5.1(@babel/core@7.23.9) '@svgr/core': 6.5.1 '@svgr/hast-util-to-babel-ast': 6.5.1 svg-parser: 2.0.4 @@ -4376,13 +4317,13 @@ packages: - supports-color dev: true - /@tailwindcss/forms@0.5.7(tailwindcss@3.3.5): + /@tailwindcss/forms@0.5.7(tailwindcss@3.4.1): resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.3.5 + tailwindcss: 3.4.1 dev: true /@tanstack/query-core@4.36.1: @@ -4407,12 +4348,12 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false - /@testing-library/dom@9.3.3: - resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/runtime': 7.22.6 + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.23.2 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -4421,17 +4362,20 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.1.5(vitest@0.34.6): - resolution: {integrity: sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g==} + /@testing-library/jest-dom@6.4.1(vitest@0.34.6): + resolution: {integrity: sha512-Z7qMM3J2Zw5H/nC2/5CYx5YcuaD56JmDFKNIozZ89VIo6o6Y9FMhssics4e2madEKYDNEpZz3+glPGz0yWMOag==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: '@jest/globals': '>= 28' + '@types/bun': latest '@types/jest': '>= 28' jest: '>= 28' vitest: '>= 0.32' peerDependenciesMeta: '@jest/globals': optional: true + '@types/bun': + optional: true '@types/jest': optional: true jest: @@ -4439,17 +4383,17 @@ packages: vitest: optional: true dependencies: - '@adobe/css-tools': 4.3.1 + '@adobe/css-tools': 4.3.2 '@babel/runtime': 7.23.2 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 - dom-accessibility-api: 0.5.16 + dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 vitest: 0.34.6(jsdom@21.1.2) - /@testing-library/react-hooks@8.0.1(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0): + /@testing-library/react-hooks@8.0.1(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==} engines: {node: '>=12'} peerDependencies: @@ -4466,33 +4410,33 @@ packages: optional: true dependencies: '@babel/runtime': 7.22.6 - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-error-boundary: 3.1.4(react@18.2.0) dev: true - /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==} + /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} engines: {node: '>=14'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@babel/runtime': 7.23.2 - '@testing-library/dom': 9.3.3 - '@types/react-dom': 18.2.17 + '@testing-library/dom': 9.3.4 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@14.5.1(@testing-library/dom@9.3.3): - resolution: {integrity: sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==} + /@testing-library/user-event@14.5.2(@testing-library/dom@9.3.4): + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 9.3.3 + '@testing-library/dom': 9.3.4 dev: true /@tippyjs/react@4.2.6(react-dom@18.2.0)(react@18.2.0): @@ -4518,11 +4462,11 @@ packages: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} dev: true - /@types/babel__core@7.20.4: - resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.20.1 @@ -4530,24 +4474,24 @@ packages: /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.23.3 - '@babel/types': 7.23.3 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 /@types/babel__traverse@7.20.1: resolution: {integrity: sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==} dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 /@types/body-parser@1.19.3: resolution: {integrity: sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==} dependencies: '@types/connect': 3.4.36 - '@types/node': 18.19.1 + '@types/node': 18.19.14 /@types/body-scroll-lock@3.1.2: resolution: {integrity: sha512-ELhtuphE/YbhEcpBf/rIV9Tl3/O0A0gpCVD+oYFSS8bWstHFJUgA4nNw1ZakVlRC38XaQEIsBogUZKWIPBvpfQ==} @@ -4571,7 +4515,7 @@ packages: /@types/connect@3.4.36: resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 /@types/cookie@0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} @@ -4580,7 +4524,7 @@ packages: /@types/cross-spawn@6.0.3: resolution: {integrity: sha512-BDAkU7WHHRHnvBf5z89lcvACsvkz/n7Tv+HyD/uW76O29HoH1Tk/W6iQrepaZVbisvlEek4ygwT8IW7ow9XLAA==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 dev: true /@types/debug@4.1.8: @@ -4629,10 +4573,6 @@ packages: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} dev: true - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} - dev: true - /@types/estree@1.0.2: resolution: {integrity: sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==} dev: true @@ -4640,7 +4580,7 @@ packages: /@types/express-serve-static-core@4.17.37: resolution: {integrity: sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@types/qs': 6.9.8 '@types/range-parser': 1.2.5 '@types/send': 0.17.2 @@ -4674,13 +4614,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 18.19.1 + '@types/node': 18.19.14 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 /@types/har-format@1.2.11: resolution: {integrity: sha512-T232/TneofqK30AD1LRrrf8KnjLvzrjWDp7eWST5KoiSzrBfRsLrWDPk4STQPW4NZG6v2MltnduBVmakbZOBIQ==} @@ -4731,7 +4671,7 @@ packages: resolution: {integrity: sha512-nEpVRPWW9EBmx2SCfNn3ClYxPL7IktPX12HhIoSc/H5mMjdeW3+YsXIpseLQ2xF35+OcpwKQbEUw5VtqE4PDNA==} deprecated: This is a stub types definition. lru-cache provides its own type definitions, so you do not need this installed. dependencies: - lru-cache: 10.1.0 + lru-cache: 10.2.0 dev: true /@types/mdast@4.0.2: @@ -4763,11 +4703,11 @@ packages: /@types/node-fetch@2.6.6: resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 form-data: 4.0.0 - /@types/node@18.19.1: - resolution: {integrity: sha512-mZJ9V11gG5Vp0Ox2oERpeFDl+JvCwK24PGy76vVY/UgBtjwJWc5rYBThFxmbnYOm9UPZNm6wEl/sxHt2SU7x9A==} + /@types/node@18.19.14: + resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==} dependencies: undici-types: 5.26.5 @@ -4791,19 +4731,19 @@ packages: /@types/range-parser@1.2.5: resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==} - /@types/react-dom@18.2.17: - resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} + /@types/react-dom@18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 - /@types/react-table@7.7.18: - resolution: {integrity: sha512-OncztdDERQ35pjcQCpNoQe8KPOE8Rg2Ox4PlZHMGNgHTEaM1JyT2lWfNNbj2sCnOtQOHrOH7SzUnGUAXzqdksg==} + /@types/react-table@7.7.19: + resolution: {integrity: sha512-47jMa1Pai7ily6BXJCW33IL5ghqmCWs2VM9s+h1D4mCaK5P4uNkZOW3RMMg8MCXBvAJ0v9+sPqKjhid0PaJPQA==} dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 dev: true - /@types/react@18.2.41: - resolution: {integrity: sha512-CwOGr/PiLiNBxEBqpJ7fO3kocP/2SSuC9fpH5K7tusrg4xPSRT/193rzolYwQnTN02We/ATXKnb6GqA5w4fRxw==} + /@types/react@18.2.52: + resolution: {integrity: sha512-E/YjWh3tH+qsLKaUzgpZb5AY0ChVa+ZJzF7ogehVILrFpdQk6nC/WXOv0bfFEABbXbgNxLBGU7IIZByPKb6eBw==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -4824,19 +4764,19 @@ packages: resolution: {integrity: sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==} dependencies: '@types/mime': 1.3.3 - '@types/node': 18.19.1 + '@types/node': 18.19.14 /@types/serve-static@1.15.3: resolution: {integrity: sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==} dependencies: '@types/http-errors': 2.0.2 '@types/mime': 3.0.2 - '@types/node': 18.19.1 + '@types/node': 18.19.14 /@types/set-cookie-parser@2.4.3: resolution: {integrity: sha512-7QhnH7bi+6KAhBB+Auejz1uV9DHiopZqu7LfR/5gZZTkejJV5nYeZZpgfFoE0N8aDsXuiYpfKyfyMatCwQhyTQ==} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 dev: true /@types/sortablejs@1.15.7: @@ -4850,9 +4790,10 @@ packages: resolution: {integrity: sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==} deprecated: This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed. dependencies: - '@testing-library/jest-dom': 6.1.5(vitest@0.34.6) + '@testing-library/jest-dom': 6.4.1(vitest@0.34.6) transitivePeerDependencies: - '@jest/globals' + - '@types/bun' - '@types/jest' - jest - vitest @@ -4887,7 +4828,7 @@ packages: resolution: {integrity: sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==} requiresBuild: true dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 dev: false optional: true @@ -4897,8 +4838,8 @@ packages: '@types/history': 4.7.11 dev: true - /@typescript-eslint/eslint-plugin@6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==} + /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -4909,25 +4850,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.1 - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/type-utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 - eslint: 8.55.0 + eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ==} + /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4936,13 +4877,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 - eslint: 8.55.0 - typescript: 5.3.2 + eslint: 8.56.0 + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -4955,16 +4896,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.13.1: - resolution: {integrity: sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ==} + /@typescript-eslint/scope-manager@6.20.0: + resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 dev: true - /@typescript-eslint/type-utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==} + /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4973,12 +4914,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - '@typescript-eslint/utils': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 - eslint: 8.55.0 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + eslint: 8.56.0 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true @@ -4988,12 +4929,12 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.13.1: - resolution: {integrity: sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg==} + /@typescript-eslint/types@6.20.0: + resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5008,14 +4949,14 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.3.2) - typescript: 5.3.2 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.13.1(typescript@5.3.2): - resolution: {integrity: sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ==} + /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): + resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -5023,31 +4964,32 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/visitor-keys': 6.13.1 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/visitor-keys': 6.20.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 + minimatch: 9.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 + ts-api-utils: 1.0.3(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.2): + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -5055,19 +4997,19 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.13.1(eslint@8.55.0)(typescript@5.3.2): - resolution: {integrity: sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==} + /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.13 '@types/semver': 7.5.3 - '@typescript-eslint/scope-manager': 6.13.1 - '@typescript-eslint/types': 6.13.1 - '@typescript-eslint/typescript-estree': 6.13.1(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/scope-manager': 6.20.0 + '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -5082,53 +5024,53 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.13.1: - resolution: {integrity: sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ==} + /@typescript-eslint/visitor-keys@6.20.0: + resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.13.1 + '@typescript-eslint/types': 6.20.0 eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vavt/vite-plugin-import-markdown@1.0.0(vite@4.5.0): + /@vavt/vite-plugin-import-markdown@1.0.0(vite@4.5.2): resolution: {integrity: sha512-zBpv4UJAmCdk8/hsNXGi/KrMoASt/8GkmgkwcerD823+HvMJdrEqA43zk81hvYs/dfDSgGBaarepBDqpcDiXcg==} peerDependencies: vite: '>=2.0.0' dependencies: - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) dev: true - /@vitejs/plugin-react@3.1.0(vite@4.5.0): + /@vitejs/plugin-react@3.1.0(vite@4.5.2): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.1.0-beta.0 dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-react@4.2.0(vite@4.5.0): - resolution: {integrity: sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==} + /@vitejs/plugin-react@4.2.1(vite@4.5.2): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5) - '@types/babel__core': 7.20.4 + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) + '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - supports-color dev: true @@ -5577,16 +5519,6 @@ packages: get-intrinsic: 1.2.1 dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.1 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -5681,19 +5613,19 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /autoprefixer@10.4.16(postcss@8.4.32): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + /autoprefixer@10.4.17(postcss@8.4.33): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.11 - caniuse-lite: 1.0.30001538 - fraction.js: 4.3.6 + browserslist: 4.22.2 + caniuse-lite: 1.0.30001579 + fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 dev: true @@ -5704,16 +5636,16 @@ packages: /axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.4 form-data: 4.0.0 transitivePeerDependencies: - debug dev: false - /axios@1.6.2: - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + /axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.4 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -5724,22 +5656,22 @@ packages: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: false - /babel-core@7.0.0-bridge.0(@babel/core@7.23.5): + /babel-core@7.0.0-bridge.0(@babel/core@7.23.9): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 dev: true - /babel-loader@8.3.0(@babel/core@7.23.5)(webpack@5.88.2): + /babel-loader@8.3.0(@babel/core@7.23.9)(webpack@5.88.2): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.5 + '@babel/core': 7.23.9 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -5759,38 +5691,38 @@ packages: transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.5): + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.9): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.23.3 - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.9) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.5): + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.9): resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.9) core-js-compat: 3.33.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.5): + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.9): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.5 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.9) transitivePeerDependencies: - supports-color dev: true @@ -5932,26 +5864,15 @@ packages: pako: 0.2.9 dev: true - /browserslist@4.21.11: - resolution: {integrity: sha512-xn1UXOKUz7DjdGlg9RrUr0GGiWzI97UQJnugHtH0OLDfJB7jMgoIkYvRIEO1l9EeEERVqeqLYOcFBW9ldjypbQ==} + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001546 - electron-to-chromium: 1.4.542 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.21.11) - dev: true - - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001546 - electron-to-chromium: 1.4.542 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001579 + electron-to-chromium: 1.4.614 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -5982,13 +5903,6 @@ packages: semver: 7.5.4 dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - dev: true - /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -6006,7 +5920,7 @@ packages: /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 get-intrinsic: 1.2.1 /callsites@3.1.0: @@ -6027,12 +5941,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001538: - resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==} - dev: true - - /caniuse-lite@1.0.30001546: - resolution: {integrity: sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==} + /caniuse-lite@1.0.30001579: + resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} /ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -6094,19 +6004,19 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true - /chart.js@4.4.0: - resolution: {integrity: sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==} + /chart.js@4.4.1: + resolution: {integrity: sha512-C74QN1bxwV1v2PEujhmKjOZ7iUM4w6BWs23Md/6aOZZSlwMzeCIDGuZay++rBgChYru7/+QFeoQW0fQoP534Dg==} engines: {pnpm: '>=7'} dependencies: '@kurkle/color': 0.3.2 - /chartjs-adapter-date-fns@3.0.0(chart.js@4.4.0)(date-fns@2.30.0): + /chartjs-adapter-date-fns@3.0.0(chart.js@4.4.1)(date-fns@2.30.0): resolution: {integrity: sha512-Rs3iEB3Q5pJ973J93OBTpnP7qoGwvq3nUnoMdtxO+9aoJof7UFcRbWcIDteXuYd1fgAvct/32T9qaLyLuZVwCg==} peerDependencies: chart.js: '>=2.8.0' date-fns: '>=2.0.0' dependencies: - chart.js: 4.4.0 + chart.js: 4.4.1 date-fns: 2.30.0 dev: true @@ -6148,14 +6058,14 @@ packages: engines: {node: '>=6.0'} dev: true - /chromium-bidi@0.4.33(devtools-protocol@0.0.1203626): - resolution: {integrity: sha512-IxoFM5WGQOIAd95qrSXzJUv4eXIrh+RvU3rwwqIiwYuvfE7U/Llj4fejbsJnjJMUYCuGtVQsY2gv7oGl4aTNSQ==} + /chromium-bidi@0.5.8(devtools-protocol@0.0.1232444): + resolution: {integrity: sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==} peerDependencies: devtools-protocol: '*' dependencies: - devtools-protocol: 0.0.1203626 + devtools-protocol: 0.0.1232444 mitt: 3.0.1 - urlpattern-polyfill: 9.0.0 + urlpattern-polyfill: 10.0.0 dev: false /ci-info@3.8.0: @@ -6166,8 +6076,8 @@ packages: resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} dev: false - /classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} dev: false /clean-regexp@1.0.0: @@ -6357,7 +6267,7 @@ packages: /core-js-compat@3.33.2: resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 dev: true /core-util-is@1.0.3: @@ -6374,8 +6284,8 @@ packages: yaml: 1.10.2 dev: true - /cosmiconfig@8.3.6(typescript@5.3.2): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + /cosmiconfig@9.0.0(typescript@5.3.3): + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -6383,11 +6293,11 @@ packages: typescript: optional: true dependencies: + env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.2 + typescript: 5.3.3 dev: false /cross-fetch@4.0.0: @@ -6553,16 +6463,6 @@ packages: untildify: 4.0.0 dev: true - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - dev: true - /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -6576,25 +6476,12 @@ packages: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 - dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} dev: true - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -6602,7 +6489,6 @@ packages: define-data-property: 1.1.0 has-property-descriptors: 1.0.0 object-keys: 1.1.1 - dev: true /defu@6.1.2: resolution: {integrity: sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==} @@ -6684,8 +6570,8 @@ packages: dequal: 2.0.3 dev: false - /devtools-protocol@0.0.1203626: - resolution: {integrity: sha512-nEzHZteIUZfGCZtTiS1fRpC8UZmsfD1SiyPvaUNvS13dvKf666OAm8YTi0+Ca3n1nLEyu49Cy4+dPWpaHFJk9g==} + /devtools-protocol@0.0.1232444: + resolution: {integrity: sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==} dev: false /didyoumean@1.2.2: @@ -6730,6 +6616,10 @@ packages: /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true + + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} @@ -6776,8 +6666,8 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium@1.4.542: - resolution: {integrity: sha512-6+cpa00G09N3sfh2joln4VUXHquWrOFx3FLZqiVQvl45+zS9DskDBTPvob+BhvFRmTBkyDSk0vvLMMRo/qc6mQ==} + /electron-to-chromium@1.4.614: + resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==} /elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} @@ -6827,6 +6717,11 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: false + /envinfo@7.10.0: resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} engines: {node: '>=4'} @@ -6905,7 +6800,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.1 es-set-tostringtag: 2.0.1 - function-bind: 1.1.1 + function-bind: 1.1.2 get-intrinsic: 1.2.1 globalthis: 1.0.3 has-property-descriptors: 1.0.0 @@ -7024,16 +6919,25 @@ packages: optionalDependencies: source-map: 0.6.1 - /eslint-config-prettier@9.1.0(eslint@8.55.0): + /eslint-compat-utils@0.1.2(eslint@8.56.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.56.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-config-standard-with-typescript@39.1.1(@typescript-eslint/eslint-plugin@6.13.1)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0)(typescript@5.3.2): + /eslint-config-standard-with-typescript@39.1.1(@typescript-eslint/eslint-plugin@6.20.0)(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-t6B5Ep8E4I18uuoYeYxINyqcXb2UbC0SOOTxRtBSt2JUs+EzeXbfe2oaiPs71AIdnoWhXDO2fYOHz8df3kV84A==} peerDependencies: '@typescript-eslint/eslint-plugin': ^6.4.0 @@ -7043,19 +6947,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) - eslint: 8.55.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) - typescript: 5.3.2 + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.3.1)(eslint-plugin-promise@6.1.1)(eslint@8.55.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -7064,10 +6968,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0) - eslint-plugin-n: 16.3.1(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.2(eslint@8.56.0) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true /eslint-import-resolver-node@0.3.9: @@ -7080,7 +6984,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -7101,27 +7005,28 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es-x@7.2.0(eslint@8.55.0): - resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} + /eslint-plugin-es-x@7.5.0(eslint@8.56.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.6.1 - eslint: 8.55.0 + eslint: 8.56.0 + eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.1)(eslint@8.55.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -7130,16 +7035,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.13.1(eslint@8.55.0)(typescript@5.3.2) + '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.55.0 + eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.1)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -7148,24 +7053,25 @@ packages: object.groupby: 1.0.1 object.values: 1.1.7 semver: 6.3.1 - tsconfig-paths: 3.14.2 + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-n@16.3.1(eslint@8.55.0): - resolution: {integrity: sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==} + /eslint-plugin-n@16.6.2(eslint@8.56.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.2.0(eslint@8.55.0) + eslint: 8.56.0 + eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.2.4 is-builtin-module: 3.2.1 is-core-module: 2.13.1 @@ -7174,16 +7080,16 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-prefer-arrow@1.2.3(eslint@8.55.0): + /eslint-plugin-prefer-arrow@1.2.3(eslint@8.56.0): resolution: {integrity: sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==} peerDependencies: eslint: '>=2.0.0' dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.55.0)(prettier@3.1.0): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -7196,23 +7102,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.55.0 - eslint-config-prettier: 9.1.0(eslint@8.55.0) - prettier: 3.1.0 + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.2.4 prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 + synckit: 0.8.8 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.55.0): + /eslint-plugin-promise@6.1.1(eslint@8.56.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.55.0): + /eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -7223,7 +7129,7 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.15 - eslint: 8.55.0 + eslint: 8.56.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.4 minimatch: 3.1.2 @@ -7237,24 +7143,24 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-sonarjs@0.23.0(eslint@8.55.0): + /eslint-plugin-sonarjs@0.23.0(eslint@8.56.0): resolution: {integrity: sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==} engines: {node: '>=14'} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.55.0 + eslint: 8.56.0 dev: true - /eslint-plugin-storybook@0.6.15(eslint@8.55.0)(typescript@5.3.2): + /eslint-plugin-storybook@0.6.15(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==} engines: {node: 12.x || 14.x || >= 16} peerDependencies: eslint: '>=6' dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.55.0)(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 requireindex: 1.2.0 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -7262,17 +7168,17 @@ packages: - typescript dev: true - /eslint-plugin-unicorn@48.0.1(eslint@8.55.0): + /eslint-plugin-unicorn@48.0.1(eslint@8.56.0): resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} peerDependencies: eslint: '>=8.44.0' dependencies: '@babel/helper-validator-identifier': 7.22.20 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.55.0 + eslint: 8.56.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -7286,7 +7192,7 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.13.1)(eslint@8.55.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0): resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -7296,8 +7202,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.13.1(@typescript-eslint/parser@6.13.1)(eslint@8.55.0)(typescript@5.3.2) - eslint: 8.55.0 + '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 eslint-rule-composer: 0.3.0 dev: true @@ -7327,15 +7233,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@eslint-community/regexpp': 4.6.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 + '@eslint/js': 8.56.0 '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -7488,21 +7394,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -7763,8 +7654,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + /follow-redirects@1.15.4: + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -7797,8 +7688,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /fraction.js@4.3.6: - resolution: {integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true /fresh@0.5.2: @@ -7844,12 +7735,8 @@ packages: requiresBuild: true optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} @@ -7879,7 +7766,7 @@ packages: /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 has: 1.0.3 has-proto: 1.0.1 has-symbols: 1.0.3 @@ -8028,6 +7915,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -8131,7 +8025,7 @@ packages: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: - function-bind: 1.1.1 + function-bind: 1.1.2 /hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} @@ -8361,11 +8255,6 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true - /husky@8.0.3: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -8382,8 +8271,8 @@ packages: '@babel/runtime': 7.23.2 dev: true - /i18next-http-backend@2.4.2: - resolution: {integrity: sha512-wKrgGcaFQ4EPjfzBTjzMU0rbFTYpa0S5gv9N/d8WBmWS64+IgJb7cHddMvV+tUkse7vUfco3eVs2lB+nJhPo3w==} + /i18next-http-backend@2.4.3: + resolution: {integrity: sha512-jo2M03O6n1/DNb51WSQ8PsQ0xEELzLZRdYUTbf17mLw3rVwnJF9hwNgMXvEFSxxb+N8dT+o0vtigA6s5mGWyPA==} dependencies: cross-fetch: 4.0.0 transitivePeerDependencies: @@ -8579,12 +8468,6 @@ packages: hasBin: true dev: true - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true - /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -8616,14 +8499,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -8638,7 +8513,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} @@ -8717,11 +8592,6 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -8794,8 +8664,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.3 + '@babel/core': 7.23.9 + '@babel/parser': 7.23.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -8806,8 +8676,8 @@ packages: resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.3 + '@babel/core': 7.23.9 + '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 7.5.4 @@ -8878,7 +8748,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 18.19.1 + '@types/node': 18.19.14 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8895,7 +8765,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 dev: true /jest-regex-util@29.4.3: @@ -8907,7 +8777,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 18.19.1 + '@types/node': 18.19.14 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -8917,7 +8787,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8926,7 +8796,7 @@ packages: resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 jest-util: 29.6.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8979,18 +8849,18 @@ packages: '@babel/preset-env': optional: true dependencies: - '@babel/core': 7.23.5 - '@babel/parser': 7.23.3 - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.5) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.5) - '@babel/preset-env': 7.23.3(@babel/core@7.23.5) - '@babel/preset-flow': 7.22.15(@babel/core@7.23.5) - '@babel/preset-typescript': 7.23.0(@babel/core@7.23.5) - '@babel/register': 7.22.15(@babel/core@7.23.5) - babel-core: 7.0.0-bridge.0(@babel/core@7.23.5) + '@babel/core': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/preset-env': 7.23.3(@babel/core@7.23.9) + '@babel/preset-flow': 7.22.15(@babel/core@7.23.9) + '@babel/preset-typescript': 7.23.0(@babel/core@7.23.9) + '@babel/register': 7.22.15(@babel/core@7.23.9) + babel-core: 7.0.0-bridge.0(@babel/core@7.23.9) chalk: 4.1.2 flow-parser: 0.217.2 graceful-fs: 4.2.11 @@ -9119,10 +8989,10 @@ packages: resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 object.assign: 4.1.4 - object.values: 1.1.6 + object.values: 1.1.7 dev: true /kind-of@6.0.3: @@ -9135,15 +9005,15 @@ packages: engines: {node: '>=6'} dev: true - /laravel-vite-plugin@0.8.1(vite@4.5.0): + /laravel-vite-plugin@0.8.1(vite@4.5.2): resolution: {integrity: sha512-fxzUDjOA37kOsYq8dP+3oPIlw8/kJVXwu0hOXLun82R1LpV02shGeWGYKx2lbpKffL5I0sfPPjfqbYxuqBluAA==} engines: {node: '>=14'} peerDependencies: vite: ^3.0.0 || ^4.0.0 dependencies: picocolors: 1.0.0 - vite: 4.5.0(@types/node@18.19.1) - vite-plugin-full-reload: 1.0.5(vite@4.5.0) + vite: 4.5.2(@types/node@18.19.14) + vite-plugin-full-reload: 1.0.5(vite@4.5.2) dev: true /lazy-universal-dotenv@4.0.0: @@ -9257,8 +9127,8 @@ packages: dependencies: get-func-name: 2.0.2 - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} /lru-cache@5.1.1: @@ -9271,6 +9141,7 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 + dev: true /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} @@ -9328,8 +9199,8 @@ packages: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false - /markdown-to-jsx@7.3.2(react@18.2.0): - resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} + /markdown-to-jsx@7.4.1(react@18.2.0): + resolution: {integrity: sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A==} engines: {node: '>= 10'} peerDependencies: react: '>= 0.14.0' @@ -9798,11 +9669,6 @@ packages: engines: {node: '>=6'} dev: true - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -9911,7 +9777,7 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /msw@1.3.2(typescript@5.3.2): + /msw@1.3.2(typescript@5.3.3): resolution: {integrity: sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==} engines: {node: '>=14'} hasBin: true @@ -9940,7 +9806,7 @@ packages: path-to-regexp: 6.2.1 strict-event-emitter: 0.4.6 type-fest: 2.19.0 - typescript: 5.3.2 + typescript: 5.3.3 yargs: 17.7.2 transitivePeerDependencies: - encoding @@ -10006,8 +9872,8 @@ packages: /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} /normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -10034,13 +9900,6 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - /nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} dev: true @@ -10066,7 +9925,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -10077,7 +9936,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -10166,13 +10025,6 @@ packages: mimic-fn: 2.1.0 dev: true - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -10182,16 +10034,6 @@ packages: is-wsl: 2.2.0 dev: true - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: true - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -10315,7 +10157,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -10347,11 +10189,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true @@ -10360,7 +10197,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.1.0 + lru-cache: 10.2.0 minipass: 7.0.4 /path-to-regexp@0.1.7: @@ -10374,6 +10211,7 @@ packages: /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: true /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} @@ -10459,29 +10297,29 @@ packages: dependencies: '@babel/runtime': 7.23.2 - /postcss-import@15.1.0(postcss@8.4.32): + /postcss-import@15.1.0(postcss@8.4.33): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.6 dev: true - /postcss-js@4.0.1(postcss@8.4.32): + /postcss-js@4.0.1(postcss@8.4.33): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.32 + postcss: 8.4.33 dev: true - /postcss-load-config@4.0.1(postcss@8.4.32): + /postcss-load-config@4.0.1(postcss@8.4.33): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -10494,17 +10332,17 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.32 + postcss: 8.4.33 yaml: 2.3.1 dev: true - /postcss-nested@6.0.1(postcss@8.4.32): + /postcss-nested@6.0.1(postcss@8.4.33): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.32 + postcss: 8.4.33 postcss-selector-parser: 6.0.13 dev: true @@ -10520,8 +10358,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.33: + resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -10540,14 +10378,13 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-tailwindcss@0.5.7(prettier@3.1.0): - resolution: {integrity: sha512-4v6uESAgwCni6YF6DwJlRaDjg9Z+al5zM4JfngcazMy4WEf/XkPS5TEQjbD+DZ5iNuG6RrKQLa/HuX2SYzC3kQ==} + /prettier-plugin-tailwindcss@0.5.11(prettier@3.2.4): + resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' '@prettier/plugin-pug': '*' '@shopify/prettier-plugin-liquid': '*' - '@shufo/prettier-plugin-blade': '*' '@trivago/prettier-plugin-sort-imports': '*' prettier: ^3.0 prettier-plugin-astro: '*' @@ -10567,8 +10404,6 @@ packages: optional: true '@shopify/prettier-plugin-liquid': optional: true - '@shufo/prettier-plugin-blade': - optional: true '@trivago/prettier-plugin-sort-imports': optional: true prettier-plugin-astro: @@ -10592,7 +10427,7 @@ packages: prettier-plugin-twig-melody: optional: true dependencies: - prettier: 3.1.0 + prettier: 3.2.4 dev: true /prettier@2.8.8: @@ -10601,8 +10436,8 @@ packages: hasBin: true dev: true - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + /prettier@3.2.4: + resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -10735,16 +10570,16 @@ packages: - utf-8-validate dev: true - /puppeteer-core@21.5.2: - resolution: {integrity: sha512-v4T0cWnujSKs+iEfmb8ccd7u4/x8oblEyKqplqKnJ582Kw8PewYAWvkH4qUWhitN3O2q9RF7dzkvjyK5HbzjLA==} + /puppeteer-core@21.11.0: + resolution: {integrity: sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==} engines: {node: '>=16.13.2'} dependencies: - '@puppeteer/browsers': 1.8.0 - chromium-bidi: 0.4.33(devtools-protocol@0.0.1203626) + '@puppeteer/browsers': 1.9.1 + chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444) cross-fetch: 4.0.0 debug: 4.3.4 - devtools-protocol: 0.0.1203626 - ws: 8.14.2 + devtools-protocol: 0.0.1232444 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - encoding @@ -10752,14 +10587,15 @@ packages: - utf-8-validate dev: false - /puppeteer@21.5.2(typescript@5.3.2): - resolution: {integrity: sha512-BaAGJOq8Fl6/cck6obmwaNLksuY0Bg/lIahCLhJPGXBFUD2mCffypa4A592MaWnDcye7eaHmSK9yot0pxctY8A==} + /puppeteer@21.11.0(typescript@5.3.3): + resolution: {integrity: sha512-9jTHuYe22TD3sNxy0nEIzC7ZrlRnDgeX3xPkbS7PnbdwYjl2o/z/YuCrRBwezdKpbTDTJ4VqIggzNyeRcKq3cg==} engines: {node: '>=16.13.2'} + hasBin: true requiresBuild: true dependencies: - '@puppeteer/browsers': 1.8.0 - cosmiconfig: 8.3.6(typescript@5.3.2) - puppeteer-core: 21.5.2 + '@puppeteer/browsers': 1.9.1 + cosmiconfig: 9.0.0(typescript@5.3.3) + puppeteer-core: 21.11.0 transitivePeerDependencies: - bufferutil - encoding @@ -10841,13 +10677,13 @@ packages: unpipe: 1.0.0 dev: true - /react-chartjs-2@5.2.0(chart.js@4.4.0)(react@18.2.0): + /react-chartjs-2@5.2.0(chart.js@4.4.1)(react@18.2.0): resolution: {integrity: sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==} peerDependencies: chart.js: ^4.1.1 react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - chart.js: 4.4.0 + chart.js: 4.4.1 react: 18.2.0 dev: false @@ -10860,22 +10696,22 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /react-docgen-typescript@2.2.2(typescript@5.3.2): + /react-docgen-typescript@2.2.2(typescript@5.3.3): resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: typescript: '>= 4.3.x' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true /react-docgen@7.0.1: resolution: {integrity: sha512-rCz0HBIT0LWbIM+///LfRrJoTKftIzzwsYDf0ns5KwaEjejMHQRtphcns+IXFHDNY9pnz6G8l/JbbI6pD4EAIA==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.23.5 - '@babel/traverse': 7.23.3 - '@babel/types': 7.23.3 - '@types/babel__core': 7.20.4 + '@babel/core': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.1 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.4 @@ -11001,29 +10837,29 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /react-loading-skeleton@3.3.1(react@18.2.0): - resolution: {integrity: sha512-NilqqwMh2v9omN7LteiDloEVpFyMIa0VGqF+ukqp0ncVlYu1sKYbYGX9JEl+GtOT9TKsh04zCHAbavnQ2USldA==} + /react-loading-skeleton@3.4.0(react@18.2.0): + resolution: {integrity: sha512-1oJEBc9+wn7BbkQQk7YodlYEIjgeR+GrRjD+QXkVjwZN7LGIcAFHrx4NhT7UHGBxNY1+zax3c+Fo6XQM4R7CgA==} peerDependencies: react: '>=16.8.0' dependencies: react: 18.2.0 dev: false - /react-markdown@9.0.1(@types/react@18.2.41)(react@18.2.0): + /react-markdown@9.0.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' dependencies: '@types/hast': 3.0.2 - '@types/react': 18.2.41 + '@types/react': 18.2.52 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.2.0 html-url-attributes: 3.0.0 mdast-util-to-hast: 13.0.2 react: 18.2.0 remark-parse: 11.0.0 - remark-rehype: 11.0.0 + remark-rehype: 11.1.0 unified: 11.0.4 unist-util-visit: 5.0.0 vfile: 6.0.1 @@ -11064,7 +10900,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.41)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -11074,12 +10910,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.41)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.52)(react@18.2.0) tslib: 2.6.2 - /react-remove-scroll@2.5.5(@types/react@18.2.41)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -11089,13 +10925,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.41)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.41)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.52)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.52)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.0(@types/react@18.2.41)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.41)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@18.2.52)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.52)(react@18.2.0) /react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==} @@ -11121,7 +10957,7 @@ packages: shallow-equal: 1.2.1 dev: true - /react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1): + /react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.2): resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==} peerDependencies: '@types/sortablejs': '1' @@ -11133,11 +10969,11 @@ packages: classnames: 2.3.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - sortablejs: 1.15.1 + sortablejs: 1.15.2 tiny-invariant: 1.2.0 dev: false - /react-style-singleton@2.2.1(@types/react@18.2.41)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -11147,7 +10983,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -11382,8 +11218,8 @@ packages: - supports-color dev: false - /remark-rehype@11.0.0: - resolution: {integrity: sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==} + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: '@types/hast': 3.0.2 '@types/mdast': 4.0.2 @@ -11497,13 +11333,6 @@ packages: /rrweb-cssom@0.6.0: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true - /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -11597,6 +11426,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: true /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -11735,8 +11565,8 @@ packages: smart-buffer: 4.2.0 dev: false - /sortablejs@1.15.1: - resolution: {integrity: sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ==} + /sortablejs@1.15.2: + resolution: {integrity: sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==} dev: false /source-map-js@1.0.2: @@ -11821,7 +11651,7 @@ packages: /store2@2.14.2: resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} - /storybook-i18n@2.0.13(@storybook/components@7.5.3)(@storybook/manager-api@7.5.3)(@storybook/preview-api@7.5.3)(@storybook/types@7.6.3)(react-dom@18.2.0)(react@18.2.0): + /storybook-i18n@2.0.13(@storybook/components@7.6.10)(@storybook/manager-api@7.6.10)(@storybook/preview-api@7.6.10)(@storybook/types@7.6.12)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-p0VPL5QiHdeS3W9BvV7UnuTKw7Mj1HWLW67LK0EOoh5fpSQIchu7byfrUUe1RbCF1gT0gOOhdNuTSXMoVVoTDw==} peerDependencies: '@storybook/components': ^7.0.0 @@ -11836,44 +11666,41 @@ packages: react-dom: optional: true dependencies: - '@storybook/components': 7.5.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/manager-api': 7.5.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.3 - '@storybook/types': 7.6.3 + '@storybook/components': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.52)(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.6.10 + '@storybook/types': 7.6.12 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /storybook-react-i18next@2.0.9(@storybook/components@7.5.3)(@storybook/manager-api@7.5.3)(@storybook/preview-api@7.5.3)(@storybook/types@7.6.3)(i18next-browser-languagedetector@7.2.0)(i18next-http-backend@2.4.2)(i18next@22.5.1)(react-dom@18.2.0)(react-i18next@12.3.1)(react@18.2.0): - resolution: {integrity: sha512-GFTOrYwOWShLqWNuTesPNhC79P3OHw1jkZ4gU3R50yTD2MUclF5DHLnuKeVfKZ323iV+I9fxLxuLIVHWVDJgXA==} + /storybook-react-i18next@2.0.10(@storybook/components@7.6.10)(@storybook/manager-api@7.6.10)(@storybook/preview-api@7.6.10)(@storybook/types@7.6.12)(i18next-browser-languagedetector@7.2.0)(i18next-http-backend@2.4.3)(i18next@22.5.1)(react-dom@18.2.0)(react-i18next@12.3.1)(react@18.2.0): + resolution: {integrity: sha512-0gP2XohFaF+R9+7ixt7gMd3DOeGmq4V4mgpKRKB3/7brvRgi7RPkQ2bRi5w92L25r5k91gCtCOSc9YmepOm36g==} peerDependencies: - '@storybook/components': ^7.0.0 - '@storybook/manager-api': ^7.0.0 - '@storybook/preview-api': ^7.0.0 - '@storybook/types': ^7.0.0 - i18next: ^22.0.0 || ^23.0.0 + i18next: ^22.0.0 || ^23.0.0 || ^24.0.0 i18next-browser-languagedetector: ^7.0.0 i18next-http-backend: ^2.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-i18next: ^12.0.0 || ^13.0.0 + react: '*' + react-dom: '*' + react-i18next: ^12.0.0 || ^13.0.0 || ^14.0.0 peerDependenciesMeta: react: optional: true react-dom: optional: true dependencies: - '@storybook/components': 7.5.3(@types/react-dom@18.2.17)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0) - '@storybook/manager-api': 7.5.3(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.3 - '@storybook/types': 7.6.3 i18next: 22.5.1 i18next-browser-languagedetector: 7.2.0 - i18next-http-backend: 2.4.2 + i18next-http-backend: 2.4.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-i18next: 12.3.1(i18next@22.5.1)(react-dom@18.2.0)(react@18.2.0) - storybook-i18n: 2.0.13(@storybook/components@7.5.3)(@storybook/manager-api@7.5.3)(@storybook/preview-api@7.5.3)(@storybook/types@7.6.3)(react-dom@18.2.0)(react@18.2.0) + storybook-i18n: 2.0.13(@storybook/components@7.6.10)(@storybook/manager-api@7.6.10)(@storybook/preview-api@7.6.10)(@storybook/types@7.6.12)(react-dom@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - '@storybook/components' + - '@storybook/manager-api' + - '@storybook/preview-api' + - '@storybook/types' dev: true /storybook@7.6.0-beta.2: @@ -12012,11 +11839,6 @@ packages: engines: {node: '>=6'} dev: true - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -12100,11 +11922,11 @@ packages: /synchronous-promise@2.0.17: resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.2 + '@pkgr/core': 0.1.0 tslib: 2.6.2 dev: true @@ -12112,8 +11934,8 @@ packages: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} dev: false - /tailwindcss@3.3.5: - resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -12131,11 +11953,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.1(postcss@8.4.32) - postcss-nested: 6.0.1(postcss@8.4.32) + postcss: 8.4.33 + postcss-import: 15.1.0(postcss@8.4.33) + postcss-js: 4.0.1(postcss@8.4.33) + postcss-load-config: 4.0.1(postcss@8.4.33) + postcss-nested: 6.0.1(postcss@8.4.33) postcss-selector-parser: 6.0.13 resolve: 1.22.6 sucrase: 3.34.0 @@ -12318,11 +12140,6 @@ packages: dependencies: '@popperjs/core': 2.11.8 - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true - /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -12377,13 +12194,13 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /ts-api-utils@1.0.3(typescript@5.3.2): + /ts-api-utils@1.0.3(typescript@5.3.3): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: true /ts-dedent@2.2.0: @@ -12394,7 +12211,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-loader@9.5.1(typescript@5.3.2)(webpack@5.88.2): + /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.88.2): resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -12406,12 +12223,12 @@ packages: micromatch: 4.0.5 semver: 7.5.4 source-map: 0.7.4 - typescript: 5.3.2 + typescript: 5.3.3 webpack: 5.88.2(esbuild@0.18.20) dev: true - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 @@ -12426,14 +12243,14 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.3.2): + /tsutils@3.21.0(typescript@5.3.3): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.3.2 + typescript: 5.3.3 dev: true /type-check@0.4.0: @@ -12526,8 +12343,8 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true @@ -12686,24 +12503,13 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.21.11): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.11 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 + browserslist: 4.22.2 escalade: 3.1.1 picocolors: 1.0.0 @@ -12719,11 +12525,11 @@ packages: querystringify: 2.2.0 requires-port: 1.0.0 - /urlpattern-polyfill@9.0.0: - resolution: {integrity: sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==} + /urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} dev: false - /use-callback-ref@1.3.0(@types/react@18.2.41)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -12733,7 +12539,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 react: 18.2.0 tslib: 2.6.2 @@ -12747,7 +12553,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /use-sidecar@1.1.2(@types/react@18.2.41)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.52)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -12757,7 +12563,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.41 + '@types/react': 18.2.52 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -12830,7 +12636,7 @@ packages: vfile-message: 4.0.2 dev: false - /vite-node@0.34.6(@types/node@18.19.1): + /vite-node@0.34.6(@types/node@18.19.14): resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} hasBin: true @@ -12840,7 +12646,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - '@types/node' - less @@ -12851,24 +12657,24 @@ packages: - supports-color - terser - /vite-plugin-full-reload@1.0.5(vite@4.5.0): + /vite-plugin-full-reload@1.0.5(vite@4.5.2): resolution: {integrity: sha512-kVZFDFWr0DxiHn6MuDVTQf7gnWIdETGlZh0hvTiMXzRN80vgF4PKbONSq8U1d0WtHsKaFODTQgJeakLacoPZEQ==} peerDependencies: vite: ^2 || ^3 || ^4 dependencies: picocolors: 1.0.0 picomatch: 2.3.1 - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) dev: true - /vite-plugin-svgr@2.4.0(vite@4.5.0): + /vite-plugin-svgr@2.4.0(vite@4.5.2): resolution: {integrity: sha512-q+mJJol6ThvqkkJvvVFEndI4EaKIjSI0I3jNFgSoC9fXAz1M7kYTVUin8fhUsFojFDKZ9VHKtX6NXNaOLpbsHA==} peerDependencies: vite: ^2.6.0 || 3 || 4 dependencies: '@rollup/pluginutils': 5.0.2 '@svgr/core': 6.5.1 - vite: 4.5.0(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) transitivePeerDependencies: - rollup - supports-color @@ -12881,8 +12687,8 @@ packages: minimatch: 5.1.6 dev: true - /vite@4.5.0(@types/node@18.19.1): - resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + /vite@4.5.2(@types/node@18.19.14): + resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -12909,9 +12715,9 @@ packages: terser: optional: true dependencies: - '@types/node': 18.19.1 + '@types/node': 18.19.14 esbuild: 0.18.20 - postcss: 8.4.32 + postcss: 8.4.33 rollup: 3.29.2 optionalDependencies: fsevents: 2.3.3 @@ -12949,7 +12755,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.19.1 + '@types/node': 18.19.14 '@vitest/expect': 0.34.6 '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 @@ -12969,8 +12775,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.5.0(@types/node@18.19.1) - vite-node: 0.34.6(@types/node@18.19.1) + vite: 4.5.2(@types/node@18.19.14) + vite-node: 0.34.6(@types/node@18.19.14) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -13010,8 +12816,8 @@ packages: graceful-fs: 4.2.11 dev: true - /wavesurfer.js@7.4.12: - resolution: {integrity: sha512-KzH4LkcOp8LECs9cOVIPBl6vsSoICKuZz+v5kh/zvxilpaVszU+QKC+4s2KEAqcCxBCecg3cNSg4RqAx278F8g==} + /wavesurfer.js@7.7.1: + resolution: {integrity: sha512-2HFBnTgxtz2e2XMpoPVDxDjxJH6CQLj+Q1TO6U3K2ngtQ4svgymDb4fhK++qTZlL4GTMmUuqxDHEi6wK/8gGtg==} dev: false /wcwidth@1.0.1: @@ -13078,7 +12884,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 acorn: 8.10.0 acorn-import-assertions: 1.9.0(acorn@8.10.0) - browserslist: 4.22.1 + browserslist: 4.22.2 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 1.3.1 @@ -13275,8 +13081,8 @@ packages: utf-8-validate: optional: true - /ws@8.14.2: - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -13312,6 +13118,7 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} diff --git a/public/css/filament/filament/app.css b/public/css/filament/filament/app.css index 0b04e2f69..8d0f7a9e8 100644 --- a/public/css/filament/filament/app.css +++ b/public/css/filament/filament/app.css @@ -1 +1 @@ -/*! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgba(var(--gray-200),1);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:var(--font-family),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-400),1);opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-400),1);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='rgba(var(--gray-500), var(--tw-stroke-opacity, 1))' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media (forced-colors:active) {[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}html{-webkit-tap-highlight-color:transparent}:root.dark{color-scheme:dark}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding:.1875em .375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.8888889em;margin-top:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;line-height:1.2;margin-bottom:.8em;margin-top:0}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;line-height:1.4;margin-bottom:.8em;margin-top:1.6em}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.5555556em}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.4285714;margin-bottom:.5714286em;margin-top:1.4285714em}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8571429em;padding:.1428571em .3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.25rem;font-size:.8571429em;line-height:1.6666667;margin-bottom:1.6666667em;margin-top:1.6666667em;padding:.6666667em 1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.2857143em;margin-top:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(.prose-sm>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-left:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2.8571429em;margin-top:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.6666667em;padding-left:1em;padding-right:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.6666667em 1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-base{font-size:1rem;line-height:1.75}.prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6em;margin-top:1.6em;padding-left:1em}.prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.25em;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.875em;padding:.1875em .375em}.prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.875em;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;padding:.8571429em 1.1428571em}.prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(.prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(.prose-base>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose-base>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3em;margin-top:3em}.prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857}.prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em}.prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose-base :where(.prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(.prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8888889em;padding:.2222222em .4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose-lg>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-left:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.75em;padding-left:.75em;padding-right:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-4{inset:1rem}.inset-x-0{left:0;right:0}.inset-x-4{left:1rem;right:1rem}.inset-y-0{bottom:0;top:0}.-bottom-1\/2{bottom:-50%}.-top-1{top:-.25rem}.-top-1\/2{top:-50%}.-top-2{top:-.5rem}.-top-3{top:-.75rem}.bottom-0{bottom:0}.bottom-1\/2{bottom:50%}.end-0{inset-inline-end:0}.end-4{inset-inline-end:1rem}.end-6{inset-inline-end:1.5rem}.left-3{left:.75rem}.start-0{inset-inline-start:0}.start-full{inset-inline-start:100%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-6{top:1.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-\[--col-span-default\]{grid-column:var(--col-span-default)}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-\[--col-start-default\]{grid-column-start:var(--col-start-default)}.-m-0{margin:0}.-m-0\.5{margin:-.125rem}.-m-1{margin:-.25rem}.-m-1\.5{margin:-.375rem}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.-m-3{margin:-.75rem}.-m-3\.5{margin:-.875rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-bottom:4rem;margin-top:4rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-auto{margin-bottom:auto;margin-top:auto}.\!mt-0{margin-top:0!important}.-mb-4{margin-bottom:-1rem}.-mb-6{margin-bottom:-1.5rem}.-me-2{margin-inline-end:-.5rem}.-ms-0{margin-inline-start:0}.-ms-0\.5{margin-inline-start:-.125rem}.-ms-1{margin-inline-start:-.25rem}.-ms-2{margin-inline-start:-.5rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.me-1{margin-inline-end:.25rem}.me-4{margin-inline-end:1rem}.me-6{margin-inline-end:1.5rem}.ml-auto{margin-left:auto}.ms-1{margin-inline-start:.25rem}.ms-auto{margin-inline-start:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.min-h-\[theme\(spacing\.48\)\]{min-height:12rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[calc\(100\%\+2rem\)\]{width:calc(100% + 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[theme\(spacing\.4\)\]{min-width:1rem}.min-w-\[theme\(spacing\.5\)\]{min-width:1.25rem}.min-w-\[theme\(spacing\.6\)\]{min-width:1.5rem}.min-w-\[theme\(spacing\.8\)\]{min-width:2rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[14rem\]{max-width:14rem}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-12,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-12{--tw-translate-x:-3rem}.-translate-x-5{--tw-translate-x:-1.25rem}.-translate-x-5,.-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.-translate-y-12{--tw-translate-y:-3rem}.-translate-y-12,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-12{--tw-translate-x:3rem}.translate-x-12,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-12{--tw-translate-y:3rem}.-rotate-180{--tw-rotate:-180deg}.-rotate-180,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-\[--cols-default\]{-moz-columns:var(--cols-default);columns:var(--cols-default)}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[--cols-default\]{grid-template-columns:var(--cols-default)}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[repeat\(7\2c _theme\(spacing\.7\)\)\]{grid-template-columns:repeat(7,1.75rem)}.grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.gap-y-7{row-gap:1.75rem}.gap-y-8{row-gap:2rem}.gap-y-px{row-gap:1px}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.25rem*var(--tw-space-x-reverse))}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.5rem*var(--tw-space-x-reverse))}.-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.75rem*var(--tw-space-x-reverse))}.-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1rem*var(--tw-space-x-reverse))}.-space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.25rem*var(--tw-space-x-reverse))}.-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.5rem*var(--tw-space-x-reverse))}.-space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.75rem*var(--tw-space-x-reverse))}.-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-100),var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-200),var(--tw-divide-opacity))}.divide-gray-950\/10>:not([hidden])~:not([hidden]){border-color:rgba(var(--gray-950),.1)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-x-\[0\.5px\]{border-left-width:.5px;border-right-width:.5px}.border-y{border-bottom-width:1px;border-top-width:1px}.\!border-t-0{border-top-width:0!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-e{border-inline-end-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.\!border-none{border-style:none!important}.border-none{border-style:none}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--gray-100),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--gray-300),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}.border-primary-500{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.border-primary-600{--tw-border-opacity:1;border-color:rgba(var(--primary-600),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-t-gray-200{--tw-border-opacity:1;border-top-color:rgba(var(--gray-200),var(--tw-border-opacity))}.\!bg-gray-50{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))!important}.\!bg-gray-700{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-custom-100{--tw-bg-opacity:1;background-color:rgba(var(--c-100),var(--tw-bg-opacity))}.bg-custom-50{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.bg-custom-600{--tw-bg-opacity:1;background-color:rgba(var(--c-600),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(var(--gray-200),var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.bg-gray-950\/50{background-color:rgba(var(--gray-950),.5)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/0{background-color:hsla(0,0%,100%,0)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-6{padding-inline-end:1.5rem}.pe-8{padding-inline-end:2rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-\[5\.25rem\]{padding-inline-start:5.25rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:var(--font-family),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-loose{line-height:2}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.text-custom-400{--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}.text-custom-50{--tw-text-opacity:1;color:rgba(var(--c-50),var(--tw-text-opacity))}.text-custom-500{--tw-text-opacity:1;color:rgba(var(--c-500),var(--tw-text-opacity))}.text-custom-600{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.text-custom-700\/50{color:rgba(var(--c-700),.5)}.text-danger-600{--tw-text-opacity:1;color:rgba(var(--danger-600),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--gray-100),var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.text-gray-700\/50{color:rgba(var(--gray-700),.5)}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-custom-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.ring-custom-600\/10{--tw-ring-color:rgba(var(--c-600),0.1)}.ring-custom-600\/20{--tw-ring-color:rgba(var(--c-600),0.2)}.ring-danger-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-300),var(--tw-ring-opacity))}.ring-gray-600\/10{--tw-ring-color:rgba(var(--gray-600),0.1)}.ring-gray-900\/10{--tw-ring-color:rgba(var(--gray-900),0.1)}.ring-gray-950\/10{--tw-ring-color:rgba(var(--gray-950),0.1)}.ring-gray-950\/5{--tw-ring-color:rgba(var(--gray-950),0.05)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[transform\:translateZ\(0\)\]{transform:translateZ(0)}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-y-0:before{bottom:0;content:var(--tw-content);top:0}.before\:start-0:before{content:var(--tw-content);inset-inline-start:0}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-0\.5:before{content:var(--tw-content);width:.125rem}.before\:bg-primary-600:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}.first\:border-s-0:first-child{border-inline-start-width:0}.first\:border-t-0:first-child{border-top-width:0}.last\:border-e-0:last-child{border-inline-end-width:0}.first-of-type\:ps-1:first-of-type{padding-inline-start:.25rem}.last-of-type\:pe-1:last-of-type{padding-inline-end:.25rem}.checked\:ring-0:checked{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:bg-gray-50:focus-within{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.focus-within\:ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:ring-danger-600:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus-within\:ring-primary-600:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.hover\:bg-custom-400\/10:hover{background-color:rgba(var(--c-400),.1)}.hover\:bg-custom-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.hover\:bg-custom-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.hover\:bg-gray-400\/10:hover{background-color:rgba(var(--gray-400),.1)}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.hover\:text-custom-600:hover{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.hover\:text-custom-700\/75:hover{color:rgba(var(--c-700),.75)}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.hover\:text-gray-700\/75:hover{color:rgba(var(--gray-700),.75)}.hover\:opacity-100:hover{opacity:1}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-danger-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus\:ring-primary-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.checked\:focus\:ring-danger-500\/50:focus:checked{--tw-ring-color:rgba(var(--danger-500),0.5)}.checked\:focus\:ring-primary-500\/50:focus:checked{--tw-ring-color:rgba(var(--primary-500),0.5)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-primary-500:focus-visible{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.focus-visible\:bg-custom-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.focus-visible\:bg-gray-100:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.focus-visible\:bg-gray-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.focus-visible\:text-custom-700\/75:focus-visible{color:rgba(var(--c-700),.75)}.focus-visible\:text-gray-500:focus-visible{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.focus-visible\:text-gray-700:focus-visible{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.focus-visible\:text-gray-700\/75:focus-visible{color:rgba(var(--gray-700),.75)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-custom-500\/50:focus-visible{--tw-ring-color:rgba(var(--c-500),0.5)}.focus-visible\:ring-custom-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.focus-visible\:ring-danger-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus-visible\:ring-gray-400\/40:focus-visible{--tw-ring-color:rgba(var(--gray-400),0.4)}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}.focus-visible\:ring-primary-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.enabled\:cursor-wait:enabled{cursor:wait}.enabled\:opacity-70:enabled{opacity:.7}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:bg-gray-50:disabled{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.disabled\:text-gray-50:disabled{--tw-text-opacity:1;color:rgba(var(--gray-50),var(--tw-text-opacity))}.disabled\:text-gray-500:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled{-webkit-text-fill-color:rgba(var(--gray-500),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:checked\:bg-current:checked:disabled{background-color:currentColor}.disabled\:checked\:text-gray-400:checked:disabled{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.group\/item:first-child .group-first\/item\:rounded-s-lg{border-end-start-radius:.5rem;border-start-start-radius:.5rem}.group\/item:last-child .group-last\/item\:rounded-e-lg{border-end-end-radius:.5rem;border-start-end-radius:.5rem}.group:hover .group-hover\:text-gray-500,.group\/button:hover .group-hover\/button\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:hover .group-hover\/item\:underline,.group\/link:hover .group-hover\/link\:underline{text-decoration-line:underline}.group:focus-visible .group-focus-visible\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:focus-visible .group-focus-visible\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:focus-visible .group-focus-visible\/item\:underline{text-decoration-line:underline}.group\/link:focus-visible .group-focus-visible\/link\:underline{text-decoration-line:underline}:is([dir=ltr] .ltr\:hidden){display:none}:is([dir=rtl] .rtl\:hidden){display:none}:is([dir=rtl] .rtl\:-translate-x-0){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:-translate-x-5){--tw-translate-x:-1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:-translate-x-full){--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:translate-x-1\/2){--tw-translate-x:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:translate-x-full){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:rotate-180){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:flex-row-reverse){flex-direction:row-reverse}:is([dir=rtl] .rtl\:divide-x-reverse)>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}:is(.dark .dark\:flex){display:flex}:is(.dark .dark\:hidden){display:none}:is(.dark .dark\:divide-white\/10)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:divide-white\/20)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:divide-white\/5)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-gray-600){--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}:is(.dark .dark\:border-gray-700){--tw-border-opacity:1;border-color:rgba(var(--gray-700),var(--tw-border-opacity))}:is(.dark .dark\:border-primary-500){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:border-white\/10){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:border-white\/5){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-t-white\/10){border-top-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:\!bg-gray-700){--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}:is(.dark .dark\:bg-custom-400\/10){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:bg-custom-500){--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-custom-500\/20){background-color:rgba(var(--c-500),.2)}:is(.dark .dark\:bg-gray-400\/10){background-color:rgba(var(--gray-400),.1)}:is(.dark .dark\:bg-gray-500){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-500\/20){background-color:rgba(var(--gray-500),.2)}:is(.dark .dark\:bg-gray-600){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900\/30){background-color:rgba(var(--gray-900),.3)}:is(.dark .dark\:bg-gray-950){--tw-bg-opacity:1;background-color:rgba(var(--gray-950),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-950\/75){background-color:rgba(var(--gray-950),.75)}:is(.dark .dark\:bg-primary-400){--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary-500){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:bg-white\/10){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:bg-white\/5){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:fill-current){fill:currentColor}:is(.dark .dark\:text-custom-300\/50){color:rgba(var(--c-300),.5)}:is(.dark .dark\:text-custom-400){--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}:is(.dark .dark\:text-custom-400\/10){color:rgba(var(--c-400),.1)}:is(.dark .dark\:text-danger-400){--tw-text-opacity:1;color:rgba(var(--danger-400),var(--tw-text-opacity))}:is(.dark .dark\:text-danger-500){--tw-text-opacity:1;color:rgba(var(--danger-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-300\/50){color:rgba(var(--gray-300),.5)}:is(.dark .dark\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-500){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-700){--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-800){--tw-text-opacity:1;color:rgba(var(--gray-800),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-400){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-500){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-white\/5){color:hsla(0,0%,100%,.05)}:is(.dark .dark\:ring-custom-400\/30){--tw-ring-color:rgba(var(--c-400),0.3)}:is(.dark .dark\:ring-custom-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-danger-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-400\/20){--tw-ring-color:rgba(var(--gray-400),0.2)}:is(.dark .dark\:ring-gray-50\/10){--tw-ring-color:rgba(var(--gray-50),0.1)}:is(.dark .dark\:ring-gray-700){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-700),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-900){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-900),var(--tw-ring-opacity))}:is(.dark .dark\:ring-white\/10){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:ring-white\/20){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:placeholder\:text-gray-500)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:placeholder\:text-gray-500)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:before\:bg-primary-500):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .dark\:checked\:bg-danger-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--danger-500),var(--tw-bg-opacity))}:is(.dark .dark\:checked\:bg-primary-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:focus-within\:bg-white\/5:focus-within){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:focus-within\:ring-danger-500:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-within\:ring-primary-500:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:hover\:bg-custom-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--c-400),var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-custom-400\/10:hover){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:hover\:bg-white\/10:hover){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:hover\:bg-white\/5:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:hover\:text-custom-300:hover){--tw-text-opacity:1;color:rgba(var(--c-300),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-custom-300\/75:hover){color:rgba(var(--c-300),.75)}:is(.dark .dark\:hover\:text-gray-200:hover){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-gray-300\/75:hover){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:hover\:text-gray-400:hover){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:hover\:ring-white\/20:hover){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:focus\:ring-danger-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-primary-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:checked\:focus\:ring-danger-400\/50:focus:checked){--tw-ring-color:rgba(var(--danger-400),0.5)}:is(.dark .dark\:checked\:focus\:ring-primary-400\/50:focus:checked){--tw-ring-color:rgba(var(--primary-400),0.5)}:is(.dark .dark\:focus-visible\:border-primary-500:focus-visible){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:focus-visible\:bg-custom-400\/10:focus-visible){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:focus-visible\:bg-white\/5:focus-visible){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:focus-visible\:text-custom-300\/75:focus-visible){color:rgba(var(--c-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-200:focus-visible){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:focus-visible\:text-gray-300\/75:focus-visible){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-400:focus-visible){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:focus-visible\:ring-custom-400\/50:focus-visible){--tw-ring-color:rgba(var(--c-400),0.5)}:is(.dark .dark\:focus-visible\:ring-custom-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-visible\:ring-danger-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-visible\:ring-primary-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:disabled\:bg-transparent:disabled){background-color:transparent}:is(.dark .dark\:disabled\:text-gray-400:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:disabled\:ring-white\/10:disabled){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled){-webkit-text-fill-color:rgba(var(--gray-400),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:checked\:bg-gray-600:checked:disabled){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .group\/button:hover .dark\:group-hover\/button\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.sm\:relative{position:relative}.sm\:inset-x-auto{left:auto;right:auto}.sm\:end-0{inset-inline-end:0}.sm\:col-\[--col-span-sm\]{grid-column:var(--col-span-sm)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-\[--col-start-sm\]{grid-column-start:var(--col-start-sm)}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:mt-7{margin-top:1.75rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:hidden{display:none}.sm\:w-\[calc\(100\%\+3rem\)\]{width:calc(100% + 3rem)}.sm\:w-screen{width:100vw}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-5xl{max-width:64rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-7xl{max-width:80rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:max-w-xs{max-width:20rem}.sm\:columns-\[--cols-sm\]{-moz-columns:var(--cols-sm);columns:var(--cols-sm)}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[--cols-sm\]{grid-template-columns:var(--cols-sm)}.sm\:grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-1{gap:.25rem}.sm\:gap-3{gap:.75rem}.sm\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:p-10{padding:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-1{padding-bottom:.25rem;padding-top:.25rem}.sm\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:pt-1{padding-top:.25rem}.sm\:pt-1\.5{padding-top:.375rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}.sm\:first-of-type\:ps-3:first-of-type{padding-inline-start:.75rem}.sm\:first-of-type\:ps-6:first-of-type{padding-inline-start:1.5rem}.sm\:last-of-type\:pe-3:last-of-type{padding-inline-end:.75rem}.sm\:last-of-type\:pe-6:last-of-type{padding-inline-end:1.5rem}}@media (min-width:768px){.md\:bottom-4{bottom:1rem}.md\:order-first{order:-9999}.md\:col-\[--col-span-md\]{grid-column:var(--col-span-md)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-\[--col-start-md\]{grid-column-start:var(--col-start-md)}.md\:block{display:block}.md\:flex{display:flex}.md\:table-cell{display:table-cell}.md\:inline-grid{display:inline-grid}.md\:hidden{display:none}.md\:columns-\[--cols-md\]{-moz-columns:var(--cols-md);columns:var(--cols-md)}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[--cols-md\]{grid-template-columns:var(--cols-md)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:gap-1{gap:.25rem}.md\:gap-3{gap:.75rem}.md\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(0px*var(--tw-divide-y-reverse));border-top-width:calc(0px*(1 - var(--tw-divide-y-reverse)))}.md\:rounded-xl{border-radius:.75rem}.md\:p-20{padding:5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:ps-3{padding-inline-start:.75rem}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:z-0{z-index:0}.lg\:col-\[--col-span-lg\]{grid-column:var(--col-span-lg)}.lg\:col-start-\[--col-start-lg\]{grid-column-start:var(--col-start-lg)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:table-cell{display:table-cell}.lg\:inline-grid{display:inline-grid}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:max-w-xs{max-width:20rem}.lg\:-translate-x-full{--tw-translate-x:-100%}.lg\:-translate-x-full,.lg\:translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:translate-x-0{--tw-translate-x:0px}.lg\:columns-\[--cols-lg\]{-moz-columns:var(--cols-lg);columns:var(--cols-lg)}.lg\:grid-cols-\[--cols-lg\]{grid-template-columns:var(--cols-lg)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-center{align-items:center}.lg\:gap-1{gap:.25rem}.lg\:gap-3{gap:.75rem}.lg\:bg-transparent{background-color:transparent}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pe-8{padding-inline-end:2rem}.lg\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.lg\:shadow-none,.lg\:shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lg\:shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lg\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lg\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.lg\:transition-none{transition-property:none}.lg\:delay-100{transition-delay:.1s}:is([dir=rtl] .rtl\:lg\:-translate-x-0){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is([dir=rtl] .rtl\:lg\:translate-x-full){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:is(.dark .dark\:lg\:bg-transparent){background-color:transparent}}@media (min-width:1280px){.xl\:col-\[--col-span-xl\]{grid-column:var(--col-span-xl)}.xl\:col-start-\[--col-start-xl\]{grid-column-start:var(--col-start-xl)}.xl\:block{display:block}.xl\:table-cell{display:table-cell}.xl\:inline-grid{display:inline-grid}.xl\:hidden{display:none}.xl\:columns-\[--cols-xl\]{-moz-columns:var(--cols-xl);columns:var(--cols-xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[--cols-xl\]{grid-template-columns:var(--cols-xl)}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:items-center{align-items:center}.xl\:gap-1{gap:.25rem}.xl\:gap-3{gap:.75rem}}@media (min-width:1536px){.\32xl\:col-\[--col-span-2xl\]{grid-column:var(--col-span-2xl)}.\32xl\:col-start-\[--col-start-2xl\]{grid-column-start:var(--col-start-2xl)}.\32xl\:block{display:block}.\32xl\:table-cell{display:table-cell}.\32xl\:inline-grid{display:inline-grid}.\32xl\:hidden{display:none}.\32xl\:columns-\[--cols-2xl\]{-moz-columns:var(--cols-2xl);columns:var(--cols-2xl)}.\32xl\:grid-cols-\[--cols-2xl\]{grid-template-columns:var(--cols-2xl)}.\32xl\:flex-row{flex-direction:row}.\32xl\:items-start{align-items:flex-start}.\32xl\:items-center{align-items:center}.\32xl\:gap-1{gap:.25rem}.\32xl\:gap-3{gap:.75rem}}.\[\&\.trix-active\]\:bg-gray-50.trix-active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.\[\&\.trix-active\]\:text-primary-600.trix-active{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}:is(.dark .dark\:\[\&\.trix-active\]\:bg-white\/5.trix-active){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:\[\&\.trix-active\]\:text-primary-400.trix-active){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.\[\&\>\*\:first-child\]\:relative>:first-child{position:relative}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:first-child\]\:before\:absolute>:first-child:before{content:var(--tw-content);position:absolute}.\[\&\>\*\:first-child\]\:before\:inset-y-0>:first-child:before{bottom:0;content:var(--tw-content);top:0}.\[\&\>\*\:first-child\]\:before\:start-0>:first-child:before{content:var(--tw-content);inset-inline-start:0}.\[\&\>\*\:first-child\]\:before\:w-0\.5>:first-child:before{content:var(--tw-content);width:.125rem}.\[\&\>\*\:first-child\]\:before\:bg-primary-600>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .\[\&\>\*\:first-child\]\:dark\:before\:bg-primary-500)>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&_\.choices\\_\\_inner\]\:ps-0 .choices__inner{padding-inline-start:0}.\[\&_\.filepond--root\]\:font-sans .filepond--root{font-family:var(--font-family),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\[\&_optgroup\]\:bg-white optgroup{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_optgroup\]\:dark\:bg-gray-900) optgroup{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.\[\&_option\]\:bg-white option{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_option\]\:dark\:bg-gray-900) option{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[\@media\(hover\:hover\)\]\:duration-75{transition-duration:75ms}} \ No newline at end of file +/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgba(var(--gray-200),1);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-400),1);opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-400),1);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}input::placeholder,textarea::placeholder{color:rgba(var(--gray-500),var(--tw-text-opacity,1));opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='rgba(var(--gray-500), var(--tw-stroke-opacity, 1))' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:rgba(var(--gray-500),var(--tw-border-opacity,1));border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active) {[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media (forced-colors:active) {[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}:root.dark{color-scheme:dark}[data-field-wrapper]{scroll-margin-top:8rem}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows)/10%),0 3px 0 rgb(var(--tw-prose-kbd-shadows)/10%);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding:.1875em .375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:17 24 39;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:255 255 255;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.8888889em;margin-top:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;line-height:1.2;margin-bottom:.8em;margin-top:0}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;line-height:1.4;margin-bottom:.8em;margin-top:1.6em}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.5555556em}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.4285714;margin-bottom:.5714286em;margin-top:1.4285714em}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8571429em;padding:.1428571em .3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.25rem;font-size:.8571429em;line-height:1.6666667;margin-bottom:1.6666667em;margin-top:1.6666667em;padding:.6666667em 1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-left:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.2857143em;margin-top:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(.prose-sm>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-left:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2.8571429em;margin-top:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.6666667em;padding-left:1em;padding-right:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.6666667em 1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-base{font-size:1rem;line-height:1.75}.prose-base :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose-base :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6em;margin-top:1.6em;padding-left:1em}.prose-base :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.25em;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose-base :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.5em;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose-base :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.25em;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose-base :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose-base :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.875em;padding:.1875em .375em}.prose-base :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-base :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-base :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.875em;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;padding:.8571429em 1.1428571em}.prose-base :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.prose-base :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose-base :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.375em}.prose-base :where(.prose-base>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(.prose-base>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose-base>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose-base>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose-base :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose-base :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose-base :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-left:1.625em}.prose-base :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3em;margin-top:3em}.prose-base :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857}.prose-base :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em}.prose-base :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.5714286em}.prose-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-base :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose-base :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-base :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose-base :where(.prose-base>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-base :where(.prose-base>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-left:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8888889em;padding:.2222222em .4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding:1em 1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(.prose-lg>ul>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-left:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-bottom:.75em;padding-left:.75em;padding-right:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-left:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-right:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-4{inset:1rem}.inset-x-0{left:0;right:0}.inset-x-4{left:1rem;right:1rem}.inset-y-0{bottom:0;top:0}.-bottom-1\/2{bottom:-50%}.-top-1{top:-.25rem}.-top-1\/2{top:-50%}.-top-2{top:-.5rem}.-top-3{top:-.75rem}.bottom-0{bottom:0}.bottom-1\/2{bottom:50%}.end-0{inset-inline-end:0}.end-4{inset-inline-end:1rem}.end-6{inset-inline-end:1.5rem}.left-3{left:.75rem}.start-0{inset-inline-start:0}.start-full{inset-inline-start:100%}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.top-6{top:1.5rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-\[--col-span-default\]{grid-column:var(--col-span-default)}.col-span-full{grid-column:1/-1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-\[--col-start-default\]{grid-column-start:var(--col-start-default)}.-m-0{margin:0}.-m-0\.5{margin:-.125rem}.-m-1{margin:-.25rem}.-m-1\.5{margin:-.375rem}.-m-2{margin:-.5rem}.-m-2\.5{margin:-.625rem}.-m-3{margin:-.75rem}.-m-3\.5{margin:-.875rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-bottom:4rem;margin-top:4rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-auto{margin-bottom:auto;margin-top:auto}.\!mt-0{margin-top:0!important}.-mb-4{margin-bottom:-1rem}.-mb-6{margin-bottom:-1.5rem}.-me-2{margin-inline-end:-.5rem}.-ms-0{margin-inline-start:0}.-ms-0\.5{margin-inline-start:-.125rem}.-ms-1{margin-inline-start:-.25rem}.-ms-2{margin-inline-start:-.5rem}.-mt-3{margin-top:-.75rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.-mt-7{margin-top:-1.75rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.me-1{margin-inline-end:.25rem}.me-4{margin-inline-end:1rem}.me-6{margin-inline-end:1.5rem}.ml-auto{margin-left:auto}.ms-1{margin-inline-start:.25rem}.ms-auto{margin-inline-start:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.inline-grid{display:inline-grid}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[100dvh\],.h-dvh{height:100dvh}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-full{max-height:100%}.min-h-\[theme\(spacing\.48\)\]{min-height:12rem}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[calc\(100\%\+2rem\)\]{width:calc(100% + 2rem)}.w-auto{width:auto}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[theme\(spacing\.4\)\]{min-width:1rem}.min-w-\[theme\(spacing\.5\)\]{min-width:1.25rem}.min-w-\[theme\(spacing\.6\)\]{min-width:1.5rem}.min-w-\[theme\(spacing\.8\)\]{min-width:2rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[14rem\]{max-width:14rem}.max-w-fit{max-width:-moz-fit-content;max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-12,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-12{--tw-translate-x:-3rem}.-translate-x-5{--tw-translate-x:-1.25rem}.-translate-x-5,.-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.-translate-y-12{--tw-translate-y:-3rem}.-translate-y-12,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-12{--tw-translate-x:3rem}.translate-x-12,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-12{--tw-translate-y:3rem}.-rotate-180{--tw-rotate:-180deg}.-rotate-180,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.scroll-mt-9{scroll-margin-top:2.25rem}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.columns-\[--cols-default\]{-moz-columns:var(--cols-default);columns:var(--cols-default)}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[--cols-default\]{grid-template-columns:var(--cols-default)}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[repeat\(7\2c minmax\(theme\(spacing\.7\)\2c 1fr\)\)\]{grid-template-columns:repeat(7,minmax(1.75rem,1fr))}.grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.gap-y-7{row-gap:1.75rem}.gap-y-8{row-gap:2rem}.gap-y-px{row-gap:1px}.-space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.25rem*var(--tw-space-x-reverse))}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.5rem*var(--tw-space-x-reverse))}.-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-.75rem*var(--tw-space-x-reverse))}.-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1rem*var(--tw-space-x-reverse))}.-space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.25rem*var(--tw-space-x-reverse))}.-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.5rem*var(--tw-space-x-reverse))}.-space-x-7>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1.75rem*var(--tw-space-x-reverse))}.-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-2rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-100),var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgba(var(--gray-200),var(--tw-divide-opacity))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-xl{border-bottom-left-radius:.75rem;border-bottom-right-radius:.75rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-x-\[0\.5px\]{border-left-width:.5px;border-right-width:.5px}.border-y{border-bottom-width:1px;border-top-width:1px}.\!border-t-0{border-top-width:0!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-e{border-inline-end-width:1px}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.\!border-none{border-style:none!important}.border-none{border-style:none}.border-gray-100{--tw-border-opacity:1;border-color:rgba(var(--gray-100),var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(var(--gray-300),var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}.border-primary-500{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.border-primary-600{--tw-border-opacity:1;border-color:rgba(var(--primary-600),var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-t-gray-200{--tw-border-opacity:1;border-top-color:rgba(var(--gray-200),var(--tw-border-opacity))}.\!bg-gray-50{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))!important}.\!bg-gray-700{--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-custom-100{--tw-bg-opacity:1;background-color:rgba(var(--c-100),var(--tw-bg-opacity))}.bg-custom-50{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.bg-custom-600{--tw-bg-opacity:1;background-color:rgba(var(--c-600),var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(var(--gray-200),var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.bg-gray-950\/50{background-color:rgba(var(--gray-950),.5)}.bg-primary-500{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/0{background-color:hsla(0,0%,100%,0)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pe-0{padding-inline-end:0}.pe-1{padding-inline-end:.25rem}.pe-2{padding-inline-end:.5rem}.pe-3{padding-inline-end:.75rem}.pe-4{padding-inline-end:1rem}.pe-6{padding-inline-end:1.5rem}.pe-8{padding-inline-end:2rem}.ps-0{padding-inline-start:0}.ps-1{padding-inline-start:.25rem}.ps-2{padding-inline-start:.5rem}.ps-3{padding-inline-start:.75rem}.ps-4{padding-inline-start:1rem}.ps-\[5\.25rem\]{padding-inline-start:5.25rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-loose{line-height:2}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.text-custom-400{--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}.text-custom-50{--tw-text-opacity:1;color:rgba(var(--c-50),var(--tw-text-opacity))}.text-custom-500{--tw-text-opacity:1;color:rgba(var(--c-500),var(--tw-text-opacity))}.text-custom-600{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.text-custom-700\/50{color:rgba(var(--c-700),.5)}.text-danger-600{--tw-text-opacity:1;color:rgba(var(--danger-600),var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(var(--gray-100),var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.text-gray-700\/50{color:rgba(var(--gray-700),.5)}.text-gray-950{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-custom-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.ring-custom-600\/10{--tw-ring-color:rgba(var(--c-600),0.1)}.ring-custom-600\/20{--tw-ring-color:rgba(var(--c-600),0.2)}.ring-danger-600{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-300),var(--tw-ring-opacity))}.ring-gray-600\/10{--tw-ring-color:rgba(var(--gray-600),0.1)}.ring-gray-900\/10{--tw-ring-color:rgba(var(--gray-900),0.1)}.ring-gray-950\/10{--tw-ring-color:rgba(var(--gray-950),0.1)}.ring-gray-950\/5{--tw-ring-color:rgba(var(--gray-950),0.05)}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.delay-100{transition-delay:.1s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[transform\:translateZ\(0\)\]{transform:translateZ(0)}:is(.dark .dark\:prose-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:inset-y-0:before{bottom:0;content:var(--tw-content);top:0}.before\:start-0:before{content:var(--tw-content);inset-inline-start:0}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-0:before{content:var(--tw-content);width:0}.before\:w-0\.5:before{content:var(--tw-content);width:.125rem}.before\:bg-primary-600:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}.first\:border-s-0:first-child{border-inline-start-width:0}.first\:border-t-0:first-child{border-top-width:0}.last\:border-e-0:last-child{border-inline-end-width:0}.first-of-type\:ps-1:first-of-type{padding-inline-start:.25rem}.last-of-type\:pe-1:last-of-type{padding-inline-end:.25rem}.checked\:ring-0:checked{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:bg-gray-50:focus-within{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.hover\:bg-custom-400\/10:hover{background-color:rgba(var(--c-400),.1)}.hover\:bg-custom-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.hover\:bg-custom-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.hover\:bg-gray-400\/10:hover{background-color:rgba(var(--gray-400),.1)}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.hover\:text-custom-600:hover{--tw-text-opacity:1;color:rgba(var(--c-600),var(--tw-text-opacity))}.hover\:text-custom-700\/75:hover{color:rgba(var(--c-700),.75)}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.hover\:text-gray-700\/75:hover{color:rgba(var(--gray-700),.75)}.hover\:opacity-100:hover{opacity:1}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-danger-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.focus\:ring-primary-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.checked\:focus\:ring-danger-500\/50:focus:checked{--tw-ring-color:rgba(var(--danger-500),0.5)}.checked\:focus\:ring-primary-500\/50:focus:checked{--tw-ring-color:rgba(var(--primary-500),0.5)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-primary-500:focus-visible{--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}.focus-visible\:bg-custom-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--c-50),var(--tw-bg-opacity))}.focus-visible\:bg-gray-100:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-100),var(--tw-bg-opacity))}.focus-visible\:bg-gray-50:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.focus-visible\:text-custom-700\/75:focus-visible{color:rgba(var(--c-700),.75)}.focus-visible\:text-gray-500:focus-visible{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.focus-visible\:text-gray-700\/75:focus-visible{color:rgba(var(--gray-700),.75)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-custom-500\/50:focus-visible{--tw-ring-color:rgba(var(--c-500),0.5)}.focus-visible\:ring-custom-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-600),var(--tw-ring-opacity))}.focus-visible\:ring-gray-400\/40:focus-visible{--tw-ring-color:rgba(var(--gray-400),0.4)}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}.focus-visible\:ring-primary-600:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}.enabled\:cursor-wait:enabled{cursor:wait}.enabled\:opacity-70:enabled{opacity:.7}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:bg-gray-50:disabled{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.disabled\:text-gray-50:disabled{--tw-text-opacity:1;color:rgba(var(--gray-50),var(--tw-text-opacity))}.disabled\:text-gray-500:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.disabled\:opacity-70:disabled{opacity:.7}.disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled{-webkit-text-fill-color:rgba(var(--gray-500),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled::placeholder{-webkit-text-fill-color:rgba(var(--gray-400),1)}.disabled\:checked\:bg-current:checked:disabled{background-color:currentColor}.disabled\:checked\:text-gray-400:checked:disabled{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.group\/item:first-child .group-first\/item\:rounded-s-lg{border-end-start-radius:.5rem;border-start-start-radius:.5rem}.group\/item:last-child .group-last\/item\:rounded-e-lg{border-end-end-radius:.5rem;border-start-end-radius:.5rem}.group:hover .group-hover\:text-gray-500,.group\/button:hover .group-hover\/button\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:hover .group-hover\/item\:underline,.group\/link:hover .group-hover\/link\:underline{text-decoration-line:underline}.group:focus-visible .group-focus-visible\:text-gray-500{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.group:focus-visible .group-focus-visible\:text-gray-700{--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}.group\/item:focus-visible .group-focus-visible\/item\:underline{text-decoration-line:underline}.group\/link:focus-visible .group-focus-visible\/link\:underline{text-decoration-line:underline}:is(.dark .dark\:flex){display:flex}:is(.dark .dark\:hidden){display:none}:is(.dark .dark\:divide-white\/10)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:divide-white\/5)>:not([hidden])~:not([hidden]){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-gray-600){--tw-border-opacity:1;border-color:rgba(var(--gray-600),var(--tw-border-opacity))}:is(.dark .dark\:border-gray-700){--tw-border-opacity:1;border-color:rgba(var(--gray-700),var(--tw-border-opacity))}:is(.dark .dark\:border-primary-500){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:border-white\/10){border-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:border-white\/5){border-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:border-t-white\/10){border-top-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:\!bg-gray-700){--tw-bg-opacity:1!important;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))!important}:is(.dark .dark\:bg-custom-400\/10){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:bg-custom-500){--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-custom-500\/20){background-color:rgba(var(--c-500),.2)}:is(.dark .dark\:bg-gray-400\/10){background-color:rgba(var(--gray-400),.1)}:is(.dark .dark\:bg-gray-500){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-500\/20){background-color:rgba(var(--gray-500),.2)}:is(.dark .dark\:bg-gray-600){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-900\/30){background-color:rgba(var(--gray-900),.3)}:is(.dark .dark\:bg-gray-950){--tw-bg-opacity:1;background-color:rgba(var(--gray-950),var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-950\/75){background-color:rgba(var(--gray-950),.75)}:is(.dark .dark\:bg-primary-400){--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}:is(.dark .dark\:bg-primary-500){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:bg-white\/10){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:bg-white\/5){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:fill-current){fill:currentColor}:is(.dark .dark\:text-custom-300\/50){color:rgba(var(--c-300),.5)}:is(.dark .dark\:text-custom-400){--tw-text-opacity:1;color:rgba(var(--c-400),var(--tw-text-opacity))}:is(.dark .dark\:text-custom-400\/10){color:rgba(var(--c-400),.1)}:is(.dark .dark\:text-danger-400){--tw-text-opacity:1;color:rgba(var(--danger-400),var(--tw-text-opacity))}:is(.dark .dark\:text-danger-500){--tw-text-opacity:1;color:rgba(var(--danger-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-300\/50){color:rgba(var(--gray-300),.5)}:is(.dark .dark\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-500){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-700){--tw-text-opacity:1;color:rgba(var(--gray-700),var(--tw-text-opacity))}:is(.dark .dark\:text-gray-800){--tw-text-opacity:1;color:rgba(var(--gray-800),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-400){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}:is(.dark .dark\:text-primary-500){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-white\/5){color:hsla(0,0%,100%,.05)}:is(.dark .dark\:ring-custom-400\/30){--tw-ring-color:rgba(var(--c-400),0.3)}:is(.dark .dark\:ring-custom-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-danger-500){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-400\/20){--tw-ring-color:rgba(var(--gray-400),0.2)}:is(.dark .dark\:ring-gray-50\/10){--tw-ring-color:rgba(var(--gray-50),0.1)}:is(.dark .dark\:ring-gray-700){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-700),var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-900){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-900),var(--tw-ring-opacity))}:is(.dark .dark\:ring-white\/10){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:ring-white\/20){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:placeholder\:text-gray-500)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:placeholder\:text-gray-500)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .dark\:before\:bg-primary-500):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .dark\:checked\:bg-danger-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--danger-500),var(--tw-bg-opacity))}:is(.dark .dark\:checked\:bg-primary-500:checked){--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity))}:is(.dark .dark\:focus-within\:bg-white\/5:focus-within){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:hover\:bg-custom-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--c-400),var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-custom-400\/10:hover){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:hover\:bg-white\/10:hover){background-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:hover\:bg-white\/5:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:hover\:text-custom-300:hover){--tw-text-opacity:1;color:rgba(var(--c-300),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-custom-300\/75:hover){color:rgba(var(--c-300),.75)}:is(.dark .dark\:hover\:text-gray-200:hover){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-gray-300\/75:hover){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:hover\:text-gray-400:hover){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:hover\:ring-white\/20:hover){--tw-ring-color:hsla(0,0%,100%,.2)}:is(.dark .dark\:focus\:ring-danger-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-primary-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:checked\:focus\:ring-danger-400\/50:focus:checked){--tw-ring-color:rgba(var(--danger-400),0.5)}:is(.dark .dark\:checked\:focus\:ring-primary-400\/50:focus:checked){--tw-ring-color:rgba(var(--primary-400),0.5)}:is(.dark .dark\:focus-visible\:border-primary-500:focus-visible){--tw-border-opacity:1;border-color:rgba(var(--primary-500),var(--tw-border-opacity))}:is(.dark .dark\:focus-visible\:bg-custom-400\/10:focus-visible){background-color:rgba(var(--c-400),.1)}:is(.dark .dark\:focus-visible\:bg-white\/5:focus-visible){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:focus-visible\:text-custom-300\/75:focus-visible){color:rgba(var(--c-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-300\/75:focus-visible){color:rgba(var(--gray-300),.75)}:is(.dark .dark\:focus-visible\:text-gray-400:focus-visible){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:focus-visible\:ring-custom-400\/50:focus-visible){--tw-ring-color:rgba(var(--c-400),0.5)}:is(.dark .dark\:focus-visible\:ring-custom-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--c-500),var(--tw-ring-opacity))}:is(.dark .dark\:focus-visible\:ring-primary-500:focus-visible){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}:is(.dark .dark\:disabled\:bg-transparent:disabled){background-color:transparent}:is(.dark .dark\:disabled\:text-gray-400:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .dark\:disabled\:ring-white\/10:disabled){--tw-ring-color:hsla(0,0%,100%,.1)}:is(.dark .dark\:disabled\:\[-webkit-text-fill-color\:theme\(colors\.gray\.400\)\]:disabled){-webkit-text-fill-color:rgba(var(--gray-400),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::-moz-placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:placeholder\:\[-webkit-text-fill-color\:theme\(colors\.gray\.500\)\]:disabled)::placeholder{-webkit-text-fill-color:rgba(var(--gray-500),1)}:is(.dark .dark\:disabled\:checked\:bg-gray-600:checked:disabled){--tw-bg-opacity:1;background-color:rgba(var(--gray-600),var(--tw-bg-opacity))}:is(.dark .group\/button:hover .dark\:group-hover\/button\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-200){--tw-text-opacity:1;color:rgba(var(--gray-200),var(--tw-text-opacity))}:is(.dark .group:focus-visible .dark\:group-focus-visible\:text-gray-400){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.sm\:relative{position:relative}.sm\:inset-x-auto{left:auto;right:auto}.sm\:end-0{inset-inline-end:0}.sm\:col-\[--col-span-sm\]{grid-column:var(--col-span-sm)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-\[--col-start-sm\]{grid-column-start:var(--col-start-sm)}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.sm\:ms-auto{margin-inline-start:auto}.sm\:mt-7{margin-top:1.75rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:table-cell{display:table-cell}.sm\:grid{display:grid}.sm\:inline-grid{display:inline-grid}.sm\:hidden{display:none}.sm\:w-\[calc\(100\%\+3rem\)\]{width:calc(100% + 3rem)}.sm\:w-screen{width:100vw}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-5xl{max-width:64rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-7xl{max-width:80rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:max-w-xs{max-width:20rem}.sm\:columns-\[--cols-sm\]{-moz-columns:var(--cols-sm);columns:var(--cols-sm)}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[--cols-sm\]{grid-template-columns:var(--cols-sm)}.sm\:grid-cols-\[repeat\(auto-fit\2c minmax\(0\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-1{gap:.25rem}.sm\:gap-3{gap:.75rem}.sm\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sm\:rounded-xl{border-radius:.75rem}.sm\:p-10{padding:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-1{padding-bottom:.25rem;padding-top:.25rem}.sm\:py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.sm\:pe-3{padding-inline-end:.75rem}.sm\:pe-6{padding-inline-end:1.5rem}.sm\:ps-3{padding-inline-start:.75rem}.sm\:ps-6{padding-inline-start:1.5rem}.sm\:pt-1{padding-top:.25rem}.sm\:pt-1\.5{padding-top:.375rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:leading-6{line-height:1.5rem}.sm\:first-of-type\:ps-3:first-of-type{padding-inline-start:.75rem}.sm\:first-of-type\:ps-6:first-of-type{padding-inline-start:1.5rem}.sm\:last-of-type\:pe-3:last-of-type{padding-inline-end:.75rem}.sm\:last-of-type\:pe-6:last-of-type{padding-inline-end:1.5rem}}@media (min-width:768px){.md\:bottom-4{bottom:1rem}.md\:order-first{order:-9999}.md\:col-\[--col-span-md\]{grid-column:var(--col-span-md)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-start-\[--col-start-md\]{grid-column-start:var(--col-start-md)}.md\:block{display:block}.md\:flex{display:flex}.md\:table-cell{display:table-cell}.md\:inline-grid{display:inline-grid}.md\:hidden{display:none}.md\:columns-\[--cols-md\]{-moz-columns:var(--cols-md);columns:var(--cols-md)}.md\:grid-flow-col{grid-auto-flow:column}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[--cols-md\]{grid-template-columns:var(--cols-md)}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:justify-end{justify-content:flex-end}.md\:gap-1{gap:.25rem}.md\:gap-3{gap:.75rem}.md\:divide-y-0>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(0px*var(--tw-divide-y-reverse));border-top-width:calc(0px*(1 - var(--tw-divide-y-reverse)))}.md\:rounded-xl{border-radius:.75rem}.md\:p-20{padding:5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:pe-3{padding-inline-end:.75rem}.md\:pe-6{padding-inline-end:1.5rem}.md\:ps-3{padding-inline-start:.75rem}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:z-0{z-index:0}.lg\:col-\[--col-span-lg\]{grid-column:var(--col-span-lg)}.lg\:col-start-\[--col-start-lg\]{grid-column-start:var(--col-start-lg)}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:table-cell{display:table-cell}.lg\:inline-grid{display:inline-grid}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:max-w-xs{max-width:20rem}.lg\:-translate-x-full{--tw-translate-x:-100%}.lg\:-translate-x-full,.lg\:translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:translate-x-0{--tw-translate-x:0px}.lg\:columns-\[--cols-lg\]{-moz-columns:var(--cols-lg);columns:var(--cols-lg)}.lg\:grid-cols-\[--cols-lg\]{grid-template-columns:var(--cols-lg)}.lg\:flex-row{flex-direction:row}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:gap-1{gap:.25rem}.lg\:gap-3{gap:.75rem}.lg\:bg-transparent{background-color:transparent}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pe-8{padding-inline-end:2rem}.lg\:shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.lg\:shadow-none,.lg\:shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lg\:shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.lg\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.lg\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.lg\:transition-none{transition-property:none}.lg\:delay-100{transition-delay:.1s}:is(.dark .dark\:lg\:bg-transparent){background-color:transparent}}@media (min-width:1280px){.xl\:col-\[--col-span-xl\]{grid-column:var(--col-span-xl)}.xl\:col-start-\[--col-start-xl\]{grid-column-start:var(--col-start-xl)}.xl\:block{display:block}.xl\:table-cell{display:table-cell}.xl\:inline-grid{display:inline-grid}.xl\:hidden{display:none}.xl\:columns-\[--cols-xl\]{-moz-columns:var(--cols-xl);columns:var(--cols-xl)}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[--cols-xl\]{grid-template-columns:var(--cols-xl)}.xl\:flex-row{flex-direction:row}.xl\:items-start{align-items:flex-start}.xl\:items-end{align-items:flex-end}.xl\:items-center{align-items:center}.xl\:gap-1{gap:.25rem}.xl\:gap-3{gap:.75rem}}@media (min-width:1536px){.\32xl\:col-\[--col-span-2xl\]{grid-column:var(--col-span-2xl)}.\32xl\:col-start-\[--col-start-2xl\]{grid-column-start:var(--col-start-2xl)}.\32xl\:block{display:block}.\32xl\:table-cell{display:table-cell}.\32xl\:inline-grid{display:inline-grid}.\32xl\:hidden{display:none}.\32xl\:columns-\[--cols-2xl\]{-moz-columns:var(--cols-2xl);columns:var(--cols-2xl)}.\32xl\:grid-cols-\[--cols-2xl\]{grid-template-columns:var(--cols-2xl)}.\32xl\:flex-row{flex-direction:row}.\32xl\:items-start{align-items:flex-start}.\32xl\:items-end{align-items:flex-end}.\32xl\:items-center{align-items:center}.\32xl\:gap-1{gap:.25rem}.\32xl\:gap-3{gap:.75rem}}.ltr\:hidden:where([dir=ltr],[dir=ltr] *){display:none}.rtl\:hidden:where([dir=rtl],[dir=rtl] *){display:none}.rtl\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-5:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-1\/2:where([dir=rtl],[dir=rtl] *){--tw-translate-x:50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:flex-row-reverse:where([dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:divide-x-reverse:where([dir=rtl],[dir=rtl] *)>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}@media (min-width:1024px){.rtl\:lg\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x:-0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:lg\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}.\[\&\.trix-active\]\:bg-gray-50.trix-active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.\[\&\.trix-active\]\:text-primary-600.trix-active{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity))}:is(.dark .dark\:\[\&\.trix-active\]\:bg-white\/5.trix-active){background-color:hsla(0,0%,100%,.05)}:is(.dark .dark\:\[\&\.trix-active\]\:text-primary-400.trix-active){--tw-text-opacity:1;color:rgba(var(--primary-400),var(--tw-text-opacity))}.\[\&\:\:-ms-reveal\]\:hidden::-ms-reveal{display:none}.\[\&\:not\(\:first-of-type\)\]\:border-s:not(:first-of-type){border-inline-start-width:1px}.\[\&\:not\(\:has\(\.fi-ac-action\:focus\)\)\]\:focus-within\:ring-2:focus-within:not(:has(.fi-ac-action:focus)){--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.\[\&\:not\(\:has\(\.fi-ac-action\:focus\)\)\]\:focus-within\:ring-danger-600:focus-within:not(:has(.fi-ac-action:focus)){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-600),var(--tw-ring-opacity))}.\[\&\:not\(\:has\(\.fi-ac-action\:focus\)\)\]\:focus-within\:ring-primary-600:focus-within:not(:has(.fi-ac-action:focus)){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}:is(.dark .dark\:\[\&\:not\(\:has\(\.fi-ac-action\:focus\)\)\]\:focus-within\:ring-danger-500:focus-within:not(:has(.fi-ac-action:focus))){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--danger-500),var(--tw-ring-opacity))}:is(.dark .dark\:\[\&\:not\(\:has\(\.fi-ac-action\:focus\)\)\]\:focus-within\:ring-primary-500:focus-within:not(:has(.fi-ac-action:focus))){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-500),var(--tw-ring-opacity))}.\[\&\:not\(\:last-of-type\)\]\:border-e:not(:last-of-type){border-inline-end-width:1px}.\[\&\:not\(\:nth-child\(1_of_\.fi-btn\)\)\]\:shadow-\[-1px_0_0_0_theme\(colors\.gray\.200\)\]:not(:nth-child(1 of .fi-btn)){--tw-shadow:-1px 0 0 0 rgba(var(--gray-200),1);--tw-shadow-colored:-1px 0 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .dark\:\[\&\:not\(\:nth-child\(1_of_\.fi-btn\)\)\]\:shadow-\[-1px_0_0_0_theme\(colors\.white\/20\%\)\]:not(:nth-child(1 of .fi-btn))){--tw-shadow:-1px 0 0 0 hsla(0,0%,100%,.2);--tw-shadow-colored:-1px 0 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.\[\&\:not\(\:nth-last-child\(1_of_\.fi-btn\)\)\]\:me-px:not(:nth-last-child(1 of .fi-btn)){margin-inline-end:1px}.\[\&\:nth-child\(1_of_\.fi-btn\)\]\:rounded-s-lg:nth-child(1 of .fi-btn){border-end-start-radius:.5rem;border-start-start-radius:.5rem}.\[\&\:nth-last-child\(1_of_\.fi-btn\)\]\:rounded-e-lg:nth-last-child(1 of .fi-btn){border-end-end-radius:.5rem;border-start-end-radius:.5rem}.\[\&\>\*\:first-child\]\:relative>:first-child{position:relative}.\[\&\>\*\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\*\:first-child\]\:before\:absolute>:first-child:before{content:var(--tw-content);position:absolute}.\[\&\>\*\:first-child\]\:before\:inset-y-0>:first-child:before{bottom:0;content:var(--tw-content);top:0}.\[\&\>\*\:first-child\]\:before\:start-0>:first-child:before{content:var(--tw-content);inset-inline-start:0}.\[\&\>\*\:first-child\]\:before\:w-0\.5>:first-child:before{content:var(--tw-content);width:.125rem}.\[\&\>\*\:first-child\]\:before\:bg-primary-600>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity));content:var(--tw-content)}:is(.dark .\[\&\>\*\:first-child\]\:dark\:before\:bg-primary-500)>:first-child:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-500),var(--tw-bg-opacity));content:var(--tw-content)}.\[\&\>\*\:last-child\]\:mb-0>:last-child{margin-bottom:0}.\[\&_\.choices\\_\\_inner\]\:ps-0 .choices__inner{padding-inline-start:0}.\[\&_\.fi-badge-delete-button\]\:hidden .fi-badge-delete-button{display:none}.\[\&_\.filepond--root\]\:font-sans .filepond--root{font-family:var(--font-family),ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\[\&_optgroup\]\:bg-white optgroup{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_optgroup\]\:dark\:bg-gray-900) optgroup{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.\[\&_option\]\:bg-white option{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}:is(.dark .\[\&_option\]\:dark\:bg-gray-900) option{--tw-bg-opacity:1;background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}:checked+*>.\[\:checked\+\*\>\&\]\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[\@media\(hover\:hover\)\]\:duration-75{transition-duration:75ms}}input:checked+.\[input\:checked\+\&\]\:bg-custom-600{--tw-bg-opacity:1;background-color:rgba(var(--c-600),var(--tw-bg-opacity))}input:checked+.\[input\:checked\+\&\]\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}input:checked+.\[input\:checked\+\&\]\:ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}input:checked+.\[input\:checked\+\&\]\:hover\:bg-custom-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark input:checked+.dark\:\[input\:checked\+\&\]\:bg-custom-500){--tw-bg-opacity:1;background-color:rgba(var(--c-500),var(--tw-bg-opacity))}:is(.dark input:checked+.dark\:\[input\:checked\+\&\]\:hover\:bg-custom-400:hover){--tw-bg-opacity:1;background-color:rgba(var(--c-400),var(--tw-bg-opacity))}input:checked:focus-visible+.\[input\:checked\:focus-visible\+\&\]\:ring-custom-500\/50{--tw-ring-color:rgba(var(--c-500),0.5)}:is(.dark input:checked:focus-visible+.dark\:\[input\:checked\:focus-visible\+\&\]\:ring-custom-400\/50){--tw-ring-color:rgba(var(--c-400),0.5)}input:focus-visible+.\[input\:focus-visible\+\&\]\:z-10{z-index:10}input:focus-visible+.\[input\:focus-visible\+\&\]\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}input:focus-visible+.\[input\:focus-visible\+\&\]\:ring-gray-950\/10{--tw-ring-color:rgba(var(--gray-950),0.1)}:is(.dark input:focus-visible+.dark\:\[input\:focus-visible\+\&\]\:ring-white\/20){--tw-ring-color:hsla(0,0%,100%,.2)} \ No newline at end of file diff --git a/public/css/filament/forms/forms.css b/public/css/filament/forms/forms.css index d3ff19984..a9458cb7a 100644 --- a/public/css/filament/forms/forms.css +++ b/public/css/filament/forms/forms.css @@ -1,4 +1,4 @@ -input::-webkit-datetime-edit{display:block;padding:0}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.filepond--assistant{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--browser.filepond--browser{font-size:0;left:1em;margin:0;opacity:0;padding:0;position:absolute;top:1.75em;width:calc(100% - 2em)}.filepond--data{border:none;contain:strict;height:0;margin:0;padding:0;visibility:hidden;width:0}.filepond--data,.filepond--drip{pointer-events:none;position:absolute}.filepond--drip{background:rgba(0,0,0,.01);border-radius:.5em;inset:0;opacity:.1;overflow:hidden}.filepond--drip-blob{background:#292625;border-radius:50%;height:8em;margin-left:-4em;margin-top:-4em;transform-origin:center center;width:8em}.filepond--drip-blob,.filepond--drop-label{left:0;position:absolute;top:0;will-change:transform,opacity}.filepond--drop-label{align-items:center;color:#4f4f4f;display:flex;height:0;justify-content:center;margin:0;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;line-height:1.5;text-align:center}.filepond--label-action{-webkit-text-decoration-skip:ink;cursor:pointer;text-decoration:underline;text-decoration-color:#a7a4a4;text-decoration-skip-ink:auto}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{border:none;font-family:inherit;font-size:1em;height:1.625em;line-height:inherit;margin:0;outline:none;padding:0;width:1.625em;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file-action-button.filepond--file-action-button svg{height:100%;width:100%}.filepond--file-action-button.filepond--file-action-button:after{content:"";inset:-.75em;position:absolute}.filepond--file-action-button{background-color:#00000080;background-image:none;border-radius:50%;box-shadow:0 0 #fff0;color:#fff;cursor:auto;transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em #ffffffe6}.filepond--file-action-button[disabled]{background-color:#00000040;color:#ffffff80}.filepond--file-action-button[hidden]{display:none}.filepond--file-info{align-items:flex-start;display:flex;flex:1;flex-direction:column;margin:0 .5em 0 0;min-width:0;pointer-events:none;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{align-items:flex-end;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;pointer-events:none;position:static;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;height:100%;margin:0;min-width:0;padding:0}.filepond--file-wrapper.filepond--file-wrapper>legend{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file{align-items:flex-start;border-radius:.5em;color:#fff;display:flex;height:100%;padding:.5625em;position:static}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes shake{10%,90%{transform:translate(-.0625em)}20%,80%{transform:translate(.125em)}30%,50%,70%{transform:translate(-.25em)}40%,60%{transform:translate(.25em)}}@keyframes fall{0%{animation-timing-function:ease-out;opacity:0;transform:scale(.5)}70%{animation-timing-function:ease-in-out;opacity:1;transform:scale(1.1)}to{animation-timing-function:ease-out;transform:scale(1)}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";inset:0;position:absolute;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{left:0;margin:.25em;padding:0;position:absolute;right:0;top:0;will-change:transform,opacity;z-index:1}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em #00000040}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{box-shadow:0 0 0 transparent;transition:box-shadow .125s ease-in-out}.filepond--item[data-drag-state=drag]{cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em #00000053}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{left:0;margin:0;position:absolute;right:0;top:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);overflow-x:hidden;overflow-y:scroll}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#0000004d;border:.3125em solid transparent;border-radius:99999px}.filepond--list.filepond--list{list-style-type:none;margin:0;padding:0;position:absolute;top:0;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{height:100%;margin:0;max-width:none;width:100%}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{align-items:center;bottom:0;display:flex;height:auto;justify-content:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{height:100%;margin-bottom:0;margin-top:0;overflow:hidden}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{height:100%;left:0;right:0}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status,.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{background-color:#f1f0ef;border-radius:.5em}.filepond--panel{height:100%!important;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:0}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{background-color:transparent!important;border:none!important;transform-style:preserve-3d}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{left:0;margin:0;padding:0;position:absolute;right:0;top:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom:none!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.filepond--panel-top:after{background-color:inherit;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.filepond--panel-bottom,.filepond--panel-center{backface-visibility:hidden;transform:translate3d(0,.5em,0);transform-origin:left top;will-change:transform}.filepond--panel-bottom{border-top:none!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.filepond--panel-bottom:before{background-color:inherit;content:"";height:2px;left:0;position:absolute;right:0;top:-1px}.filepond--panel-center{border-bottom:none!important;border-radius:0!important;border-top:none!important;height:100px!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{color:#fff;height:1.25em;margin:0;pointer-events:none;position:static;width:1.25em;will-change:transform,opacity}.filepond--progress-indicator svg{height:100%;transform-box:fill-box;vertical-align:top;width:100%}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;contain:layout style size;direction:ltr;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1rem;font-weight:450;line-height:normal;margin-bottom:1em;position:relative;text-align:left;text-rendering:optimizeLegibility}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-bottom:1em;margin-top:1em}.filepond--root .filepond--credits{bottom:-14px;color:inherit;font-size:11px;line-height:.85;opacity:.175;position:absolute;right:0;text-decoration:none;z-index:3}.filepond--root .filepond--credits[style]{bottom:auto;margin-top:14px;top:0}.filepond--action-edit-item.filepond--action-edit-item{height:2em;padding:.1875em;width:2em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{background:transparent;border:none;color:inherit;font-family:inherit;line-height:inherit;margin:0 0 0 .25em;outline:none;padding:0;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{height:1.3125em;width:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}.filepond--image-preview-markup{left:0;position:absolute;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;left:0;margin:0;max-height:7rem;min-height:5rem;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:2}.filepond--image-preview-overlay svg{color:inherit;height:auto;max-height:inherit;width:100%}.filepond--image-preview-overlay-idle{color:#282828d9;mix-blend-mode:multiply}.filepond--image-preview-overlay-success{color:#369763;mix-blend-mode:normal}.filepond--image-preview-overlay-failure{color:#c44e47;mix-blend-mode:normal}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--image-preview{align-items:center;background:#222;display:flex;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;will-change:transform,opacity;z-index:1}.filepond--image-clip{margin:0 auto;overflow:hidden;position:relative}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0h50v50H0M50 50h50v50H50'/%3E%3C/svg%3E");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{left:0;position:absolute;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{align-items:center;display:flex;height:100%;justify-content:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{bottom:0;top:auto;transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-bottom:.1875em;margin-left:.1875em;margin-top:0}.filepond--media-preview audio{display:none}.filepond--media-preview .audioplayer{margin:2.3em auto auto;width:calc(100% - 1.4em)}.filepond--media-preview .playpausebtn{background-position:50%;background-repeat:no-repeat;border:none;border-radius:25px;cursor:pointer;float:left;height:25px;margin-right:.3em;margin-top:.3em;outline:none;width:25px}.filepond--media-preview .playpausebtn:hover{background-color:#00000080}.filepond--media-preview .play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyElEQVQ4T9XUsWoCQRRG4XPaFL5SfIy8gKYKBCysrax8Ahs7qzQ2qVIFOwsrsbEWLEK6EBFGBrIQhN2d3dnGgalm+Jh7789Ix8uOPe4YDCH0gZ66atKW0pJDCE/AEngDXtRjCpwCRucbGANzNVTBqWBhfAJDdV+GNgWj8wtM41bPt3AbsDB2f69d/0dzwC0wUDe54A8wAWbqJbfkD+BZPeQO5QsYqYu6LKb0MIb7VT3VYfG8CnwEHtT3FKi4c8e/TZMyk3LYFrwCgMdHFbRDKS8AAAAASUVORK5CYII=)}.filepond--media-preview .pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAh0lEQVQ4T+2UsQkCURBE30PLMbAMMResQrAPsQ0TK9AqDKxGZeTLD74aGNwlhzfZssvADDMrPcOe+RggYZIJcG2s2KinMidZAvu6u6uzT8u+JCeZArfmcKUeK+EaONTdQy23bxgJX8aPHvIHsSnVuzTx36rn2pQFsGuqN//ZlK7vbIDvq6vkJ9yteBXzecYbAAAAAElFTkSuQmCC)}.filepond--media-preview .timeline{background:hsla(0,0%,100%,.3);border-radius:15px;float:left;height:3px;margin-top:1em;width:calc(100% - 2.5em)}.filepond--media-preview .playhead{background:#fff;border-radius:50%;height:13px;margin-top:-5px;width:13px}.filepond--media-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0}.filepond--media-preview-wrapper:before{background:linear-gradient(180deg,#000 0,transparent);content:" ";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#00000000",GradientType=0);height:2em;position:absolute;width:100%;z-index:3}.filepond--media-preview{display:block;height:100%;position:relative;transform-origin:center center;width:100%;will-change:transform,opacity;z-index:1}.filepond--media-preview audio,.filepond--media-preview video{width:100%;will-change:transform}.filepond--root{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:0}:is(.dark .filepond--root){--tw-ring-color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.05)}.filepond--root[data-disabled=disabled]{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .filepond--root[data-disabled=disabled]){--tw-ring-color:hsla(0,0%,100%,.1);background-color:transparent}.filepond--panel-root{background-color:transparent}.filepond--drop-label label{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;padding:.75rem!important}:is(.dark .filepond--drop-label label){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.filepond--label-action{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity));font-weight:500;text-decoration-line:none;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.filepond--label-action:hover{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .filepond--label-action){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .filepond--label-action:hover){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.filepond--drip-blob{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}:is(.dark .filepond--drip-blob){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}.filepond--root[data-style-panel-layout=grid] .filepond--item{display:inline;width:calc(50% - .5rem)}@media (min-width:1024px){.filepond--root[data-style-panel-layout=grid] .filepond--item{width:calc(33.33% - .5rem)}}.filepond--download-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--download-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--download-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--open-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--open-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--open-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--file-action-button.filepond--action-edit-item{background-color:rgba(0,0,0,.5)}.cropper-drag-box.cropper-crop.cropper-modal{background-color:rgba(var(--gray-100),.5);opacity:1}:is(.dark .cropper-drag-box.cropper-crop.cropper-modal){background-color:rgba(var(--gray-900),.8)}.fi-fo-file-upload-circle-cropper .cropper-face,.fi-fo-file-upload-circle-cropper .cropper-view-box{border-radius:9999px}.CodeMirror{color:#000;direction:ltr;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background-color:#f7f7f7;border-right:1px solid #ddd;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;border:0!important;width:auto}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{inset:-50px 0 0;overflow:hidden;position:absolute}.CodeMirror-ruler{border-left:1px solid #ccc;bottom:0;position:absolute;top:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-50px;margin-right:-50px;outline:0;overflow:scroll!important;padding-bottom:50px;position:relative;z-index:0}.CodeMirror-sizer{border-right:50px solid transparent;position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{display:none;outline:0;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{left:0;min-height:100%;position:absolute;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-50px;vertical-align:top;white-space:normal}.CodeMirror-gutter-wrapper{background:0 0!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{bottom:0;position:absolute;top:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{word-wrap:normal;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-variant-ligatures:contextual;line-height:inherit;margin:0;overflow:visible;position:relative;white-space:pre;z-index:2}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{inset:0;position:absolute;z-index:0}.CodeMirror-linewidget{padding:.1px;position:relative;z-index:2}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{word-wrap:break-word;border:1px solid #ced4da;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-sizing:border-box;font:inherit;height:auto;padding:10px;z-index:0}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;border-bottom-right-radius:0!important;border-right:none!important;height:auto;inset:50px 0 0;position:fixed!important;z-index:8}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-bottom-right-radius:0;border-right:none!important;flex:1 1 auto;position:relative}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{border-left:1px solid #ced4da;border-right:1px solid #ced4da;border-top:1px solid #ced4da;border-top-left-radius:4px;border-top-right-radius:4px;padding:9px 10px;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.editor-toolbar.fullscreen{background:#fff;border:0;box-sizing:border-box;height:50px;left:0;opacity:1;padding-bottom:10px;padding-top:10px;position:fixed;top:0;width:100%;z-index:9}.editor-toolbar.fullscreen:before{background:linear-gradient(90deg,#fff 0,hsla(0,0%,100%,0));height:50px;left:0;margin:0;padding:0;position:fixed;top:0;width:20px}.editor-toolbar.fullscreen:after{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:50px;margin:0;padding:0;position:fixed;right:0;top:0;width:20px}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;border:1px solid transparent;border-radius:3px;cursor:pointer;display:inline-block;height:30px;margin:0;padding:0;text-align:center;text-decoration:none!important}.editor-toolbar button{font-weight:700;min-width:30px;padding:0 6px;white-space:nowrap}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;display:inline-block;margin:0 6px;text-indent:-10px;width:0}.editor-toolbar button:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;position:relative;top:2px;vertical-align:text-bottom}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"\25b2"}.editor-toolbar button.heading-smaller:after{content:"\25bc"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{color:#959694;font-size:12px;padding:8px 10px;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;margin-left:1em;min-width:4em}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview-full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:7}.editor-preview-full,.editor-preview-side{box-sizing:border-box;display:none;overflow:auto}.editor-preview-side{word-wrap:break-word;border:1px solid #ddd;bottom:0;position:fixed;right:0;top:50px;width:50%;z-index:9}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{background:#fafafa;padding:10px}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:calc(1.375rem + 1.5vw)}.cm-s-easymde .cm-header-2{font-size:calc(1.325rem + .9vw)}.cm-s-easymde .cm-header-3{font-size:calc(1.3rem + .6vw)}.cm-s-easymde .cm-header-4{font-size:calc(1.275rem + .3vw)}.cm-s-easymde .cm-header-5{font-size:1.25rem}.cm-s-easymde .cm-header-6{font-size:1rem}.cm-s-easymde .cm-header-1,.cm-s-easymde .cm-header-2,.cm-s-easymde .cm-header-3,.cm-s-easymde .cm-header-4,.cm-s-easymde .cm-header-5,.cm-s-easymde .cm-header-6{line-height:1.2;margin-bottom:.5rem}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{border:1px solid #fff;border-radius:0;position:relative}.editor-toolbar .easymde-dropdown,.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff,#fff 84%,#333 0,#333)}.easymde-dropdown-content{background-color:#f9f9f9;box-shadow:0 8px 16px #0003;display:block;padding:8px;position:absolute;top:30px;visibility:hidden;z-index:2}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}.easymde-dropdown-content button{display:block}span[data-img-src]:after{background-image:var(--bg-image);background-repeat:no-repeat;background-size:contain;content:"";display:block;height:0;max-height:100%;max-width:100%;padding-top:var(--height);width:var(--width)}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}.EasyMDEContainer .cm-s-easymde .cm-header-1{font-size:1.875rem;line-height:2.25rem}.EasyMDEContainer .cm-s-easymde .cm-header-2{font-size:1.5rem;line-height:2rem}.EasyMDEContainer .cm-s-easymde .cm-header-3{font-size:1.25rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-4{font-size:1.125rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-5{font-size:1rem;line-height:1.5rem}.EasyMDEContainer .cm-s-easymde .cm-header-6{font-size:.875rem;line-height:1.25rem}.EasyMDEContainer .cm-s-easymde .cm-comment{background-image:none}.EasyMDEContainer .cm-keyword{color:#708}.EasyMDEContainer .cm-atom{color:#219}.EasyMDEContainer .cm-number{color:#164}.EasyMDEContainer .cm-def{color:#00f}.EasyMDEContainer .cm-variable-2{color:#05a}.EasyMDEContainer .cm-formatting-list,.EasyMDEContainer .cm-formatting-list+.cm-variable-2{color:#000}.EasyMDEContainer .cm-s-default .cm-type,.EasyMDEContainer .cm-variable-3{color:#085}.EasyMDEContainer .cm-comment{color:#a50}.EasyMDEContainer .cm-string{color:#a11}.EasyMDEContainer .cm-string-2{color:#f50}.EasyMDEContainer .cm-meta,.EasyMDEContainer .cm-qualifier{color:#555}.EasyMDEContainer .cm-builtin{color:#30a}.EasyMDEContainer .cm-bracket{color:#997}.EasyMDEContainer .cm-tag{color:#170}.EasyMDEContainer .cm-attribute{color:#00c}.EasyMDEContainer .cm-hr{color:#999}.EasyMDEContainer .cm-link{color:#00c}.EasyMDEContainer .CodeMirror{background-color:transparent;border-style:none;color:inherit;padding:.375rem .75rem}.EasyMDEContainer .CodeMirror-scroll{height:auto}.EasyMDEContainer .CodeMirror-cursor{border-color:currentColor}.EasyMDEContainer .editor-toolbar{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity));border-radius:0;border-width:0 0 1px;-moz-column-gap:.25rem;column-gap:.25rem;display:flex;overflow-x:auto;padding:.5rem .625rem}:is(.dark .EasyMDEContainer .editor-toolbar){border-color:hsla(0,0%,100%,.1)}.EasyMDEContainer .editor-toolbar button{border-radius:.5rem;border-style:none;cursor:pointer;display:grid;height:2rem;padding:0;place-content:center;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.EasyMDEContainer .editor-toolbar button:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .EasyMDEContainer .editor-toolbar button:focus-visible){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button.active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button:before{--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity));display:block;height:1rem;width:1rem}:is(.dark .EasyMDEContainer .editor-toolbar button):before{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:before{content:"";-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.EasyMDEContainer .editor-toolbar button.active:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar .separator{border-style:none;margin:0!important;width:.25rem}.EasyMDEContainer .editor-toolbar .bold:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .italic:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .strikethrough:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .link:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .heading:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .quote:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .code:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .unordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .ordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .table:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .upload-image:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .undo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .redo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-statusbar{display:none}.fi-fo-rich-editor trix-toolbar .trix-dialogs{position:relative}.fi-fo-rich-editor trix-toolbar .trix-dialog{--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.5rem;bottom:auto;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);left:0;padding:.5rem;position:absolute;right:0;top:1rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields{display:flex;flex-direction:column;gap:.5rem;width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group{display:flex;gap:.5rem}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;border-style:none;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--gray-950),var(--tw-text-opacity));display:block;font-size:.875rem;line-height:1.25rem;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:.75rem;padding-top:.375rem;padding-inline-start:.75rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input){--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-color:hsla(0,0%,100%,.2);background-color:rgba(var(--gray-700),var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}@media (min-width:640px){.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{font-size:.875rem;line-height:1.5rem}}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity));background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);font-size:.75rem;line-height:1rem;padding:.125rem .5rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button){--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-600),var(--tw-ring-opacity));background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-editor:empty:before{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-editor:empty):before{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.fi-fo-rich-editor trix-editor:empty:before{content:attr(placeholder)}.fi-fo-rich-editor trix-editor.prose :where(ol):not(:where([class~=not-prose] *)),.fi-fo-rich-editor trix-editor.prose :where(ul):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:1.625em!important}.fi-fo-rich-editor trix-editor.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:.375em!important}select:not(.choices){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[dir=rtl] select{background-position:left .5rem center!important}.choices{outline:2px solid transparent;outline-offset:2px;position:relative}.choices [hidden]{display:none!important}.choices[data-type*=select-one] .has-no-choices{display:none}.choices[data-type*=select-one] .choices__input{display:block;margin:0;width:100%}.choices__inner{background-repeat:no-repeat;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:2rem;padding-top:.375rem;padding-inline-start:.75rem}@media (min-width:640px){.choices__inner{font-size:.875rem;line-height:1.5rem}}.choices__inner{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-size:1.5em 1.5em}.choices.is-disabled .choices__inner{cursor:default}[dir=rtl] .choices__inner{background-position:left .5rem center}.choices__list--single{display:inline-block}.choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__list--single .choices__item){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices.is-disabled .choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices.is-disabled .choices__list--single .choices__item){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__list--multiple{display:flex;flex-wrap:wrap;gap:.375rem}.choices__list--multiple:not(:empty){margin-bottom:.25rem;margin-left:-.25rem;margin-right:-.25rem;padding-bottom:.125rem;padding-top:.125rem}.choices__list--multiple .choices__item{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-inset:inset;--tw-ring-color:rgba(var(--primary-600),0.1);align-items:center;background-color:rgba(var(--primary-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--primary-600),var(--tw-text-opacity));display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;line-height:1rem;padding:.25rem .5rem;word-break:break-all}:is(.dark .choices__list--multiple .choices__item){--tw-text-opacity:1;--tw-ring-color:rgba(var(--primary-400),0.3);background-color:rgba(var(--primary-400),.1);color:rgba(var(--primary-400),var(--tw-text-opacity))}.choices__list--dropdown,.choices__list[aria-expanded]{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.05);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:none;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;overflow:hidden;overflow-wrap:break-word;position:absolute;top:100%;width:100%;will-change:visibility;z-index:10}:is(.dark .choices__list--dropdown),:is(.dark .choices__list[aria-expanded]){--tw-bg-opacity:1;--tw-ring-color:hsla(0,0%,100%,.1);background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{display:block;padding:.25rem}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{max-height:15rem;overflow:auto;will-change:scroll-position}.choices__item--choice{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:.5rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}:is(.dark .choices__item--choice){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__item--choice.choices__item--selectable{--tw-text-opacity:1;border-radius:.375rem;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__item--choice.choices__item--selectable){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .choices__list--dropdown .choices__item--selectable.is-highlighted),:is(.dark .choices__list[aria-expanded] .choices__item--selectable.is-highlighted){background-color:hsla(0,0%,100%,.05)}.choices__item{cursor:default}.choices__item--disabled{pointer-events:none}.choices__item--disabled:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__item--disabled:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices.is-disabled .choices__placeholder.choices__item,.choices__placeholder.choices__item{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity));cursor:default}:is(.dark .choices.is-disabled .choices__placeholder.choices__item),:is(.dark .choices__placeholder.choices__item){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.choices__button{background-color:transparent;background-position:50%;background-repeat:no-repeat;border-width:0;outline:2px solid transparent;outline-offset:2px;text-indent:-9999px}.choices[data-type*=select-one] .choices__button{height:1rem;inset-inline-end:0;margin-inline-end:2.25rem;opacity:.5;padding:0;position:absolute;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1rem}:is(.dark .choices[data-type*=select-one] .choices__button){opacity:.4}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em;top:calc(50% - .5714em)}.dark .choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button{height:1rem;opacity:.5;width:1rem}:is(.dark .choices[data-type*=select-multiple] .choices__button){opacity:.4}.choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em}.dark .choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button:focus-visible,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus-visible,.choices[data-type*=select-one] .choices__button:hover{opacity:.7}:is(.dark .choices[data-type*=select-multiple] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-multiple] .choices__button:hover),:is(.dark .choices[data-type*=select-one] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-one] .choices__button:hover){opacity:.6}.choices.is-disabled .choices__button,.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices__input{--tw-text-opacity:1;background-color:transparent!important;border-style:none;color:rgba(var(--gray-950),var(--tw-text-opacity));font-size:1rem!important;line-height:1.5rem!important;padding:0!important;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.choices__input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.choices__input:disabled{--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-500),1);color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .choices__input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input:disabled){--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-400),1);color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.choices__input{font-size:.875rem!important;line-height:1.5rem}}.choices__list--dropdown .choices__input{padding:.5rem!important}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;height:0;width:0}.choices__group{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:1rem .5rem .5rem}.choices__group:first-child{padding-top:.5rem}:is(.dark .choices__group){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.webkit-calendar-picker-indicator\:opacity-0::-webkit-calendar-picker-indicator{opacity:0}/*! Bundled license information: +input::-webkit-datetime-edit{display:block;padding:0}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.filepond--assistant{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--browser.filepond--browser{font-size:0;left:1em;margin:0;opacity:0;padding:0;position:absolute;top:1.75em;width:calc(100% - 2em)}.filepond--data{border:none;contain:strict;height:0;margin:0;padding:0;visibility:hidden;width:0}.filepond--data,.filepond--drip{pointer-events:none;position:absolute}.filepond--drip{background:rgba(0,0,0,.01);border-radius:.5em;inset:0;opacity:.1;overflow:hidden}.filepond--drip-blob{background:#292625;border-radius:50%;height:8em;margin-left:-4em;margin-top:-4em;transform-origin:center center;width:8em}.filepond--drip-blob,.filepond--drop-label{left:0;position:absolute;top:0;will-change:transform,opacity}.filepond--drop-label{align-items:center;color:#4f4f4f;display:flex;height:0;justify-content:center;margin:0;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;line-height:1.5;text-align:center}.filepond--label-action{-webkit-text-decoration-skip:ink;cursor:pointer;text-decoration:underline;text-decoration-color:#a7a4a4;text-decoration-skip-ink:auto}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{border:none;font-family:inherit;font-size:1em;height:1.625em;line-height:inherit;margin:0;outline:none;padding:0;width:1.625em;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file-action-button.filepond--file-action-button svg{height:100%;width:100%}.filepond--file-action-button.filepond--file-action-button:after{content:"";inset:-.75em;position:absolute}.filepond--file-action-button{background-color:#00000080;background-image:none;border-radius:50%;box-shadow:0 0 #fff0;color:#fff;cursor:auto;transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em #ffffffe6}.filepond--file-action-button[disabled]{background-color:#00000040;color:#ffffff80}.filepond--file-action-button[hidden]{display:none}.filepond--file-info{align-items:flex-start;display:flex;flex:1;flex-direction:column;margin:0 .5em 0 0;min-width:0;pointer-events:none;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{align-items:flex-end;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;pointer-events:none;position:static;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;height:100%;margin:0;min-width:0;padding:0}.filepond--file-wrapper.filepond--file-wrapper>legend{clip:rect(1px,1px,1px,1px);border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file{align-items:flex-start;border-radius:.5em;color:#fff;display:flex;height:100%;padding:.5625em;position:static}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes shake{10%,90%{transform:translate(-.0625em)}20%,80%{transform:translate(.125em)}30%,50%,70%{transform:translate(-.25em)}40%,60%{transform:translate(.25em)}}@keyframes fall{0%{animation-timing-function:ease-out;opacity:0;transform:scale(.5)}70%{animation-timing-function:ease-in-out;opacity:1;transform:scale(1.1)}to{animation-timing-function:ease-out;transform:scale(1)}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";inset:0;position:absolute;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{left:0;margin:.25em;padding:0;position:absolute;right:0;top:0;will-change:transform,opacity;z-index:1}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em #00000040}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{box-shadow:0 0 0 transparent;transition:box-shadow .125s ease-in-out}.filepond--item[data-drag-state=drag]{cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em #00000053}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{left:0;margin:0;position:absolute;right:0;top:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);overflow-x:hidden;overflow-y:scroll}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#0000004d;border:.3125em solid transparent;border-radius:99999px}.filepond--list.filepond--list{list-style-type:none;margin:0;padding:0;position:absolute;top:0;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{height:100%;margin:0;max-width:none;width:100%}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{align-items:center;bottom:0;display:flex;height:auto;justify-content:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{height:100%;margin-bottom:0;margin-top:0;overflow:hidden}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{height:100%;left:0;right:0}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status,.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{background-color:#f1f0ef;border-radius:.5em}.filepond--panel{height:100%!important;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:0}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{background-color:transparent!important;border:none!important;transform-style:preserve-3d}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{left:0;margin:0;padding:0;position:absolute;right:0;top:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom:none!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.filepond--panel-top:after{background-color:inherit;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.filepond--panel-bottom,.filepond--panel-center{backface-visibility:hidden;transform:translate3d(0,.5em,0);transform-origin:left top;will-change:transform}.filepond--panel-bottom{border-top:none!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.filepond--panel-bottom:before{background-color:inherit;content:"";height:2px;left:0;position:absolute;right:0;top:-1px}.filepond--panel-center{border-bottom:none!important;border-radius:0!important;border-top:none!important;height:100px!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{color:#fff;height:1.25em;margin:0;pointer-events:none;position:static;width:1.25em;will-change:transform,opacity}.filepond--progress-indicator svg{height:100%;transform-box:fill-box;vertical-align:top;width:100%}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;contain:layout style size;direction:ltr;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1rem;font-weight:450;line-height:normal;margin-bottom:1em;position:relative;text-align:left;text-rendering:optimizeLegibility}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-bottom:1em;margin-top:1em}.filepond--root .filepond--credits{bottom:-14px;color:inherit;font-size:11px;line-height:.85;opacity:.175;position:absolute;right:0;text-decoration:none;z-index:3}.filepond--root .filepond--credits[style]{bottom:auto;margin-top:14px;top:0}.filepond--action-edit-item.filepond--action-edit-item{height:2em;padding:.1875em;width:2em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{background:transparent;border:none;color:inherit;font-family:inherit;line-height:inherit;margin:0 0 0 .25em;outline:none;padding:0;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{height:1.3125em;width:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}.filepond--image-preview-markup{left:0;position:absolute;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;left:0;margin:0;max-height:7rem;min-height:5rem;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:2}.filepond--image-preview-overlay svg{color:inherit;height:auto;max-height:inherit;width:100%}.filepond--image-preview-overlay-idle{color:#282828d9;mix-blend-mode:multiply}.filepond--image-preview-overlay-success{color:#369763;mix-blend-mode:normal}.filepond--image-preview-overlay-failure{color:#c44e47;mix-blend-mode:normal}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--image-preview{align-items:center;background:#222;display:flex;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;will-change:transform,opacity;z-index:1}.filepond--image-clip{margin:0 auto;overflow:hidden;position:relative}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0h50v50H0M50 50h50v50H50'/%3E%3C/svg%3E");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{left:0;position:absolute;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{align-items:center;display:flex;height:100%;justify-content:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{bottom:0;top:auto;transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-bottom:.1875em;margin-left:.1875em;margin-top:0}.filepond--media-preview audio{display:none}.filepond--media-preview .audioplayer{margin:2.3em auto auto;width:calc(100% - 1.4em)}.filepond--media-preview .playpausebtn{background-position:50%;background-repeat:no-repeat;border:none;border-radius:25px;cursor:pointer;float:left;height:25px;margin-right:.3em;margin-top:.3em;outline:none;width:25px}.filepond--media-preview .playpausebtn:hover{background-color:#00000080}.filepond--media-preview .play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyElEQVQ4T9XUsWoCQRRG4XPaFL5SfIy8gKYKBCysrax8Ahs7qzQ2qVIFOwsrsbEWLEK6EBFGBrIQhN2d3dnGgalm+Jh7789Ix8uOPe4YDCH0gZ66atKW0pJDCE/AEngDXtRjCpwCRucbGANzNVTBqWBhfAJDdV+GNgWj8wtM41bPt3AbsDB2f69d/0dzwC0wUDe54A8wAWbqJbfkD+BZPeQO5QsYqYu6LKb0MIb7VT3VYfG8CnwEHtT3FKi4c8e/TZMyk3LYFrwCgMdHFbRDKS8AAAAASUVORK5CYII=)}.filepond--media-preview .pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAh0lEQVQ4T+2UsQkCURBE30PLMbAMMResQrAPsQ0TK9AqDKxGZeTLD74aGNwlhzfZssvADDMrPcOe+RggYZIJcG2s2KinMidZAvu6u6uzT8u+JCeZArfmcKUeK+EaONTdQy23bxgJX8aPHvIHsSnVuzTx36rn2pQFsGuqN//ZlK7vbIDvq6vkJ9yteBXzecYbAAAAAElFTkSuQmCC)}.filepond--media-preview .timeline{background:hsla(0,0%,100%,.3);border-radius:15px;float:left;height:3px;margin-top:1em;width:calc(100% - 2.5em)}.filepond--media-preview .playhead{background:#fff;border-radius:50%;height:13px;margin-top:-5px;width:13px}.filepond--media-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0}.filepond--media-preview-wrapper:before{background:linear-gradient(180deg,#000 0,transparent);content:" ";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#00000000",GradientType=0);height:2em;position:absolute;width:100%;z-index:3}.filepond--media-preview{display:block;height:100%;position:relative;transform-origin:center center;width:100%;will-change:transform,opacity;z-index:1}.filepond--media-preview audio,.filepond--media-preview video{width:100%;will-change:transform}.filepond--root{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:0}:is(.dark .filepond--root){--tw-ring-color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.05)}.filepond--root[data-disabled=disabled]{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .filepond--root[data-disabled=disabled]){--tw-ring-color:hsla(0,0%,100%,.1);background-color:transparent}.filepond--panel-root{background-color:transparent}.filepond--drop-label label{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;padding:.75rem!important}:is(.dark .filepond--drop-label label){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.filepond--label-action{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity));font-weight:500;text-decoration-line:none;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.filepond--label-action:hover{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}:is(.dark .filepond--label-action){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .filepond--label-action:hover){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity))}.filepond--drip-blob{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity))}:is(.dark .filepond--drip-blob){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity))}.filepond--root[data-style-panel-layout=grid] .filepond--item{display:inline;width:calc(50% - .5rem)}@media (min-width:1024px){.filepond--root[data-style-panel-layout=grid] .filepond--item{width:calc(33.33% - .5rem)}}.filepond--download-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--download-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--download-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--open-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--open-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--open-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--file-action-button.filepond--action-edit-item{background-color:rgba(0,0,0,.5)}.cropper-drag-box.cropper-crop.cropper-modal{background-color:rgba(var(--gray-100),.5);opacity:1}:is(.dark .cropper-drag-box.cropper-crop.cropper-modal){background-color:rgba(var(--gray-900),.8)}.fi-fo-file-upload-circle-cropper .cropper-face,.fi-fo-file-upload-circle-cropper .cropper-view-box{border-radius:50%}.CodeMirror{color:#000;direction:ltr;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background-color:#f7f7f7;border-right:1px solid #ddd;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;border:0!important;width:auto}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{inset:-50px 0 0;overflow:hidden;position:absolute}.CodeMirror-ruler{border-left:1px solid #ccc;bottom:0;position:absolute;top:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-50px;margin-right:-50px;outline:0;overflow:scroll!important;padding-bottom:50px;position:relative;z-index:0}.CodeMirror-sizer{border-right:50px solid transparent;position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{display:none;outline:0;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{left:0;min-height:100%;position:absolute;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-50px;vertical-align:top;white-space:normal}.CodeMirror-gutter-wrapper{background:0 0!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{bottom:0;position:absolute;top:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{word-wrap:normal;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-variant-ligatures:contextual;line-height:inherit;margin:0;overflow:visible;position:relative;white-space:pre;z-index:2}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{inset:0;position:absolute;z-index:0}.CodeMirror-linewidget{padding:.1px;position:relative;z-index:2}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{word-wrap:break-word;border:1px solid #ced4da;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-sizing:border-box;font:inherit;height:auto;padding:10px;z-index:0}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;border-bottom-right-radius:0!important;border-right:none!important;height:auto;inset:50px 0 0;position:fixed!important;z-index:8}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-bottom-right-radius:0;border-right:none!important;flex:1 1 auto;position:relative}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{border-left:1px solid #ced4da;border-right:1px solid #ced4da;border-top:1px solid #ced4da;border-top-left-radius:4px;border-top-right-radius:4px;padding:9px 10px;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.editor-toolbar.fullscreen{background:#fff;border:0;box-sizing:border-box;height:50px;left:0;opacity:1;padding-bottom:10px;padding-top:10px;position:fixed;top:0;width:100%;z-index:9}.editor-toolbar.fullscreen:before{background:linear-gradient(90deg,#fff 0,hsla(0,0%,100%,0));height:50px;left:0;margin:0;padding:0;position:fixed;top:0;width:20px}.editor-toolbar.fullscreen:after{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:50px;margin:0;padding:0;position:fixed;right:0;top:0;width:20px}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;border:1px solid transparent;border-radius:3px;cursor:pointer;display:inline-block;height:30px;margin:0;padding:0;text-align:center;text-decoration:none!important}.editor-toolbar button{font-weight:700;min-width:30px;padding:0 6px;white-space:nowrap}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;display:inline-block;margin:0 6px;text-indent:-10px;width:0}.editor-toolbar button:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;position:relative;top:2px;vertical-align:text-bottom}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"\25b2"}.editor-toolbar button.heading-smaller:after{content:"\25bc"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{color:#959694;font-size:12px;padding:8px 10px;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;margin-left:1em;min-width:4em}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview-full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:7}.editor-preview-full,.editor-preview-side{box-sizing:border-box;display:none;overflow:auto}.editor-preview-side{word-wrap:break-word;border:1px solid #ddd;bottom:0;position:fixed;right:0;top:50px;width:50%;z-index:9}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{background:#fafafa;padding:10px}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:calc(1.375rem + 1.5vw)}.cm-s-easymde .cm-header-2{font-size:calc(1.325rem + .9vw)}.cm-s-easymde .cm-header-3{font-size:calc(1.3rem + .6vw)}.cm-s-easymde .cm-header-4{font-size:calc(1.275rem + .3vw)}.cm-s-easymde .cm-header-5{font-size:1.25rem}.cm-s-easymde .cm-header-6{font-size:1rem}.cm-s-easymde .cm-header-1,.cm-s-easymde .cm-header-2,.cm-s-easymde .cm-header-3,.cm-s-easymde .cm-header-4,.cm-s-easymde .cm-header-5,.cm-s-easymde .cm-header-6{line-height:1.2;margin-bottom:.5rem}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{border:1px solid #fff;border-radius:0;position:relative}.editor-toolbar .easymde-dropdown,.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff,#fff 84%,#333 0,#333)}.easymde-dropdown-content{background-color:#f9f9f9;box-shadow:0 8px 16px #0003;display:block;padding:8px;position:absolute;top:30px;visibility:hidden;z-index:2}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}.easymde-dropdown-content button{display:block}span[data-img-src]:after{background-image:var(--bg-image);background-repeat:no-repeat;background-size:contain;content:"";display:block;height:0;max-height:100%;max-width:100%;padding-top:var(--height);width:var(--width)}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}:root{--color-cm-red:#991b1b;--color-cm-orange:#9a3412;--color-cm-amber:#92400e;--color-cm-yellow:#854d0e;--color-cm-lime:#3f6212;--color-cm-green:#166534;--color-cm-emerald:#065f46;--color-cm-teal:#115e59;--color-cm-cyan:#155e75;--color-cm-sky:#075985;--color-cm-blue:#1e40af;--color-cm-indigo:#3730a3;--color-cm-violet:#5b21b6;--color-cm-purple:#6b21a8;--color-cm-fuchsia:#86198f;--color-cm-pink:#9d174d;--color-cm-rose:#9f1239;--color-cm-gray:#18181b;--color-cm-gray-muted:#71717a;--color-cm-gray-background:#e4e4e7}.dark{--color-cm-red:#f87171;--color-cm-orange:#fb923c;--color-cm-amber:#fbbf24;--color-cm-yellow:#facc15;--color-cm-lime:#a3e635;--color-cm-green:#4ade80;--color-cm-emerald:#4ade80;--color-cm-teal:#2dd4bf;--color-cm-cyan:#22d3ee;--color-cm-sky:#38bdf8;--color-cm-blue:#60a5fa;--color-cm-indigo:#818cf8;--color-cm-violet:#a78bfa;--color-cm-purple:#c084fc;--color-cm-fuchsia:#e879f9;--color-cm-pink:#f472b6;--color-cm-rose:#fb7185;--color-cm-gray:#fafafa;--color-cm-gray-muted:#a1a1aa;--color-cm-gray-background:#52525b}.cm-s-easymde .cm-comment{background-color:transparent;color:var(--color-cm-gray-muted)}.EasyMDEContainer .CodeMirror-cursor{border-color:currentColor}.dark .EasyMDEContainer .cm-s-easymde span.CodeMirror-selectedtext{filter:invert(100%)}.EasyMDEContainer .cm-s-easymde .cm-keyword{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-atom{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-number{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-def{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable{color:var(--color-cm-yellow)}.EasyMDEContainer .cm-s-easymde .cm-variable-2{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable-3{color:var(--color-cm-emerald)}.EasyMDEContainer .cm-s-easymde .cm-operator,.EasyMDEContainer .cm-s-easymde .cm-property{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-string,.EasyMDEContainer .cm-s-easymde .cm-string-2{color:var(--color-cm-rose)}.EasyMDEContainer .cm-s-easymde .cm-meta{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-error{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-qualifier{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-builtin{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-bracket{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-hr{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote{color:var(--color-cm-sky)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote+.cm-quote{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-list,.EasyMDEContainer .cm-s-easymde .cm-formatting-list+.cm-variable-2,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-variable-2{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-link{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-amber)}.EasyMDEContainer .cm-s-easymde .cm-attribute+.cm-string{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-formatting-code+.cm-comment:not(.cm-formatting-code){background-color:var(--color-cm-gray-background);color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-header-1{font-size:1.875rem;line-height:2.25rem}.EasyMDEContainer .cm-s-easymde .cm-header-2{font-size:1.5rem;line-height:2rem}.EasyMDEContainer .cm-s-easymde .cm-header-3{font-size:1.25rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-4{font-size:1.125rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-5{font-size:1rem;line-height:1.5rem}.EasyMDEContainer .cm-s-easymde .cm-header-6{font-size:.875rem;line-height:1.25rem}.EasyMDEContainer .cm-s-easymde .cm-comment{background-image:none}.EasyMDEContainer .CodeMirror,.EasyMDEContainer .cm-s-easymde .cm-formatting-code-block,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-comment{background-color:transparent;color:inherit}.EasyMDEContainer .CodeMirror{border-style:none;padding:.375rem .75rem}.EasyMDEContainer .CodeMirror-scroll{height:auto}.EasyMDEContainer .editor-toolbar{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity));border-radius:0;border-width:0 0 1px;-moz-column-gap:.25rem;column-gap:.25rem;display:flex;overflow-x:auto;padding:.5rem .625rem}:is(.dark .EasyMDEContainer .editor-toolbar){border-color:hsla(0,0%,100%,.1)}.EasyMDEContainer .editor-toolbar button{border-radius:.5rem;border-style:none;cursor:pointer;display:grid;height:2rem;padding:0;place-content:center;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.EasyMDEContainer .editor-toolbar button:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button:hover){background-color:hsla(0,0%,100%,.05)}:is(.dark .EasyMDEContainer .editor-toolbar button:focus-visible){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button.active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button:before{--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity));display:block;height:1rem;width:1rem}:is(.dark .EasyMDEContainer .editor-toolbar button):before{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar button:before{content:"";-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.EasyMDEContainer .editor-toolbar button.active:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity))}:is(.dark .EasyMDEContainer .editor-toolbar button.active):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity))}.EasyMDEContainer .editor-toolbar .separator{border-style:none;margin:0!important;width:.25rem}.EasyMDEContainer .editor-toolbar .bold:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M321.1 242.4c19-22.3 30.9-50.8 30.9-82.4 0-70.59-57.42-128-128-128l-192 .01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128 0-46.71-25.4-87.21-62.9-109.61zM112 96.01h112c35.3 0 64 28.72 64 64s-28.7 64-64 64H112v-128zM256 416H112V288h144c35.3 0 64 28.71 64 63.1S291.3 416 256 416z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .italic:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192c17.7 0 32 14.32 32 32z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .strikethrough:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21-3.031 17.59-10.88 29.34-24.72 36.99-35.44 19.75-108.5 11.96-186-19.68-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37 29.62 0 58.81-5.156 83.72-18.96 30.81-17.09 50.44-45.46 56.72-82.11 3.998-23.27 2.168-42.58-3.488-59.05H332.2zm155.8-80-176.5-.03c-15.85-5.614-31.83-10.34-46.7-14.62-85.47-24.62-110.9-39.05-103.7-81.33 2.5-14.53 10.16-25.96 22.72-34.03 20.47-13.15 64.06-23.84 155.4.343 17.09 4.53 34.59-5.654 39.13-22.74 4.531-17.09-5.656-34.59-22.75-39.12-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1c-8.83 51.4 9.81 84.2 39.11 106.8H24c-13.25 0-24 10.75-24 23.1 0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1 0-12.3-10.7-23.1-24-23.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .link:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M598.6 41.41C570.1 13.8 534.8 0 498.6 0s-72.36 13.8-99.96 41.41l-43.36 43.36c15.11 8.012 29.47 17.58 41.91 30.02 3.146 3.146 5.898 6.518 8.742 9.838l37.96-37.96C458.5 72.05 477.1 64 498.6 64c20.67 0 40.1 8.047 54.71 22.66 14.61 14.61 22.66 34.04 22.66 54.71s-8.049 40.1-22.66 54.71l-133.3 133.3C405.5 343.1 386 352 365.4 352s-40.1-8.048-54.71-22.66C296 314.7 287.1 295.3 287.1 274.6s8.047-40.1 22.66-54.71l4.44-3.49c-2.1-3.9-4.3-7.9-7.5-11.1-8.6-8.6-19.9-13.3-32.1-13.3-11.93 0-23.1 4.664-31.61 12.97-30.71 53.96-23.63 123.6 22.39 169.6C293 402.2 329.2 416 365.4 416c36.18 0 72.36-13.8 99.96-41.41L598.6 241.3c28.45-28.45 42.24-66.01 41.37-103.3-.87-35.9-14.57-69.84-41.37-96.59zM234 387.4l-37.9 37.9C181.5 439.1 162 448 141.4 448c-20.67 0-40.1-8.047-54.71-22.66-14.61-14.61-22.66-34.04-22.66-54.71s8.049-40.1 22.66-54.71l133.3-133.3C234.5 168 253.1 160 274.6 160s40.1 8.048 54.71 22.66c14.62 14.61 22.66 34.04 22.66 54.71s-8.047 40.1-22.66 54.71l-3.51 3.52c2.094 3.939 4.219 7.895 7.465 11.15C341.9 315.3 353.3 320 365.4 320c11.93 0 23.1-4.664 31.61-12.97 30.71-53.96 23.63-123.6-22.39-169.6C346.1 109.8 310.8 96 274.6 96c-36.2 0-72.3 13.8-99.9 41.4L41.41 270.7C13.81 298.3 0 334.48 0 370.66c0 36.18 13.8 72.36 41.41 99.97C69.01 498.2 105.2 512 141.4 512c36.18 0 72.36-13.8 99.96-41.41l43.36-43.36c-15.11-8.012-29.47-17.58-41.91-30.02-3.21-3.11-5.91-6.51-8.81-9.81z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .heading:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M0 64c0-17.7 14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v112h224V96h-16c-17.7 0-32-14.3-32-32s14.3-32 32-32h96c17.7 0 32 14.3 32 32s-14.3 32-32 32h-16v320h16c17.7 0 32 14.3 32 32s-14.3 32-32 32h-96c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V272H112v144h16c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h16V96H32C14.3 96 0 81.7 0 64z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .quote:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M96 224c-11.28 0-21.95 2.3-32 5.9V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.3-32-32-32C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96zm256 0c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64 17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96-43-96-96-96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .code:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath d='M416 31.94C416 21.75 408.1 0 384.1 0c-13.98 0-26.87 9.072-30.89 23.18l-128 448a31.933 31.933 0 0 0-1.241 8.801C223.1 490.3 232 512 256 512c13.92 0 26.73-9.157 30.75-23.22l128-448c.85-2.97 1.25-5.93 1.25-8.84zM176 143.1c0-18.28-14.95-32-32-32-8.188 0-16.38 3.125-22.62 9.376l-112 112C3.125 239.6 0 247.8 0 255.1s3.125 17.3 9.375 23.5l112 112c6.225 6.3 14.425 8.5 22.625 8.5 17.05 0 32-13.73 32-32 0-8.188-3.125-16.38-9.375-22.63L77.25 255.1l89.38-89.38c6.27-5.42 9.37-13.52 9.37-22.62zm464 112c0-8.188-3.125-16.38-9.375-22.63l-112-112C512.4 115.1 504.2 111.1 496 111.1c-17.05 0-32 13.73-32 32 0 8.188 3.125 16.38 9.375 22.63l89.38 89.38-89.38 89.38C467.1 351.6 464 359.8 464 367.1c0 18.28 14.95 32 32 32 8.188 0 16.38-3.125 22.62-9.376l112-112C636.9 272.4 640 264.2 640 255.1z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .unordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M16 96c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.5-21.49 48-48 48s-48-21.5-48-48zm464-32c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H192c-17.7 0-32-14.3-32-32s14.3-32 32-32h288zM16 416c0-26.5 21.49-48 48-48s48 21.5 48 48-21.49 48-48 48-48-21.5-48-48zm96-160c0 26.5-21.49 48-48 48s-48-21.5-48-48 21.49-48 48-48 48 21.5 48 48z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .ordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M55.1 56.04c0-13.26 11.64-24 24-24h32c14.2 0 24 10.74 24 24V176h16c14.2 0 24 10.8 24 24 0 13.3-9.8 24-24 24h-80c-12.36 0-24-10.7-24-24 0-13.2 11.64-24 24-24h16V80.04h-8c-12.36 0-24-10.75-24-24zm63.6 285.16c-6.6-7.4-18.3-6.9-24.05 1.2l-11.12 15.5c-7.7 10.8-22.69 13.3-33.48 5.6-10.79-7.7-13.28-22.7-5.58-33.4l11.12-15.6c23.74-33.3 72.31-35.7 99.21-4.9 21.3 23.5 20.8 60.9-1.1 84.7L118.8 432H152c13.3 0 24 10.7 24 24s-10.7 24-24 24H64c-9.53 0-18.16-5.6-21.98-14.4-3.83-8.7-2.12-18.9 4.34-25.9l72.04-78c5.3-5.8 5.4-14.6.3-20.5zM512 64c17.7 0 32 14.33 32 32 0 17.7-14.3 32-32 32H256c-17.7 0-32-14.3-32-32 0-17.67 14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256zm0 160c17.7 0 32 14.3 32 32s-14.3 32-32 32H256c-17.7 0-32-14.3-32-32s14.3-32 32-32h256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .table:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath d='M576 1376v-192q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V800q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zM576 608V416q0-14-9-23t-23-9H224q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384v-192q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm-512-768V416q0-14-9-23t-23-9H736q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm512 384V800q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm0-384V416q0-14-9-23t-23-9h-320q-14 0-23 9t-9 23v192q0 14 9 23t23 9h320q14 0 23-9t9-23zm128-320v1088q0 66-47 113t-113 47H224q-66 0-113-47t-47-113V288q0-66 47-113t113-47h1344q66 0 113 47t47 113z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .upload-image:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M447.1 32h-484C28.64 32-.01 60.65-.01 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96c.01-35.35-27.79-64-63.99-64zm-336 64c26.51 0 48 21.49 48 48s-20.6 48-48 48-48-21.49-48-48 22.38-48 48-48zm335 311.6c-2.8 5.2-8.2 8.4-14.1 8.4H82.01a15.993 15.993 0 0 1-14.26-8.75 16 16 0 0 1 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51 93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192c3.29 4.875 3.59 11.175.79 16.475z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .undo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M480 256c0 123.4-100.5 223.9-223.9 223.9-48.84 0-95.17-15.58-134.2-44.86-14.12-10.59-16.97-30.66-6.375-44.81 10.59-14.12 30.62-16.94 44.81-6.375 27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256S344.31 96.2 256.2 96.2c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04C16 35 45.07 22.96 62.07 39.97l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11 379.5 32.11 480 132.6 480 256z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .redo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2 0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31 18.48 0 31.97 15.04 31.97 31.96 0 35.04-81.59 70.41-147 70.41-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26L450 40.07c5.5-5.5 12.3-7.96 18.9-7.96z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-statusbar{display:none}.fi-fo-rich-editor trix-toolbar .trix-dialogs{position:relative}.fi-fo-rich-editor trix-toolbar .trix-dialog{--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.5rem;bottom:auto;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);left:0;padding:.5rem;position:absolute;right:0;top:1rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields{display:flex;flex-direction:column;gap:.5rem;width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group{display:flex;gap:.5rem}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.375rem;border-style:none;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--gray-950),var(--tw-text-opacity));display:block;font-size:.875rem;line-height:1.25rem;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:.75rem;padding-top:.375rem;padding-inline-start:.75rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input){--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-color:hsla(0,0%,100%,.2);background-color:rgba(var(--gray-700),var(--tw-bg-opacity));color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity))}@media (min-width:640px){.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{font-size:.875rem;line-height:1.5rem}}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity));background-color:rgba(var(--gray-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);font-size:.75rem;line-height:1rem;padding:.125rem .5rem}:is(.dark .fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button){--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-600),var(--tw-ring-opacity));background-color:rgba(var(--gray-700),var(--tw-bg-opacity))}.fi-fo-rich-editor trix-editor:empty:before{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}:is(.dark .fi-fo-rich-editor trix-editor:empty):before{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.fi-fo-rich-editor trix-editor:empty:before{content:attr(placeholder)}.fi-fo-rich-editor trix-editor.prose :where(ol):not(:where([class~=not-prose] *)),.fi-fo-rich-editor trix-editor.prose :where(ul):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:1.625em!important}.fi-fo-rich-editor trix-editor.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:.375em!important}select:not(.choices){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[dir=rtl] select{background-position:left .5rem center!important}.choices{outline:2px solid transparent;outline-offset:2px;position:relative}.choices [hidden]{display:none!important}.choices[data-type*=select-one] .has-no-choices{display:none}.choices[data-type*=select-one] .choices__input{display:block;margin:0;width:100%}.choices__inner{background-repeat:no-repeat;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:2rem;padding-top:.375rem;padding-inline-start:.75rem}@media (min-width:640px){.choices__inner{font-size:.875rem;line-height:1.5rem}}.choices__inner{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-size:1.5em 1.5em}.choices.is-disabled .choices__inner{cursor:default}[dir=rtl] .choices__inner{background-position:left .5rem center}.choices__list--single{display:inline-block}.choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__list--single .choices__item){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices.is-disabled .choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices.is-disabled .choices__list--single .choices__item){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__list--multiple{display:flex;flex-wrap:wrap;gap:.375rem}.choices__list--multiple:not(:empty){margin-bottom:.25rem;margin-left:-.25rem;margin-right:-.25rem;padding-bottom:.125rem;padding-top:.125rem}.choices__list--multiple .choices__item{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-inset:inset;--tw-ring-color:rgba(var(--primary-600),0.1);align-items:center;background-color:rgba(var(--primary-50),var(--tw-bg-opacity));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--primary-600),var(--tw-text-opacity));display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;line-height:1rem;padding:.25rem .5rem;word-break:break-all}:is(.dark .choices__list--multiple .choices__item){--tw-text-opacity:1;--tw-ring-color:rgba(var(--primary-400),0.3);background-color:rgba(var(--primary-400),.1);color:rgba(var(--primary-400),var(--tw-text-opacity))}.choices__list--dropdown,.choices__list[aria-expanded]{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.05);background-color:rgb(255 255 255/var(--tw-bg-opacity));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:none;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;overflow:hidden;overflow-wrap:break-word;position:absolute;top:100%;width:100%;will-change:visibility;z-index:10}:is(.dark .choices__list--dropdown),:is(.dark .choices__list[aria-expanded]){--tw-bg-opacity:1;--tw-ring-color:hsla(0,0%,100%,.1);background-color:rgba(var(--gray-900),var(--tw-bg-opacity))}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{display:block;padding:.25rem}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{max-height:15rem;overflow:auto;will-change:scroll-position}.choices__item--choice{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:.5rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}:is(.dark .choices__item--choice){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__item--choice.choices__item--selectable{--tw-text-opacity:1;border-radius:.375rem;color:rgba(var(--gray-950),var(--tw-text-opacity))}:is(.dark .choices__item--choice.choices__item--selectable){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity))}:is(.dark .choices__list--dropdown .choices__item--selectable.is-highlighted),:is(.dark .choices__list[aria-expanded] .choices__item--selectable.is-highlighted){background-color:hsla(0,0%,100%,.05)}.choices__item{cursor:default}.choices__item--disabled{pointer-events:none}.choices__item--disabled:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__item--disabled:disabled){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices.is-disabled .choices__placeholder.choices__item,.choices__placeholder.choices__item{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity));cursor:default}:is(.dark .choices.is-disabled .choices__placeholder.choices__item),:is(.dark .choices__placeholder.choices__item){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}.choices__button{background-color:transparent;background-position:50%;background-repeat:no-repeat;border-width:0;outline:2px solid transparent;outline-offset:2px;text-indent:-9999px}.choices[data-type*=select-one] .choices__button{height:1rem;inset-inline-end:0;margin-inline-end:2.25rem;opacity:.5;padding:0;position:absolute;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1rem}:is(.dark .choices[data-type*=select-one] .choices__button){opacity:.4}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em;top:calc(50% - .5714em)}.dark .choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button{height:1rem;opacity:.5;width:1rem}:is(.dark .choices[data-type*=select-multiple] .choices__button){opacity:.4}.choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em}.dark .choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button:focus-visible,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus-visible,.choices[data-type*=select-one] .choices__button:hover{opacity:.7}:is(.dark .choices[data-type*=select-multiple] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-multiple] .choices__button:hover),:is(.dark .choices[data-type*=select-one] .choices__button:focus-visible),:is(.dark .choices[data-type*=select-one] .choices__button:hover){opacity:.6}.choices.is-disabled .choices__button,.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices__input{--tw-text-opacity:1;background-color:transparent!important;border-style:none;color:rgba(var(--gray-950),var(--tw-text-opacity));font-size:1rem!important;line-height:1.5rem!important;padding:0!important;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.choices__input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.choices__input:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.choices__input:disabled{--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-500),1);color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .choices__input)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity))}:is(.dark .choices__input:disabled){--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-400),1);color:rgba(var(--gray-400),var(--tw-text-opacity))}@media (min-width:640px){.choices__input{font-size:.875rem!important;line-height:1.5rem}}.choices__list--dropdown .choices__input{padding:.5rem!important}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;height:0;width:0}.choices__group{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity));padding:1rem .5rem .5rem}.choices__group:first-child{padding-top:.5rem}:is(.dark .choices__group){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity))}.webkit-calendar-picker-indicator\:opacity-0::-webkit-calendar-picker-indicator{opacity:0}/*! Bundled license information: cropperjs/dist/cropper.min.css: (*! @@ -13,7 +13,7 @@ cropperjs/dist/cropper.min.css: filepond/dist/filepond.min.css: (*! - * FilePond 4.30.4 + * FilePond 4.30.6 * Licensed under MIT, https://opensource.org/licenses/MIT/ * Please visit https://pqina.nl/filepond/ for details. *) @@ -27,7 +27,7 @@ filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css: filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css: (*! - * FilePondPluginImagePreview 4.6.11 + * FilePondPluginImagePreview 4.6.12 * Licensed under MIT, https://opensource.org/licenses/MIT/ * Please visit https://pqina.nl/filepond/ for details. *) diff --git a/public/images/collections/voted.png b/public/images/collections/voted.png new file mode 100644 index 000000000..e2c4092b4 Binary files /dev/null and b/public/images/collections/voted.png differ diff --git a/public/images/collections/voted@2x.png b/public/images/collections/voted@2x.png new file mode 100644 index 000000000..c08b7e797 Binary files /dev/null and b/public/images/collections/voted@2x.png differ diff --git a/public/js/filament/forms/components/color-picker.js b/public/js/filament/forms/components/color-picker.js index ab0a9ead8..67e4f5d6f 100644 --- a/public/js/filament/forms/components/color-picker.js +++ b/public/js/filament/forms/components/color-picker.js @@ -1 +1 @@ -var l=(e,t=0,r=1)=>e>r?r:eMath.round(r*e)/r;var nt={grad:360/400,turn:360,rad:360/(Math.PI*2)},B=e=>J(x(e)),x=e=>(e[0]==="#"&&(e=e.substr(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:1}:{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:1}),it=(e,t="deg")=>Number(e)*(nt[t]||1),lt=e=>{let r=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?ct({h:it(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:r[5]===void 0?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},F=lt,ct=({h:e,s:t,l:r,a:s})=>(t*=(r<50?r:100-r)/100,{h:e,s:t>0?2*t/(r+t)*100:0,v:r+t,a:s}),X=e=>pt(N(e)),Y=({h:e,s:t,v:r,a:s})=>{let o=(200-t)*r/100;return{h:a(e),s:a(o>0&&o<200?t*r/100/(o<=100?o:200-o)*100:0),l:a(o/2),a:a(s,2)}};var u=e=>{let{h:t,s:r,l:s}=Y(e);return`hsl(${t}, ${r}%, ${s}%)`},b=e=>{let{h:t,s:r,l:s,a:o}=Y(e);return`hsla(${t}, ${r}%, ${s}%, ${o})`},N=({h:e,s:t,v:r,a:s})=>{e=e/360*6,t=t/100,r=r/100;let o=Math.floor(e),n=r*(1-t),i=r*(1-(e-o)*t),E=r*(1-(1-e+o)*t),q=o%6;return{r:a([r,i,n,n,E,r][q]*255),g:a([E,r,r,i,n,n][q]*255),b:a([n,n,E,r,r,i][q]*255),a:a(s,2)}},_=e=>{let{r:t,g:r,b:s}=N(e);return`rgb(${t}, ${r}, ${s})`},U=e=>{let{r:t,g:r,b:s,a:o}=N(e);return`rgba(${t}, ${r}, ${s}, ${o})`};var A=e=>{let r=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?J({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:r[7]===void 0?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},G=A,L=e=>{let t=e.toString(16);return t.length<2?"0"+t:t},pt=({r:e,g:t,b:r})=>"#"+L(e)+L(t)+L(r),J=({r:e,g:t,b:r,a:s})=>{let o=Math.max(e,t,r),n=o-Math.min(e,t,r),i=n?o===e?(t-r)/n:o===t?2+(r-e)/n:4+(e-t)/n:0;return{h:a(60*(i<0?i+6:i)),s:a(o?n/o*100:0),v:a(o/255*100),a:s}};var I=(e,t)=>{if(e===t)return!0;for(let r in e)if(e[r]!==t[r])return!1;return!0},d=(e,t)=>e.replace(/\s/g,"")===t.replace(/\s/g,""),K=(e,t)=>e.toLowerCase()===t.toLowerCase()?!0:I(x(e),x(t));var Q={},v=e=>{let t=Q[e];return t||(t=document.createElement("template"),t.innerHTML=e,Q[e]=t),t},m=(e,t,r)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:r}))};var h=!1,O=e=>"touches"in e,ut=e=>h&&!O(e)?!1:(h||(h=O(e)),!0),W=(e,t)=>{let r=O(t)?t.touches[0]:t,s=e.el.getBoundingClientRect();m(e.el,"move",e.getMove({x:l((r.pageX-(s.left+window.pageXOffset))/s.width),y:l((r.pageY-(s.top+window.pageYOffset))/s.height)}))},dt=(e,t)=>{let r=t.keyCode;r>40||e.xy&&r<37||r<33||(t.preventDefault(),m(e.el,"move",e.getMove({x:r===39?.01:r===37?-.01:r===34?.05:r===33?-.05:r===35?1:r===36?-1:0,y:r===40?.01:r===38?-.01:0},!0)))},p=class{constructor(t,r,s,o){let n=v(`
`);t.appendChild(n.content.cloneNode(!0));let i=t.querySelector(`[part=${r}]`);i.addEventListener("mousedown",this),i.addEventListener("touchstart",this),i.addEventListener("keydown",this),this.el=i,this.xy=o,this.nodes=[i.firstChild,i]}set dragging(t){let r=t?document.addEventListener:document.removeEventListener;r(h?"touchmove":"mousemove",this),r(h?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!ut(t)||!h&&t.button!=0)return;this.el.focus(),W(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),W(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":dt(this,t);break}}style(t){t.forEach((r,s)=>{for(let o in r)this.nodes[s].style.setProperty(o,r[o])})}};var $=class extends p{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:`${t/360*100}%`,color:u({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${a(t)}`)}getMove(t,r){return{h:r?l(this.h+t.x*360,0,360):360*t.x}}};var H=class extends p{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:`${100-t.v}%`,left:`${t.s}%`,color:u(t)},{"background-color":u({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${a(t.s)}%, Brightness ${a(t.v)}%`)}getMove(t,r){return{s:r?l(this.hsva.s+t.x*100,0,100):t.x*100,v:r?l(this.hsva.v-t.y*100,0,100):Math.round(100-t.y*100)}}};var Z=":host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{display:block;content:'';position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}";var tt="[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}";var rt="[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}";var S=Symbol("same"),et=Symbol("color"),ot=Symbol("hsva"),R=Symbol("change"),P=Symbol("update"),st=Symbol("parts"),f=Symbol("css"),g=Symbol("sliders"),c=class extends HTMLElement{static get observedAttributes(){return["color"]}get[f](){return[Z,tt,rt]}get[g](){return[H,$]}get color(){return this[et]}set color(t){if(!this[S](t)){let r=this.colorModel.toHsva(t);this[P](r),this[R](t)}}constructor(){super();let t=v(``),r=this.attachShadow({mode:"open"});r.appendChild(t.content.cloneNode(!0)),r.addEventListener("move",this),this[st]=this[g].map(s=>new s(r))}connectedCallback(){if(this.hasOwnProperty("color")){let t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,r,s){let o=this.colorModel.fromAttr(s);this[S](o)||(this.color=o)}handleEvent(t){let r=this[ot],s={...r,...t.detail};this[P](s);let o;!I(s,r)&&!this[S](o=this.colorModel.fromHsva(s))&&this[R](o)}[S](t){return this.color&&this.colorModel.equal(t,this.color)}[P](t){this[ot]=t,this[st].forEach(r=>r.update(t))}[R](t){this[et]=t,m(this,"color-changed",{value:t})}};var ht={defaultColor:"#000",toHsva:B,fromHsva:X,equal:K,fromAttr:e=>e},y=class extends c{get colorModel(){return ht}};var z=class extends y{};customElements.define("hex-color-picker",z);var mt={defaultColor:"hsl(0, 0%, 0%)",toHsva:F,fromHsva:u,equal:d,fromAttr:e=>e},T=class extends c{get colorModel(){return mt}};var V=class extends T{};customElements.define("hsl-string-color-picker",V);var ft={defaultColor:"rgb(0, 0, 0)",toHsva:G,fromHsva:_,equal:d,fromAttr:e=>e},w=class extends c{get colorModel(){return ft}};var j=class extends w{};customElements.define("rgb-string-color-picker",j);var M=class extends p{constructor(t){super(t,"alpha",'aria-label="Alpha" aria-valuemin="0" aria-valuemax="1"',!1)}update(t){this.hsva=t;let r=b({...t,a:0}),s=b({...t,a:1}),o=t.a*100;this.style([{left:`${o}%`,color:b(t)},{"--gradient":`linear-gradient(90deg, ${r}, ${s}`}]);let n=a(o);this.el.setAttribute("aria-valuenow",`${n}`),this.el.setAttribute("aria-valuetext",`${n}%`)}getMove(t,r){return{a:r?l(this.hsva.a+t.x):t.x}}};var at=`[part=alpha]{flex:0 0 24px}[part=alpha]::after{display:block;content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;background-image:var(--gradient);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part^=alpha]{background-color:#fff;background-image:url('data:image/svg+xml,')}[part=alpha-pointer]{top:50%}`;var k=class extends c{get[f](){return[...super[f],at]}get[g](){return[...super[g],M]}};var gt={defaultColor:"rgba(0, 0, 0, 1)",toHsva:A,fromHsva:U,equal:d,fromAttr:e=>e},C=class extends k{get colorModel(){return gt}};var D=class extends C{};customElements.define("rgba-string-color-picker",D);function xt({isAutofocused:e,isDisabled:t,isLiveOnPickerClose:r,state:s}){return{state:s,init:function(){this.state===null||this.state===""||this.setState(this.state),e&&this.togglePanelVisibility(this.$refs.input),this.$refs.input.addEventListener("change",o=>{this.setState(o.target.value)}),this.$refs.panel.addEventListener("color-changed",o=>{this.setState(o.detail.value)}),r&&new MutationObserver(()=>{this.$refs.panel.style.display==="none"&&this.$wire.call("$refresh")}).observe(this.$refs.panel,{attributes:!0,childList:!0})},togglePanelVisibility:function(){t||this.$refs.panel.toggle(this.$refs.input)},setState:function(o){this.state=o,this.$refs.input.value=o,this.$refs.panel.color=o},isOpen:function(){return this.$refs.panel.style.display==="block"}}}export{xt as default}; +var c=(e,t=0,r=1)=>e>r?r:eMath.round(r*e)/r;var nt={grad:360/400,turn:360,rad:360/(Math.PI*2)},F=e=>G(b(e)),b=e=>(e[0]==="#"&&(e=e.substr(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:1}:{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:1}),it=(e,t="deg")=>Number(e)*(nt[t]||1),lt=e=>{let r=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?ct({h:it(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:r[5]===void 0?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},J=lt,ct=({h:e,s:t,l:r,a:o})=>(t*=(r<50?r:100-r)/100,{h:e,s:t>0?2*t/(r+t)*100:0,v:r+t,a:o}),X=e=>pt(A(e)),Y=({h:e,s:t,v:r,a:o})=>{let s=(200-t)*r/100;return{h:n(e),s:n(s>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0),l:n(s/2),a:n(o,2)}};var d=e=>{let{h:t,s:r,l:o}=Y(e);return`hsl(${t}, ${r}%, ${o}%)`},v=e=>{let{h:t,s:r,l:o,a:s}=Y(e);return`hsla(${t}, ${r}%, ${o}%, ${s})`},A=({h:e,s:t,v:r,a:o})=>{e=e/360*6,t=t/100,r=r/100;let s=Math.floor(e),a=r*(1-t),i=r*(1-(e-s)*t),l=r*(1-(1-e+s)*t),N=s%6;return{r:n([r,i,a,a,l,r][N]*255),g:n([l,r,r,i,a,a][N]*255),b:n([a,a,l,r,r,i][N]*255),a:n(o,2)}},B=e=>{let{r:t,g:r,b:o}=A(e);return`rgb(${t}, ${r}, ${o})`},D=e=>{let{r:t,g:r,b:o,a:s}=A(e);return`rgba(${t}, ${r}, ${o}, ${s})`};var L=e=>{let r=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?G({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:r[7]===void 0?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},U=L,q=e=>{let t=e.toString(16);return t.length<2?"0"+t:t},pt=({r:e,g:t,b:r})=>"#"+q(e)+q(t)+q(r),G=({r:e,g:t,b:r,a:o})=>{let s=Math.max(e,t,r),a=s-Math.min(e,t,r),i=a?s===e?(t-r)/a:s===t?2+(r-e)/a:4+(e-t)/a:0;return{h:n(60*(i<0?i+6:i)),s:n(s?a/s*100:0),v:n(s/255*100),a:o}};var O=(e,t)=>{if(e===t)return!0;for(let r in e)if(e[r]!==t[r])return!1;return!0},h=(e,t)=>e.replace(/\s/g,"")===t.replace(/\s/g,""),K=(e,t)=>e.toLowerCase()===t.toLowerCase()?!0:O(b(e),b(t));var Q={},$=e=>{let t=Q[e];return t||(t=document.createElement("template"),t.innerHTML=e,Q[e]=t),t},f=(e,t,r)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:r}))};var m=!1,I=e=>"touches"in e,ut=e=>m&&!I(e)?!1:(m||(m=I(e)),!0),W=(e,t)=>{let r=I(t)?t.touches[0]:t,o=e.el.getBoundingClientRect();f(e.el,"move",e.getMove({x:c((r.pageX-(o.left+window.pageXOffset))/o.width),y:c((r.pageY-(o.top+window.pageYOffset))/o.height)}))},dt=(e,t)=>{let r=t.keyCode;r>40||e.xy&&r<37||r<33||(t.preventDefault(),f(e.el,"move",e.getMove({x:r===39?.01:r===37?-.01:r===34?.05:r===33?-.05:r===35?1:r===36?-1:0,y:r===40?.01:r===38?-.01:0},!0)))},u=class{constructor(t,r,o,s){let a=$(`
`);t.appendChild(a.content.cloneNode(!0));let i=t.querySelector(`[part=${r}]`);i.addEventListener("mousedown",this),i.addEventListener("touchstart",this),i.addEventListener("keydown",this),this.el=i,this.xy=s,this.nodes=[i.firstChild,i]}set dragging(t){let r=t?document.addEventListener:document.removeEventListener;r(m?"touchmove":"mousemove",this),r(m?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!ut(t)||!m&&t.button!=0)return;this.el.focus(),W(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),W(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":dt(this,t);break}}style(t){t.forEach((r,o)=>{for(let s in r)this.nodes[o].style.setProperty(s,r[s])})}};var S=class extends u{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:`${t/360*100}%`,color:d({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${n(t)}`)}getMove(t,r){return{h:r?c(this.h+t.x*360,0,360):360*t.x}}};var H=class extends u{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:`${100-t.v}%`,left:`${t.s}%`,color:d(t)},{"background-color":d({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${n(t.s)}%, Brightness ${n(t.v)}%`)}getMove(t,r){return{s:r?c(this.hsva.s+t.x*100,0,100):t.x*100,v:r?c(this.hsva.v-t.y*100,0,100):Math.round(100-t.y*100)}}};var Z=":host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{display:block;content:'';position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}";var tt="[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}";var rt="[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}";var T=Symbol("same"),et=Symbol("color"),ot=Symbol("hsva"),R=Symbol("change"),_=Symbol("update"),st=Symbol("parts"),g=Symbol("css"),x=Symbol("sliders"),p=class extends HTMLElement{static get observedAttributes(){return["color"]}get[g](){return[Z,tt,rt]}get[x](){return[H,S]}get color(){return this[et]}set color(t){if(!this[T](t)){let r=this.colorModel.toHsva(t);this[_](r),this[R](t)}}constructor(){super();let t=$(``),r=this.attachShadow({mode:"open"});r.appendChild(t.content.cloneNode(!0)),r.addEventListener("move",this),this[st]=this[x].map(o=>new o(r))}connectedCallback(){if(this.hasOwnProperty("color")){let t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,r,o){let s=this.colorModel.fromAttr(o);this[T](s)||(this.color=s)}handleEvent(t){let r=this[ot],o={...r,...t.detail};this[_](o);let s;!O(o,r)&&!this[T](s=this.colorModel.fromHsva(o))&&this[R](s)}[T](t){return this.color&&this.colorModel.equal(t,this.color)}[_](t){this[ot]=t,this[st].forEach(r=>r.update(t))}[R](t){this[et]=t,f(this,"color-changed",{value:t})}};var ht={defaultColor:"#000",toHsva:F,fromHsva:X,equal:K,fromAttr:e=>e},y=class extends p{get colorModel(){return ht}};var P=class extends y{};customElements.define("hex-color-picker",P);var mt={defaultColor:"hsl(0, 0%, 0%)",toHsva:J,fromHsva:d,equal:h,fromAttr:e=>e},w=class extends p{get colorModel(){return mt}};var z=class extends w{};customElements.define("hsl-string-color-picker",z);var ft={defaultColor:"rgb(0, 0, 0)",toHsva:U,fromHsva:B,equal:h,fromAttr:e=>e},M=class extends p{get colorModel(){return ft}};var V=class extends M{};customElements.define("rgb-string-color-picker",V);var k=class extends u{constructor(t){super(t,"alpha",'aria-label="Alpha" aria-valuemin="0" aria-valuemax="1"',!1)}update(t){this.hsva=t;let r=v({...t,a:0}),o=v({...t,a:1}),s=t.a*100;this.style([{left:`${s}%`,color:v(t)},{"--gradient":`linear-gradient(90deg, ${r}, ${o}`}]);let a=n(s);this.el.setAttribute("aria-valuenow",`${a}`),this.el.setAttribute("aria-valuetext",`${a}%`)}getMove(t,r){return{a:r?c(this.hsva.a+t.x):t.x}}};var at=`[part=alpha]{flex:0 0 24px}[part=alpha]::after{display:block;content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;background-image:var(--gradient);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part^=alpha]{background-color:#fff;background-image:url('data:image/svg+xml,')}[part=alpha-pointer]{top:50%}`;var C=class extends p{get[g](){return[...super[g],at]}get[x](){return[...super[x],k]}};var gt={defaultColor:"rgba(0, 0, 0, 1)",toHsva:L,fromHsva:D,equal:h,fromAttr:e=>e},E=class extends C{get colorModel(){return gt}};var j=class extends E{};customElements.define("rgba-string-color-picker",j);function xt({isAutofocused:e,isDisabled:t,isLive:r,isLiveDebounced:o,isLiveOnBlur:s,liveDebounce:a,state:i}){return{state:i,init:function(){this.state===null||this.state===""||this.setState(this.state),e&&this.togglePanelVisibility(this.$refs.input),this.$refs.input.addEventListener("change",l=>{this.setState(l.target.value)}),this.$refs.panel.addEventListener("color-changed",l=>{this.setState(l.detail.value),!(s||!(r||o))&&setTimeout(()=>{this.state===l.detail.value&&this.commitState()},o?a:250)}),(r||o||s)&&new MutationObserver(()=>this.isOpen()?null:this.commitState()).observe(this.$refs.panel,{attributes:!0,childList:!0})},togglePanelVisibility:function(){t||this.$refs.panel.toggle(this.$refs.input)},setState:function(l){this.state=l,this.$refs.input.value=l,this.$refs.panel.color=l},isOpen:function(){return this.$refs.panel.style.display==="block"},commitState:function(){JSON.stringify(this.$wire.__instance.canonical)!==JSON.stringify(this.$wire.__instance.ephemeral)&&this.$wire.$commit()}}}export{xt as default}; diff --git a/public/js/filament/forms/components/file-upload.js b/public/js/filament/forms/components/file-upload.js index 6eb72fbc7..83bdae0ac 100644 --- a/public/js/filament/forms/components/file-upload.js +++ b/public/js/filament/forms/components/file-upload.js @@ -1,6 +1,6 @@ -var zo=Object.defineProperty;var No=(e,t)=>{for(var i in t)zo(e,i,{get:t[i],enumerable:!0})};var Zi={};No(Zi,{FileOrigin:()=>Mt,FileStatus:()=>ut,OptionTypes:()=>Fi,Status:()=>jn,create:()=>ot,destroy:()=>lt,find:()=>zi,getOptions:()=>Ni,parse:()=>Ci,registerPlugin:()=>Te,setOptions:()=>At,supported:()=>Pi});var Bo=e=>e instanceof HTMLElement,Go=(e,t=[],i=[])=>{let a={...e},n=[],r=[],o=()=>({...a}),l=()=>{let p=[...n];return n.length=0,p},s=()=>{let p=[...r];r.length=0,p.forEach(({type:m,data:g})=>{u(m,g)})},u=(p,m,g)=>{if(g&&!document.hidden){r.push({type:p,data:m});return}f[p]&&f[p](m),n.push({type:p,data:m})},c=(p,...m)=>h[p]?h[p](...m):null,d={getState:o,processActionQueue:l,processDispatchQueue:s,dispatch:u,query:c},h={};t.forEach(p=>{h={...p(a),...h}});let f={};return i.forEach(p=>{f={...p(u,c,a),...f}}),d},Vo=(e,t,i)=>{if(typeof i=="function"){e[t]=i;return}Object.defineProperty(e,t,{...i})},J=(e,t)=>{for(let i in e)e.hasOwnProperty(i)&&t(i,e[i])},Be=e=>{let t={};return J(e,i=>{Vo(t,i,e[i])}),t},ie=(e,t,i=null)=>{if(i===null)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,i)},Uo="http://www.w3.org/2000/svg",ko=["svg","path"],Ra=e=>ko.includes(e),Zt=(e,t,i={})=>{typeof t=="object"&&(i=t,t=null);let a=Ra(e)?document.createElementNS(Uo,e):document.createElement(e);return t&&(Ra(e)?ie(a,"class",t):a.className=t),J(i,(n,r)=>{ie(a,n,r)}),a},Ho=e=>(t,i)=>{typeof i<"u"&&e.children[i]?e.insertBefore(t,e.children[i]):e.appendChild(t)},Wo=(e,t)=>(i,a)=>(typeof a<"u"?t.splice(a,0,i):t.push(i),i),Yo=(e,t)=>i=>(t.splice(t.indexOf(i),1),i.element.parentNode&&e.removeChild(i.element),i),$o=(()=>typeof window<"u"&&typeof window.document<"u")(),sn=()=>$o,qo=sn()?Zt("svg"):{},Xo="children"in qo?e=>e.children.length:e=>e.childNodes.length,cn=(e,t,i,a)=>{let n=i[0]||e.left,r=i[1]||e.top,o=n+e.width,l=r+e.height*(a[1]||1),s={element:{...e},inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:n,top:r,right:o,bottom:l}};return t.filter(u=>!u.isRectIgnored()).map(u=>u.rect).forEach(u=>{ya(s.inner,{...u.inner}),ya(s.outer,{...u.outer})}),Sa(s.inner),s.outer.bottom+=s.element.marginBottom,s.outer.right+=s.element.marginRight,Sa(s.outer),s},ya=(e,t)=>{t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},Sa=e=>{e.width=e.right-e.left,e.height=e.bottom-e.top},He=e=>typeof e=="number",jo=(e,t,i,a=.001)=>Math.abs(e-t){let a=null,n=null,r=0,o=!1,u=Be({interpolate:(c,d)=>{if(o)return;if(!(He(a)&&He(n))){o=!0,r=0;return}let h=-(n-a)*e;r+=h/i,n+=r,r*=t,jo(n,a,r)||d?(n=a,r=0,o=!0,u.onupdate(n),u.oncomplete(n)):u.onupdate(n)},target:{set:c=>{if(He(c)&&!He(n)&&(n=c),a===null&&(a=c,n=c),a=c,n===a||typeof a>"u"){o=!0,r=0,u.onupdate(n),u.oncomplete(n);return}o=!1},get:()=>a},resting:{get:()=>o},onupdate:c=>{},oncomplete:c=>{}});return u};var Zo=e=>e<.5?2*e*e:-1+(4-2*e)*e,Ko=({duration:e=500,easing:t=Zo,delay:i=0}={})=>{let a=null,n,r,o=!0,l=!1,s=null,c=Be({interpolate:(d,h)=>{o||s===null||(a===null&&(a=d),!(d-a=e||h?(n=1,r=l?0:1,c.onupdate(r*s),c.oncomplete(r*s),o=!0):(r=n/e,c.onupdate((n>=0?t(l?1-r:r):0)*s))))},target:{get:()=>l?0:s,set:d=>{if(s===null){s=d,c.onupdate(d),c.oncomplete(d);return}do},onupdate:d=>{},oncomplete:d=>{}});return c},wa={spring:Qo,tween:Ko},Jo=(e,t,i)=>{let a=e[t]&&typeof e[t][i]=="object"?e[t][i]:e[t]||e,n=typeof a=="string"?a:a.type,r=typeof a=="object"?{...a}:{};return wa[n]?wa[n](r):null},Bi=(e,t,i,a=!1)=>{t=Array.isArray(t)?t:[t],t.forEach(n=>{e.forEach(r=>{let o=r,l=()=>i[r],s=u=>i[r]=u;typeof r=="object"&&(o=r.key,l=r.getter||l,s=r.setter||s),!(n[o]&&!a)&&(n[o]={get:l,set:s})})})},el=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a})=>{let n={...t},r=[];return J(e,(o,l)=>{let s=Jo(l);if(!s)return;s.onupdate=c=>{t[o]=c},s.target=n[o],Bi([{key:o,setter:c=>{s.target!==c&&(s.target=c)},getter:()=>t[o]}],[i,a],t,!0),r.push(s)}),{write:o=>{let l=document.hidden,s=!0;return r.forEach(u=>{u.resting||(s=!1),u.interpolate(o,l)}),s},destroy:()=>{}}},tl=e=>(t,i)=>{e.addEventListener(t,i)},il=e=>(t,i)=>{e.removeEventListener(t,i)},al=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,viewState:n,view:r})=>{let o=[],l=tl(r.element),s=il(r.element);return a.on=(u,c)=>{o.push({type:u,fn:c}),l(u,c)},a.off=(u,c)=>{o.splice(o.findIndex(d=>d.type===u&&d.fn===c),1),s(u,c)},{write:()=>!0,destroy:()=>{o.forEach(u=>{s(u.type,u.fn)})}}},nl=({mixinConfig:e,viewProps:t,viewExternalAPI:i})=>{Bi(e,i,t)},de=e=>e!=null,rl={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},ol=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,view:n})=>{let r={...t},o={};Bi(e,[i,a],t);let l=()=>[t.translateX||0,t.translateY||0],s=()=>[t.scaleX||0,t.scaleY||0],u=()=>n.rect?cn(n.rect,n.childViews,l(),s()):null;return i.rect={get:u},a.rect={get:u},e.forEach(c=>{t[c]=typeof r[c]>"u"?rl[c]:r[c]}),{write:()=>{if(ll(o,t))return sl(n.element,t),Object.assign(o,{...t}),!0},destroy:()=>{}}},ll=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!0;for(let i in t)if(t[i]!==e[i])return!0;return!1},sl=(e,{opacity:t,perspective:i,translateX:a,translateY:n,scaleX:r,scaleY:o,rotateX:l,rotateY:s,rotateZ:u,originX:c,originY:d,width:h,height:f})=>{let p="",m="";(de(c)||de(d))&&(m+=`transform-origin: ${c||0}px ${d||0}px;`),de(i)&&(p+=`perspective(${i}px) `),(de(a)||de(n))&&(p+=`translate3d(${a||0}px, ${n||0}px, 0) `),(de(r)||de(o))&&(p+=`scale3d(${de(r)?r:1}, ${de(o)?o:1}, 1) `),de(u)&&(p+=`rotateZ(${u}rad) `),de(l)&&(p+=`rotateX(${l}rad) `),de(s)&&(p+=`rotateY(${s}rad) `),p.length&&(m+=`transform:${p};`),de(t)&&(m+=`opacity:${t};`,t===0&&(m+="visibility:hidden;"),t<1&&(m+="pointer-events:none;")),de(f)&&(m+=`height:${f}px;`),de(h)&&(m+=`width:${h}px;`);let g=e.elementCurrentStyle||"";(m.length!==g.length||m!==g)&&(e.style.cssText=m,e.elementCurrentStyle=m)},cl={styles:ol,listeners:al,animations:el,apis:nl},va=(e={},t={},i={})=>(t.layoutCalculated||(e.paddingTop=parseInt(i.paddingTop,10)||0,e.marginTop=parseInt(i.marginTop,10)||0,e.marginRight=parseInt(i.marginRight,10)||0,e.marginBottom=parseInt(i.marginBottom,10)||0,e.marginLeft=parseInt(i.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=t.offsetParent===null,e),ae=({tag:e="div",name:t=null,attributes:i={},read:a=()=>{},write:n=()=>{},create:r=()=>{},destroy:o=()=>{},filterFrameActionsForChild:l=(f,p)=>p,didCreateView:s=()=>{},didWriteView:u=()=>{},ignoreRect:c=!1,ignoreRectUpdate:d=!1,mixins:h=[]}={})=>(f,p={})=>{let m=Zt(e,`filepond--${t}`,i),g=window.getComputedStyle(m,null),b=va(),E=null,T=!1,_=[],y=[],I={},v={},R=[n],S=[a],D=[o],x=()=>m,O=()=>_.concat(),B=()=>I,A=k=>(W,C)=>W(k,C),F=()=>E||(E=cn(b,_,[0,0],[1,1]),E),w=()=>g,L=()=>{E=null,_.forEach(C=>C._read()),!(d&&b.width&&b.height)&&va(b,m,g);let W={root:j,props:p,rect:b};S.forEach(C=>C(W))},N=(k,W,C)=>{let z=W.length===0;return R.forEach(G=>{G({props:p,root:j,actions:W,timestamp:k,shouldOptimize:C})===!1&&(z=!1)}),y.forEach(G=>{G.write(k)===!1&&(z=!1)}),_.filter(G=>!!G.element.parentNode).forEach(G=>{G._write(k,l(G,W),C)||(z=!1)}),_.forEach((G,$)=>{G.element.parentNode||(j.appendChild(G.element,$),G._read(),G._write(k,l(G,W),C),z=!1)}),T=z,u({props:p,root:j,actions:W,timestamp:k}),z},P=()=>{y.forEach(k=>k.destroy()),D.forEach(k=>{k({root:j,props:p})}),_.forEach(k=>k._destroy())},U={element:{get:x},style:{get:w},childViews:{get:O}},V={...U,rect:{get:F},ref:{get:B},is:k=>t===k,appendChild:Ho(m),createChildView:A(f),linkView:k=>(_.push(k),k),unlinkView:k=>{_.splice(_.indexOf(k),1)},appendChildView:Wo(m,_),removeChildView:Yo(m,_),registerWriter:k=>R.push(k),registerReader:k=>S.push(k),registerDestroyer:k=>D.push(k),invalidateLayout:()=>m.layoutCalculated=!1,dispatch:f.dispatch,query:f.query},q={element:{get:x},childViews:{get:O},rect:{get:F},resting:{get:()=>T},isRectIgnored:()=>c,_read:L,_write:N,_destroy:P},X={...U,rect:{get:()=>b}};Object.keys(h).sort((k,W)=>k==="styles"?1:W==="styles"?-1:0).forEach(k=>{let W=cl[k]({mixinConfig:h[k],viewProps:p,viewState:v,viewInternalAPI:V,viewExternalAPI:q,view:Be(X)});W&&y.push(W)});let j=Be(V);r({root:j,props:p});let se=Xo(m);return _.forEach((k,W)=>{j.appendChild(k.element,se+W)}),s(j),Be(q)},dl=(e,t,i=60)=>{let a="__framePainter";if(window[a]){window[a].readers.push(e),window[a].writers.push(t);return}window[a]={readers:[e],writers:[t]};let n=window[a],r=1e3/i,o=null,l=null,s=null,u=null,c=()=>{document.hidden?(s=()=>window.setTimeout(()=>d(performance.now()),r),u=()=>window.clearTimeout(l)):(s=()=>window.requestAnimationFrame(d),u=()=>window.cancelAnimationFrame(l))};document.addEventListener("visibilitychange",()=>{u&&u(),c(),d(performance.now())});let d=h=>{l=s(d),o||(o=h);let f=h-o;f<=r||(o=h-f%r,n.readers.forEach(p=>p()),n.writers.forEach(p=>p(h)))};return c(),d(performance.now()),{pause:()=>{u(l)}}},he=(e,t)=>({root:i,props:a,actions:n=[],timestamp:r,shouldOptimize:o})=>{n.filter(l=>e[l.type]).forEach(l=>e[l.type]({root:i,props:a,action:l.data,timestamp:r,shouldOptimize:o})),t&&t({root:i,props:a,actions:n,timestamp:r,shouldOptimize:o})},Aa=(e,t)=>t.parentNode.insertBefore(e,t),La=(e,t)=>t.parentNode.insertBefore(e,t.nextSibling),ti=e=>Array.isArray(e),Fe=e=>e==null,ul=e=>e.trim(),ii=e=>""+e,hl=(e,t=",")=>Fe(e)?[]:ti(e)?e:ii(e).split(t).map(ul).filter(i=>i.length),dn=e=>typeof e=="boolean",un=e=>dn(e)?e:e==="true",ue=e=>typeof e=="string",hn=e=>He(e)?e:ue(e)?ii(e).replace(/[a-z]+/gi,""):0,Qt=e=>parseInt(hn(e),10),Ma=e=>parseFloat(hn(e)),dt=e=>He(e)&&isFinite(e)&&Math.floor(e)===e,Oa=(e,t=1e3)=>{if(dt(e))return e;let i=ii(e).trim();return/MB$/i.test(i)?(i=i.replace(/MB$i/,"").trim(),Qt(i)*t*t):/KB/i.test(i)?(i=i.replace(/KB$i/,"").trim(),Qt(i)*t):Qt(i)},We=e=>typeof e=="function",fl=e=>{let t=self,i=e.split("."),a=null;for(;a=i.shift();)if(t=t[a],!t)return null;return t},xa={process:"POST",patch:"PATCH",revert:"DELETE",fetch:"GET",restore:"GET",load:"GET"},pl=e=>{let t={};return t.url=ue(e)?e:e.url||"",t.timeout=e.timeout?parseInt(e.timeout,10):0,t.headers=e.headers?e.headers:{},J(xa,i=>{t[i]=ml(i,e[i],xa[i],t.timeout,t.headers)}),t.process=e.process||ue(e)||e.url?t.process:null,t.remove=e.remove||null,delete t.headers,t},ml=(e,t,i,a,n)=>{if(t===null)return null;if(typeof t=="function")return t;let r={url:i==="GET"||i==="PATCH"?`?${e}=`:"",method:i,headers:n,withCredentials:!1,timeout:a,onload:null,ondata:null,onerror:null};if(ue(t))return r.url=t,r;if(Object.assign(r,t),ue(r.headers)){let o=r.headers.split(/:(.+)/);r.headers={header:o[0],value:o[1]}}return r.withCredentials=un(r.withCredentials),r},gl=e=>pl(e),El=e=>e===null,oe=e=>typeof e=="object"&&e!==null,Tl=e=>oe(e)&&ue(e.url)&&oe(e.process)&&oe(e.revert)&&oe(e.restore)&&oe(e.fetch),wi=e=>ti(e)?"array":El(e)?"null":dt(e)?"int":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?"bytes":Tl(e)?"api":typeof e,Il=e=>e.replace(/{\s*'/g,'{"').replace(/'\s*}/g,'"}').replace(/'\s*:/g,'":').replace(/:\s*'/g,':"').replace(/,\s*'/g,',"').replace(/'\s*,/g,'",'),bl={array:hl,boolean:un,int:e=>wi(e)==="bytes"?Oa(e):Qt(e),number:Ma,float:Ma,bytes:Oa,string:e=>We(e)?e:ii(e),function:e=>fl(e),serverapi:gl,object:e=>{try{return JSON.parse(Il(e))}catch{return null}}},_l=(e,t)=>bl[t](e),fn=(e,t,i)=>{if(e===t)return e;let a=wi(e);if(a!==i){let n=_l(e,i);if(a=wi(n),n===null)throw`Trying to assign value with incorrect type to "${option}", allowed type: "${i}"`;e=n}return e},Rl=(e,t)=>{let i=e;return{enumerable:!0,get:()=>i,set:a=>{i=fn(a,e,t)}}},yl=e=>{let t={};return J(e,i=>{let a=e[i];t[i]=Rl(a[0],a[1])}),Be(t)},Sl=e=>({items:[],listUpdateTimeout:null,itemUpdateTimeout:null,processingQueue:[],options:yl(e)}),ai=(e,t="-")=>e.split(/(?=[A-Z])/).map(i=>i.toLowerCase()).join(t),wl=(e,t)=>{let i={};return J(t,a=>{i[a]={get:()=>e.getState().options[a],set:n=>{e.dispatch(`SET_${ai(a,"_").toUpperCase()}`,{value:n})}}}),i},vl=e=>(t,i,a)=>{let n={};return J(e,r=>{let o=ai(r,"_").toUpperCase();n[`SET_${o}`]=l=>{try{a.options[r]=l.value}catch{}t(`DID_SET_${o}`,{value:a.options[r]})}}),n},Al=e=>t=>{let i={};return J(e,a=>{i[`GET_${ai(a,"_").toUpperCase()}`]=n=>t.options[a]}),i},_e={API:1,DROP:2,BROWSE:3,PASTE:4,NONE:5},Gi=()=>Math.random().toString(36).substring(2,11),Vi=(e,t)=>e.splice(t,1),Ll=(e,t)=>{t?e():document.hidden?Promise.resolve(1).then(e):setTimeout(e,0)},ni=()=>{let e=[],t=(a,n)=>{Vi(e,e.findIndex(r=>r.event===a&&(r.cb===n||!n)))},i=(a,n,r)=>{e.filter(o=>o.event===a).map(o=>o.cb).forEach(o=>Ll(()=>o(...n),r))};return{fireSync:(a,...n)=>{i(a,n,!0)},fire:(a,...n)=>{i(a,n,!1)},on:(a,n)=>{e.push({event:a,cb:n})},onOnce:(a,n)=>{e.push({event:a,cb:(...r)=>{t(a,n),n(...r)}})},off:t}},pn=(e,t,i)=>{Object.getOwnPropertyNames(e).filter(a=>!i.includes(a)).forEach(a=>Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a)))},Ml=["fire","process","revert","load","on","off","onOnce","retryLoad","extend","archive","archived","release","released","requestProcessing","freeze"],fe=e=>{let t={};return pn(e,t,Ml),t},Ol=e=>{e.forEach((t,i)=>{t.released&&Vi(e,i)})},H={INIT:1,IDLE:2,PROCESSING_QUEUED:9,PROCESSING:3,PROCESSING_COMPLETE:5,PROCESSING_ERROR:6,PROCESSING_REVERT_ERROR:10,LOADING:7,LOAD_ERROR:8},re={INPUT:1,LIMBO:2,LOCAL:3},mn=e=>/[^0-9]+/.exec(e),gn=()=>mn(1.1.toLocaleString())[0],xl=()=>{let e=gn(),t=1e3.toLocaleString(),i=1e3.toString();return t!==i?mn(t)[0]:e==="."?",":"."},M={BOOLEAN:"boolean",INT:"int",NUMBER:"number",STRING:"string",ARRAY:"array",OBJECT:"object",FUNCTION:"function",ACTION:"action",SERVER_API:"serverapi",REGEX:"regex"},Ui=[],we=(e,t,i)=>new Promise((a,n)=>{let r=Ui.filter(l=>l.key===e).map(l=>l.cb);if(r.length===0){a(t);return}let o=r.shift();r.reduce((l,s)=>l.then(u=>s(u,i)),o(t,i)).then(l=>a(l)).catch(l=>n(l))}),je=(e,t,i)=>Ui.filter(a=>a.key===e).map(a=>a.cb(t,i)),Dl=(e,t)=>Ui.push({key:e,cb:t}),Pl=e=>Object.assign(at,e),Kt=()=>({...at}),Fl=e=>{J(e,(t,i)=>{at[t]&&(at[t][0]=fn(i,at[t][0],at[t][1]))})},at={id:[null,M.STRING],name:["filepond",M.STRING],disabled:[!1,M.BOOLEAN],className:[null,M.STRING],required:[!1,M.BOOLEAN],captureMethod:[null,M.STRING],allowSyncAcceptAttribute:[!0,M.BOOLEAN],allowDrop:[!0,M.BOOLEAN],allowBrowse:[!0,M.BOOLEAN],allowPaste:[!0,M.BOOLEAN],allowMultiple:[!1,M.BOOLEAN],allowReplace:[!0,M.BOOLEAN],allowRevert:[!0,M.BOOLEAN],allowRemove:[!0,M.BOOLEAN],allowProcess:[!0,M.BOOLEAN],allowReorder:[!1,M.BOOLEAN],allowDirectoriesOnly:[!1,M.BOOLEAN],storeAsFile:[!1,M.BOOLEAN],forceRevert:[!1,M.BOOLEAN],maxFiles:[null,M.INT],checkValidity:[!1,M.BOOLEAN],itemInsertLocationFreedom:[!0,M.BOOLEAN],itemInsertLocation:["before",M.STRING],itemInsertInterval:[75,M.INT],dropOnPage:[!1,M.BOOLEAN],dropOnElement:[!0,M.BOOLEAN],dropValidation:[!1,M.BOOLEAN],ignoredFiles:[[".ds_store","thumbs.db","desktop.ini"],M.ARRAY],instantUpload:[!0,M.BOOLEAN],maxParallelUploads:[2,M.INT],allowMinimumUploadDuration:[!0,M.BOOLEAN],chunkUploads:[!1,M.BOOLEAN],chunkForce:[!1,M.BOOLEAN],chunkSize:[5e6,M.INT],chunkRetryDelays:[[500,1e3,3e3],M.ARRAY],server:[null,M.SERVER_API],fileSizeBase:[1e3,M.INT],labelFileSizeBytes:["bytes",M.STRING],labelFileSizeKilobytes:["KB",M.STRING],labelFileSizeMegabytes:["MB",M.STRING],labelFileSizeGigabytes:["GB",M.STRING],labelDecimalSeparator:[gn(),M.STRING],labelThousandsSeparator:[xl(),M.STRING],labelIdle:['Drag & Drop your files or Browse',M.STRING],labelInvalidField:["Field contains invalid files",M.STRING],labelFileWaitingForSize:["Waiting for size",M.STRING],labelFileSizeNotAvailable:["Size not available",M.STRING],labelFileCountSingular:["file in list",M.STRING],labelFileCountPlural:["files in list",M.STRING],labelFileLoading:["Loading",M.STRING],labelFileAdded:["Added",M.STRING],labelFileLoadError:["Error during load",M.STRING],labelFileRemoved:["Removed",M.STRING],labelFileRemoveError:["Error during remove",M.STRING],labelFileProcessing:["Uploading",M.STRING],labelFileProcessingComplete:["Upload complete",M.STRING],labelFileProcessingAborted:["Upload cancelled",M.STRING],labelFileProcessingError:["Error during upload",M.STRING],labelFileProcessingRevertError:["Error during revert",M.STRING],labelTapToCancel:["tap to cancel",M.STRING],labelTapToRetry:["tap to retry",M.STRING],labelTapToUndo:["tap to undo",M.STRING],labelButtonRemoveItem:["Remove",M.STRING],labelButtonAbortItemLoad:["Abort",M.STRING],labelButtonRetryItemLoad:["Retry",M.STRING],labelButtonAbortItemProcessing:["Cancel",M.STRING],labelButtonUndoItemProcessing:["Undo",M.STRING],labelButtonRetryItemProcessing:["Retry",M.STRING],labelButtonProcessItem:["Upload",M.STRING],iconRemove:['',M.STRING],iconProcess:['',M.STRING],iconRetry:['',M.STRING],iconUndo:['',M.STRING],iconDone:['',M.STRING],oninit:[null,M.FUNCTION],onwarning:[null,M.FUNCTION],onerror:[null,M.FUNCTION],onactivatefile:[null,M.FUNCTION],oninitfile:[null,M.FUNCTION],onaddfilestart:[null,M.FUNCTION],onaddfileprogress:[null,M.FUNCTION],onaddfile:[null,M.FUNCTION],onprocessfilestart:[null,M.FUNCTION],onprocessfileprogress:[null,M.FUNCTION],onprocessfileabort:[null,M.FUNCTION],onprocessfilerevert:[null,M.FUNCTION],onprocessfile:[null,M.FUNCTION],onprocessfiles:[null,M.FUNCTION],onremovefile:[null,M.FUNCTION],onpreparefile:[null,M.FUNCTION],onupdatefiles:[null,M.FUNCTION],onreorderfiles:[null,M.FUNCTION],beforeDropFile:[null,M.FUNCTION],beforeAddFile:[null,M.FUNCTION],beforeRemoveFile:[null,M.FUNCTION],beforePrepareFile:[null,M.FUNCTION],stylePanelLayout:[null,M.STRING],stylePanelAspectRatio:[null,M.STRING],styleItemPanelAspectRatio:[null,M.STRING],styleButtonRemoveItemPosition:["left",M.STRING],styleButtonProcessItemPosition:["right",M.STRING],styleLoadIndicatorPosition:["right",M.STRING],styleProgressIndicatorPosition:["right",M.STRING],styleButtonRemoveItemAlign:[!1,M.BOOLEAN],files:[[],M.ARRAY],credits:[["https://pqina.nl/","Powered by PQINA"],M.ARRAY]},Ye=(e,t)=>Fe(t)?e[0]||null:dt(t)?e[t]||null:(typeof t=="object"&&(t=t.id),e.find(i=>i.id===t)||null),En=e=>{if(Fe(e))return e;if(/:/.test(e)){let t=e.split(":");return t[1]/t[0]}return parseFloat(e)},ve=e=>e.filter(t=>!t.archived),Tn={EMPTY:0,IDLE:1,ERROR:2,BUSY:3,READY:4},Wt=null,Cl=()=>{if(Wt===null)try{let e=new DataTransfer;e.items.add(new File(["hello world"],"This_Works.txt"));let t=document.createElement("input");t.setAttribute("type","file"),t.files=e.files,Wt=t.files.length===1}catch{Wt=!1}return Wt},zl=[H.LOAD_ERROR,H.PROCESSING_ERROR,H.PROCESSING_REVERT_ERROR],Nl=[H.LOADING,H.PROCESSING,H.PROCESSING_QUEUED,H.INIT],Bl=[H.PROCESSING_COMPLETE],Gl=e=>zl.includes(e.status),Vl=e=>Nl.includes(e.status),Ul=e=>Bl.includes(e.status),Da=e=>oe(e.options.server)&&(oe(e.options.server.process)||We(e.options.server.process)),kl=e=>({GET_STATUS:()=>{let t=ve(e.items),{EMPTY:i,ERROR:a,BUSY:n,IDLE:r,READY:o}=Tn;return t.length===0?i:t.some(Gl)?a:t.some(Vl)?n:t.some(Ul)?o:r},GET_ITEM:t=>Ye(e.items,t),GET_ACTIVE_ITEM:t=>Ye(ve(e.items),t),GET_ACTIVE_ITEMS:()=>ve(e.items),GET_ITEMS:()=>e.items,GET_ITEM_NAME:t=>{let i=Ye(e.items,t);return i?i.filename:null},GET_ITEM_SIZE:t=>{let i=Ye(e.items,t);return i?i.fileSize:null},GET_STYLES:()=>Object.keys(e.options).filter(t=>/^style/.test(t)).map(t=>({name:t,value:e.options[t]})),GET_PANEL_ASPECT_RATIO:()=>/circle/.test(e.options.stylePanelLayout)?1:En(e.options.stylePanelAspectRatio),GET_ITEM_PANEL_ASPECT_RATIO:()=>e.options.styleItemPanelAspectRatio,GET_ITEMS_BY_STATUS:t=>ve(e.items).filter(i=>i.status===t),GET_TOTAL_ITEMS:()=>ve(e.items).length,SHOULD_UPDATE_FILE_INPUT:()=>e.options.storeAsFile&&Cl()&&!Da(e),IS_ASYNC:()=>Da(e),GET_FILE_SIZE_LABELS:t=>({labelBytes:t("GET_LABEL_FILE_SIZE_BYTES")||void 0,labelKilobytes:t("GET_LABEL_FILE_SIZE_KILOBYTES")||void 0,labelMegabytes:t("GET_LABEL_FILE_SIZE_MEGABYTES")||void 0,labelGigabytes:t("GET_LABEL_FILE_SIZE_GIGABYTES")||void 0})}),Hl=e=>{let t=ve(e.items).length;if(!e.options.allowMultiple)return t===0;let i=e.options.maxFiles;return i===null||tMath.max(Math.min(i,e),t),Wl=(e,t,i)=>e.splice(t,0,i),Yl=(e,t,i)=>Fe(t)?null:typeof i>"u"?(e.push(t),t):(i=In(i,0,e.length),Wl(e,i,t),t),vi=e=>/^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i.test(e),Lt=e=>e.split("/").pop().split("?").shift(),ri=e=>e.split(".").pop(),$l=e=>{if(typeof e!="string")return"";let t=e.split("/").pop();return/svg/.test(t)?"svg":/zip|compressed/.test(t)?"zip":/plain/.test(t)?"txt":/msword/.test(t)?"doc":/[a-z]+/.test(t)?t==="jpeg"?"jpg":t:""},yt=(e,t="")=>(t+e).slice(-t.length),bn=(e=new Date)=>`${e.getFullYear()}-${yt(e.getMonth()+1,"00")}-${yt(e.getDate(),"00")}_${yt(e.getHours(),"00")}-${yt(e.getMinutes(),"00")}-${yt(e.getSeconds(),"00")}`,st=(e,t,i=null,a=null)=>{let n=typeof i=="string"?e.slice(0,e.size,i):e.slice(0,e.size,e.type);return n.lastModifiedDate=new Date,e._relativePath&&(n._relativePath=e._relativePath),ue(t)||(t=bn()),t&&a===null&&ri(t)?n.name=t:(a=a||$l(n.type),n.name=t+(a?"."+a:"")),n},ql=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,_n=(e,t)=>{let i=ql();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Xl=(e,t)=>{let i=new ArrayBuffer(e.length),a=new Uint8Array(i);for(let n=0;n(/^data:(.+);/.exec(e)||[])[1]||null,jl=e=>e.split(",")[1].replace(/\s/g,""),Ql=e=>atob(jl(e)),Zl=e=>{let t=Rn(e),i=Ql(e);return Xl(i,t)},Kl=(e,t,i)=>st(Zl(e),t,null,i),Jl=e=>{if(!/^content-disposition:/i.test(e))return null;let t=e.split(/filename=|filename\*=.+''/).splice(1).map(i=>i.trim().replace(/^["']|[;"']{0,2}$/g,"")).filter(i=>i.length);return t.length?decodeURI(t[t.length-1]):null},es=e=>{if(/content-length:/i.test(e)){let t=e.match(/[0-9]+/)[0];return t?parseInt(t,10):null}return null},ts=e=>/x-content-transfer-id:/i.test(e)&&(e.split(":")[1]||"").trim()||null,ki=e=>{let t={source:null,name:null,size:null},i=e.split(` -`);for(let a of i){let n=Jl(a);if(n){t.name=n;continue}let r=es(a);if(r){t.size=r;continue}let o=ts(a);if(o){t.source=o;continue}}return t},is=e=>{let t={source:null,complete:!1,progress:0,size:null,timestamp:null,duration:0,request:null},i=()=>t.progress,a=()=>{t.request&&t.request.abort&&t.request.abort()},n=()=>{let l=t.source;o.fire("init",l),l instanceof File?o.fire("load",l):l instanceof Blob?o.fire("load",st(l,l.name)):vi(l)?o.fire("load",Kl(l)):r(l)},r=l=>{if(!e){o.fire("error",{type:"error",body:"Can't load URL",code:400});return}t.timestamp=Date.now(),t.request=e(l,s=>{t.duration=Date.now()-t.timestamp,t.complete=!0,s instanceof Blob&&(s=st(s,s.name||Lt(l))),o.fire("load",s instanceof Blob?s:s?s.body:null)},s=>{o.fire("error",typeof s=="string"?{type:"error",code:0,body:s}:s)},(s,u,c)=>{if(c&&(t.size=c),t.duration=Date.now()-t.timestamp,!s){t.progress=null;return}t.progress=u/c,o.fire("progress",t.progress)},()=>{o.fire("abort")},s=>{let u=ki(typeof s=="string"?s:s.headers);o.fire("meta",{size:t.size||u.size,filename:u.name,source:u.source})})},o={...ni(),setSource:l=>t.source=l,getProgress:i,abort:a,load:n};return o},Pa=e=>/GET|HEAD/.test(e),$e=(e,t,i)=>{let a={onheaders:()=>{},onprogress:()=>{},onload:()=>{},ontimeout:()=>{},onerror:()=>{},onabort:()=>{},abort:()=>{n=!0,o.abort()}},n=!1,r=!1;i={method:"POST",headers:{},withCredentials:!1,...i},t=encodeURI(t),Pa(i.method)&&e&&(t=`${t}${encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))}`);let o=new XMLHttpRequest,l=Pa(i.method)?o:o.upload;return l.onprogress=s=>{n||a.onprogress(s.lengthComputable,s.loaded,s.total)},o.onreadystatechange=()=>{o.readyState<2||o.readyState===4&&o.status===0||r||(r=!0,a.onheaders(o))},o.onload=()=>{o.status>=200&&o.status<300?a.onload(o):a.onerror(o)},o.onerror=()=>a.onerror(o),o.onabort=()=>{n=!0,a.onabort()},o.ontimeout=()=>a.ontimeout(o),o.open(i.method,t,!0),dt(i.timeout)&&(o.timeout=i.timeout),Object.keys(i.headers).forEach(s=>{let u=unescape(encodeURIComponent(i.headers[s]));o.setRequestHeader(s,u)}),i.responseType&&(o.responseType=i.responseType),i.withCredentials&&(o.withCredentials=!0),o.send(e),a},ee=(e,t,i,a)=>({type:e,code:t,body:i,headers:a}),qe=e=>t=>{e(ee("error",0,"Timeout",t.getAllResponseHeaders()))},Fa=e=>/\?/.test(e),vt=(...e)=>{let t="";return e.forEach(i=>{t+=Fa(t)&&Fa(i)?i.replace(/\?/,"&"):i}),t},Ii=(e="",t)=>{if(typeof t=="function")return t;if(!t||!ue(t.url))return null;let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o,l,s,u)=>{let c=$e(n,vt(e,t.url),{...t,responseType:"blob"});return c.onload=d=>{let h=d.getAllResponseHeaders(),f=ki(h).name||Lt(n);r(ee("load",d.status,t.method==="HEAD"?null:st(i(d.response),f),h))},c.onerror=d=>{o(ee("error",d.status,a(d.response)||d.statusText,d.getAllResponseHeaders()))},c.onheaders=d=>{u(ee("headers",d.status,null,d.getAllResponseHeaders()))},c.ontimeout=qe(o),c.onprogress=l,c.onabort=s,c}},Ie={QUEUED:0,COMPLETE:1,PROCESSING:2,ERROR:3,WAITING:4},as=(e,t,i,a,n,r,o,l,s,u,c)=>{let d=[],{chunkTransferId:h,chunkServer:f,chunkSize:p,chunkRetryDelays:m}=c,g={serverId:h,aborted:!1},b=t.ondata||(A=>A),E=t.onload||((A,F)=>F==="HEAD"?A.getResponseHeader("Upload-Offset"):A.response),T=t.onerror||(A=>null),_=A=>{let F=new FormData;oe(n)&&F.append(i,JSON.stringify(n));let w=typeof t.headers=="function"?t.headers(a,n):{...t.headers,"Upload-Length":a.size},L={...t,headers:w},N=$e(b(F),vt(e,t.url),L);N.onload=P=>A(E(P,L.method)),N.onerror=P=>o(ee("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),N.ontimeout=qe(o)},y=A=>{let F=vt(e,f.url,g.serverId),L={headers:typeof t.headers=="function"?t.headers(g.serverId):{...t.headers},method:"HEAD"},N=$e(null,F,L);N.onload=P=>A(E(P,L.method)),N.onerror=P=>o(ee("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),N.ontimeout=qe(o)},I=Math.floor(a.size/p);for(let A=0;A<=I;A++){let F=A*p,w=a.slice(F,F+p,"application/offset+octet-stream");d[A]={index:A,size:w.size,offset:F,data:w,file:a,progress:0,retries:[...m],status:Ie.QUEUED,error:null,request:null,timeout:null}}let v=()=>r(g.serverId),R=A=>A.status===Ie.QUEUED||A.status===Ie.ERROR,S=A=>{if(g.aborted)return;if(A=A||d.find(R),!A){d.every(U=>U.status===Ie.COMPLETE)&&v();return}A.status=Ie.PROCESSING,A.progress=null;let F=f.ondata||(U=>U),w=f.onerror||(U=>null),L=vt(e,f.url,g.serverId),N=typeof f.headers=="function"?f.headers(A):{...f.headers,"Content-Type":"application/offset+octet-stream","Upload-Offset":A.offset,"Upload-Length":a.size,"Upload-Name":a.name},P=A.request=$e(F(A.data),L,{...f,headers:N});P.onload=()=>{A.status=Ie.COMPLETE,A.request=null,O()},P.onprogress=(U,V,q)=>{A.progress=U?V:null,x()},P.onerror=U=>{A.status=Ie.ERROR,A.request=null,A.error=w(U.response)||U.statusText,D(A)||o(ee("error",U.status,w(U.response)||U.statusText,U.getAllResponseHeaders()))},P.ontimeout=U=>{A.status=Ie.ERROR,A.request=null,D(A)||qe(o)(U)},P.onabort=()=>{A.status=Ie.QUEUED,A.request=null,s()}},D=A=>A.retries.length===0?!1:(A.status=Ie.WAITING,clearTimeout(A.timeout),A.timeout=setTimeout(()=>{S(A)},A.retries.shift()),!0),x=()=>{let A=d.reduce((w,L)=>w===null||L.progress===null?null:w+L.progress,0);if(A===null)return l(!1,0,0);let F=d.reduce((w,L)=>w+L.size,0);l(!0,A,F)},O=()=>{d.filter(F=>F.status===Ie.PROCESSING).length>=1||S()},B=()=>{d.forEach(A=>{clearTimeout(A.timeout),A.request&&A.request.abort()})};return g.serverId?y(A=>{g.aborted||(d.filter(F=>F.offset{F.status=Ie.COMPLETE,F.progress=F.size}),O())}):_(A=>{g.aborted||(u(A),g.serverId=A,O())}),{abort:()=>{g.aborted=!0,B()}}},ns=(e,t,i,a)=>(n,r,o,l,s,u,c)=>{if(!n)return;let d=a.chunkUploads,h=d&&n.size>a.chunkSize,f=d&&(h||a.chunkForce);if(n instanceof Blob&&f)return as(e,t,i,n,r,o,l,s,u,c,a);let p=t.ondata||(y=>y),m=t.onload||(y=>y),g=t.onerror||(y=>null),b=typeof t.headers=="function"?t.headers(n,r)||{}:{...t.headers},E={...t,headers:b};var T=new FormData;oe(r)&&T.append(i,JSON.stringify(r)),(n instanceof Blob?[{name:null,file:n}]:n).forEach(y=>{T.append(i,y.file,y.name===null?y.file.name:`${y.name}${y.file.name}`)});let _=$e(p(T),vt(e,t.url),E);return _.onload=y=>{o(ee("load",y.status,m(y.response),y.getAllResponseHeaders()))},_.onerror=y=>{l(ee("error",y.status,g(y.response)||y.statusText,y.getAllResponseHeaders()))},_.ontimeout=qe(l),_.onprogress=s,_.onabort=u,_},rs=(e="",t,i,a)=>typeof t=="function"?(...n)=>t(i,...n,a):!t||!ue(t.url)?null:ns(e,t,i,a),St=(e="",t)=>{if(typeof t=="function")return t;if(!t||!ue(t.url))return(n,r)=>r();let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o)=>{let l=$e(n,e+t.url,t);return l.onload=s=>{r(ee("load",s.status,i(s.response),s.getAllResponseHeaders()))},l.onerror=s=>{o(ee("error",s.status,a(s.response)||s.statusText,s.getAllResponseHeaders()))},l.ontimeout=qe(o),l}},yn=(e=0,t=1)=>e+Math.random()*(t-e),os=(e,t=1e3,i=0,a=25,n=250)=>{let r=null,o=Date.now(),l=()=>{let s=Date.now()-o,u=yn(a,n);s+u>t&&(u=s+u-t);let c=s/t;if(c>=1||document.hidden){e(1);return}e(c),r=setTimeout(l,u)};return t>0&&l(),{clear:()=>{clearTimeout(r)}}},ls=(e,t)=>{let i={complete:!1,perceivedProgress:0,perceivedPerformanceUpdater:null,progress:null,timestamp:null,perceivedDuration:0,duration:0,request:null,response:null},{allowMinimumUploadDuration:a}=t,n=(c,d)=>{let h=()=>{i.duration===0||i.progress===null||u.fire("progress",u.getProgress())},f=()=>{i.complete=!0,u.fire("load-perceived",i.response.body)};u.fire("start"),i.timestamp=Date.now(),i.perceivedPerformanceUpdater=os(p=>{i.perceivedProgress=p,i.perceivedDuration=Date.now()-i.timestamp,h(),i.response&&i.perceivedProgress===1&&!i.complete&&f()},a?yn(750,1500):0),i.request=e(c,d,p=>{i.response=oe(p)?p:{type:"load",code:200,body:`${p}`,headers:{}},i.duration=Date.now()-i.timestamp,i.progress=1,u.fire("load",i.response.body),(!a||a&&i.perceivedProgress===1)&&f()},p=>{i.perceivedPerformanceUpdater.clear(),u.fire("error",oe(p)?p:{type:"error",code:0,body:`${p}`})},(p,m,g)=>{i.duration=Date.now()-i.timestamp,i.progress=p?m/g:null,h()},()=>{i.perceivedPerformanceUpdater.clear(),u.fire("abort",i.response?i.response.body:null)},p=>{u.fire("transfer",p)})},r=()=>{i.request&&(i.perceivedPerformanceUpdater.clear(),i.request.abort&&i.request.abort(),i.complete=!0)},o=()=>{r(),i.complete=!1,i.perceivedProgress=0,i.progress=0,i.timestamp=null,i.perceivedDuration=0,i.duration=0,i.request=null,i.response=null},l=a?()=>i.progress?Math.min(i.progress,i.perceivedProgress):null:()=>i.progress||null,s=a?()=>Math.min(i.duration,i.perceivedDuration):()=>i.duration,u={...ni(),process:n,abort:r,getProgress:l,getDuration:s,reset:o};return u},Sn=e=>e.substring(0,e.lastIndexOf("."))||e,ss=e=>{let t=[e.name,e.size,e.type];return e instanceof Blob||vi(e)?t[0]=e.name||bn():vi(e)?(t[1]=e.length,t[2]=Rn(e)):ue(e)&&(t[0]=Lt(e),t[1]=0,t[2]="application/octet-stream"),{name:t[0],size:t[1],type:t[2]}},ct=e=>!!(e instanceof File||e instanceof Blob&&e.name),wn=e=>{if(!oe(e))return e;let t=ti(e)?[]:{};for(let i in e){if(!e.hasOwnProperty(i))continue;let a=e[i];t[i]=a&&oe(a)?wn(a):a}return t},cs=(e=null,t=null,i=null)=>{let a=Gi(),n={archived:!1,frozen:!1,released:!1,source:null,file:i,serverFileReference:t,transferId:null,processingAborted:!1,status:t?H.PROCESSING_COMPLETE:H.INIT,activeLoader:null,activeProcessor:null},r=null,o={},l=R=>n.status=R,s=(R,...S)=>{n.released||n.frozen||I.fire(R,...S)},u=()=>ri(n.file.name),c=()=>n.file.type,d=()=>n.file.size,h=()=>n.file,f=(R,S,D)=>{if(n.source=R,I.fireSync("init"),n.file){I.fireSync("load-skip");return}n.file=ss(R),S.on("init",()=>{s("load-init")}),S.on("meta",x=>{n.file.size=x.size,n.file.filename=x.filename,x.source&&(e=re.LIMBO,n.serverFileReference=x.source,n.status=H.PROCESSING_COMPLETE),s("load-meta")}),S.on("progress",x=>{l(H.LOADING),s("load-progress",x)}),S.on("error",x=>{l(H.LOAD_ERROR),s("load-request-error",x)}),S.on("abort",()=>{l(H.INIT),s("load-abort")}),S.on("load",x=>{n.activeLoader=null;let O=A=>{n.file=ct(A)?A:n.file,e===re.LIMBO&&n.serverFileReference?l(H.PROCESSING_COMPLETE):l(H.IDLE),s("load")},B=A=>{n.file=x,s("load-meta"),l(H.LOAD_ERROR),s("load-file-error",A)};if(n.serverFileReference){O(x);return}D(x,O,B)}),S.setSource(R),n.activeLoader=S,S.load()},p=()=>{n.activeLoader&&n.activeLoader.load()},m=()=>{if(n.activeLoader){n.activeLoader.abort();return}l(H.INIT),s("load-abort")},g=(R,S)=>{if(n.processingAborted){n.processingAborted=!1;return}if(l(H.PROCESSING),r=null,!(n.file instanceof Blob)){I.on("load",()=>{g(R,S)});return}R.on("load",O=>{n.transferId=null,n.serverFileReference=O}),R.on("transfer",O=>{n.transferId=O}),R.on("load-perceived",O=>{n.activeProcessor=null,n.transferId=null,n.serverFileReference=O,l(H.PROCESSING_COMPLETE),s("process-complete",O)}),R.on("start",()=>{s("process-start")}),R.on("error",O=>{n.activeProcessor=null,l(H.PROCESSING_ERROR),s("process-error",O)}),R.on("abort",O=>{n.activeProcessor=null,n.serverFileReference=O,l(H.IDLE),s("process-abort"),r&&r()}),R.on("progress",O=>{s("process-progress",O)});let D=O=>{n.archived||R.process(O,{...o})},x=console.error;S(n.file,D,x),n.activeProcessor=R},b=()=>{n.processingAborted=!1,l(H.PROCESSING_QUEUED)},E=()=>new Promise(R=>{if(!n.activeProcessor){n.processingAborted=!0,l(H.IDLE),s("process-abort"),R();return}r=()=>{R()},n.activeProcessor.abort()}),T=(R,S)=>new Promise((D,x)=>{let O=n.serverFileReference!==null?n.serverFileReference:n.transferId;if(O===null){D();return}R(O,()=>{n.serverFileReference=null,n.transferId=null,D()},B=>{if(!S){D();return}l(H.PROCESSING_REVERT_ERROR),s("process-revert-error"),x(B)}),l(H.IDLE),s("process-revert")}),_=(R,S,D)=>{let x=R.split("."),O=x[0],B=x.pop(),A=o;x.forEach(F=>A=A[F]),JSON.stringify(A[B])!==JSON.stringify(S)&&(A[B]=S,s("metadata-update",{key:O,value:o[O],silent:D}))},I={id:{get:()=>a},origin:{get:()=>e,set:R=>e=R},serverId:{get:()=>n.serverFileReference},transferId:{get:()=>n.transferId},status:{get:()=>n.status},filename:{get:()=>n.file.name},filenameWithoutExtension:{get:()=>Sn(n.file.name)},fileExtension:{get:u},fileType:{get:c},fileSize:{get:d},file:{get:h},relativePath:{get:()=>n.file._relativePath},source:{get:()=>n.source},getMetadata:R=>wn(R?o[R]:o),setMetadata:(R,S,D)=>{if(oe(R)){let x=R;return Object.keys(x).forEach(O=>{_(O,x[O],S)}),R}return _(R,S,D),S},extend:(R,S)=>v[R]=S,abortLoad:m,retryLoad:p,requestProcessing:b,abortProcessing:E,load:f,process:g,revert:T,...ni(),freeze:()=>n.frozen=!0,release:()=>n.released=!0,released:{get:()=>n.released},archive:()=>n.archived=!0,archived:{get:()=>n.archived}},v=Be(I);return v},ds=(e,t)=>Fe(t)?0:ue(t)?e.findIndex(i=>i.id===t):-1,Ca=(e,t)=>{let i=ds(e,t);if(!(i<0))return e[i]||null},za=(e,t,i,a,n,r)=>{let o=$e(null,e,{method:"GET",responseType:"blob"});return o.onload=l=>{let s=l.getAllResponseHeaders(),u=ki(s).name||Lt(e);t(ee("load",l.status,st(l.response,u),s))},o.onerror=l=>{i(ee("error",l.status,l.statusText,l.getAllResponseHeaders()))},o.onheaders=l=>{r(ee("headers",l.status,null,l.getAllResponseHeaders()))},o.ontimeout=qe(i),o.onprogress=a,o.onabort=n,o},Na=e=>(e.indexOf("//")===0&&(e=location.protocol+e),e.toLowerCase().replace("blob:","").replace(/([a-z])?:\/\//,"$1").split("/")[0]),us=e=>(e.indexOf(":")>-1||e.indexOf("//")>-1)&&Na(location.href)!==Na(e),Yt=e=>(...t)=>We(e)?e(...t):e,hs=e=>!ct(e.file),bi=(e,t)=>{clearTimeout(t.listUpdateTimeout),t.listUpdateTimeout=setTimeout(()=>{e("DID_UPDATE_ITEMS",{items:ve(t.items)})},0)},Ba=(e,...t)=>new Promise(i=>{if(!e)return i(!0);let a=e(...t);if(a==null)return i(!0);if(typeof a=="boolean")return i(a);typeof a.then=="function"&&a.then(i)}),_i=(e,t)=>{e.items.sort((i,a)=>t(fe(i),fe(a)))},be=(e,t)=>({query:i,success:a=()=>{},failure:n=()=>{},...r}={})=>{let o=Ye(e.items,i);if(!o){n({error:ee("error",0,"Item not found"),file:null});return}t(o,a,n,r||{})},fs=(e,t,i)=>({ABORT_ALL:()=>{ve(i.items).forEach(a=>{a.freeze(),a.abortLoad(),a.abortProcessing()})},DID_SET_FILES:({value:a=[]})=>{let n=a.map(o=>({source:o.source?o.source:o,options:o.options})),r=ve(i.items);r.forEach(o=>{n.find(l=>l.source===o.source||l.source===o.file)||e("REMOVE_ITEM",{query:o,remove:!1})}),r=ve(i.items),n.forEach((o,l)=>{r.find(s=>s.source===o.source||s.file===o.source)||e("ADD_ITEM",{...o,interactionMethod:_e.NONE,index:l})})},DID_UPDATE_ITEM_METADATA:({id:a,action:n,change:r})=>{r.silent||(clearTimeout(i.itemUpdateTimeout),i.itemUpdateTimeout=setTimeout(()=>{let o=Ca(i.items,a);if(!t("IS_ASYNC")){we("SHOULD_PREPARE_OUTPUT",!1,{item:o,query:t,action:n,change:r}).then(c=>{let d=t("GET_BEFORE_PREPARE_FILE");d&&(c=d(o,c)),c&&e("REQUEST_PREPARE_OUTPUT",{query:a,item:o,success:h=>{e("DID_PREPARE_OUTPUT",{id:a,file:h})}},!0)});return}o.origin===re.LOCAL&&e("DID_LOAD_ITEM",{id:o.id,error:null,serverFileReference:o.source});let l=()=>{setTimeout(()=>{e("REQUEST_ITEM_PROCESSING",{query:a})},32)},s=c=>{o.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(c?l:()=>{}).catch(()=>{})},u=c=>{o.abortProcessing().then(c?l:()=>{})};if(o.status===H.PROCESSING_COMPLETE)return s(i.options.instantUpload);if(o.status===H.PROCESSING)return u(i.options.instantUpload);i.options.instantUpload&&l()},0))},MOVE_ITEM:({query:a,index:n})=>{let r=Ye(i.items,a);if(!r)return;let o=i.items.indexOf(r);n=In(n,0,i.items.length-1),o!==n&&i.items.splice(n,0,i.items.splice(o,1)[0])},SORT:({compare:a})=>{_i(i,a),e("DID_SORT_ITEMS",{items:t("GET_ACTIVE_ITEMS")})},ADD_ITEMS:({items:a,index:n,interactionMethod:r,success:o=()=>{},failure:l=()=>{}})=>{let s=n;if(n===-1||typeof n>"u"){let f=t("GET_ITEM_INSERT_LOCATION"),p=t("GET_TOTAL_ITEMS");s=f==="before"?0:p}let u=t("GET_IGNORED_FILES"),c=f=>ct(f)?!u.includes(f.name.toLowerCase()):!Fe(f),h=a.filter(c).map(f=>new Promise((p,m)=>{e("ADD_ITEM",{interactionMethod:r,source:f.source||f,success:p,failure:m,index:s++,options:f.options||{}})}));Promise.all(h).then(o).catch(l)},ADD_ITEM:({source:a,index:n=-1,interactionMethod:r,success:o=()=>{},failure:l=()=>{},options:s={}})=>{if(Fe(a)){l({error:ee("error",0,"No source"),file:null});return}if(ct(a)&&i.options.ignoredFiles.includes(a.name.toLowerCase()))return;if(!Hl(i)){if(i.options.allowMultiple||!i.options.allowMultiple&&!i.options.allowReplace){let E=ee("warning",0,"Max files");e("DID_THROW_MAX_FILES",{source:a,error:E}),l({error:E,file:null});return}let b=ve(i.items)[0];if(b.status===H.PROCESSING_COMPLETE||b.status===H.PROCESSING_REVERT_ERROR){let E=t("GET_FORCE_REVERT");if(b.revert(St(i.options.server.url,i.options.server.revert),E).then(()=>{E&&e("ADD_ITEM",{source:a,index:n,interactionMethod:r,success:o,failure:l,options:s})}).catch(()=>{}),E)return}e("REMOVE_ITEM",{query:b.id})}let u=s.type==="local"?re.LOCAL:s.type==="limbo"?re.LIMBO:re.INPUT,c=cs(u,u===re.INPUT?null:a,s.file);Object.keys(s.metadata||{}).forEach(b=>{c.setMetadata(b,s.metadata[b])}),je("DID_CREATE_ITEM",c,{query:t,dispatch:e});let d=t("GET_ITEM_INSERT_LOCATION");i.options.itemInsertLocationFreedom||(n=d==="before"?-1:i.items.length),Yl(i.items,c,n),We(d)&&a&&_i(i,d);let h=c.id;c.on("init",()=>{e("DID_INIT_ITEM",{id:h})}),c.on("load-init",()=>{e("DID_START_ITEM_LOAD",{id:h})}),c.on("load-meta",()=>{e("DID_UPDATE_ITEM_META",{id:h})}),c.on("load-progress",b=>{e("DID_UPDATE_ITEM_LOAD_PROGRESS",{id:h,progress:b})}),c.on("load-request-error",b=>{let E=Yt(i.options.labelFileLoadError)(b);if(b.code>=400&&b.code<500){e("DID_THROW_ITEM_INVALID",{id:h,error:b,status:{main:E,sub:`${b.code} (${b.body})`}}),l({error:b,file:fe(c)});return}e("DID_THROW_ITEM_LOAD_ERROR",{id:h,error:b,status:{main:E,sub:i.options.labelTapToRetry}})}),c.on("load-file-error",b=>{e("DID_THROW_ITEM_INVALID",{id:h,error:b.status,status:b.status}),l({error:b.status,file:fe(c)})}),c.on("load-abort",()=>{e("REMOVE_ITEM",{query:h})}),c.on("load-skip",()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}})}),c.on("load",()=>{let b=E=>{if(!E){e("REMOVE_ITEM",{query:h});return}c.on("metadata-update",T=>{e("DID_UPDATE_ITEM_METADATA",{id:h,change:T})}),we("SHOULD_PREPARE_OUTPUT",!1,{item:c,query:t}).then(T=>{let _=t("GET_BEFORE_PREPARE_FILE");_&&(T=_(c,T));let y=()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}}),bi(e,i)};if(T){e("REQUEST_PREPARE_OUTPUT",{query:h,item:c,success:I=>{e("DID_PREPARE_OUTPUT",{id:h,file:I}),y()}},!0);return}y()})};we("DID_LOAD_ITEM",c,{query:t,dispatch:e}).then(()=>{Ba(t("GET_BEFORE_ADD_FILE"),fe(c)).then(b)}).catch(E=>{if(!E||!E.error||!E.status)return b(!1);e("DID_THROW_ITEM_INVALID",{id:h,error:E.error,status:E.status})})}),c.on("process-start",()=>{e("DID_START_ITEM_PROCESSING",{id:h})}),c.on("process-progress",b=>{e("DID_UPDATE_ITEM_PROCESS_PROGRESS",{id:h,progress:b})}),c.on("process-error",b=>{e("DID_THROW_ITEM_PROCESSING_ERROR",{id:h,error:b,status:{main:Yt(i.options.labelFileProcessingError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-revert-error",b=>{e("DID_THROW_ITEM_PROCESSING_REVERT_ERROR",{id:h,error:b,status:{main:Yt(i.options.labelFileProcessingRevertError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-complete",b=>{e("DID_COMPLETE_ITEM_PROCESSING",{id:h,error:null,serverFileReference:b}),e("DID_DEFINE_VALUE",{id:h,value:b})}),c.on("process-abort",()=>{e("DID_ABORT_ITEM_PROCESSING",{id:h})}),c.on("process-revert",()=>{e("DID_REVERT_ITEM_PROCESSING",{id:h}),e("DID_DEFINE_VALUE",{id:h,value:null})}),e("DID_ADD_ITEM",{id:h,index:n,interactionMethod:r}),bi(e,i);let{url:f,load:p,restore:m,fetch:g}=i.options.server||{};c.load(a,is(u===re.INPUT?ue(a)&&us(a)&&g?Ii(f,g):za:u===re.LIMBO?Ii(f,m):Ii(f,p)),(b,E,T)=>{we("LOAD_FILE",b,{query:t}).then(E).catch(T)})},REQUEST_PREPARE_OUTPUT:({item:a,success:n,failure:r=()=>{}})=>{let o={error:ee("error",0,"Item not found"),file:null};if(a.archived)return r(o);we("PREPARE_OUTPUT",a.file,{query:t,item:a}).then(l=>{we("COMPLETE_PREPARE_OUTPUT",l,{query:t,item:a}).then(s=>{if(a.archived)return r(o);n(s)})})},COMPLETE_LOAD_ITEM:({item:a,data:n})=>{let{success:r,source:o}=n,l=t("GET_ITEM_INSERT_LOCATION");if(We(l)&&o&&_i(i,l),e("DID_LOAD_ITEM",{id:a.id,error:null,serverFileReference:a.origin===re.INPUT?null:o}),r(fe(a)),a.origin===re.LOCAL){e("DID_LOAD_LOCAL_ITEM",{id:a.id});return}if(a.origin===re.LIMBO){e("DID_COMPLETE_ITEM_PROCESSING",{id:a.id,error:null,serverFileReference:o}),e("DID_DEFINE_VALUE",{id:a.id,value:a.serverId||o});return}t("IS_ASYNC")&&i.options.instantUpload&&e("REQUEST_ITEM_PROCESSING",{query:a.id})},RETRY_ITEM_LOAD:be(i,a=>{a.retryLoad()}),REQUEST_ITEM_PREPARE:be(i,(a,n,r)=>{e("REQUEST_PREPARE_OUTPUT",{query:a.id,item:a,success:o=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:o}),n({file:a,output:o})},failure:r},!0)}),REQUEST_ITEM_PROCESSING:be(i,(a,n,r)=>{if(!(a.status===H.IDLE||a.status===H.PROCESSING_ERROR)){let l=()=>e("REQUEST_ITEM_PROCESSING",{query:a,success:n,failure:r}),s=()=>document.hidden?l():setTimeout(l,32);a.status===H.PROCESSING_COMPLETE||a.status===H.PROCESSING_REVERT_ERROR?a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(s).catch(()=>{}):a.status===H.PROCESSING&&a.abortProcessing().then(s);return}a.status!==H.PROCESSING_QUEUED&&(a.requestProcessing(),e("DID_REQUEST_ITEM_PROCESSING",{id:a.id}),e("PROCESS_ITEM",{query:a,success:n,failure:r},!0))}),PROCESS_ITEM:be(i,(a,n,r)=>{let o=t("GET_MAX_PARALLEL_UPLOADS");if(t("GET_ITEMS_BY_STATUS",H.PROCESSING).length===o){i.processingQueue.push({id:a.id,success:n,failure:r});return}if(a.status===H.PROCESSING)return;let s=()=>{let c=i.processingQueue.shift();if(!c)return;let{id:d,success:h,failure:f}=c,p=Ye(i.items,d);if(!p||p.archived){s();return}e("PROCESS_ITEM",{query:d,success:h,failure:f},!0)};a.onOnce("process-complete",()=>{n(fe(a)),s();let c=i.options.server;if(i.options.instantUpload&&a.origin===re.LOCAL&&We(c.remove)){let f=()=>{};a.origin=re.LIMBO,i.options.server.remove(a.source,f,f)}t("GET_ITEMS_BY_STATUS",H.PROCESSING_COMPLETE).length===i.items.length&&e("DID_COMPLETE_ITEM_PROCESSING_ALL")}),a.onOnce("process-error",c=>{r({error:c,file:fe(a)}),s()});let u=i.options;a.process(ls(rs(u.server.url,u.server.process,u.name,{chunkTransferId:a.transferId,chunkServer:u.server.patch,chunkUploads:u.chunkUploads,chunkForce:u.chunkForce,chunkSize:u.chunkSize,chunkRetryDelays:u.chunkRetryDelays}),{allowMinimumUploadDuration:t("GET_ALLOW_MINIMUM_UPLOAD_DURATION")}),(c,d,h)=>{we("PREPARE_OUTPUT",c,{query:t,item:a}).then(f=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:f}),d(f)}).catch(h)})}),RETRY_ITEM_PROCESSING:be(i,a=>{e("REQUEST_ITEM_PROCESSING",{query:a})}),REQUEST_REMOVE_ITEM:be(i,a=>{Ba(t("GET_BEFORE_REMOVE_FILE"),fe(a)).then(n=>{n&&e("REMOVE_ITEM",{query:a})})}),RELEASE_ITEM:be(i,a=>{a.release()}),REMOVE_ITEM:be(i,(a,n,r,o)=>{let l=()=>{let u=a.id;Ca(i.items,u).archive(),e("DID_REMOVE_ITEM",{error:null,id:u,item:a}),bi(e,i),n(fe(a))},s=i.options.server;a.origin===re.LOCAL&&s&&We(s.remove)&&o.remove!==!1?(e("DID_START_ITEM_REMOVE",{id:a.id}),s.remove(a.source,()=>l(),u=>{e("DID_THROW_ITEM_REMOVE_ERROR",{id:a.id,error:ee("error",0,u,null),status:{main:Yt(i.options.labelFileRemoveError)(u),sub:i.options.labelTapToRetry}})})):((o.revert&&a.origin!==re.LOCAL&&a.serverId!==null||i.options.chunkUploads&&a.file.size>i.options.chunkSize||i.options.chunkUploads&&i.options.chunkForce)&&a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")),l())}),ABORT_ITEM_LOAD:be(i,a=>{a.abortLoad()}),ABORT_ITEM_PROCESSING:be(i,a=>{if(a.serverId){e("REVERT_ITEM_PROCESSING",{id:a.id});return}a.abortProcessing().then(()=>{i.options.instantUpload&&e("REMOVE_ITEM",{query:a.id})})}),REQUEST_REVERT_ITEM_PROCESSING:be(i,a=>{if(!i.options.instantUpload){e("REVERT_ITEM_PROCESSING",{query:a});return}let n=l=>{l&&e("REVERT_ITEM_PROCESSING",{query:a})},r=t("GET_BEFORE_REMOVE_FILE");if(!r)return n(!0);let o=r(fe(a));if(o==null)return n(!0);if(typeof o=="boolean")return n(o);typeof o.then=="function"&&o.then(n)}),REVERT_ITEM_PROCESSING:be(i,a=>{a.revert(St(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(()=>{(i.options.instantUpload||hs(a))&&e("REMOVE_ITEM",{query:a.id})}).catch(()=>{})}),SET_OPTIONS:({options:a})=>{let n=Object.keys(a),r=ps.filter(l=>n.includes(l));[...r,...Object.keys(a).filter(l=>!r.includes(l))].forEach(l=>{e(`SET_${ai(l,"_").toUpperCase()}`,{value:a[l]})})}}),ps=["server"],Hi=e=>e,Ce=e=>document.createElement(e),te=(e,t)=>{let i=e.childNodes[0];i?t!==i.nodeValue&&(i.nodeValue=t):(i=document.createTextNode(t),e.appendChild(i))},Ga=(e,t,i,a)=>{let n=(a%360-90)*Math.PI/180;return{x:e+i*Math.cos(n),y:t+i*Math.sin(n)}},ms=(e,t,i,a,n,r)=>{let o=Ga(e,t,i,n),l=Ga(e,t,i,a);return["M",o.x,o.y,"A",i,i,0,r,0,l.x,l.y].join(" ")},gs=(e,t,i,a,n)=>{let r=1;return n>a&&n-a<=.5&&(r=0),a>n&&a-n>=.5&&(r=0),ms(e,t,i,Math.min(.9999,a)*360,Math.min(.9999,n)*360,r)},Es=({root:e,props:t})=>{t.spin=!1,t.progress=0,t.opacity=0;let i=Zt("svg");e.ref.path=Zt("path",{"stroke-width":2,"stroke-linecap":"round"}),i.appendChild(e.ref.path),e.ref.svg=i,e.appendChild(i)},Ts=({root:e,props:t})=>{if(t.opacity===0)return;t.align&&(e.element.dataset.align=t.align);let i=parseInt(ie(e.ref.path,"stroke-width"),10),a=e.rect.element.width*.5,n=0,r=0;t.spin?(n=0,r=.5):(n=0,r=t.progress);let o=gs(a,a,a-i,n,r);ie(e.ref.path,"d",o),ie(e.ref.path,"stroke-opacity",t.spin||t.progress>0?1:0)},Va=ae({tag:"div",name:"progress-indicator",ignoreRectUpdate:!0,ignoreRect:!0,create:Es,write:Ts,mixins:{apis:["progress","spin","align"],styles:["opacity"],animations:{opacity:{type:"tween",duration:500},progress:{type:"spring",stiffness:.95,damping:.65,mass:10}}}}),Is=({root:e,props:t})=>{e.element.innerHTML=(t.icon||"")+`${t.label}`,t.isDisabled=!1},bs=({root:e,props:t})=>{let{isDisabled:i}=t,a=e.query("GET_DISABLED")||t.opacity===0;a&&!i?(t.isDisabled=!0,ie(e.element,"disabled","disabled")):!a&&i&&(t.isDisabled=!1,e.element.removeAttribute("disabled"))},vn=ae({tag:"button",attributes:{type:"button"},ignoreRect:!0,ignoreRectUpdate:!0,name:"file-action-button",mixins:{apis:["label"],styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}},listeners:!0},create:Is,write:bs}),An=(e,t=".",i=1e3,a={})=>{let{labelBytes:n="bytes",labelKilobytes:r="KB",labelMegabytes:o="MB",labelGigabytes:l="GB"}=a;e=Math.round(Math.abs(e));let s=i,u=i*i,c=i*i*i;return ee.toFixed(t).split(".").filter(a=>a!=="0").join(i),_s=({root:e,props:t})=>{let i=Ce("span");i.className="filepond--file-info-main",ie(i,"aria-hidden","true"),e.appendChild(i),e.ref.fileName=i;let a=Ce("span");a.className="filepond--file-info-sub",e.appendChild(a),e.ref.fileSize=a,te(a,e.query("GET_LABEL_FILE_WAITING_FOR_SIZE")),te(i,Hi(e.query("GET_ITEM_NAME",t.id)))},Ai=({root:e,props:t})=>{te(e.ref.fileSize,An(e.query("GET_ITEM_SIZE",t.id),".",e.query("GET_FILE_SIZE_BASE"),e.query("GET_FILE_SIZE_LABELS",e.query))),te(e.ref.fileName,Hi(e.query("GET_ITEM_NAME",t.id)))},ka=({root:e,props:t})=>{if(dt(e.query("GET_ITEM_SIZE",t.id))){Ai({root:e,props:t});return}te(e.ref.fileSize,e.query("GET_LABEL_FILE_SIZE_NOT_AVAILABLE"))},Rs=ae({name:"file-info",ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:Ai,DID_UPDATE_ITEM_META:Ai,DID_THROW_ITEM_LOAD_ERROR:ka,DID_THROW_ITEM_INVALID:ka}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},create:_s,mixins:{styles:["translateX","translateY"],animations:{translateX:"spring",translateY:"spring"}}}),Ln=e=>Math.round(e*100),ys=({root:e})=>{let t=Ce("span");t.className="filepond--file-status-main",e.appendChild(t),e.ref.main=t;let i=Ce("span");i.className="filepond--file-status-sub",e.appendChild(i),e.ref.sub=i,Mn({root:e,action:{progress:null}})},Mn=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_LOADING"):`${e.query("GET_LABEL_FILE_LOADING")} ${Ln(t.progress)}%`;te(e.ref.main,i),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Ss=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_PROCESSING"):`${e.query("GET_LABEL_FILE_PROCESSING")} ${Ln(t.progress)}%`;te(e.ref.main,i),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},ws=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},vs=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_ABORTED")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_RETRY"))},As=({root:e})=>{te(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_COMPLETE")),te(e.ref.sub,e.query("GET_LABEL_TAP_TO_UNDO"))},Ha=({root:e})=>{te(e.ref.main,""),te(e.ref.sub,"")},wt=({root:e,action:t})=>{te(e.ref.main,t.status.main),te(e.ref.sub,t.status.sub)},Ls=ae({name:"file-status",ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:Ha,DID_REVERT_ITEM_PROCESSING:Ha,DID_REQUEST_ITEM_PROCESSING:ws,DID_ABORT_ITEM_PROCESSING:vs,DID_COMPLETE_ITEM_PROCESSING:As,DID_UPDATE_ITEM_PROCESS_PROGRESS:Ss,DID_UPDATE_ITEM_LOAD_PROGRESS:Mn,DID_THROW_ITEM_LOAD_ERROR:wt,DID_THROW_ITEM_INVALID:wt,DID_THROW_ITEM_PROCESSING_ERROR:wt,DID_THROW_ITEM_PROCESSING_REVERT_ERROR:wt,DID_THROW_ITEM_REMOVE_ERROR:wt}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},create:ys,mixins:{styles:["translateX","translateY","opacity"],animations:{opacity:{type:"tween",duration:250},translateX:"spring",translateY:"spring"}}}),Li={AbortItemLoad:{label:"GET_LABEL_BUTTON_ABORT_ITEM_LOAD",action:"ABORT_ITEM_LOAD",className:"filepond--action-abort-item-load",align:"LOAD_INDICATOR_POSITION"},RetryItemLoad:{label:"GET_LABEL_BUTTON_RETRY_ITEM_LOAD",action:"RETRY_ITEM_LOAD",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-load",align:"BUTTON_PROCESS_ITEM_POSITION"},RemoveItem:{label:"GET_LABEL_BUTTON_REMOVE_ITEM",action:"REQUEST_REMOVE_ITEM",icon:"GET_ICON_REMOVE",className:"filepond--action-remove-item",align:"BUTTON_REMOVE_ITEM_POSITION"},ProcessItem:{label:"GET_LABEL_BUTTON_PROCESS_ITEM",action:"REQUEST_ITEM_PROCESSING",icon:"GET_ICON_PROCESS",className:"filepond--action-process-item",align:"BUTTON_PROCESS_ITEM_POSITION"},AbortItemProcessing:{label:"GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING",action:"ABORT_ITEM_PROCESSING",className:"filepond--action-abort-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RetryItemProcessing:{label:"GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING",action:"RETRY_ITEM_PROCESSING",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RevertItemProcessing:{label:"GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING",action:"REQUEST_REVERT_ITEM_PROCESSING",icon:"GET_ICON_UNDO",className:"filepond--action-revert-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"}},Mi=[];J(Li,e=>{Mi.push(e)});var Ee=e=>{if(Oi(e)==="right")return 0;let t=e.ref.buttonRemoveItem.rect.element;return t.hidden?null:t.width+t.left},Ms=e=>e.ref.buttonAbortItemLoad.rect.element.width,$t=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.height/4),Os=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.left/2),xs=e=>e.query("GET_STYLE_LOAD_INDICATOR_POSITION"),Ds=e=>e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION"),Oi=e=>e.query("GET_STYLE_BUTTON_REMOVE_ITEM_POSITION"),Ps={buttonAbortItemLoad:{opacity:0},buttonRetryItemLoad:{opacity:0},buttonRemoveItem:{opacity:0},buttonProcessItem:{opacity:0},buttonAbortItemProcessing:{opacity:0},buttonRetryItemProcessing:{opacity:0},buttonRevertItemProcessing:{opacity:0},loadProgressIndicator:{opacity:0,align:xs},processProgressIndicator:{opacity:0,align:Ds},processingCompleteIndicator:{opacity:0,scaleX:.75,scaleY:.75},info:{translateX:0,translateY:0,opacity:0},status:{translateX:0,translateY:0,opacity:0}},Wa={buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee}},Ri={buttonAbortItemProcessing:{opacity:1},processProgressIndicator:{opacity:1},status:{opacity:1}},nt={DID_THROW_ITEM_INVALID:{buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee,opacity:1}},DID_START_ITEM_LOAD:{buttonAbortItemLoad:{opacity:1},loadProgressIndicator:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_LOAD_ERROR:{buttonRetryItemLoad:{opacity:1},buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{opacity:1}},DID_START_ITEM_REMOVE:{processProgressIndicator:{opacity:1,align:Oi},info:{translateX:Ee},status:{opacity:0}},DID_THROW_ITEM_REMOVE_ERROR:{processProgressIndicator:{opacity:0,align:Oi},buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{opacity:1,translateX:Ee}},DID_LOAD_ITEM:Wa,DID_LOAD_LOCAL_ITEM:{buttonRemoveItem:{opacity:1},info:{translateX:Ee},status:{translateX:Ee}},DID_START_ITEM_PROCESSING:Ri,DID_REQUEST_ITEM_PROCESSING:Ri,DID_UPDATE_ITEM_PROCESS_PROGRESS:Ri,DID_COMPLETE_ITEM_PROCESSING:{buttonRevertItemProcessing:{opacity:1},info:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_PROCESSING_ERROR:{buttonRemoveItem:{opacity:1},buttonRetryItemProcessing:{opacity:1},status:{opacity:1},info:{translateX:Ee}},DID_THROW_ITEM_PROCESSING_REVERT_ERROR:{buttonRevertItemProcessing:{opacity:1},status:{opacity:1},info:{opacity:1}},DID_ABORT_ITEM_PROCESSING:{buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ee},status:{opacity:1}},DID_REVERT_ITEM_PROCESSING:Wa},Fs=ae({create:({root:e})=>{e.element.innerHTML=e.query("GET_ICON_DONE")},name:"processing-complete-indicator",ignoreRect:!0,mixins:{styles:["scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",opacity:{type:"tween",duration:250}}}}),Cs=({root:e,props:t})=>{let i=Object.keys(Li).reduce((p,m)=>(p[m]={...Li[m]},p),{}),{id:a}=t,n=e.query("GET_ALLOW_REVERT"),r=e.query("GET_ALLOW_REMOVE"),o=e.query("GET_ALLOW_PROCESS"),l=e.query("GET_INSTANT_UPLOAD"),s=e.query("IS_ASYNC"),u=e.query("GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN"),c;s?o&&!n?c=p=>!/RevertItemProcessing/.test(p):!o&&n?c=p=>!/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(p):!o&&!n&&(c=p=>!/Process/.test(p)):c=p=>!/Process/.test(p);let d=c?Mi.filter(c):Mi.concat();if(l&&n&&(i.RevertItemProcessing.label="GET_LABEL_BUTTON_REMOVE_ITEM",i.RevertItemProcessing.icon="GET_ICON_REMOVE"),s&&!n){let p=nt.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Os,p.info.translateY=$t,p.status.translateY=$t,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}if(s&&!o&&(["DID_START_ITEM_PROCESSING","DID_REQUEST_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_THROW_ITEM_PROCESSING_ERROR"].forEach(p=>{nt[p].status.translateY=$t}),nt.DID_THROW_ITEM_PROCESSING_ERROR.status.translateX=Ms),u&&n){i.RevertItemProcessing.align="BUTTON_REMOVE_ITEM_POSITION";let p=nt.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Ee,p.status.translateY=$t,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}r||(i.RemoveItem.disabled=!0),J(i,(p,m)=>{let g=e.createChildView(vn,{label:e.query(m.label),icon:e.query(m.icon),opacity:0});d.includes(p)&&e.appendChildView(g),m.disabled&&(g.element.setAttribute("disabled","disabled"),g.element.setAttribute("hidden","hidden")),g.element.dataset.align=e.query(`GET_STYLE_${m.align}`),g.element.classList.add(m.className),g.on("click",b=>{b.stopPropagation(),!m.disabled&&e.dispatch(m.action,{query:a})}),e.ref[`button${p}`]=g}),e.ref.processingCompleteIndicator=e.appendChildView(e.createChildView(Fs)),e.ref.processingCompleteIndicator.element.dataset.align=e.query("GET_STYLE_BUTTON_PROCESS_ITEM_POSITION"),e.ref.info=e.appendChildView(e.createChildView(Rs,{id:a})),e.ref.status=e.appendChildView(e.createChildView(Ls,{id:a}));let h=e.appendChildView(e.createChildView(Va,{opacity:0,align:e.query("GET_STYLE_LOAD_INDICATOR_POSITION")}));h.element.classList.add("filepond--load-indicator"),e.ref.loadProgressIndicator=h;let f=e.appendChildView(e.createChildView(Va,{opacity:0,align:e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION")}));f.element.classList.add("filepond--process-indicator"),e.ref.processProgressIndicator=f,e.ref.activeStyles=[]},zs=({root:e,actions:t,props:i})=>{Ns({root:e,actions:t,props:i});let a=t.concat().filter(n=>/^DID_/.test(n.type)).reverse().find(n=>nt[n.type]);if(a){e.ref.activeStyles=[];let n=nt[a.type];J(Ps,(r,o)=>{let l=e.ref[r];J(o,(s,u)=>{let c=n[r]&&typeof n[r][s]<"u"?n[r][s]:u;e.ref.activeStyles.push({control:l,key:s,value:c})})})}e.ref.activeStyles.forEach(({control:n,key:r,value:o})=>{n[r]=typeof o=="function"?o(e):o})},Ns=he({DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING:({root:e,action:t})=>{e.ref.buttonAbortItemProcessing.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD:({root:e,action:t})=>{e.ref.buttonAbortItemLoad.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL:({root:e,action:t})=>{e.ref.buttonAbortItemRemoval.label=t.value},DID_REQUEST_ITEM_PROCESSING:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_START_ITEM_LOAD:({root:e})=>{e.ref.loadProgressIndicator.spin=!0,e.ref.loadProgressIndicator.progress=0},DID_START_ITEM_REMOVE:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_UPDATE_ITEM_LOAD_PROGRESS:({root:e,action:t})=>{e.ref.loadProgressIndicator.spin=!1,e.ref.loadProgressIndicator.progress=t.progress},DID_UPDATE_ITEM_PROCESS_PROGRESS:({root:e,action:t})=>{e.ref.processProgressIndicator.spin=!1,e.ref.processProgressIndicator.progress=t.progress}}),Bs=ae({create:Cs,write:zs,didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},name:"file"}),Gs=({root:e,props:t})=>{e.ref.fileName=Ce("legend"),e.appendChild(e.ref.fileName),e.ref.file=e.appendChildView(e.createChildView(Bs,{id:t.id})),e.ref.data=!1},Vs=({root:e,props:t})=>{te(e.ref.fileName,Hi(e.query("GET_ITEM_NAME",t.id)))},Us=ae({create:Gs,ignoreRect:!0,write:he({DID_LOAD_ITEM:Vs}),didCreateView:e=>{je("CREATE_VIEW",{...e,view:e})},tag:"fieldset",name:"file-wrapper"}),Ya={type:"spring",damping:.6,mass:7},ks=({root:e,props:t})=>{[{name:"top"},{name:"center",props:{translateY:null,scaleY:null},mixins:{animations:{scaleY:Ya},styles:["translateY","scaleY"]}},{name:"bottom",props:{translateY:null},mixins:{animations:{translateY:Ya},styles:["translateY"]}}].forEach(i=>{Hs(e,i,t.name)}),e.element.classList.add(`filepond--${t.name}`),e.ref.scalable=null},Hs=(e,t,i)=>{let a=ae({name:`panel-${t.name} filepond--${i}`,mixins:t.mixins,ignoreRectUpdate:!0}),n=e.createChildView(a,t.props);e.ref[t.name]=e.appendChildView(n)},Ws=({root:e,props:t})=>{if((e.ref.scalable===null||t.scalable!==e.ref.scalable)&&(e.ref.scalable=dn(t.scalable)?t.scalable:!0,e.element.dataset.scalable=e.ref.scalable),!t.height)return;let i=e.ref.top.rect.element,a=e.ref.bottom.rect.element,n=Math.max(i.height+a.height,t.height);e.ref.center.translateY=i.height,e.ref.center.scaleY=(n-i.height-a.height)/100,e.ref.bottom.translateY=n-a.height},On=ae({name:"panel",read:({root:e,props:t})=>t.heightCurrent=e.ref.bottom.translateY,write:Ws,create:ks,ignoreRect:!0,mixins:{apis:["height","heightCurrent","scalable"]}}),Ys=e=>{let t=e.map(a=>a.id),i;return{setIndex:a=>{i=a},getIndex:()=>i,getItemIndex:a=>t.indexOf(a.id)}},$a={type:"spring",stiffness:.75,damping:.45,mass:10},qa="spring",Xa={DID_START_ITEM_LOAD:"busy",DID_UPDATE_ITEM_LOAD_PROGRESS:"loading",DID_THROW_ITEM_INVALID:"load-invalid",DID_THROW_ITEM_LOAD_ERROR:"load-error",DID_LOAD_ITEM:"idle",DID_THROW_ITEM_REMOVE_ERROR:"remove-error",DID_START_ITEM_REMOVE:"busy",DID_START_ITEM_PROCESSING:"busy processing",DID_REQUEST_ITEM_PROCESSING:"busy processing",DID_UPDATE_ITEM_PROCESS_PROGRESS:"processing",DID_COMPLETE_ITEM_PROCESSING:"processing-complete",DID_THROW_ITEM_PROCESSING_ERROR:"processing-error",DID_THROW_ITEM_PROCESSING_REVERT_ERROR:"processing-revert-error",DID_ABORT_ITEM_PROCESSING:"cancelled",DID_REVERT_ITEM_PROCESSING:"idle"},$s=({root:e,props:t})=>{if(e.ref.handleClick=a=>e.dispatch("DID_ACTIVATE_ITEM",{id:t.id}),e.element.id=`filepond--item-${t.id}`,e.element.addEventListener("click",e.ref.handleClick),e.ref.container=e.appendChildView(e.createChildView(Us,{id:t.id})),e.ref.panel=e.appendChildView(e.createChildView(On,{name:"item-panel"})),e.ref.panel.height=null,t.markedForRemoval=!1,!e.query("GET_ALLOW_REORDER"))return;e.element.dataset.dragState="idle";let i=a=>{if(!a.isPrimary)return;let n=!1,r={x:a.pageX,y:a.pageY};t.dragOrigin={x:e.translateX,y:e.translateY},t.dragCenter={x:a.offsetX,y:a.offsetY};let o=Ys(e.query("GET_ACTIVE_ITEMS"));e.dispatch("DID_GRAB_ITEM",{id:t.id,dragState:o});let l=u=>{if(!u.isPrimary)return;u.stopPropagation(),u.preventDefault(),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},t.dragOffset.x*t.dragOffset.x+t.dragOffset.y*t.dragOffset.y>16&&!n&&(n=!0,e.element.removeEventListener("click",e.ref.handleClick)),e.dispatch("DID_DRAG_ITEM",{id:t.id,dragState:o})},s=u=>{u.isPrimary&&(document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",s),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},e.dispatch("DID_DROP_ITEM",{id:t.id,dragState:o}),n&&setTimeout(()=>e.element.addEventListener("click",e.ref.handleClick),0))};document.addEventListener("pointermove",l),document.addEventListener("pointerup",s)};e.element.addEventListener("pointerdown",i)},qs=he({DID_UPDATE_PANEL_HEIGHT:({root:e,action:t})=>{e.height=t.height}}),Xs=he({DID_GRAB_ITEM:({root:e,props:t})=>{t.dragOrigin={x:e.translateX,y:e.translateY}},DID_DRAG_ITEM:({root:e})=>{e.element.dataset.dragState="drag"},DID_DROP_ITEM:({root:e,props:t})=>{t.dragOffset=null,t.dragOrigin=null,e.element.dataset.dragState="drop"}},({root:e,actions:t,props:i,shouldOptimize:a})=>{e.element.dataset.dragState==="drop"&&e.scaleX<=1&&(e.element.dataset.dragState="idle");let n=t.concat().filter(o=>/^DID_/.test(o.type)).reverse().find(o=>Xa[o.type]);n&&n.type!==i.currentState&&(i.currentState=n.type,e.element.dataset.filepondItemState=Xa[i.currentState]||"");let r=e.query("GET_ITEM_PANEL_ASPECT_RATIO")||e.query("GET_PANEL_ASPECT_RATIO");r?a||(e.height=e.rect.element.width*r):(qs({root:e,actions:t,props:i}),!e.height&&e.ref.container.rect.element.height>0&&(e.height=e.ref.container.rect.element.height)),a&&(e.ref.panel.height=null),e.ref.panel.height=e.height}),js=ae({create:$s,write:Xs,destroy:({root:e,props:t})=>{e.element.removeEventListener("click",e.ref.handleClick),e.dispatch("RELEASE_ITEM",{query:t.id})},tag:"li",name:"item",mixins:{apis:["id","interactionMethod","markedForRemoval","spawnDate","dragCenter","dragOrigin","dragOffset"],styles:["translateX","translateY","scaleX","scaleY","opacity","height"],animations:{scaleX:qa,scaleY:qa,translateX:$a,translateY:$a,opacity:{type:"tween",duration:150}}}}),Wi=(e,t)=>Math.max(1,Math.floor((e+1)/t)),Yi=(e,t,i)=>{if(!i)return;let a=e.rect.element.width,n=t.length,r=null;if(n===0||i.topE){if(i.left{ie(e.element,"role","list"),e.ref.lastItemSpanwDate=Date.now()},Zs=({root:e,action:t})=>{let{id:i,index:a,interactionMethod:n}=t;e.ref.addIndex=a;let r=Date.now(),o=r,l=1;if(n!==_e.NONE){l=0;let s=e.query("GET_ITEM_INSERT_INTERVAL"),u=r-e.ref.lastItemSpanwDate;o=u{e.dragOffset?(e.translateX=null,e.translateY=null,e.translateX=e.dragOrigin.x+e.dragOffset.x,e.translateY=e.dragOrigin.y+e.dragOffset.y,e.scaleX=1.025,e.scaleY=1.025):(e.translateX=t,e.translateY=i,Date.now()>e.spawnDate&&(e.opacity===0&&Ks(e,t,i,a,n),e.scaleX=1,e.scaleY=1,e.opacity=1))},Ks=(e,t,i,a,n)=>{e.interactionMethod===_e.NONE?(e.translateX=null,e.translateX=t,e.translateY=null,e.translateY=i):e.interactionMethod===_e.DROP?(e.translateX=null,e.translateX=t-a*20,e.translateY=null,e.translateY=i-n*10,e.scaleX=.8,e.scaleY=.8):e.interactionMethod===_e.BROWSE?(e.translateY=null,e.translateY=i-30):e.interactionMethod===_e.API&&(e.translateX=null,e.translateX=t-30,e.translateY=null)},Js=({root:e,action:t})=>{let{id:i}=t,a=e.childViews.find(n=>n.id===i);a&&(a.scaleX=.9,a.scaleY=.9,a.opacity=0,a.markedForRemoval=!0)},yi=e=>e.rect.element.height+e.rect.element.marginBottom*.5+e.rect.element.marginTop*.5,ec=e=>e.rect.element.width+e.rect.element.marginLeft*.5+e.rect.element.marginRight*.5,tc=({root:e,action:t})=>{let{id:i,dragState:a}=t,n=e.query("GET_ITEM",{id:i}),r=e.childViews.find(g=>g.id===i),o=e.childViews.length,l=a.getItemIndex(n);if(!r)return;let s={x:r.dragOrigin.x+r.dragOffset.x+r.dragCenter.x,y:r.dragOrigin.y+r.dragOffset.y+r.dragCenter.y},u=yi(r),c=ec(r),d=Math.floor(e.rect.outer.width/c);d>o&&(d=o);let h=Math.floor(o/d+1);qt.setHeight=u*h,qt.setWidth=c*d;var f={y:Math.floor(s.y/u),x:Math.floor(s.x/c),getGridIndex:function(){return s.y>qt.getHeight||s.y<0||s.x>qt.getWidth||s.x<0?l:this.y*d+this.x},getColIndex:function(){let b=e.query("GET_ACTIVE_ITEMS"),E=e.childViews.filter(x=>x.rect.element.height),T=b.map(x=>E.find(O=>O.id===x.id)),_=T.findIndex(x=>x===r),y=yi(r),I=T.length,v=I,R=0,S=0,D=0;for(let x=0;xx){if(s.y1?f.getGridIndex():f.getColIndex();e.dispatch("MOVE_ITEM",{query:r,index:p});let m=a.getIndex();if(m===void 0||m!==p){if(a.setIndex(p),m===void 0)return;e.dispatch("DID_REORDER_ITEMS",{items:e.query("GET_ACTIVE_ITEMS"),origin:l,target:p})}},ic=he({DID_ADD_ITEM:Zs,DID_REMOVE_ITEM:Js,DID_DRAG_ITEM:tc}),ac=({root:e,props:t,actions:i,shouldOptimize:a})=>{ic({root:e,props:t,actions:i});let{dragCoordinates:n}=t,r=e.rect.element.width,o=e.childViews.filter(T=>T.rect.element.height),l=e.query("GET_ACTIVE_ITEMS").map(T=>o.find(_=>_.id===T.id)).filter(T=>T),s=n?Yi(e,l,n):null,u=e.ref.addIndex||null;e.ref.addIndex=null;let c=0,d=0,h=0;if(l.length===0)return;let f=l[0].rect.element,p=f.marginTop+f.marginBottom,m=f.marginLeft+f.marginRight,g=f.width+m,b=f.height+p,E=Wi(r,g);if(E===1){let T=0,_=0;l.forEach((y,I)=>{if(s){let S=I-s;S===-2?_=-p*.25:S===-1?_=-p*.75:S===0?_=p*.75:S===1?_=p*.25:_=0}a&&(y.translateX=null,y.translateY=null),y.markedForRemoval||ja(y,0,T+_);let R=(y.rect.element.height+p)*(y.markedForRemoval?y.opacity:1);T+=R})}else{let T=0,_=0;l.forEach((y,I)=>{I===s&&(c=1),I===u&&(h+=1),y.markedForRemoval&&y.opacity<.5&&(d-=1);let v=I+h+c+d,R=v%E,S=Math.floor(v/E),D=R*g,x=S*b,O=Math.sign(D-T),B=Math.sign(x-_);T=D,_=x,!y.markedForRemoval&&(a&&(y.translateX=null,y.translateY=null),ja(y,D,x,O,B))})}},nc=(e,t)=>t.filter(i=>i.data&&i.data.id?e.id===i.data.id:!0),rc=ae({create:Qs,write:ac,tag:"ul",name:"list",didWriteView:({root:e})=>{e.childViews.filter(t=>t.markedForRemoval&&t.opacity===0&&t.resting).forEach(t=>{t._destroy(),e.removeChildView(t)})},filterFrameActionsForChild:nc,mixins:{apis:["dragCoordinates"]}}),oc=({root:e,props:t})=>{e.ref.list=e.appendChildView(e.createChildView(rc)),t.dragCoordinates=null,t.overflowing=!1},lc=({root:e,props:t,action:i})=>{e.query("GET_ITEM_INSERT_LOCATION_FREEDOM")&&(t.dragCoordinates={left:i.position.scopeLeft-e.ref.list.rect.element.left,top:i.position.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},sc=({props:e})=>{e.dragCoordinates=null},cc=he({DID_DRAG:lc,DID_END_DRAG:sc}),dc=({root:e,props:t,actions:i})=>{if(cc({root:e,props:t,actions:i}),e.ref.list.dragCoordinates=t.dragCoordinates,t.overflowing&&!t.overflow&&(t.overflowing=!1,e.element.dataset.state="",e.height=null),t.overflow){let a=Math.round(t.overflow);a!==e.height&&(t.overflowing=!0,e.element.dataset.state="overflow",e.height=a)}},uc=ae({create:oc,write:dc,name:"list-scroller",mixins:{apis:["overflow","dragCoordinates"],styles:["height","translateY"],animations:{translateY:"spring"}}}),Ae=(e,t,i,a="")=>{i?ie(e,t,a):e.removeAttribute(t)},hc=e=>{if(!(!e||e.value==="")){try{e.value=""}catch{}if(e.value){let t=Ce("form"),i=e.parentNode,a=e.nextSibling;t.appendChild(e),t.reset(),a?i.insertBefore(e,a):i.appendChild(e)}}},fc=({root:e,props:t})=>{e.element.id=`filepond--browser-${t.id}`,ie(e.element,"name",e.query("GET_NAME")),ie(e.element,"aria-controls",`filepond--assistant-${t.id}`),ie(e.element,"aria-labelledby",`filepond--drop-label-${t.id}`),xn({root:e,action:{value:e.query("GET_ACCEPTED_FILE_TYPES")}}),Dn({root:e,action:{value:e.query("GET_ALLOW_MULTIPLE")}}),Pn({root:e,action:{value:e.query("GET_ALLOW_DIRECTORIES_ONLY")}}),xi({root:e}),Fn({root:e,action:{value:e.query("GET_REQUIRED")}}),Cn({root:e,action:{value:e.query("GET_CAPTURE_METHOD")}}),e.ref.handleChange=i=>{if(!e.element.value)return;let a=Array.from(e.element.files).map(n=>(n._relativePath=n.webkitRelativePath,n));setTimeout(()=>{t.onload(a),hc(e.element)},250)},e.element.addEventListener("change",e.ref.handleChange)},xn=({root:e,action:t})=>{e.query("GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE")&&Ae(e.element,"accept",!!t.value,t.value?t.value.join(","):"")},Dn=({root:e,action:t})=>{Ae(e.element,"multiple",t.value)},Pn=({root:e,action:t})=>{Ae(e.element,"webkitdirectory",t.value)},xi=({root:e})=>{let t=e.query("GET_DISABLED"),i=e.query("GET_ALLOW_BROWSE"),a=t||!i;Ae(e.element,"disabled",a)},Fn=({root:e,action:t})=>{t.value?e.query("GET_TOTAL_ITEMS")===0&&Ae(e.element,"required",!0):Ae(e.element,"required",!1)},Cn=({root:e,action:t})=>{Ae(e.element,"capture",!!t.value,t.value===!0?"":t.value)},Qa=({root:e})=>{let{element:t}=e;e.query("GET_TOTAL_ITEMS")>0?(Ae(t,"required",!1),Ae(t,"name",!1)):(Ae(t,"name",!0,e.query("GET_NAME")),e.query("GET_CHECK_VALIDITY")&&t.setCustomValidity(""),e.query("GET_REQUIRED")&&Ae(t,"required",!0))},pc=({root:e})=>{e.query("GET_CHECK_VALIDITY")&&e.element.setCustomValidity(e.query("GET_LABEL_INVALID_FIELD"))},mc=ae({tag:"input",name:"browser",ignoreRect:!0,ignoreRectUpdate:!0,attributes:{type:"file"},create:fc,destroy:({root:e})=>{e.element.removeEventListener("change",e.ref.handleChange)},write:he({DID_LOAD_ITEM:Qa,DID_REMOVE_ITEM:Qa,DID_THROW_ITEM_INVALID:pc,DID_SET_DISABLED:xi,DID_SET_ALLOW_BROWSE:xi,DID_SET_ALLOW_DIRECTORIES_ONLY:Pn,DID_SET_ALLOW_MULTIPLE:Dn,DID_SET_ACCEPTED_FILE_TYPES:xn,DID_SET_CAPTURE_METHOD:Cn,DID_SET_REQUIRED:Fn})}),Za={ENTER:13,SPACE:32},gc=({root:e,props:t})=>{let i=Ce("label");ie(i,"for",`filepond--browser-${t.id}`),ie(i,"id",`filepond--drop-label-${t.id}`),ie(i,"aria-hidden","true"),e.ref.handleKeyDown=a=>{(a.keyCode===Za.ENTER||a.keyCode===Za.SPACE)&&(a.preventDefault(),e.ref.label.click())},e.ref.handleClick=a=>{a.target===i||i.contains(a.target)||e.ref.label.click()},i.addEventListener("keydown",e.ref.handleKeyDown),e.element.addEventListener("click",e.ref.handleClick),zn(i,t.caption),e.appendChild(i),e.ref.label=i},zn=(e,t)=>{e.innerHTML=t;let i=e.querySelector(".filepond--label-action");return i&&ie(i,"tabindex","0"),t},Ec=ae({name:"drop-label",ignoreRect:!0,create:gc,destroy:({root:e})=>{e.ref.label.addEventListener("keydown",e.ref.handleKeyDown),e.element.removeEventListener("click",e.ref.handleClick)},write:he({DID_SET_LABEL_IDLE:({root:e,action:t})=>{zn(e.ref.label,t.value)}}),mixins:{styles:["opacity","translateX","translateY"],animations:{opacity:{type:"tween",duration:150},translateX:"spring",translateY:"spring"}}}),Tc=ae({name:"drip-blob",ignoreRect:!0,mixins:{styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}}}}),Ic=({root:e})=>{let t=e.rect.element.width*.5,i=e.rect.element.height*.5;e.ref.blob=e.appendChildView(e.createChildView(Tc,{opacity:0,scaleX:2.5,scaleY:2.5,translateX:t,translateY:i}))},bc=({root:e,action:t})=>{if(!e.ref.blob){Ic({root:e});return}e.ref.blob.translateX=t.position.scopeLeft,e.ref.blob.translateY=t.position.scopeTop,e.ref.blob.scaleX=1,e.ref.blob.scaleY=1,e.ref.blob.opacity=1},_c=({root:e})=>{e.ref.blob&&(e.ref.blob.opacity=0)},Rc=({root:e})=>{e.ref.blob&&(e.ref.blob.scaleX=2.5,e.ref.blob.scaleY=2.5,e.ref.blob.opacity=0)},yc=({root:e,props:t,actions:i})=>{Sc({root:e,props:t,actions:i});let{blob:a}=e.ref;i.length===0&&a&&a.opacity===0&&(e.removeChildView(a),e.ref.blob=null)},Sc=he({DID_DRAG:bc,DID_DROP:Rc,DID_END_DRAG:_c}),wc=ae({ignoreRect:!0,ignoreRectUpdate:!0,name:"drip",write:yc}),Nn=(e,t)=>{try{let i=new DataTransfer;t.forEach(a=>{a instanceof File?i.items.add(a):i.items.add(new File([a],a.name,{type:a.type}))}),e.files=i.files}catch{return!1}return!0},vc=({root:e})=>e.ref.fields={},oi=(e,t)=>e.ref.fields[t],$i=e=>{e.query("GET_ACTIVE_ITEMS").forEach(t=>{e.ref.fields[t.id]&&e.element.appendChild(e.ref.fields[t.id])})},Ka=({root:e})=>$i(e),Ac=({root:e,action:t})=>{let n=!(e.query("GET_ITEM",t.id).origin===re.LOCAL)&&e.query("SHOULD_UPDATE_FILE_INPUT"),r=Ce("input");r.type=n?"file":"hidden",r.name=e.query("GET_NAME"),r.disabled=e.query("GET_DISABLED"),e.ref.fields[t.id]=r,$i(e)},Lc=({root:e,action:t})=>{let i=oi(e,t.id);if(!i||(t.serverFileReference!==null&&(i.value=t.serverFileReference),!e.query("SHOULD_UPDATE_FILE_INPUT")))return;let a=e.query("GET_ITEM",t.id);Nn(i,[a.file])},Mc=({root:e,action:t})=>{e.query("SHOULD_UPDATE_FILE_INPUT")&&setTimeout(()=>{let i=oi(e,t.id);i&&Nn(i,[t.file])},0)},Oc=({root:e})=>{e.element.disabled=e.query("GET_DISABLED")},xc=({root:e,action:t})=>{let i=oi(e,t.id);i&&(i.parentNode&&i.parentNode.removeChild(i),delete e.ref.fields[t.id])},Dc=({root:e,action:t})=>{let i=oi(e,t.id);i&&(t.value===null?i.removeAttribute("value"):i.value=t.value,$i(e))},Pc=he({DID_SET_DISABLED:Oc,DID_ADD_ITEM:Ac,DID_LOAD_ITEM:Lc,DID_REMOVE_ITEM:xc,DID_DEFINE_VALUE:Dc,DID_PREPARE_OUTPUT:Mc,DID_REORDER_ITEMS:Ka,DID_SORT_ITEMS:Ka}),Fc=ae({tag:"fieldset",name:"data",create:vc,write:Pc,ignoreRect:!0}),Cc=e=>"getRootNode"in e?e.getRootNode():document,zc=["jpg","jpeg","png","gif","bmp","webp","svg","tiff"],Nc=["css","csv","html","txt"],Bc={zip:"zip|compressed",epub:"application/epub+zip"},Bn=(e="")=>(e=e.toLowerCase(),zc.includes(e)?"image/"+(e==="jpg"?"jpeg":e==="svg"?"svg+xml":e):Nc.includes(e)?"text/"+e:Bc[e]||""),qi=e=>new Promise((t,i)=>{let a=$c(e);if(a.length&&!Gc(e))return t(a);Vc(e).then(t)}),Gc=e=>e.files?e.files.length>0:!1,Vc=e=>new Promise((t,i)=>{let a=(e.items?Array.from(e.items):[]).filter(n=>Uc(n)).map(n=>kc(n));if(!a.length){t(e.files?Array.from(e.files):[]);return}Promise.all(a).then(n=>{let r=[];n.forEach(o=>{r.push.apply(r,o)}),t(r.filter(o=>o).map(o=>(o._relativePath||(o._relativePath=o.webkitRelativePath),o)))}).catch(console.error)}),Uc=e=>{if(Gn(e)){let t=Xi(e);if(t)return t.isFile||t.isDirectory}return e.kind==="file"},kc=e=>new Promise((t,i)=>{if(Yc(e)){Hc(Xi(e)).then(t).catch(i);return}t([e.getAsFile()])}),Hc=e=>new Promise((t,i)=>{let a=[],n=0,r=0,o=()=>{r===0&&n===0&&t(a)},l=s=>{n++;let u=s.createReader(),c=()=>{u.readEntries(d=>{if(d.length===0){n--,o();return}d.forEach(h=>{h.isDirectory?l(h):(r++,h.file(f=>{let p=Wc(f);h.fullPath&&(p._relativePath=h.fullPath),a.push(p),r--,o()}))}),c()},i)};c()};l(e)}),Wc=e=>{if(e.type.length)return e;let t=e.lastModifiedDate,i=e.name,a=Bn(ri(e.name));return a.length&&(e=e.slice(0,e.size,a),e.name=i,e.lastModifiedDate=t),e},Yc=e=>Gn(e)&&(Xi(e)||{}).isDirectory,Gn=e=>"webkitGetAsEntry"in e,Xi=e=>e.webkitGetAsEntry(),$c=e=>{let t=[];try{if(t=Xc(e),t.length)return t;t=qc(e)}catch{}return t},qc=e=>{let t=e.getData("url");return typeof t=="string"&&t.length?[t]:[]},Xc=e=>{let t=e.getData("text/html");if(typeof t=="string"&&t.length){let i=t.match(/src\s*=\s*"(.+?)"/);if(i)return[i[1]]}return[]},Jt=[],Xe=e=>({pageLeft:e.pageX,pageTop:e.pageY,scopeLeft:e.offsetX||e.layerX,scopeTop:e.offsetY||e.layerY}),jc=(e,t,i)=>{let a=Qc(t),n={element:e,filterElement:i,state:null,ondrop:()=>{},onenter:()=>{},ondrag:()=>{},onexit:()=>{},onload:()=>{},allowdrop:()=>{}};return n.destroy=a.addListener(n),n},Qc=e=>{let t=Jt.find(a=>a.element===e);if(t)return t;let i=Zc(e);return Jt.push(i),i},Zc=e=>{let t=[],i={dragenter:Jc,dragover:ed,dragleave:id,drop:td},a={};J(i,(r,o)=>{a[r]=o(e,t),e.addEventListener(r,a[r],!1)});let n={element:e,addListener:r=>(t.push(r),()=>{t.splice(t.indexOf(r),1),t.length===0&&(Jt.splice(Jt.indexOf(n),1),J(i,o=>{e.removeEventListener(o,a[o],!1)}))})};return n},Kc=(e,t)=>("elementFromPoint"in e||(e=document),e.elementFromPoint(t.x,t.y)),ji=(e,t)=>{let i=Cc(t),a=Kc(i,{x:e.pageX-window.pageXOffset,y:e.pageY-window.pageYOffset});return a===t||t.contains(a)},Vn=null,Xt=(e,t)=>{try{e.dropEffect=t}catch{}},Jc=(e,t)=>i=>{i.preventDefault(),Vn=i.target,t.forEach(a=>{let{element:n,onenter:r}=a;ji(i,n)&&(a.state="enter",r(Xe(i)))})},ed=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;qi(a).then(n=>{let r=!1;t.some(o=>{let{filterElement:l,element:s,onenter:u,onexit:c,ondrag:d,allowdrop:h}=o;Xt(a,"copy");let f=h(n);if(!f){Xt(a,"none");return}if(ji(i,s)){if(r=!0,o.state===null){o.state="enter",u(Xe(i));return}if(o.state="over",l&&!f){Xt(a,"none");return}d(Xe(i))}else l&&!r&&Xt(a,"none"),o.state&&(o.state=null,c(Xe(i)))})})},td=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;qi(a).then(n=>{t.forEach(r=>{let{filterElement:o,element:l,ondrop:s,onexit:u,allowdrop:c}=r;if(r.state=null,!(o&&!ji(i,l))){if(!c(n))return u(Xe(i));s(Xe(i),n)}})})},id=(e,t)=>i=>{Vn===i.target&&t.forEach(a=>{let{onexit:n}=a;a.state=null,n(Xe(i))})},ad=(e,t,i)=>{e.classList.add("filepond--hopper");let{catchesDropsOnPage:a,requiresDropOnElement:n,filterItems:r=c=>c}=i,o=jc(e,a?document.documentElement:e,n),l="",s="";o.allowdrop=c=>t(r(c)),o.ondrop=(c,d)=>{let h=r(d);if(!t(h)){u.ondragend(c);return}s="drag-drop",u.onload(h,c)},o.ondrag=c=>{u.ondrag(c)},o.onenter=c=>{s="drag-over",u.ondragstart(c)},o.onexit=c=>{s="drag-exit",u.ondragend(c)};let u={updateHopperState:()=>{l!==s&&(e.dataset.hopperState=s,l=s)},onload:()=>{},ondragstart:()=>{},ondrag:()=>{},ondragend:()=>{},destroy:()=>{o.destroy()}};return u},Di=!1,rt=[],Un=e=>{let t=document.activeElement;if(t&&/textarea|input/i.test(t.nodeName)){let i=!1,a=t;for(;a!==document.body;){if(a.classList.contains("filepond--root")){i=!0;break}a=a.parentNode}if(!i)return}qi(e.clipboardData).then(i=>{i.length&&rt.forEach(a=>a(i))})},nd=e=>{rt.includes(e)||(rt.push(e),!Di&&(Di=!0,document.addEventListener("paste",Un)))},rd=e=>{Vi(rt,rt.indexOf(e)),rt.length===0&&(document.removeEventListener("paste",Un),Di=!1)},od=()=>{let e=i=>{t.onload(i)},t={destroy:()=>{rd(e)},onload:()=>{}};return nd(e),t},ld=({root:e,props:t})=>{e.element.id=`filepond--assistant-${t.id}`,ie(e.element,"role","status"),ie(e.element,"aria-live","polite"),ie(e.element,"aria-relevant","additions")},Ja=null,en=null,Si=[],li=(e,t)=>{e.element.textContent=t},sd=e=>{e.element.textContent=""},kn=(e,t,i)=>{let a=e.query("GET_TOTAL_ITEMS");li(e,`${i} ${t}, ${a} ${a===1?e.query("GET_LABEL_FILE_COUNT_SINGULAR"):e.query("GET_LABEL_FILE_COUNT_PLURAL")}`),clearTimeout(en),en=setTimeout(()=>{sd(e)},1500)},Hn=e=>e.element.parentNode.contains(document.activeElement),cd=({root:e,action:t})=>{if(!Hn(e))return;e.element.textContent="";let i=e.query("GET_ITEM",t.id);Si.push(i.filename),clearTimeout(Ja),Ja=setTimeout(()=>{kn(e,Si.join(", "),e.query("GET_LABEL_FILE_ADDED")),Si.length=0},750)},dd=({root:e,action:t})=>{if(!Hn(e))return;let i=t.item;kn(e,i.filename,e.query("GET_LABEL_FILE_REMOVED"))},ud=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_COMPLETE");li(e,`${a} ${n}`)},tn=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_ABORTED");li(e,`${a} ${n}`)},jt=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename;li(e,`${t.status.main} ${a} ${t.status.sub}`)},hd=ae({create:ld,ignoreRect:!0,ignoreRectUpdate:!0,write:he({DID_LOAD_ITEM:cd,DID_REMOVE_ITEM:dd,DID_COMPLETE_ITEM_PROCESSING:ud,DID_ABORT_ITEM_PROCESSING:tn,DID_REVERT_ITEM_PROCESSING:tn,DID_THROW_ITEM_REMOVE_ERROR:jt,DID_THROW_ITEM_LOAD_ERROR:jt,DID_THROW_ITEM_INVALID:jt,DID_THROW_ITEM_PROCESSING_ERROR:jt}),tag:"span",name:"assistant"}),Wn=(e,t="-")=>e.replace(new RegExp(`${t}.`,"g"),i=>i.charAt(1).toUpperCase()),Yn=(e,t=16,i=!0)=>{let a=Date.now(),n=null;return(...r)=>{clearTimeout(n);let o=Date.now()-a,l=()=>{a=Date.now(),e(...r)};oe.preventDefault(),pd=({root:e,props:t})=>{let i=e.query("GET_ID");i&&(e.element.id=i);let a=e.query("GET_CLASS_NAME");a&&a.split(" ").filter(s=>s.length).forEach(s=>{e.element.classList.add(s)}),e.ref.label=e.appendChildView(e.createChildView(Ec,{...t,translateY:null,caption:e.query("GET_LABEL_IDLE")})),e.ref.list=e.appendChildView(e.createChildView(uc,{translateY:null})),e.ref.panel=e.appendChildView(e.createChildView(On,{name:"panel-root"})),e.ref.assistant=e.appendChildView(e.createChildView(hd,{...t})),e.ref.data=e.appendChildView(e.createChildView(Fc,{...t})),e.ref.measure=Ce("div"),e.ref.measure.style.height="100%",e.element.appendChild(e.ref.measure),e.ref.bounds=null,e.query("GET_STYLES").filter(s=>!Fe(s.value)).map(({name:s,value:u})=>{e.element.dataset[s]=u}),e.ref.widthPrevious=null,e.ref.widthUpdated=Yn(()=>{e.ref.updateHistory=[],e.dispatch("DID_RESIZE_ROOT")},250),e.ref.previousAspectRatio=null,e.ref.updateHistory=[];let n=window.matchMedia("(pointer: fine) and (hover: hover)").matches,r="PointerEvent"in window;e.query("GET_ALLOW_REORDER")&&r&&!n&&(e.element.addEventListener("touchmove",ei,{passive:!1}),e.element.addEventListener("gesturestart",ei));let o=e.query("GET_CREDITS");if(o.length===2){let s=document.createElement("a");s.className="filepond--credits",s.setAttribute("aria-hidden","true"),s.href=o[0],s.tabindex=-1,s.target="_blank",s.rel="noopener noreferrer",s.textContent=o[1],e.element.appendChild(s),e.ref.credits=s}},md=({root:e,props:t,actions:i})=>{if(bd({root:e,props:t,actions:i}),i.filter(I=>/^DID_SET_STYLE_/.test(I.type)).filter(I=>!Fe(I.data.value)).map(({type:I,data:v})=>{let R=Wn(I.substring(8).toLowerCase(),"_");e.element.dataset[R]=v.value,e.invalidateLayout()}),e.rect.element.hidden)return;e.rect.element.width!==e.ref.widthPrevious&&(e.ref.widthPrevious=e.rect.element.width,e.ref.widthUpdated());let a=e.ref.bounds;a||(a=e.ref.bounds=Td(e),e.element.removeChild(e.ref.measure),e.ref.measure=null);let{hopper:n,label:r,list:o,panel:l}=e.ref;n&&n.updateHopperState();let s=e.query("GET_PANEL_ASPECT_RATIO"),u=e.query("GET_ALLOW_MULTIPLE"),c=e.query("GET_TOTAL_ITEMS"),d=u?e.query("GET_MAX_FILES")||fd:1,h=c===d,f=i.find(I=>I.type==="DID_ADD_ITEM");if(h&&f){let I=f.data.interactionMethod;r.opacity=0,u?r.translateY=-40:I===_e.API?r.translateX=40:I===_e.BROWSE?r.translateY=40:r.translateY=30}else h||(r.opacity=1,r.translateX=0,r.translateY=0);let p=gd(e),m=Ed(e),g=r.rect.element.height,b=!u||h?0:g,E=h?o.rect.element.marginTop:0,T=c===0?0:o.rect.element.marginBottom,_=b+E+m.visual+T,y=b+E+m.bounds+T;if(o.translateY=Math.max(0,b-o.rect.element.marginTop)-p.top,s){let I=e.rect.element.width,v=I*s;s!==e.ref.previousAspectRatio&&(e.ref.previousAspectRatio=s,e.ref.updateHistory=[]);let R=e.ref.updateHistory;R.push(I);let S=2;if(R.length>S*2){let x=R.length,O=x-10,B=0;for(let A=x;A>=O;A--)if(R[A]===R[A-2]&&B++,B>=S)return}l.scalable=!1,l.height=v;let D=v-b-(T-p.bottom)-(h?E:0);m.visual>D?o.overflow=D:o.overflow=null,e.height=v}else if(a.fixedHeight){l.scalable=!1;let I=a.fixedHeight-b-(T-p.bottom)-(h?E:0);m.visual>I?o.overflow=I:o.overflow=null}else if(a.cappedHeight){let I=_>=a.cappedHeight,v=Math.min(a.cappedHeight,_);l.scalable=!0,l.height=I?v:v-p.top-p.bottom;let R=v-b-(T-p.bottom)-(h?E:0);_>a.cappedHeight&&m.visual>R?o.overflow=R:o.overflow=null,e.height=Math.min(a.cappedHeight,y-p.top-p.bottom)}else{let I=c>0?p.top+p.bottom:0;l.scalable=!0,l.height=Math.max(g,_-I),e.height=Math.max(g,y-I)}e.ref.credits&&l.heightCurrent&&(e.ref.credits.style.transform=`translateY(${l.heightCurrent}px)`)},gd=e=>{let t=e.ref.list.childViews[0].childViews[0];return t?{top:t.rect.element.marginTop,bottom:t.rect.element.marginBottom}:{top:0,bottom:0}},Ed=e=>{let t=0,i=0,a=e.ref.list,n=a.childViews[0],r=n.childViews.filter(E=>E.rect.element.height),o=e.query("GET_ACTIVE_ITEMS").map(E=>r.find(T=>T.id===E.id)).filter(E=>E);if(o.length===0)return{visual:t,bounds:i};let l=n.rect.element.width,s=Yi(n,o,a.dragCoordinates),u=o[0].rect.element,c=u.marginTop+u.marginBottom,d=u.marginLeft+u.marginRight,h=u.width+d,f=u.height+c,p=typeof s<"u"&&s>=0?1:0,m=o.find(E=>E.markedForRemoval&&E.opacity<.45)?-1:0,g=o.length+p+m,b=Wi(l,h);return b===1?o.forEach(E=>{let T=E.rect.element.height+c;i+=T,t+=T*E.opacity}):(i=Math.ceil(g/b)*f,t=i),{visual:t,bounds:i}},Td=e=>{let t=e.ref.measureHeight||null;return{cappedHeight:parseInt(e.style.maxHeight,10)||null,fixedHeight:t===0?null:t}},Qi=(e,t)=>{let i=e.query("GET_ALLOW_REPLACE"),a=e.query("GET_ALLOW_MULTIPLE"),n=e.query("GET_TOTAL_ITEMS"),r=e.query("GET_MAX_FILES"),o=t.length;return!a&&o>1?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ee("warning",0,"Max files")}),!0):(r=a?r:1,!a&&i?!1:dt(r)&&n+o>r?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ee("warning",0,"Max files")}),!0):!1)},Id=(e,t,i)=>{let a=e.childViews[0];return Yi(a,t,{left:i.scopeLeft-a.rect.element.left,top:i.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},an=e=>{let t=e.query("GET_ALLOW_DROP"),i=e.query("GET_DISABLED"),a=t&&!i;if(a&&!e.ref.hopper){let n=ad(e.element,r=>{let o=e.query("GET_BEFORE_DROP_FILE")||(()=>!0);return e.query("GET_DROP_VALIDATION")?r.every(s=>je("ALLOW_HOPPER_ITEM",s,{query:e.query}).every(u=>u===!0)&&o(s)):!0},{filterItems:r=>{let o=e.query("GET_IGNORED_FILES");return r.filter(l=>ct(l)?!o.includes(l.name.toLowerCase()):!0)},catchesDropsOnPage:e.query("GET_DROP_ON_PAGE"),requiresDropOnElement:e.query("GET_DROP_ON_ELEMENT")});n.onload=(r,o)=>{let s=e.ref.list.childViews[0].childViews.filter(c=>c.rect.element.height),u=e.query("GET_ACTIVE_ITEMS").map(c=>s.find(d=>d.id===c.id)).filter(c=>c);we("ADD_ITEMS",r,{dispatch:e.dispatch}).then(c=>{if(Qi(e,c))return!1;e.dispatch("ADD_ITEMS",{items:c,index:Id(e.ref.list,u,o),interactionMethod:_e.DROP})}),e.dispatch("DID_DROP",{position:o}),e.dispatch("DID_END_DRAG",{position:o})},n.ondragstart=r=>{e.dispatch("DID_START_DRAG",{position:r})},n.ondrag=Yn(r=>{e.dispatch("DID_DRAG",{position:r})}),n.ondragend=r=>{e.dispatch("DID_END_DRAG",{position:r})},e.ref.hopper=n,e.ref.drip=e.appendChildView(e.createChildView(wc))}else!a&&e.ref.hopper&&(e.ref.hopper.destroy(),e.ref.hopper=null,e.removeChildView(e.ref.drip))},nn=(e,t)=>{let i=e.query("GET_ALLOW_BROWSE"),a=e.query("GET_DISABLED"),n=i&&!a;n&&!e.ref.browser?e.ref.browser=e.appendChildView(e.createChildView(mc,{...t,onload:r=>{we("ADD_ITEMS",r,{dispatch:e.dispatch}).then(o=>{if(Qi(e,o))return!1;e.dispatch("ADD_ITEMS",{items:o,index:-1,interactionMethod:_e.BROWSE})})}}),0):!n&&e.ref.browser&&(e.removeChildView(e.ref.browser),e.ref.browser=null)},rn=e=>{let t=e.query("GET_ALLOW_PASTE"),i=e.query("GET_DISABLED"),a=t&&!i;a&&!e.ref.paster?(e.ref.paster=od(),e.ref.paster.onload=n=>{we("ADD_ITEMS",n,{dispatch:e.dispatch}).then(r=>{if(Qi(e,r))return!1;e.dispatch("ADD_ITEMS",{items:r,index:-1,interactionMethod:_e.PASTE})})}):!a&&e.ref.paster&&(e.ref.paster.destroy(),e.ref.paster=null)},bd=he({DID_SET_ALLOW_BROWSE:({root:e,props:t})=>{nn(e,t)},DID_SET_ALLOW_DROP:({root:e})=>{an(e)},DID_SET_ALLOW_PASTE:({root:e})=>{rn(e)},DID_SET_DISABLED:({root:e,props:t})=>{an(e),rn(e),nn(e,t),e.query("GET_DISABLED")?e.element.dataset.disabled="disabled":e.element.removeAttribute("data-disabled")}}),_d=ae({name:"root",read:({root:e})=>{e.ref.measure&&(e.ref.measureHeight=e.ref.measure.offsetHeight)},create:pd,write:md,destroy:({root:e})=>{e.ref.paster&&e.ref.paster.destroy(),e.ref.hopper&&e.ref.hopper.destroy(),e.element.removeEventListener("touchmove",ei),e.element.removeEventListener("gesturestart",ei)},mixins:{styles:["height"]}}),Rd=(e={})=>{let t=null,i=Kt(),a=Go(Sl(i),[kl,Al(i)],[fs,vl(i)]);a.dispatch("SET_OPTIONS",{options:e});let n=()=>{document.hidden||a.dispatch("KICK")};document.addEventListener("visibilitychange",n);let r=null,o=!1,l=!1,s=null,u=null,c=()=>{o||(o=!0),clearTimeout(r),r=setTimeout(()=>{o=!1,s=null,u=null,l&&(l=!1,a.dispatch("DID_STOP_RESIZE"))},500)};window.addEventListener("resize",c);let d=_d(a,{id:Gi()}),h=!1,f=!1,p={_read:()=>{o&&(u=window.innerWidth,s||(s=u),!l&&u!==s&&(a.dispatch("DID_START_RESIZE"),l=!0)),f&&h&&(h=d.element.offsetParent===null),!h&&(d._read(),f=d.rect.element.hidden)},_write:w=>{let L=a.processActionQueue().filter(N=>!/^SET_/.test(N.type));h&&!L.length||(E(L),h=d._write(w,L,l),Ol(a.query("GET_ITEMS")),h&&a.processDispatchQueue())}},m=w=>L=>{let N={type:w};if(!L)return N;if(L.hasOwnProperty("error")&&(N.error=L.error?{...L.error}:null),L.status&&(N.status={...L.status}),L.file&&(N.output=L.file),L.source)N.file=L.source;else if(L.item||L.id){let P=L.item?L.item:a.query("GET_ITEM",L.id);N.file=P?fe(P):null}return L.items&&(N.items=L.items.map(fe)),/progress/.test(w)&&(N.progress=L.progress),L.hasOwnProperty("origin")&&L.hasOwnProperty("target")&&(N.origin=L.origin,N.target=L.target),N},g={DID_DESTROY:m("destroy"),DID_INIT:m("init"),DID_THROW_MAX_FILES:m("warning"),DID_INIT_ITEM:m("initfile"),DID_START_ITEM_LOAD:m("addfilestart"),DID_UPDATE_ITEM_LOAD_PROGRESS:m("addfileprogress"),DID_LOAD_ITEM:m("addfile"),DID_THROW_ITEM_INVALID:[m("error"),m("addfile")],DID_THROW_ITEM_LOAD_ERROR:[m("error"),m("addfile")],DID_THROW_ITEM_REMOVE_ERROR:[m("error"),m("removefile")],DID_PREPARE_OUTPUT:m("preparefile"),DID_START_ITEM_PROCESSING:m("processfilestart"),DID_UPDATE_ITEM_PROCESS_PROGRESS:m("processfileprogress"),DID_ABORT_ITEM_PROCESSING:m("processfileabort"),DID_COMPLETE_ITEM_PROCESSING:m("processfile"),DID_COMPLETE_ITEM_PROCESSING_ALL:m("processfiles"),DID_REVERT_ITEM_PROCESSING:m("processfilerevert"),DID_THROW_ITEM_PROCESSING_ERROR:[m("error"),m("processfile")],DID_REMOVE_ITEM:m("removefile"),DID_UPDATE_ITEMS:m("updatefiles"),DID_ACTIVATE_ITEM:m("activatefile"),DID_REORDER_ITEMS:m("reorderfiles")},b=w=>{let L={pond:F,...w};delete L.type,d.element.dispatchEvent(new CustomEvent(`FilePond:${w.type}`,{detail:L,bubbles:!0,cancelable:!0,composed:!0}));let N=[];w.hasOwnProperty("error")&&N.push(w.error),w.hasOwnProperty("file")&&N.push(w.file);let P=["type","error","file"];Object.keys(w).filter(V=>!P.includes(V)).forEach(V=>N.push(w[V])),F.fire(w.type,...N);let U=a.query(`GET_ON${w.type.toUpperCase()}`);U&&U(...N)},E=w=>{w.length&&w.filter(L=>g[L.type]).forEach(L=>{let N=g[L.type];(Array.isArray(N)?N:[N]).forEach(P=>{L.type==="DID_INIT_ITEM"?b(P(L.data)):setTimeout(()=>{b(P(L.data))},0)})})},T=w=>a.dispatch("SET_OPTIONS",{options:w}),_=w=>a.query("GET_ACTIVE_ITEM",w),y=w=>new Promise((L,N)=>{a.dispatch("REQUEST_ITEM_PREPARE",{query:w,success:P=>{L(P)},failure:P=>{N(P)}})}),I=(w,L={})=>new Promise((N,P)=>{S([{source:w,options:L}],{index:L.index}).then(U=>N(U&&U[0])).catch(P)}),v=w=>w.file&&w.id,R=(w,L)=>(typeof w=="object"&&!v(w)&&!L&&(L=w,w=void 0),a.dispatch("REMOVE_ITEM",{...L,query:w}),a.query("GET_ACTIVE_ITEM",w)===null),S=(...w)=>new Promise((L,N)=>{let P=[],U={};if(ti(w[0]))P.push.apply(P,w[0]),Object.assign(U,w[1]||{});else{let V=w[w.length-1];typeof V=="object"&&!(V instanceof Blob)&&Object.assign(U,w.pop()),P.push(...w)}a.dispatch("ADD_ITEMS",{items:P,index:U.index,interactionMethod:_e.API,success:L,failure:N})}),D=()=>a.query("GET_ACTIVE_ITEMS"),x=w=>new Promise((L,N)=>{a.dispatch("REQUEST_ITEM_PROCESSING",{query:w,success:P=>{L(P)},failure:P=>{N(P)}})}),O=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,N=L.length?L:D();return Promise.all(N.map(y))},B=(...w)=>{let L=Array.isArray(w[0])?w[0]:w;if(!L.length){let N=D().filter(P=>!(P.status===H.IDLE&&P.origin===re.LOCAL)&&P.status!==H.PROCESSING&&P.status!==H.PROCESSING_COMPLETE&&P.status!==H.PROCESSING_REVERT_ERROR);return Promise.all(N.map(x))}return Promise.all(L.map(x))},A=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,N;typeof L[L.length-1]=="object"?N=L.pop():Array.isArray(w[0])&&(N=w[1]);let P=D();return L.length?L.map(V=>He(V)?P[V]?P[V].id:null:V).filter(V=>V).map(V=>R(V,N)):Promise.all(P.map(V=>R(V,N)))},F={...ni(),...p,...wl(a,i),setOptions:T,addFile:I,addFiles:S,getFile:_,processFile:x,prepareFile:y,removeFile:R,moveFile:(w,L)=>a.dispatch("MOVE_ITEM",{query:w,index:L}),getFiles:D,processFiles:B,removeFiles:A,prepareFiles:O,sort:w=>a.dispatch("SORT",{compare:w}),browse:()=>{var w=d.element.querySelector("input[type=file]");w&&w.click()},destroy:()=>{F.fire("destroy",d.element),a.dispatch("ABORT_ALL"),d._destroy(),window.removeEventListener("resize",c),document.removeEventListener("visibilitychange",n),a.dispatch("DID_DESTROY")},insertBefore:w=>Aa(d.element,w),insertAfter:w=>La(d.element,w),appendTo:w=>w.appendChild(d.element),replaceElement:w=>{Aa(d.element,w),w.parentNode.removeChild(w),t=w},restoreElement:()=>{t&&(La(t,d.element),d.element.parentNode.removeChild(d.element),t=null)},isAttachedTo:w=>d.element===w||t===w,element:{get:()=>d.element},status:{get:()=>a.query("GET_STATUS")}};return a.dispatch("DID_INIT"),Be(F)},$n=(e={})=>{let t={};return J(Kt(),(a,n)=>{t[a]=n[0]}),Rd({...t,...e})},yd=e=>e.charAt(0).toLowerCase()+e.slice(1),Sd=e=>Wn(e.replace(/^data-/,"")),qn=(e,t)=>{J(t,(i,a)=>{J(e,(n,r)=>{let o=new RegExp(i);if(!o.test(n)||(delete e[n],a===!1))return;if(ue(a)){e[a]=r;return}let s=a.group;oe(a)&&!e[s]&&(e[s]={}),e[s][yd(n.replace(o,""))]=r}),a.mapping&&qn(e[a.group],a.mapping)})},wd=(e,t={})=>{let i=[];J(e.attributes,n=>{i.push(e.attributes[n])});let a=i.filter(n=>n.name).reduce((n,r)=>{let o=ie(e,r.name);return n[Sd(r.name)]=o===r.name?!0:o,n},{});return qn(a,t),a},vd=(e,t={})=>{let i={"^class$":"className","^multiple$":"allowMultiple","^capture$":"captureMethod","^webkitdirectory$":"allowDirectoriesOnly","^server":{group:"server",mapping:{"^process":{group:"process"},"^revert":{group:"revert"},"^fetch":{group:"fetch"},"^restore":{group:"restore"},"^load":{group:"load"}}},"^type$":!1,"^files$":!1};je("SET_ATTRIBUTE_TO_OPTION_MAP",i);let a={...t},n=wd(e.nodeName==="FIELDSET"?e.querySelector("input[type=file]"):e,i);Object.keys(n).forEach(o=>{oe(n[o])?(oe(a[o])||(a[o]={}),Object.assign(a[o],n[o])):a[o]=n[o]}),a.files=(t.files||[]).concat(Array.from(e.querySelectorAll("input:not([type=file])")).map(o=>({source:o.value,options:{type:o.dataset.type}})));let r=$n(a);return e.files&&Array.from(e.files).forEach(o=>{r.addFile(o)}),r.replaceElement(e),r},Ad=(...e)=>Bo(e[0])?vd(...e):$n(...e),Ld=["fire","_read","_write"],on=e=>{let t={};return pn(e,t,Ld),t},Md=(e,t)=>e.replace(/(?:{([a-zA-Z]+)})/g,(i,a)=>t[a]),Od=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i);return{transfer:(n,r)=>{},post:(n,r,o)=>{let l=Gi();a.onmessage=s=>{s.data.id===l&&r(s.data.message)},a.postMessage({id:l,message:n},o)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},xd=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Xn=(e,t)=>{let i=e.slice(0,e.size,e.type);return i.lastModifiedDate=e.lastModifiedDate,i.name=t,i},Dd=e=>Xn(e,e.name),ln=[],Pd=e=>{if(ln.includes(e))return;ln.push(e);let t=e({addFilter:Dl,utils:{Type:M,forin:J,isString:ue,isFile:ct,toNaturalFileSize:An,replaceInString:Md,getExtensionFromFilename:ri,getFilenameWithoutExtension:Sn,guesstimateMimeType:Bn,getFileFromBlob:st,getFilenameFromURL:Lt,createRoute:he,createWorker:Od,createView:ae,createItemAPI:fe,loadImage:xd,copyFile:Dd,renameFile:Xn,createBlob:_n,applyFilterChain:we,text:te,getNumericAspectRatioFromString:En},views:{fileActionButton:vn}});Pl(t.options)},Fd=()=>Object.prototype.toString.call(window.operamini)==="[object OperaMini]",Cd=()=>"Promise"in window,zd=()=>"slice"in Blob.prototype,Nd=()=>"URL"in window&&"createObjectURL"in window.URL,Bd=()=>"visibilityState"in document,Gd=()=>"performance"in window,Vd=()=>"supports"in(window.CSS||{}),Ud=()=>/MSIE|Trident/.test(window.navigator.userAgent),Pi=(()=>{let e=sn()&&!Fd()&&Bd()&&Cd()&&zd()&&Nd()&&Gd()&&(Vd()||Ud());return()=>e})(),Ne={apps:[]},kd="filepond",Qe=()=>{},jn={},ut={},Mt={},Fi={},ot=Qe,lt=Qe,Ci=Qe,zi=Qe,Te=Qe,Ni=Qe,At=Qe;if(Pi()){dl(()=>{Ne.apps.forEach(i=>i._read())},i=>{Ne.apps.forEach(a=>a._write(i))});let e=()=>{document.dispatchEvent(new CustomEvent("FilePond:loaded",{detail:{supported:Pi,create:ot,destroy:lt,parse:Ci,find:zi,registerPlugin:Te,setOptions:At}})),document.removeEventListener("DOMContentLoaded",e)};document.readyState!=="loading"?setTimeout(()=>e(),0):document.addEventListener("DOMContentLoaded",e);let t=()=>J(Kt(),(i,a)=>{Fi[i]=a[1]});jn={...Tn},Mt={...re},ut={...H},Fi={},t(),ot=(...i)=>{let a=Ad(...i);return a.on("destroy",lt),Ne.apps.push(a),on(a)},lt=i=>{let a=Ne.apps.findIndex(n=>n.isAttachedTo(i));return a>=0?(Ne.apps.splice(a,1)[0].restoreElement(),!0):!1},Ci=i=>Array.from(i.querySelectorAll(`.${kd}`)).filter(r=>!Ne.apps.find(o=>o.isAttachedTo(r))).map(r=>ot(r)),zi=i=>{let a=Ne.apps.find(n=>n.isAttachedTo(i));return a?on(a):null},Te=(...i)=>{i.forEach(Pd),t()},Ni=()=>{let i={};return J(Kt(),(a,n)=>{i[a]=n[0]}),i},At=i=>(oe(i)&&(Ne.apps.forEach(a=>{a.setOptions(i)}),Fl(i)),Ni())}function Qn(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,a)}return i}function hr(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,a=new Array(t);i
',ou=Number.isNaN||Oe.isNaN;function Y(e){return typeof e=="number"&&!ou(e)}var cr=function(t){return t>0&&t<1/0};function Ki(e){return typeof e>"u"}function Je(e){return ea(e)==="object"&&e!==null}var lu=Object.prototype.hasOwnProperty;function ft(e){if(!Je(e))return!1;try{var t=e.constructor,i=t.prototype;return t&&i&&lu.call(i,"isPrototypeOf")}catch{return!1}}function pe(e){return typeof e=="function"}var su=Array.prototype.slice;function Rr(e){return Array.from?Array.from(e):su.call(e)}function ne(e,t){return e&&pe(t)&&(Array.isArray(e)||Y(e.length)?Rr(e).forEach(function(i,a){t.call(e,i,a,e)}):Je(e)&&Object.keys(e).forEach(function(i){t.call(e,e[i],i,e)})),e}var Z=Object.assign||function(t){for(var i=arguments.length,a=new Array(i>1?i-1:0),n=1;n0&&a.forEach(function(r){Je(r)&&Object.keys(r).forEach(function(o){t[o]=r[o]})}),t},cu=/\.\d*(?:0|9){12}\d*$/;function mt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return cu.test(e)?Math.round(e*t)/t:e}var du=/^width|height|left|top|marginLeft|marginTop$/;function Ve(e,t){var i=e.style;ne(t,function(a,n){du.test(n)&&Y(a)&&(a="".concat(a,"px")),i[n]=a})}function uu(e,t){return e.classList?e.classList.contains(t):e.className.indexOf(t)>-1}function le(e,t){if(t){if(Y(e.length)){ne(e,function(a){le(a,t)});return}if(e.classList){e.classList.add(t);return}var i=e.className.trim();i?i.indexOf(t)<0&&(e.className="".concat(i," ").concat(t)):e.className=t}}function Me(e,t){if(t){if(Y(e.length)){ne(e,function(i){Me(i,t)});return}if(e.classList){e.classList.remove(t);return}e.className.indexOf(t)>=0&&(e.className=e.className.replace(t,""))}}function pt(e,t,i){if(t){if(Y(e.length)){ne(e,function(a){pt(a,t,i)});return}i?le(e,t):Me(e,t)}}var hu=/([a-z\d])([A-Z])/g;function pa(e){return e.replace(hu,"$1-$2").toLowerCase()}function ca(e,t){return Je(e[t])?e[t]:e.dataset?e.dataset[t]:e.getAttribute("data-".concat(pa(t)))}function zt(e,t,i){Je(i)?e[t]=i:e.dataset?e.dataset[t]=i:e.setAttribute("data-".concat(pa(t)),i)}function fu(e,t){if(Je(e[t]))try{delete e[t]}catch{e[t]=void 0}else if(e.dataset)try{delete e.dataset[t]}catch{e.dataset[t]=void 0}else e.removeAttribute("data-".concat(pa(t)))}var yr=/\s\s*/,Sr=function(){var e=!1;if(ui){var t=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return e=!0,t},set:function(r){t=r}});Oe.addEventListener("test",i,a),Oe.removeEventListener("test",i,a)}return e}();function Le(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(yr).forEach(function(r){if(!Sr){var o=e.listeners;o&&o[r]&&o[r][i]&&(n=o[r][i],delete o[r][i],Object.keys(o[r]).length===0&&delete o[r],Object.keys(o).length===0&&delete e.listeners)}e.removeEventListener(r,n,a)})}function Re(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(yr).forEach(function(r){if(a.once&&!Sr){var o=e.listeners,l=o===void 0?{}:o;n=function(){delete l[r][i],e.removeEventListener(r,n,a);for(var u=arguments.length,c=new Array(u),d=0;dMath.abs(i)&&(i=h)})}),i}function ci(e,t){var i=e.pageX,a=e.pageY,n={endX:i,endY:a};return t?n:hr({startX:i,startY:a},n)}function gu(e){var t=0,i=0,a=0;return ne(e,function(n){var r=n.startX,o=n.startY;t+=r,i+=o,a+=1}),t/=a,i/=a,{pageX:t,pageY:i}}function Ue(e){var t=e.aspectRatio,i=e.height,a=e.width,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=cr(a),o=cr(i);if(r&&o){var l=i*t;n==="contain"&&l>a||n==="cover"&&l90?{width:s,height:l}:{width:l,height:s}}function Tu(e,t,i,a){var n=t.aspectRatio,r=t.naturalWidth,o=t.naturalHeight,l=t.rotate,s=l===void 0?0:l,u=t.scaleX,c=u===void 0?1:u,d=t.scaleY,h=d===void 0?1:d,f=i.aspectRatio,p=i.naturalWidth,m=i.naturalHeight,g=a.fillColor,b=g===void 0?"transparent":g,E=a.imageSmoothingEnabled,T=E===void 0?!0:E,_=a.imageSmoothingQuality,y=_===void 0?"low":_,I=a.maxWidth,v=I===void 0?1/0:I,R=a.maxHeight,S=R===void 0?1/0:R,D=a.minWidth,x=D===void 0?0:D,O=a.minHeight,B=O===void 0?0:O,A=document.createElement("canvas"),F=A.getContext("2d"),w=Ue({aspectRatio:f,width:v,height:S}),L=Ue({aspectRatio:f,width:x,height:B},"cover"),N=Math.min(w.width,Math.max(L.width,p)),P=Math.min(w.height,Math.max(L.height,m)),U=Ue({aspectRatio:n,width:v,height:S}),V=Ue({aspectRatio:n,width:x,height:B},"cover"),q=Math.min(U.width,Math.max(V.width,r)),X=Math.min(U.height,Math.max(V.height,o)),j=[-q/2,-X/2,q,X];return A.width=mt(N),A.height=mt(P),F.fillStyle=b,F.fillRect(0,0,N,P),F.save(),F.translate(N/2,P/2),F.rotate(s*Math.PI/180),F.scale(c,h),F.imageSmoothingEnabled=T,F.imageSmoothingQuality=y,F.drawImage.apply(F,[e].concat(fr(j.map(function(se){return Math.floor(mt(se))})))),F.restore(),A}var vr=String.fromCharCode;function Iu(e,t,i){var a="";i+=t;for(var n=t;n0;)i.push(vr.apply(null,Rr(n.subarray(0,a)))),n=n.subarray(a);return"data:".concat(t,";base64,").concat(btoa(i.join("")))}function yu(e){var t=new DataView(e),i;try{var a,n,r;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(var o=t.byteLength,l=2;l+1=8&&(r=u+d)}}}if(r){var h=t.getUint16(r,a),f,p;for(p=0;p=0?r:br),height:Math.max(a.offsetHeight,o>=0?o:_r)};this.containerData=l,Ve(n,{width:l.width,height:l.height}),le(t,me),Me(n,me)},initCanvas:function(){var t=this.containerData,i=this.imageData,a=this.options.viewMode,n=Math.abs(i.rotate)%180===90,r=n?i.naturalHeight:i.naturalWidth,o=n?i.naturalWidth:i.naturalHeight,l=r/o,s=t.width,u=t.height;t.height*l>t.width?a===3?s=t.height*l:u=t.width/l:a===3?u=t.width/l:s=t.height*l;var c={aspectRatio:l,naturalWidth:r,naturalHeight:o,width:s,height:u};this.canvasData=c,this.limited=a===1||a===2,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=Z({},c)},limitCanvas:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=a.viewMode,s=r.aspectRatio,u=this.cropped&&o;if(t){var c=Number(a.minCanvasWidth)||0,d=Number(a.minCanvasHeight)||0;l>1?(c=Math.max(c,n.width),d=Math.max(d,n.height),l===3&&(d*s>c?c=d*s:d=c/s)):l>0&&(c?c=Math.max(c,u?o.width:0):d?d=Math.max(d,u?o.height:0):u&&(c=o.width,d=o.height,d*s>c?c=d*s:d=c/s));var h=Ue({aspectRatio:s,width:c,height:d});c=h.width,d=h.height,r.minWidth=c,r.minHeight=d,r.maxWidth=1/0,r.maxHeight=1/0}if(i)if(l>(u?0:1)){var f=n.width-r.width,p=n.height-r.height;r.minLeft=Math.min(0,f),r.minTop=Math.min(0,p),r.maxLeft=Math.max(0,f),r.maxTop=Math.max(0,p),u&&this.limited&&(r.minLeft=Math.min(o.left,o.left+(o.width-r.width)),r.minTop=Math.min(o.top,o.top+(o.height-r.height)),r.maxLeft=o.left,r.maxTop=o.top,l===2&&(r.width>=n.width&&(r.minLeft=Math.min(0,f),r.maxLeft=Math.max(0,f)),r.height>=n.height&&(r.minTop=Math.min(0,p),r.maxTop=Math.max(0,p))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,i){var a=this.canvasData,n=this.imageData;if(i){var r=Eu({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),o=r.width,l=r.height,s=a.width*(o/a.naturalWidth),u=a.height*(l/a.naturalHeight);a.left-=(s-a.width)/2,a.top-=(u-a.height)/2,a.width=s,a.height=u,a.aspectRatio=o/l,a.naturalWidth=o,a.naturalHeight=l,this.limitCanvas(!0,!1)}(a.width>a.maxWidth||a.widtha.maxHeight||a.heighti.width?r.height=r.width/a:r.width=r.height*a),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=i.left+(i.width-r.width)/2,r.top=i.top+(i.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=Z({},r)},limitCropBox:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=this.limited,s=a.aspectRatio;if(t){var u=Number(a.minCropBoxWidth)||0,c=Number(a.minCropBoxHeight)||0,d=l?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,h=l?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;u=Math.min(u,n.width),c=Math.min(c,n.height),s&&(u&&c?c*s>u?c=u/s:u=c*s:u?c=u/s:c&&(u=c*s),h*s>d?h=d/s:d=h*s),o.minWidth=Math.min(u,d),o.minHeight=Math.min(c,h),o.maxWidth=d,o.maxHeight=h}i&&(l?(o.minLeft=Math.max(0,r.left),o.minTop=Math.max(0,r.top),o.maxLeft=Math.min(n.width,r.left+r.width)-o.width,o.maxTop=Math.min(n.height,r.top+r.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=n.width-o.width,o.maxTop=n.height-o.height))},renderCropBox:function(){var t=this.options,i=this.containerData,a=this.cropBoxData;(a.width>a.maxWidth||a.widtha.maxHeight||a.height=i.width&&a.height>=i.height?gr:ha),Ve(this.cropBox,Z({width:a.width,height:a.height},Ft({translateX:a.left,translateY:a.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),gt(this.element,na,this.getData())}},vu={initPreview:function(){var t=this.element,i=this.crossOrigin,a=this.options.preview,n=i?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",o=document.createElement("img");if(i&&(o.crossOrigin=i),o.src=n,o.alt=r,this.viewBox.appendChild(o),this.viewBoxImage=o,!!a){var l=a;typeof a=="string"?l=t.ownerDocument.querySelectorAll(a):a.querySelector&&(l=[a]),this.previews=l,ne(l,function(s){var u=document.createElement("img");zt(s,si,{width:s.offsetWidth,height:s.offsetHeight,html:s.innerHTML}),i&&(u.crossOrigin=i),u.src=n,u.alt=r,u.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',s.innerHTML="",s.appendChild(u)})}},resetPreview:function(){ne(this.previews,function(t){var i=ca(t,si);Ve(t,{width:i.width,height:i.height}),t.innerHTML=i.html,fu(t,si)})},preview:function(){var t=this.imageData,i=this.canvasData,a=this.cropBoxData,n=a.width,r=a.height,o=t.width,l=t.height,s=a.left-i.left-t.left,u=a.top-i.top-t.top;!this.cropped||this.disabled||(Ve(this.viewBoxImage,Z({width:o,height:l},Ft(Z({translateX:-s,translateY:-u},t)))),ne(this.previews,function(c){var d=ca(c,si),h=d.width,f=d.height,p=h,m=f,g=1;n&&(g=h/n,m=r*g),r&&m>f&&(g=f/r,p=n*g,m=f),Ve(c,{width:p,height:m}),Ve(c.getElementsByTagName("img")[0],Z({width:o*g,height:l*g},Ft(Z({translateX:-s*g,translateY:-u*g},t))))}))}},Au={bind:function(){var t=this.element,i=this.options,a=this.cropper;pe(i.cropstart)&&Re(t,la,i.cropstart),pe(i.cropmove)&&Re(t,oa,i.cropmove),pe(i.cropend)&&Re(t,ra,i.cropend),pe(i.crop)&&Re(t,na,i.crop),pe(i.zoom)&&Re(t,sa,i.zoom),Re(a,tr,this.onCropStart=this.cropStart.bind(this)),i.zoomable&&i.zoomOnWheel&&Re(a,or,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Re(a,er,this.onDblclick=this.dblclick.bind(this)),Re(t.ownerDocument,ir,this.onCropMove=this.cropMove.bind(this)),Re(t.ownerDocument,ar,this.onCropEnd=this.cropEnd.bind(this)),i.responsive&&Re(window,rr,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,i=this.options,a=this.cropper;pe(i.cropstart)&&Le(t,la,i.cropstart),pe(i.cropmove)&&Le(t,oa,i.cropmove),pe(i.cropend)&&Le(t,ra,i.cropend),pe(i.crop)&&Le(t,na,i.crop),pe(i.zoom)&&Le(t,sa,i.zoom),Le(a,tr,this.onCropStart),i.zoomable&&i.zoomOnWheel&&Le(a,or,this.onWheel,{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Le(a,er,this.onDblclick),Le(t.ownerDocument,ir,this.onCropMove),Le(t.ownerDocument,ar,this.onCropEnd),i.responsive&&Le(window,rr,this.onResize)}},Lu={resize:function(){if(!this.disabled){var t=this.options,i=this.container,a=this.containerData,n=i.offsetWidth/a.width,r=i.offsetHeight/a.height,o=Math.abs(n-1)>Math.abs(r-1)?n:r;if(o!==1){var l,s;t.restore&&(l=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(ne(l,function(u,c){l[c]=u*o})),this.setCropBoxData(ne(s,function(u,c){s[c]=u*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===Ir||this.setDragMode(uu(this.dragBox,ia)?Tr:fa)},wheel:function(t){var i=this,a=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){i.wheeling=!1},50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*a,t)))},cropStart:function(t){var i=t.buttons,a=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(Y(i)&&i!==1||Y(a)&&a!==0||t.ctrlKey))){var n=this.options,r=this.pointers,o;t.changedTouches?ne(t.changedTouches,function(l){r[l.identifier]=ci(l)}):r[t.pointerId||0]=ci(t),Object.keys(r).length>1&&n.zoomable&&n.zoomOnTouch?o=Er:o=ca(t.target,Ct),tu.test(o)&>(this.element,la,{originalEvent:t,action:o})!==!1&&(t.preventDefault(),this.action=o,this.cropping=!1,o===mr&&(this.cropping=!0,le(this.dragBox,di)))}},cropMove:function(t){var i=this.action;if(!(this.disabled||!i)){var a=this.pointers;t.preventDefault(),gt(this.element,oa,{originalEvent:t,action:i})!==!1&&(t.changedTouches?ne(t.changedTouches,function(n){Z(a[n.identifier]||{},ci(n,!0))}):Z(a[t.pointerId||0]||{},ci(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var i=this.action,a=this.pointers;t.changedTouches?ne(t.changedTouches,function(n){delete a[n.identifier]}):delete a[t.pointerId||0],i&&(t.preventDefault(),Object.keys(a).length||(this.action=""),this.cropping&&(this.cropping=!1,pt(this.dragBox,di,this.cropped&&this.options.modal)),gt(this.element,ra,{originalEvent:t,action:i}))}}},Mu={change:function(t){var i=this.options,a=this.canvasData,n=this.containerData,r=this.cropBoxData,o=this.pointers,l=this.action,s=i.aspectRatio,u=r.left,c=r.top,d=r.width,h=r.height,f=u+d,p=c+h,m=0,g=0,b=n.width,E=n.height,T=!0,_;!s&&t.shiftKey&&(s=d&&h?d/h:1),this.limited&&(m=r.minLeft,g=r.minTop,b=m+Math.min(n.width,a.width,a.left+a.width),E=g+Math.min(n.height,a.height,a.top+a.height));var y=o[Object.keys(o)[0]],I={x:y.endX-y.startX,y:y.endY-y.startY},v=function(S){switch(S){case Ze:f+I.x>b&&(I.x=b-f);break;case Ke:u+I.xE&&(I.y=E-p);break}};switch(l){case ha:u+=I.x,c+=I.y;break;case Ze:if(I.x>=0&&(f>=b||s&&(c<=g||p>=E))){T=!1;break}v(Ze),d+=I.x,d<0&&(l=Ke,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case Ge:if(I.y<=0&&(c<=g||s&&(u<=m||f>=b))){T=!1;break}v(Ge),h-=I.y,c+=I.y,h<0&&(l=ht,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case Ke:if(I.x<=0&&(u<=m||s&&(c<=g||p>=E))){T=!1;break}v(Ke),d-=I.x,u+=I.x,d<0&&(l=Ze,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case ht:if(I.y>=0&&(p>=E||s&&(u<=m||f>=b))){T=!1;break}v(ht),h+=I.y,h<0&&(l=Ge,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case Ot:if(s){if(I.y<=0&&(c<=g||f>=b)){T=!1;break}v(Ge),h-=I.y,c+=I.y,d=h*s}else v(Ge),v(Ze),I.x>=0?fg&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Pt,h=-h,d=-d,c-=h,u-=d):d<0?(l=xt,d=-d,u-=d):h<0&&(l=Dt,h=-h,c-=h);break;case xt:if(s){if(I.y<=0&&(c<=g||u<=m)){T=!1;break}v(Ge),h-=I.y,c+=I.y,d=h*s,u+=r.width-d}else v(Ge),v(Ke),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y<=0&&c<=g&&(T=!1):(d-=I.x,u+=I.x),I.y<=0?c>g&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Dt,h=-h,d=-d,c-=h,u-=d):d<0?(l=Ot,d=-d,u-=d):h<0&&(l=Pt,h=-h,c-=h);break;case Pt:if(s){if(I.x<=0&&(u<=m||p>=E)){T=!1;break}v(Ke),d-=I.x,u+=I.x,h=d/s}else v(ht),v(Ke),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y>=0&&p>=E&&(T=!1):(d-=I.x,u+=I.x),I.y>=0?p=0&&(f>=b||p>=E)){T=!1;break}v(Ze),d+=I.x,h=d/s}else v(ht),v(Ze),I.x>=0?f=0&&p>=E&&(T=!1):d+=I.x,I.y>=0?p0?l=I.y>0?Dt:Ot:I.x<0&&(u-=d,l=I.y>0?Pt:xt),I.y<0&&(c-=h),this.cropped||(Me(this.cropBox,me),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}T&&(r.width=d,r.height=h,r.left=u,r.top=c,this.action=l,this.renderCropBox()),ne(o,function(R){R.startX=R.endX,R.startY=R.endY})}},Ou={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&le(this.dragBox,di),Me(this.cropBox,me),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=Z({},this.initialImageData),this.canvasData=Z({},this.initialCanvasData),this.cropBoxData=Z({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(Z(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Me(this.dragBox,di),le(this.cropBox,me)),this},replace:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),i?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,ne(this.previews,function(a){a.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Me(this.cropper,Kn)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,le(this.cropper,Kn)),this},destroy:function(){var t=this.element;return t[Q]?(t[Q]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=a.left,r=a.top;return this.moveTo(Ki(t)?t:n+Number(t),Ki(i)?i:r+Number(i))},moveTo:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(Y(t)&&(a.left=t,n=!0),Y(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,i){var a=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(a.width*t/a.naturalWidth,null,i)},zoomTo:function(t,i,a){var n=this.options,r=this.canvasData,o=r.width,l=r.height,s=r.naturalWidth,u=r.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,d=u*t;if(gt(this.element,sa,{ratio:t,oldRatio:o/s,originalEvent:a})===!1)return this;if(a){var h=this.pointers,f=wr(this.cropper),p=h&&Object.keys(h).length?gu(h):{pageX:a.pageX,pageY:a.pageY};r.left-=(c-o)*((p.pageX-f.left-r.left)/o),r.top-=(d-l)*((p.pageY-f.top-r.top)/l)}else ft(i)&&Y(i.x)&&Y(i.y)?(r.left-=(c-o)*((i.x-r.left)/o),r.top-=(d-l)*((i.y-r.top)/l)):(r.left-=(c-o)/2,r.top-=(d-l)/2);r.width=c,r.height=d,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),Y(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,Y(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(Y(i)?i:1,t)},scale:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.imageData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(Y(t)&&(a.scaleX=t,n=!0),Y(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.options,a=this.imageData,n=this.canvasData,r=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:r.left-n.left,y:r.top-n.top,width:r.width,height:r.height};var l=a.width/a.naturalWidth;if(ne(o,function(c,d){o[d]=c/l}),t){var s=Math.round(o.y+o.height),u=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=u-o.x,o.height=s-o.y}}else o={x:0,y:0,width:0,height:0};return i.rotatable&&(o.rotate=a.rotate||0),i.scalable&&(o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1),o},setData:function(t){var i=this.options,a=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&ft(t)){var o=!1;i.rotatable&&Y(t.rotate)&&t.rotate!==a.rotate&&(a.rotate=t.rotate,o=!0),i.scalable&&(Y(t.scaleX)&&t.scaleX!==a.scaleX&&(a.scaleX=t.scaleX,o=!0),Y(t.scaleY)&&t.scaleY!==a.scaleY&&(a.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var l=a.width/a.naturalWidth;Y(t.x)&&(r.left=t.x*l+n.left),Y(t.y)&&(r.top=t.y*l+n.top),Y(t.width)&&(r.width=t.width*l),Y(t.height)&&(r.height=t.height*l),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?Z({},this.containerData):{}},getImageData:function(){return this.sized?Z({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,i={};return this.ready&&ne(["left","top","width","height","naturalWidth","naturalHeight"],function(a){i[a]=t[a]}),i},setCanvasData:function(t){var i=this.canvasData,a=i.aspectRatio;return this.ready&&!this.disabled&&ft(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)?(i.width=t.width,i.height=t.width/a):Y(t.height)&&(i.height=t.height,i.width=t.height*a),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,i;return this.ready&&this.cropped&&(i={left:t.left,top:t.top,width:t.width,height:t.height}),i||{}},setCropBoxData:function(t){var i=this.cropBoxData,a=this.options.aspectRatio,n,r;return this.ready&&this.cropped&&!this.disabled&&ft(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)&&t.width!==i.width&&(n=!0,i.width=t.width),Y(t.height)&&t.height!==i.height&&(r=!0,i.height=t.height),a&&(n?i.height=i.width/a:r&&(i.width=i.height*a)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var i=this.canvasData,a=Tu(this.image,this.imageData,i,t);if(!this.cropped)return a;var n=this.getData(t.rounded),r=n.x,o=n.y,l=n.width,s=n.height,u=a.width/Math.floor(i.naturalWidth);u!==1&&(r*=u,o*=u,l*=u,s*=u);var c=l/s,d=Ue({aspectRatio:c,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),h=Ue({aspectRatio:c,width:t.minWidth||0,height:t.minHeight||0},"cover"),f=Ue({aspectRatio:c,width:t.width||(u!==1?a.width:l),height:t.height||(u!==1?a.height:s)}),p=f.width,m=f.height;p=Math.min(d.width,Math.max(h.width,p)),m=Math.min(d.height,Math.max(h.height,m));var g=document.createElement("canvas"),b=g.getContext("2d");g.width=mt(p),g.height=mt(m),b.fillStyle=t.fillColor||"transparent",b.fillRect(0,0,p,m);var E=t.imageSmoothingEnabled,T=E===void 0?!0:E,_=t.imageSmoothingQuality;b.imageSmoothingEnabled=T,_&&(b.imageSmoothingQuality=_);var y=a.width,I=a.height,v=r,R=o,S,D,x,O,B,A;v<=-l||v>y?(v=0,S=0,x=0,B=0):v<=0?(x=-v,v=0,S=Math.min(y,l+v),B=S):v<=y&&(x=0,S=Math.min(l,y-v),B=S),S<=0||R<=-s||R>I?(R=0,D=0,O=0,A=0):R<=0?(O=-R,R=0,D=Math.min(I,s+R),A=D):R<=I&&(O=0,D=Math.min(s,I-R),A=D);var F=[v,R,S,D];if(B>0&&A>0){var w=p/l;F.push(x*w,O*w,B*w,A*w)}return b.drawImage.apply(b,[a].concat(fr(F.map(function(L){return Math.floor(mt(L))})))),g},setAspectRatio:function(t){var i=this.options;return!this.disabled&&!Ki(t)&&(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var i=this.options,a=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===fa,o=i.movable&&t===Tr;t=r||o?t:Ir,i.dragMode=t,zt(a,Ct,t),pt(a,ia,r),pt(a,aa,o),i.cropBoxMovable||(zt(n,Ct,t),pt(n,ia,r),pt(n,aa,o))}return this}},xu=Oe.Cropper,ma=function(){function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Hd(this,e),!t||!nu.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=Z({},sr,ft(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return Wd(e,[{key:"init",value:function(){var i=this.element,a=i.tagName.toLowerCase(),n;if(!i[Q]){if(i[Q]=this,a==="img"){if(this.isImg=!0,n=i.getAttribute("src")||"",this.originalUrl=n,!n)return;n=i.src}else a==="canvas"&&window.HTMLCanvasElement&&(n=i.toDataURL());this.load(n)}}},{key:"load",value:function(i){var a=this;if(i){this.url=i,this.imageData={};var n=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(iu.test(i)){au.test(i)?this.read(_u(i)):this.clone();return}var o=new XMLHttpRequest,l=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=l,o.onerror=l,o.ontimeout=l,o.onprogress=function(){o.getResponseHeader("content-type")!==lr&&o.abort()},o.onload=function(){a.read(o.response)},o.onloadend=function(){a.reloading=!1,a.xhr=null},r.checkCrossOrigin&&dr(i)&&n.crossOrigin&&(i=ur(i)),o.open("GET",i,!0),o.responseType="arraybuffer",o.withCredentials=n.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(i){var a=this.options,n=this.imageData,r=yu(i),o=0,l=1,s=1;if(r>1){this.url=Ru(i,lr);var u=Su(r);o=u.rotate,l=u.scaleX,s=u.scaleY}a.rotatable&&(n.rotate=o),a.scalable&&(n.scaleX=l,n.scaleY=s),this.clone()}},{key:"clone",value:function(){var i=this.element,a=this.url,n=i.crossOrigin,r=a;this.options.checkCrossOrigin&&dr(a)&&(n||(n="anonymous"),r=ur(a)),this.crossOrigin=n,this.crossOriginUrl=r;var o=document.createElement("img");n&&(o.crossOrigin=n),o.src=r||a,o.alt=i.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),le(o,Jn),i.parentNode.insertBefore(o,i.nextSibling)}},{key:"start",value:function(){var i=this,a=this.image;a.onload=null,a.onerror=null,this.sizing=!0;var n=Oe.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(Oe.navigator.userAgent),r=function(u,c){Z(i.imageData,{naturalWidth:u,naturalHeight:c,aspectRatio:u/c}),i.initialImageData=Z({},i.imageData),i.sizing=!1,i.sized=!0,i.build()};if(a.naturalWidth&&!n){r(a.naturalWidth,a.naturalHeight);return}var o=document.createElement("img"),l=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){r(o.width,o.height),n||l.removeChild(o)},o.src=a.src,n||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",l.appendChild(o))}},{key:"stop",value:function(){var i=this.image;i.onload=null,i.onerror=null,i.parentNode.removeChild(i),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var i=this.element,a=this.options,n=this.image,r=i.parentNode,o=document.createElement("div");o.innerHTML=ru;var l=o.querySelector(".".concat(Q,"-container")),s=l.querySelector(".".concat(Q,"-canvas")),u=l.querySelector(".".concat(Q,"-drag-box")),c=l.querySelector(".".concat(Q,"-crop-box")),d=c.querySelector(".".concat(Q,"-face"));this.container=r,this.cropper=l,this.canvas=s,this.dragBox=u,this.cropBox=c,this.viewBox=l.querySelector(".".concat(Q,"-view-box")),this.face=d,s.appendChild(n),le(i,me),r.insertBefore(l,i.nextSibling),Me(n,Jn),this.initPreview(),this.bind(),a.initialAspectRatio=Math.max(0,a.initialAspectRatio)||NaN,a.aspectRatio=Math.max(0,a.aspectRatio)||NaN,a.viewMode=Math.max(0,Math.min(3,Math.round(a.viewMode)))||0,le(c,me),a.guides||le(c.getElementsByClassName("".concat(Q,"-dashed")),me),a.center||le(c.getElementsByClassName("".concat(Q,"-center")),me),a.background&&le(l,"".concat(Q,"-bg")),a.highlight||le(d,Zd),a.cropBoxMovable&&(le(d,aa),zt(d,Ct,ha)),a.cropBoxResizable||(le(c.getElementsByClassName("".concat(Q,"-line")),me),le(c.getElementsByClassName("".concat(Q,"-point")),me)),this.render(),this.ready=!0,this.setDragMode(a.dragMode),a.autoCrop&&this.crop(),this.setData(a.data),pe(a.ready)&&Re(i,nr,a.ready,{once:!0}),gt(i,nr)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var i=this.cropper.parentNode;i&&i.removeChild(this.cropper),Me(this.element,me)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=xu,e}},{key:"setDefaults",value:function(i){Z(sr,ft(i)&&i)}}]),e}();Z(ma.prototype,wu,vu,Au,Lu,Mu,Ou);var Ar=({addFilter:e,utils:t})=>{let{Type:i,replaceInString:a,toNaturalFileSize:n}=t;return e("ALLOW_HOPPER_ITEM",(r,{query:o})=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return!0;let l=o("GET_MAX_FILE_SIZE");if(l!==null&&r.size>l)return!1;let s=o("GET_MIN_FILE_SIZE");return!(s!==null&&r.sizenew Promise((l,s)=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return l(r);let u=o("GET_FILE_VALIDATE_SIZE_FILTER");if(u&&!u(r))return l(r);let c=o("GET_MAX_FILE_SIZE");if(c!==null&&r.size>c){s({status:{main:o("GET_LABEL_MAX_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_FILE_SIZE"),{filesize:n(c,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}let d=o("GET_MIN_FILE_SIZE");if(d!==null&&r.sizep+m.fileSize,0)>h){s({status:{main:o("GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_TOTAL_FILE_SIZE"),{filesize:n(h,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}l(r)})),{options:{allowFileSizeValidation:[!0,i.BOOLEAN],maxFileSize:[null,i.INT],minFileSize:[null,i.INT],maxTotalFileSize:[null,i.INT],fileValidateSizeFilter:[null,i.FUNCTION],labelMinFileSizeExceeded:["File is too small",i.STRING],labelMinFileSize:["Minimum file size is {filesize}",i.STRING],labelMaxFileSizeExceeded:["File is too large",i.STRING],labelMaxFileSize:["Maximum file size is {filesize}",i.STRING],labelMaxTotalFileSizeExceeded:["Maximum total size exceeded",i.STRING],labelMaxTotalFileSize:["Maximum total file size is {filesize}",i.STRING]}}},Du=typeof window<"u"&&typeof window.document<"u";Du&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Ar}));var Lr=Ar;var Mr=({addFilter:e,utils:t})=>{let{Type:i,isString:a,replaceInString:n,guesstimateMimeType:r,getExtensionFromFilename:o,getFilenameFromURL:l}=t,s=(f,p)=>{let m=(/^[^/]+/.exec(f)||[]).pop(),g=p.slice(0,-2);return m===g},u=(f,p)=>f.some(m=>/\*$/.test(m)?s(p,m):m===p),c=f=>{let p="";if(a(f)){let m=l(f),g=o(m);g&&(p=r(g))}else p=f.type;return p},d=(f,p,m)=>{if(p.length===0)return!0;let g=c(f);return m?new Promise((b,E)=>{m(f,g).then(T=>{u(p,T)?b():E()}).catch(E)}):u(p,g)},h=f=>p=>f[p]===null?!1:f[p]||p;return e("SET_ATTRIBUTE_TO_OPTION_MAP",f=>Object.assign(f,{accept:"acceptedFileTypes"})),e("ALLOW_HOPPER_ITEM",(f,{query:p})=>p("GET_ALLOW_FILE_TYPE_VALIDATION")?d(f,p("GET_ACCEPTED_FILE_TYPES")):!0),e("LOAD_FILE",(f,{query:p})=>new Promise((m,g)=>{if(!p("GET_ALLOW_FILE_TYPE_VALIDATION")){m(f);return}let b=p("GET_ACCEPTED_FILE_TYPES"),E=p("GET_FILE_VALIDATE_TYPE_DETECT_TYPE"),T=d(f,b,E),_=()=>{let y=b.map(h(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP"))).filter(v=>v!==!1),I=y.filter(function(v,R){return y.indexOf(v)===R});g({status:{main:p("GET_LABEL_FILE_TYPE_NOT_ALLOWED"),sub:n(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES"),{allTypes:I.join(", "),allButLastType:I.slice(0,-1).join(", "),lastType:I[y.length-1]})}})};if(typeof T=="boolean")return T?m(f):_();T.then(()=>{m(f)}).catch(_)})),{options:{allowFileTypeValidation:[!0,i.BOOLEAN],acceptedFileTypes:[[],i.ARRAY],labelFileTypeNotAllowed:["File is of invalid type",i.STRING],fileValidateTypeLabelExpectedTypes:["Expects {allButLastType} or {lastType}",i.STRING],fileValidateTypeLabelExpectedTypesMap:[{},i.OBJECT],fileValidateTypeDetectType:[null,i.FUNCTION]}}},Pu=typeof window<"u"&&typeof window.document<"u";Pu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Mr}));var Or=Mr;var xr=e=>/^image/.test(e.type),Dr=({addFilter:e,utils:t})=>{let{Type:i,isFile:a,getNumericAspectRatioFromString:n}=t,r=(u,c)=>!(!xr(u.file)||!c("GET_ALLOW_IMAGE_CROP")),o=u=>typeof u=="object",l=u=>typeof u=="number",s=(u,c)=>u.setMetadata("crop",Object.assign({},u.getMetadata("crop"),c));return e("DID_CREATE_ITEM",(u,{query:c})=>{u.extend("setImageCrop",d=>{if(!(!r(u,c)||!o(center)))return u.setMetadata("crop",d),d}),u.extend("setImageCropCenter",d=>{if(!(!r(u,c)||!o(d)))return s(u,{center:d})}),u.extend("setImageCropZoom",d=>{if(!(!r(u,c)||!l(d)))return s(u,{zoom:Math.max(1,d)})}),u.extend("setImageCropRotation",d=>{if(!(!r(u,c)||!l(d)))return s(u,{rotation:d})}),u.extend("setImageCropFlip",d=>{if(!(!r(u,c)||!o(d)))return s(u,{flip:d})}),u.extend("setImageCropAspectRatio",d=>{if(!r(u,c)||typeof d>"u")return;let h=u.getMetadata("crop"),f=n(d),p={center:{x:.5,y:.5},flip:h?Object.assign({},h.flip):{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:f};return u.setMetadata("crop",p),p})}),e("DID_LOAD_ITEM",(u,{query:c})=>new Promise((d,h)=>{let f=u.file;if(!a(f)||!xr(f)||!c("GET_ALLOW_IMAGE_CROP")||u.getMetadata("crop"))return d(u);let m=c("GET_IMAGE_CROP_ASPECT_RATIO");u.setMetadata("crop",{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:m?n(m):null}),d(u)})),{options:{allowImageCrop:[!0,i.BOOLEAN],imageCropAspectRatio:[null,i.STRING]}}},Fu=typeof window<"u"&&typeof window.document<"u";Fu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Dr}));var Pr=Dr;var ga=e=>/^image/.test(e.type),Fr=e=>{let{addFilter:t,utils:i,views:a}=e,{Type:n,createRoute:r,createItemAPI:o=c=>c}=i,{fileActionButton:l}=a;t("SHOULD_REMOVE_ON_REVERT",(c,{item:d,query:h})=>new Promise(f=>{let{file:p}=d,m=h("GET_ALLOW_IMAGE_EDIT")&&h("GET_IMAGE_EDIT_ALLOW_EDIT")&&ga(p);f(!m)})),t("DID_LOAD_ITEM",(c,{query:d,dispatch:h})=>new Promise((f,p)=>{if(c.origin>1){f(c);return}let{file:m}=c;if(!d("GET_ALLOW_IMAGE_EDIT")||!d("GET_IMAGE_EDIT_INSTANT_EDIT")){f(c);return}if(!ga(m)){f(c);return}let g=(E,T,_)=>y=>{s.shift(),y?T(E):_(E),h("KICK"),b()},b=()=>{if(!s.length)return;let{item:E,resolve:T,reject:_}=s[0];h("EDIT_ITEM",{id:E.id,handleEditorResponse:g(E,T,_)})};u({item:c,resolve:f,reject:p}),s.length===1&&b()})),t("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{c.extend("edit",()=>{h("EDIT_ITEM",{id:c.id})})});let s=[],u=c=>(s.push(c),c);return t("CREATE_VIEW",c=>{let{is:d,view:h,query:f}=c;if(!f("GET_ALLOW_IMAGE_EDIT"))return;let p=f("GET_ALLOW_IMAGE_PREVIEW");if(!(d("file-info")&&!p||d("file")&&p))return;let g=f("GET_IMAGE_EDIT_EDITOR");if(!g)return;g.filepondCallbackBridge||(g.outputData=!0,g.outputFile=!1,g.filepondCallbackBridge={onconfirm:g.onconfirm||(()=>{}),oncancel:g.oncancel||(()=>{})});let b=({root:_,props:y,action:I})=>{let{id:v}=y,{handleEditorResponse:R}=I;g.cropAspectRatio=_.query("GET_IMAGE_CROP_ASPECT_RATIO")||g.cropAspectRatio,g.outputCanvasBackgroundColor=_.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||g.outputCanvasBackgroundColor;let S=_.query("GET_ITEM",v);if(!S)return;let D=S.file,x=S.getMetadata("crop"),O={center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},B=S.getMetadata("resize"),A=S.getMetadata("filter")||null,F=S.getMetadata("filters")||null,w=S.getMetadata("colors")||null,L=S.getMetadata("markup")||null,N={crop:x||O,size:B?{upscale:B.upscale,mode:B.mode,width:B.size.width,height:B.size.height}:null,filter:F?F.id||F.matrix:_.query("GET_ALLOW_IMAGE_FILTER")&&_.query("GET_IMAGE_FILTER_COLOR_MATRIX")&&!w?A:null,color:w,markup:L};g.onconfirm=({data:P})=>{let{crop:U,size:V,filter:q,color:X,colorMatrix:j,markup:se}=P,k={};if(U&&(k.crop=U),V){let W=(S.getMetadata("resize")||{}).size,C={width:V.width,height:V.height};!(C.width&&C.height)&&W&&(C.width=W.width,C.height=W.height),(C.width||C.height)&&(k.resize={upscale:V.upscale,mode:V.mode,size:C})}se&&(k.markup=se),k.colors=X,k.filters=q,k.filter=j,S.setMetadata(k),g.filepondCallbackBridge.onconfirm(P,o(S)),R&&(g.onclose=()=>{R(!0),g.onclose=null})},g.oncancel=()=>{g.filepondCallbackBridge.oncancel(o(S)),R&&(g.onclose=()=>{R(!1),g.onclose=null})},g.open(D,N)},E=({root:_,props:y})=>{if(!f("GET_IMAGE_EDIT_ALLOW_EDIT"))return;let{id:I}=y,v=f("GET_ITEM",I);if(!v)return;let R=v.file;if(ga(R))if(_.ref.handleEdit=S=>{S.stopPropagation(),_.dispatch("EDIT_ITEM",{id:I})},p){let S=h.createChildView(l,{label:"edit",icon:f("GET_IMAGE_EDIT_ICON_EDIT"),opacity:0});S.element.classList.add("filepond--action-edit-item"),S.element.dataset.align=f("GET_STYLE_IMAGE_EDIT_BUTTON_EDIT_ITEM_POSITION"),S.on("click",_.ref.handleEdit),_.ref.buttonEditItem=h.appendChildView(S)}else{let S=h.element.querySelector(".filepond--file-info-main"),D=document.createElement("button");D.className="filepond--action-edit-item-alt",D.innerHTML=f("GET_IMAGE_EDIT_ICON_EDIT")+"edit",D.addEventListener("click",_.ref.handleEdit),S.appendChild(D),_.ref.editButton=D}};h.registerDestroyer(({root:_})=>{_.ref.buttonEditItem&&_.ref.buttonEditItem.off("click",_.ref.handleEdit),_.ref.editButton&&_.ref.editButton.removeEventListener("click",_.ref.handleEdit)});let T={EDIT_ITEM:b,DID_LOAD_ITEM:E};if(p){let _=({root:y})=>{y.ref.buttonEditItem&&(y.ref.buttonEditItem.opacity=1)};T.DID_IMAGE_PREVIEW_SHOW=_}h.registerWriter(r(T))}),{options:{allowImageEdit:[!0,n.BOOLEAN],styleImageEditButtonEditItemPosition:["bottom center",n.STRING],imageEditInstantEdit:[!1,n.BOOLEAN],imageEditAllowEdit:[!0,n.BOOLEAN],imageEditIconEdit:['',n.STRING],imageEditEditor:[null,n.OBJECT]}}},Cu=typeof window<"u"&&typeof window.document<"u";Cu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Fr}));var Cr=Fr;var zu=e=>/^image\/jpeg/.test(e.type),et={JPEG:65496,APP1:65505,EXIF:1165519206,TIFF:18761,Orientation:274,Unknown:65280},tt=(e,t,i=!1)=>e.getUint16(t,i),zr=(e,t,i=!1)=>e.getUint32(t,i),Nu=e=>new Promise((t,i)=>{let a=new FileReader;a.onload=function(n){let r=new DataView(n.target.result);if(tt(r,0)!==et.JPEG){t(-1);return}let o=r.byteLength,l=2;for(;ltypeof window<"u"&&typeof window.document<"u")(),Gu=()=>Bu,Vu="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=",Nr,hi=Gu()?new Image:{};hi.onload=()=>Nr=hi.naturalWidth>hi.naturalHeight;hi.src=Vu;var Uu=()=>Nr,Br=({addFilter:e,utils:t})=>{let{Type:i,isFile:a}=t;return e("DID_LOAD_ITEM",(n,{query:r})=>new Promise((o,l)=>{let s=n.file;if(!a(s)||!zu(s)||!r("GET_ALLOW_IMAGE_EXIF_ORIENTATION")||!Uu())return o(n);Nu(s).then(u=>{n.setMetadata("exif",{orientation:u}),o(n)})})),{options:{allowImageExifOrientation:[!0,i.BOOLEAN]}}},ku=typeof window<"u"&&typeof window.document<"u";ku&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Br}));var Gr=Br;var Hu=e=>/^image/.test(e.type),Vr=(e,t)=>Bt(e.x*t,e.y*t),Ur=(e,t)=>Bt(e.x+t.x,e.y+t.y),Wu=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Bt(e.x/t,e.y/t)},fi=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=Bt(e.x-i.x,e.y-i.y);return Bt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},Bt=(e=0,t=0)=>({x:e,y:t}),ge=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},Yu=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=ge(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>ge(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},ye=e=>e!=null,$u=(e,t,i=1)=>{let a=ge(e.x,t,i,"width")||ge(e.left,t,i,"width"),n=ge(e.y,t,i,"height")||ge(e.top,t,i,"height"),r=ge(e.width,t,i,"width"),o=ge(e.height,t,i,"height"),l=ge(e.right,t,i,"width"),s=ge(e.bottom,t,i,"height");return ye(n)||(ye(o)&&ye(s)?n=t.height-o-s:n=s),ye(a)||(ye(r)&&ye(l)?a=t.width-r-l:a=l),ye(r)||(ye(a)&&ye(l)?r=t.width-a-l:r=0),ye(o)||(ye(n)&&ye(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},qu=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),De=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),Xu="http://www.w3.org/2000/svg",Et=(e,t)=>{let i=document.createElementNS(Xu,e);return t&&De(i,t),i},ju=e=>De(e,{...e.rect,...e.styles}),Qu=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return De(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},Zu={contain:"xMidYMid meet",cover:"xMidYMid slice"},Ku=(e,t)=>{De(e,{...e.rect,...e.styles,preserveAspectRatio:Zu[t.fit]||"none"})},Ju={left:"start",center:"middle",right:"end"},eh=(e,t,i,a)=>{let n=ge(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=Ju[t.textAlign]||"start";De(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},th=(e,t,i,a)=>{De(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(De(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=Wu({x:s.x-l.x,y:s.y-l.y}),c=ge(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=Vr(u,c),h=Ur(l,d),f=fi(l,2,h),p=fi(l,-2,h);De(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=Vr(u,-c),h=Ur(s,d),f=fi(s,2,h),p=fi(s,-2,h);De(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},ih=(e,t,i,a)=>{De(e,{...e.styles,fill:"none",d:qu(t.points.map(n=>({x:ge(n.x,i,a,"width"),y:ge(n.y,i,a,"height")})))})},pi=e=>t=>Et(e,{id:t.id}),ah=e=>{let t=Et("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},nh=e=>{let t=Et("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=Et("line");t.appendChild(i);let a=Et("path");t.appendChild(a);let n=Et("path");return t.appendChild(n),t},rh={image:ah,rect:pi("rect"),ellipse:pi("ellipse"),text:pi("text"),path:pi("path"),line:nh},oh={rect:ju,ellipse:Qu,image:Ku,text:eh,path:ih,line:th},lh=(e,t)=>rh[e](t),sh=(e,t,i,a,n)=>{t!=="path"&&(e.rect=$u(i,a,n)),e.styles=Yu(i,a,n),oh[t](e,i,a,n)},ch=["x","y","left","top","right","bottom","width","height"],dh=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,uh=e=>{let[t,i]=e,a=i.points?{}:ch.reduce((n,r)=>(n[r]=dh(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},hh=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexe.utils.createView({name:"image-preview-markup",tag:"svg",ignoreRect:!0,mixins:{apis:["width","height","crop","markup","resize","dirty"]},write:({root:t,props:i})=>{if(!i.dirty)return;let{crop:a,resize:n,markup:r}=i,o=i.width,l=i.height,s=a.width,u=a.height;if(n){let{size:f}=n,p=f&&f.width,m=f&&f.height,g=n.mode,b=n.upscale;p&&!m&&(m=p),m&&!p&&(p=m);let E=s{let[p,m]=f,g=lh(p,m);sh(g,p,m,c,d),t.element.appendChild(g)})}}),Nt=(e,t)=>({x:e,y:t}),ph=(e,t)=>e.x*t.x+e.y*t.y,kr=(e,t)=>Nt(e.x-t.x,e.y-t.y),mh=(e,t)=>ph(kr(e,t),kr(e,t)),Hr=(e,t)=>Math.sqrt(mh(e,t)),Wr=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Nt(u*d,u*h)},gh=(e,t)=>{let i=e.width,a=e.height,n=Wr(i,t),r=Wr(a,t),o=Nt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Nt(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Nt(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:Hr(o,l),height:Hr(o,s)}},Eh=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},$r=(e,t,i,a)=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=gh(t,i);return Math.max(s.width/o,s.height/l)},qr=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},Th=(e,t={})=>{let{zoom:i,rotation:a,center:n,aspectRatio:r}=t;r||(r=e.height/e.width);let o=Eh(e,r,i),l={x:o.width*.5,y:o.height*.5},s={x:0,y:0,width:o.width,height:o.height,center:l},u=typeof t.scaleToFit>"u"||t.scaleToFit,c=$r(e,qr(s,r),a,u?n:{x:.5,y:.5}),d=i*c;return{widthFloat:o.width/d,heightFloat:o.height/d,width:Math.round(o.width/d),height:Math.round(o.height/d)}},xe={type:"spring",stiffness:.5,damping:.45,mass:10},Ih=e=>e.utils.createView({name:"image-bitmap",ignoreRect:!0,mixins:{styles:["scaleX","scaleY"]},create:({root:t,props:i})=>{t.appendChild(i.image)}}),bh=e=>e.utils.createView({name:"image-canvas-wrapper",tag:"div",ignoreRect:!0,mixins:{apis:["crop","width","height"],styles:["originX","originY","translateX","translateY","scaleX","scaleY","rotateZ"],animations:{originX:xe,originY:xe,scaleX:xe,scaleY:xe,translateX:xe,translateY:xe,rotateZ:xe}},create:({root:t,props:i})=>{i.width=i.image.width,i.height=i.image.height,t.ref.bitmap=t.appendChildView(t.createChildView(Ih(e),{image:i.image}))},write:({root:t,props:i})=>{let{flip:a}=i.crop,{bitmap:n}=t.ref;n.scaleX=a.horizontal?-1:1,n.scaleY=a.vertical?-1:1}}),_h=e=>e.utils.createView({name:"image-clip",tag:"div",ignoreRect:!0,mixins:{apis:["crop","markup","resize","width","height","dirty","background"],styles:["width","height","opacity"],animations:{opacity:{type:"tween",duration:250}}},didWriteView:function({root:t,props:i}){i.background&&(t.element.style.backgroundColor=i.background)},create:({root:t,props:i})=>{t.ref.image=t.appendChildView(t.createChildView(bh(e),Object.assign({},i))),t.ref.createMarkup=()=>{t.ref.markup||(t.ref.markup=t.appendChildView(t.createChildView(fh(e),Object.assign({},i))))},t.ref.destroyMarkup=()=>{t.ref.markup&&(t.removeChildView(t.ref.markup),t.ref.markup=null)};let a=t.query("GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR");a!==null&&(a==="grid"?t.element.dataset.transparencyIndicator=a:t.element.dataset.transparencyIndicator="color")},write:({root:t,props:i,shouldOptimize:a})=>{let{crop:n,markup:r,resize:o,dirty:l,width:s,height:u}=i;t.ref.image.crop=n;let c={x:0,y:0,width:s,height:u,center:{x:s*.5,y:u*.5}},d={width:t.ref.image.width,height:t.ref.image.height},h={x:n.center.x*d.width,y:n.center.y*d.height},f={x:c.center.x-d.width*n.center.x,y:c.center.y-d.height*n.center.y},p=Math.PI*2+n.rotation%(Math.PI*2),m=n.aspectRatio||d.height/d.width,g=typeof n.scaleToFit>"u"||n.scaleToFit,b=$r(d,qr(c,m),p,g?n.center:{x:.5,y:.5}),E=n.zoom*b;r&&r.length?(t.ref.createMarkup(),t.ref.markup.width=s,t.ref.markup.height=u,t.ref.markup.resize=o,t.ref.markup.dirty=l,t.ref.markup.markup=r,t.ref.markup.crop=Th(d,n)):t.ref.markup&&t.ref.destroyMarkup();let T=t.ref.image;if(a){T.originX=null,T.originY=null,T.translateX=null,T.translateY=null,T.rotateZ=null,T.scaleX=null,T.scaleY=null;return}T.originX=h.x,T.originY=h.y,T.translateX=f.x,T.translateY=f.y,T.rotateZ=p,T.scaleX=E,T.scaleY=E}}),Rh=e=>e.utils.createView({name:"image-preview",tag:"div",ignoreRect:!0,mixins:{apis:["image","crop","markup","resize","dirty","background"],styles:["translateY","scaleX","scaleY","opacity"],animations:{scaleX:xe,scaleY:xe,translateY:xe,opacity:{type:"tween",duration:400}}},create:({root:t,props:i})=>{t.ref.clip=t.appendChildView(t.createChildView(_h(e),{id:i.id,image:i.image,crop:i.crop,markup:i.markup,resize:i.resize,dirty:i.dirty,background:i.background}))},write:({root:t,props:i,shouldOptimize:a})=>{let{clip:n}=t.ref,{image:r,crop:o,markup:l,resize:s,dirty:u}=i;if(n.crop=o,n.markup=l,n.resize=s,n.dirty=u,n.opacity=a?0:1,a||t.rect.element.hidden)return;let c=r.height/r.width,d=o.aspectRatio||c,h=t.rect.inner.width,f=t.rect.inner.height,p=t.query("GET_IMAGE_PREVIEW_HEIGHT"),m=t.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),g=t.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),b=t.query("GET_PANEL_ASPECT_RATIO"),E=t.query("GET_ALLOW_MULTIPLE");b&&!E&&(p=h*b,d=b);let T=p!==null?p:Math.max(m,Math.min(h*d,g)),_=T/d;_>h&&(_=h,T=_*d),T>f&&(T=f,_=f/d),n.width=_,n.height=T}}),yh=` +var Bo=Object.defineProperty;var Go=(e,t)=>{for(var i in t)Bo(e,i,{get:t[i],enumerable:!0})};var Ji={};Go(Ji,{FileOrigin:()=>xt,FileStatus:()=>ft,OptionTypes:()=>zi,Status:()=>Zn,create:()=>st,destroy:()=>ct,find:()=>Bi,getOptions:()=>Gi,parse:()=>Ni,registerPlugin:()=>be,setOptions:()=>Mt,supported:()=>Ci});var Vo=e=>e instanceof HTMLElement,Uo=(e,t=[],i=[])=>{let a={...e},n=[],r=[],o=()=>({...a}),l=()=>{let p=[...n];return n.length=0,p},s=()=>{let p=[...r];r.length=0,p.forEach(({type:m,data:g})=>{u(m,g)})},u=(p,m,g)=>{if(g&&!document.hidden){r.push({type:p,data:m});return}f[p]&&f[p](m),n.push({type:p,data:m})},c=(p,...m)=>h[p]?h[p](...m):null,d={getState:o,processActionQueue:l,processDispatchQueue:s,dispatch:u,query:c},h={};t.forEach(p=>{h={...p(a),...h}});let f={};return i.forEach(p=>{f={...p(u,c,a),...f}}),d},ko=(e,t,i)=>{if(typeof i=="function"){e[t]=i;return}Object.defineProperty(e,t,{...i})},ee=(e,t)=>{for(let i in e)e.hasOwnProperty(i)&&t(i,e[i])},Ve=e=>{let t={};return ee(e,i=>{ko(t,i,e[i])}),t},ae=(e,t,i=null)=>{if(i===null)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,i)},Ho="http://www.w3.org/2000/svg",Wo=["svg","path"],Sa=e=>Wo.includes(e),Jt=(e,t,i={})=>{typeof t=="object"&&(i=t,t=null);let a=Sa(e)?document.createElementNS(Ho,e):document.createElement(e);return t&&(Sa(e)?ae(a,"class",t):a.className=t),ee(i,(n,r)=>{ae(a,n,r)}),a},Yo=e=>(t,i)=>{typeof i<"u"&&e.children[i]?e.insertBefore(t,e.children[i]):e.appendChild(t)},$o=(e,t)=>(i,a)=>(typeof a<"u"?t.splice(a,0,i):t.push(i),i),qo=(e,t)=>i=>(t.splice(t.indexOf(i),1),i.element.parentNode&&e.removeChild(i.element),i),Xo=(()=>typeof window<"u"&&typeof window.document<"u")(),dn=()=>Xo,jo=dn()?Jt("svg"):{},Qo="children"in jo?e=>e.children.length:e=>e.childNodes.length,un=(e,t,i,a)=>{let n=i[0]||e.left,r=i[1]||e.top,o=n+e.width,l=r+e.height*(a[1]||1),s={element:{...e},inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:n,top:r,right:o,bottom:l}};return t.filter(u=>!u.isRectIgnored()).map(u=>u.rect).forEach(u=>{wa(s.inner,{...u.inner}),wa(s.outer,{...u.outer})}),va(s.inner),s.outer.bottom+=s.element.marginBottom,s.outer.right+=s.element.marginRight,va(s.outer),s},wa=(e,t)=>{t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},va=e=>{e.width=e.right-e.left,e.height=e.bottom-e.top},Ye=e=>typeof e=="number",Zo=(e,t,i,a=.001)=>Math.abs(e-t){let a=null,n=null,r=0,o=!1,u=Ve({interpolate:(c,d)=>{if(o)return;if(!(Ye(a)&&Ye(n))){o=!0,r=0;return}let h=-(n-a)*e;r+=h/i,n+=r,r*=t,Zo(n,a,r)||d?(n=a,r=0,o=!0,u.onupdate(n),u.oncomplete(n)):u.onupdate(n)},target:{set:c=>{if(Ye(c)&&!Ye(n)&&(n=c),a===null&&(a=c,n=c),a=c,n===a||typeof a>"u"){o=!0,r=0,u.onupdate(n),u.oncomplete(n);return}o=!1},get:()=>a},resting:{get:()=>o},onupdate:c=>{},oncomplete:c=>{}});return u};var Jo=e=>e<.5?2*e*e:-1+(4-2*e)*e,el=({duration:e=500,easing:t=Jo,delay:i=0}={})=>{let a=null,n,r,o=!0,l=!1,s=null,c=Ve({interpolate:(d,h)=>{o||s===null||(a===null&&(a=d),!(d-a=e||h?(n=1,r=l?0:1,c.onupdate(r*s),c.oncomplete(r*s),o=!0):(r=n/e,c.onupdate((n>=0?t(l?1-r:r):0)*s))))},target:{get:()=>l?0:s,set:d=>{if(s===null){s=d,c.onupdate(d),c.oncomplete(d);return}do},onupdate:d=>{},oncomplete:d=>{}});return c},Aa={spring:Ko,tween:el},tl=(e,t,i)=>{let a=e[t]&&typeof e[t][i]=="object"?e[t][i]:e[t]||e,n=typeof a=="string"?a:a.type,r=typeof a=="object"?{...a}:{};return Aa[n]?Aa[n](r):null},Vi=(e,t,i,a=!1)=>{t=Array.isArray(t)?t:[t],t.forEach(n=>{e.forEach(r=>{let o=r,l=()=>i[r],s=u=>i[r]=u;typeof r=="object"&&(o=r.key,l=r.getter||l,s=r.setter||s),!(n[o]&&!a)&&(n[o]={get:l,set:s})})})},il=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a})=>{let n={...t},r=[];return ee(e,(o,l)=>{let s=tl(l);if(!s)return;s.onupdate=c=>{t[o]=c},s.target=n[o],Vi([{key:o,setter:c=>{s.target!==c&&(s.target=c)},getter:()=>t[o]}],[i,a],t,!0),r.push(s)}),{write:o=>{let l=document.hidden,s=!0;return r.forEach(u=>{u.resting||(s=!1),u.interpolate(o,l)}),s},destroy:()=>{}}},al=e=>(t,i)=>{e.addEventListener(t,i)},nl=e=>(t,i)=>{e.removeEventListener(t,i)},rl=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,viewState:n,view:r})=>{let o=[],l=al(r.element),s=nl(r.element);return a.on=(u,c)=>{o.push({type:u,fn:c}),l(u,c)},a.off=(u,c)=>{o.splice(o.findIndex(d=>d.type===u&&d.fn===c),1),s(u,c)},{write:()=>!0,destroy:()=>{o.forEach(u=>{s(u.type,u.fn)})}}},ol=({mixinConfig:e,viewProps:t,viewExternalAPI:i})=>{Vi(e,i,t)},he=e=>e!=null,ll={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},sl=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,view:n})=>{let r={...t},o={};Vi(e,[i,a],t);let l=()=>[t.translateX||0,t.translateY||0],s=()=>[t.scaleX||0,t.scaleY||0],u=()=>n.rect?un(n.rect,n.childViews,l(),s()):null;return i.rect={get:u},a.rect={get:u},e.forEach(c=>{t[c]=typeof r[c]>"u"?ll[c]:r[c]}),{write:()=>{if(cl(o,t))return dl(n.element,t),Object.assign(o,{...t}),!0},destroy:()=>{}}},cl=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!0;for(let i in t)if(t[i]!==e[i])return!0;return!1},dl=(e,{opacity:t,perspective:i,translateX:a,translateY:n,scaleX:r,scaleY:o,rotateX:l,rotateY:s,rotateZ:u,originX:c,originY:d,width:h,height:f})=>{let p="",m="";(he(c)||he(d))&&(m+=`transform-origin: ${c||0}px ${d||0}px;`),he(i)&&(p+=`perspective(${i}px) `),(he(a)||he(n))&&(p+=`translate3d(${a||0}px, ${n||0}px, 0) `),(he(r)||he(o))&&(p+=`scale3d(${he(r)?r:1}, ${he(o)?o:1}, 1) `),he(u)&&(p+=`rotateZ(${u}rad) `),he(l)&&(p+=`rotateX(${l}rad) `),he(s)&&(p+=`rotateY(${s}rad) `),p.length&&(m+=`transform:${p};`),he(t)&&(m+=`opacity:${t};`,t===0&&(m+="visibility:hidden;"),t<1&&(m+="pointer-events:none;")),he(f)&&(m+=`height:${f}px;`),he(h)&&(m+=`width:${h}px;`);let g=e.elementCurrentStyle||"";(m.length!==g.length||m!==g)&&(e.style.cssText=m,e.elementCurrentStyle=m)},ul={styles:sl,listeners:rl,animations:il,apis:ol},La=(e={},t={},i={})=>(t.layoutCalculated||(e.paddingTop=parseInt(i.paddingTop,10)||0,e.marginTop=parseInt(i.marginTop,10)||0,e.marginRight=parseInt(i.marginRight,10)||0,e.marginBottom=parseInt(i.marginBottom,10)||0,e.marginLeft=parseInt(i.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=t.offsetParent===null,e),ne=({tag:e="div",name:t=null,attributes:i={},read:a=()=>{},write:n=()=>{},create:r=()=>{},destroy:o=()=>{},filterFrameActionsForChild:l=(f,p)=>p,didCreateView:s=()=>{},didWriteView:u=()=>{},ignoreRect:c=!1,ignoreRectUpdate:d=!1,mixins:h=[]}={})=>(f,p={})=>{let m=Jt(e,`filepond--${t}`,i),g=window.getComputedStyle(m,null),b=La(),E=null,T=!1,_=[],y=[],I={},v={},R=[n],S=[a],D=[o],x=()=>m,O=()=>_.concat(),z=()=>I,A=U=>(W,$)=>W(U,$),F=()=>E||(E=un(b,_,[0,0],[1,1]),E),w=()=>g,L=()=>{E=null,_.forEach($=>$._read()),!(d&&b.width&&b.height)&&La(b,m,g);let W={root:j,props:p,rect:b};S.forEach($=>$(W))},C=(U,W,$)=>{let oe=W.length===0;return R.forEach(N=>{N({props:p,root:j,actions:W,timestamp:U,shouldOptimize:$})===!1&&(oe=!1)}),y.forEach(N=>{N.write(U)===!1&&(oe=!1)}),_.filter(N=>!!N.element.parentNode).forEach(N=>{N._write(U,l(N,W),$)||(oe=!1)}),_.forEach((N,B)=>{N.element.parentNode||(j.appendChild(N.element,B),N._read(),N._write(U,l(N,W),$),oe=!1)}),T=oe,u({props:p,root:j,actions:W,timestamp:U}),oe},P=()=>{y.forEach(U=>U.destroy()),D.forEach(U=>{U({root:j,props:p})}),_.forEach(U=>U._destroy())},V={element:{get:x},style:{get:w},childViews:{get:O}},G={...V,rect:{get:F},ref:{get:z},is:U=>t===U,appendChild:Yo(m),createChildView:A(f),linkView:U=>(_.push(U),U),unlinkView:U=>{_.splice(_.indexOf(U),1)},appendChildView:$o(m,_),removeChildView:qo(m,_),registerWriter:U=>R.push(U),registerReader:U=>S.push(U),registerDestroyer:U=>D.push(U),invalidateLayout:()=>m.layoutCalculated=!1,dispatch:f.dispatch,query:f.query},q={element:{get:x},childViews:{get:O},rect:{get:F},resting:{get:()=>T},isRectIgnored:()=>c,_read:L,_write:C,_destroy:P},X={...V,rect:{get:()=>b}};Object.keys(h).sort((U,W)=>U==="styles"?1:W==="styles"?-1:0).forEach(U=>{let W=ul[U]({mixinConfig:h[U],viewProps:p,viewState:v,viewInternalAPI:G,viewExternalAPI:q,view:Ve(X)});W&&y.push(W)});let j=Ve(G);r({root:j,props:p});let de=Qo(m);return _.forEach((U,W)=>{j.appendChild(U.element,de+W)}),s(j),Ve(q)},hl=(e,t,i=60)=>{let a="__framePainter";if(window[a]){window[a].readers.push(e),window[a].writers.push(t);return}window[a]={readers:[e],writers:[t]};let n=window[a],r=1e3/i,o=null,l=null,s=null,u=null,c=()=>{document.hidden?(s=()=>window.setTimeout(()=>d(performance.now()),r),u=()=>window.clearTimeout(l)):(s=()=>window.requestAnimationFrame(d),u=()=>window.cancelAnimationFrame(l))};document.addEventListener("visibilitychange",()=>{u&&u(),c(),d(performance.now())});let d=h=>{l=s(d),o||(o=h);let f=h-o;f<=r||(o=h-f%r,n.readers.forEach(p=>p()),n.writers.forEach(p=>p(h)))};return c(),d(performance.now()),{pause:()=>{u(l)}}},pe=(e,t)=>({root:i,props:a,actions:n=[],timestamp:r,shouldOptimize:o})=>{n.filter(l=>e[l.type]).forEach(l=>e[l.type]({root:i,props:a,action:l.data,timestamp:r,shouldOptimize:o})),t&&t({root:i,props:a,actions:n,timestamp:r,shouldOptimize:o})},Ma=(e,t)=>t.parentNode.insertBefore(e,t),Oa=(e,t)=>t.parentNode.insertBefore(e,t.nextSibling),ai=e=>Array.isArray(e),ze=e=>e==null,fl=e=>e.trim(),ni=e=>""+e,pl=(e,t=",")=>ze(e)?[]:ai(e)?e:ni(e).split(t).map(fl).filter(i=>i.length),hn=e=>typeof e=="boolean",fn=e=>hn(e)?e:e==="true",fe=e=>typeof e=="string",pn=e=>Ye(e)?e:fe(e)?ni(e).replace(/[a-z]+/gi,""):0,Kt=e=>parseInt(pn(e),10),xa=e=>parseFloat(pn(e)),ht=e=>Ye(e)&&isFinite(e)&&Math.floor(e)===e,Da=(e,t=1e3)=>{if(ht(e))return e;let i=ni(e).trim();return/MB$/i.test(i)?(i=i.replace(/MB$i/,"").trim(),Kt(i)*t*t):/KB/i.test(i)?(i=i.replace(/KB$i/,"").trim(),Kt(i)*t):Kt(i)},$e=e=>typeof e=="function",ml=e=>{let t=self,i=e.split("."),a=null;for(;a=i.shift();)if(t=t[a],!t)return null;return t},Pa={process:"POST",patch:"PATCH",revert:"DELETE",fetch:"GET",restore:"GET",load:"GET"},gl=e=>{let t={};return t.url=fe(e)?e:e.url||"",t.timeout=e.timeout?parseInt(e.timeout,10):0,t.headers=e.headers?e.headers:{},ee(Pa,i=>{t[i]=El(i,e[i],Pa[i],t.timeout,t.headers)}),t.process=e.process||fe(e)||e.url?t.process:null,t.remove=e.remove||null,delete t.headers,t},El=(e,t,i,a,n)=>{if(t===null)return null;if(typeof t=="function")return t;let r={url:i==="GET"||i==="PATCH"?`?${e}=`:"",method:i,headers:n,withCredentials:!1,timeout:a,onload:null,ondata:null,onerror:null};if(fe(t))return r.url=t,r;if(Object.assign(r,t),fe(r.headers)){let o=r.headers.split(/:(.+)/);r.headers={header:o[0],value:o[1]}}return r.withCredentials=fn(r.withCredentials),r},Tl=e=>gl(e),Il=e=>e===null,se=e=>typeof e=="object"&&e!==null,bl=e=>se(e)&&fe(e.url)&&se(e.process)&&se(e.revert)&&se(e.restore)&&se(e.fetch),Ai=e=>ai(e)?"array":Il(e)?"null":ht(e)?"int":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?"bytes":bl(e)?"api":typeof e,_l=e=>e.replace(/{\s*'/g,'{"').replace(/'\s*}/g,'"}').replace(/'\s*:/g,'":').replace(/:\s*'/g,':"').replace(/,\s*'/g,',"').replace(/'\s*,/g,'",'),Rl={array:pl,boolean:fn,int:e=>Ai(e)==="bytes"?Da(e):Kt(e),number:xa,float:xa,bytes:Da,string:e=>$e(e)?e:ni(e),function:e=>ml(e),serverapi:Tl,object:e=>{try{return JSON.parse(_l(e))}catch{return null}}},yl=(e,t)=>Rl[t](e),mn=(e,t,i)=>{if(e===t)return e;let a=Ai(e);if(a!==i){let n=yl(e,i);if(a=Ai(n),n===null)throw`Trying to assign value with incorrect type to "${option}", allowed type: "${i}"`;e=n}return e},Sl=(e,t)=>{let i=e;return{enumerable:!0,get:()=>i,set:a=>{i=mn(a,e,t)}}},wl=e=>{let t={};return ee(e,i=>{let a=e[i];t[i]=Sl(a[0],a[1])}),Ve(t)},vl=e=>({items:[],listUpdateTimeout:null,itemUpdateTimeout:null,processingQueue:[],options:wl(e)}),ri=(e,t="-")=>e.split(/(?=[A-Z])/).map(i=>i.toLowerCase()).join(t),Al=(e,t)=>{let i={};return ee(t,a=>{i[a]={get:()=>e.getState().options[a],set:n=>{e.dispatch(`SET_${ri(a,"_").toUpperCase()}`,{value:n})}}}),i},Ll=e=>(t,i,a)=>{let n={};return ee(e,r=>{let o=ri(r,"_").toUpperCase();n[`SET_${o}`]=l=>{try{a.options[r]=l.value}catch{}t(`DID_SET_${o}`,{value:a.options[r]})}}),n},Ml=e=>t=>{let i={};return ee(e,a=>{i[`GET_${ri(a,"_").toUpperCase()}`]=n=>t.options[a]}),i},ye={API:1,DROP:2,BROWSE:3,PASTE:4,NONE:5},Ui=()=>Math.random().toString(36).substring(2,11),ki=(e,t)=>e.splice(t,1),Ol=(e,t)=>{t?e():document.hidden?Promise.resolve(1).then(e):setTimeout(e,0)},oi=()=>{let e=[],t=(a,n)=>{ki(e,e.findIndex(r=>r.event===a&&(r.cb===n||!n)))},i=(a,n,r)=>{e.filter(o=>o.event===a).map(o=>o.cb).forEach(o=>Ol(()=>o(...n),r))};return{fireSync:(a,...n)=>{i(a,n,!0)},fire:(a,...n)=>{i(a,n,!1)},on:(a,n)=>{e.push({event:a,cb:n})},onOnce:(a,n)=>{e.push({event:a,cb:(...r)=>{t(a,n),n(...r)}})},off:t}},gn=(e,t,i)=>{Object.getOwnPropertyNames(e).filter(a=>!i.includes(a)).forEach(a=>Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a)))},xl=["fire","process","revert","load","on","off","onOnce","retryLoad","extend","archive","archived","release","released","requestProcessing","freeze"],me=e=>{let t={};return gn(e,t,xl),t},Dl=e=>{e.forEach((t,i)=>{t.released&&ki(e,i)})},k={INIT:1,IDLE:2,PROCESSING_QUEUED:9,PROCESSING:3,PROCESSING_COMPLETE:5,PROCESSING_ERROR:6,PROCESSING_REVERT_ERROR:10,LOADING:7,LOAD_ERROR:8},le={INPUT:1,LIMBO:2,LOCAL:3},En=e=>/[^0-9]+/.exec(e),Tn=()=>En(1.1.toLocaleString())[0],Pl=()=>{let e=Tn(),t=1e3.toLocaleString(),i=1e3.toString();return t!==i?En(t)[0]:e==="."?",":"."},M={BOOLEAN:"boolean",INT:"int",NUMBER:"number",STRING:"string",ARRAY:"array",OBJECT:"object",FUNCTION:"function",ACTION:"action",SERVER_API:"serverapi",REGEX:"regex"},Hi=[],Ae=(e,t,i)=>new Promise((a,n)=>{let r=Hi.filter(l=>l.key===e).map(l=>l.cb);if(r.length===0){a(t);return}let o=r.shift();r.reduce((l,s)=>l.then(u=>s(u,i)),o(t,i)).then(l=>a(l)).catch(l=>n(l))}),Ze=(e,t,i)=>Hi.filter(a=>a.key===e).map(a=>a.cb(t,i)),Fl=(e,t)=>Hi.push({key:e,cb:t}),Cl=e=>Object.assign(rt,e),ei=()=>({...rt}),zl=e=>{ee(e,(t,i)=>{rt[t]&&(rt[t][0]=mn(i,rt[t][0],rt[t][1]))})},rt={id:[null,M.STRING],name:["filepond",M.STRING],disabled:[!1,M.BOOLEAN],className:[null,M.STRING],required:[!1,M.BOOLEAN],captureMethod:[null,M.STRING],allowSyncAcceptAttribute:[!0,M.BOOLEAN],allowDrop:[!0,M.BOOLEAN],allowBrowse:[!0,M.BOOLEAN],allowPaste:[!0,M.BOOLEAN],allowMultiple:[!1,M.BOOLEAN],allowReplace:[!0,M.BOOLEAN],allowRevert:[!0,M.BOOLEAN],allowRemove:[!0,M.BOOLEAN],allowProcess:[!0,M.BOOLEAN],allowReorder:[!1,M.BOOLEAN],allowDirectoriesOnly:[!1,M.BOOLEAN],storeAsFile:[!1,M.BOOLEAN],forceRevert:[!1,M.BOOLEAN],maxFiles:[null,M.INT],checkValidity:[!1,M.BOOLEAN],itemInsertLocationFreedom:[!0,M.BOOLEAN],itemInsertLocation:["before",M.STRING],itemInsertInterval:[75,M.INT],dropOnPage:[!1,M.BOOLEAN],dropOnElement:[!0,M.BOOLEAN],dropValidation:[!1,M.BOOLEAN],ignoredFiles:[[".ds_store","thumbs.db","desktop.ini"],M.ARRAY],instantUpload:[!0,M.BOOLEAN],maxParallelUploads:[2,M.INT],allowMinimumUploadDuration:[!0,M.BOOLEAN],chunkUploads:[!1,M.BOOLEAN],chunkForce:[!1,M.BOOLEAN],chunkSize:[5e6,M.INT],chunkRetryDelays:[[500,1e3,3e3],M.ARRAY],server:[null,M.SERVER_API],fileSizeBase:[1e3,M.INT],labelFileSizeBytes:["bytes",M.STRING],labelFileSizeKilobytes:["KB",M.STRING],labelFileSizeMegabytes:["MB",M.STRING],labelFileSizeGigabytes:["GB",M.STRING],labelDecimalSeparator:[Tn(),M.STRING],labelThousandsSeparator:[Pl(),M.STRING],labelIdle:['Drag & Drop your files or Browse',M.STRING],labelInvalidField:["Field contains invalid files",M.STRING],labelFileWaitingForSize:["Waiting for size",M.STRING],labelFileSizeNotAvailable:["Size not available",M.STRING],labelFileCountSingular:["file in list",M.STRING],labelFileCountPlural:["files in list",M.STRING],labelFileLoading:["Loading",M.STRING],labelFileAdded:["Added",M.STRING],labelFileLoadError:["Error during load",M.STRING],labelFileRemoved:["Removed",M.STRING],labelFileRemoveError:["Error during remove",M.STRING],labelFileProcessing:["Uploading",M.STRING],labelFileProcessingComplete:["Upload complete",M.STRING],labelFileProcessingAborted:["Upload cancelled",M.STRING],labelFileProcessingError:["Error during upload",M.STRING],labelFileProcessingRevertError:["Error during revert",M.STRING],labelTapToCancel:["tap to cancel",M.STRING],labelTapToRetry:["tap to retry",M.STRING],labelTapToUndo:["tap to undo",M.STRING],labelButtonRemoveItem:["Remove",M.STRING],labelButtonAbortItemLoad:["Abort",M.STRING],labelButtonRetryItemLoad:["Retry",M.STRING],labelButtonAbortItemProcessing:["Cancel",M.STRING],labelButtonUndoItemProcessing:["Undo",M.STRING],labelButtonRetryItemProcessing:["Retry",M.STRING],labelButtonProcessItem:["Upload",M.STRING],iconRemove:['',M.STRING],iconProcess:['',M.STRING],iconRetry:['',M.STRING],iconUndo:['',M.STRING],iconDone:['',M.STRING],oninit:[null,M.FUNCTION],onwarning:[null,M.FUNCTION],onerror:[null,M.FUNCTION],onactivatefile:[null,M.FUNCTION],oninitfile:[null,M.FUNCTION],onaddfilestart:[null,M.FUNCTION],onaddfileprogress:[null,M.FUNCTION],onaddfile:[null,M.FUNCTION],onprocessfilestart:[null,M.FUNCTION],onprocessfileprogress:[null,M.FUNCTION],onprocessfileabort:[null,M.FUNCTION],onprocessfilerevert:[null,M.FUNCTION],onprocessfile:[null,M.FUNCTION],onprocessfiles:[null,M.FUNCTION],onremovefile:[null,M.FUNCTION],onpreparefile:[null,M.FUNCTION],onupdatefiles:[null,M.FUNCTION],onreorderfiles:[null,M.FUNCTION],beforeDropFile:[null,M.FUNCTION],beforeAddFile:[null,M.FUNCTION],beforeRemoveFile:[null,M.FUNCTION],beforePrepareFile:[null,M.FUNCTION],stylePanelLayout:[null,M.STRING],stylePanelAspectRatio:[null,M.STRING],styleItemPanelAspectRatio:[null,M.STRING],styleButtonRemoveItemPosition:["left",M.STRING],styleButtonProcessItemPosition:["right",M.STRING],styleLoadIndicatorPosition:["right",M.STRING],styleProgressIndicatorPosition:["right",M.STRING],styleButtonRemoveItemAlign:[!1,M.BOOLEAN],files:[[],M.ARRAY],credits:[["https://pqina.nl/","Powered by PQINA"],M.ARRAY]},qe=(e,t)=>ze(t)?e[0]||null:ht(t)?e[t]||null:(typeof t=="object"&&(t=t.id),e.find(i=>i.id===t)||null),In=e=>{if(ze(e))return e;if(/:/.test(e)){let t=e.split(":");return t[1]/t[0]}return parseFloat(e)},Le=e=>e.filter(t=>!t.archived),bn={EMPTY:0,IDLE:1,ERROR:2,BUSY:3,READY:4},$t=null,Nl=()=>{if($t===null)try{let e=new DataTransfer;e.items.add(new File(["hello world"],"This_Works.txt"));let t=document.createElement("input");t.setAttribute("type","file"),t.files=e.files,$t=t.files.length===1}catch{$t=!1}return $t},Bl=[k.LOAD_ERROR,k.PROCESSING_ERROR,k.PROCESSING_REVERT_ERROR],Gl=[k.LOADING,k.PROCESSING,k.PROCESSING_QUEUED,k.INIT],Vl=[k.PROCESSING_COMPLETE],Ul=e=>Bl.includes(e.status),kl=e=>Gl.includes(e.status),Hl=e=>Vl.includes(e.status),Fa=e=>se(e.options.server)&&(se(e.options.server.process)||$e(e.options.server.process)),Wl=e=>({GET_STATUS:()=>{let t=Le(e.items),{EMPTY:i,ERROR:a,BUSY:n,IDLE:r,READY:o}=bn;return t.length===0?i:t.some(Ul)?a:t.some(kl)?n:t.some(Hl)?o:r},GET_ITEM:t=>qe(e.items,t),GET_ACTIVE_ITEM:t=>qe(Le(e.items),t),GET_ACTIVE_ITEMS:()=>Le(e.items),GET_ITEMS:()=>e.items,GET_ITEM_NAME:t=>{let i=qe(e.items,t);return i?i.filename:null},GET_ITEM_SIZE:t=>{let i=qe(e.items,t);return i?i.fileSize:null},GET_STYLES:()=>Object.keys(e.options).filter(t=>/^style/.test(t)).map(t=>({name:t,value:e.options[t]})),GET_PANEL_ASPECT_RATIO:()=>/circle/.test(e.options.stylePanelLayout)?1:In(e.options.stylePanelAspectRatio),GET_ITEM_PANEL_ASPECT_RATIO:()=>e.options.styleItemPanelAspectRatio,GET_ITEMS_BY_STATUS:t=>Le(e.items).filter(i=>i.status===t),GET_TOTAL_ITEMS:()=>Le(e.items).length,SHOULD_UPDATE_FILE_INPUT:()=>e.options.storeAsFile&&Nl()&&!Fa(e),IS_ASYNC:()=>Fa(e),GET_FILE_SIZE_LABELS:t=>({labelBytes:t("GET_LABEL_FILE_SIZE_BYTES")||void 0,labelKilobytes:t("GET_LABEL_FILE_SIZE_KILOBYTES")||void 0,labelMegabytes:t("GET_LABEL_FILE_SIZE_MEGABYTES")||void 0,labelGigabytes:t("GET_LABEL_FILE_SIZE_GIGABYTES")||void 0})}),Yl=e=>{let t=Le(e.items).length;if(!e.options.allowMultiple)return t===0;let i=e.options.maxFiles;return i===null||tMath.max(Math.min(i,e),t),$l=(e,t,i)=>e.splice(t,0,i),ql=(e,t,i)=>ze(t)?null:typeof i>"u"?(e.push(t),t):(i=_n(i,0,e.length),$l(e,i,t),t),Li=e=>/^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i.test(e),Ot=e=>`${e}`.split("/").pop().split("?").shift(),li=e=>e.split(".").pop(),Xl=e=>{if(typeof e!="string")return"";let t=e.split("/").pop();return/svg/.test(t)?"svg":/zip|compressed/.test(t)?"zip":/plain/.test(t)?"txt":/msword/.test(t)?"doc":/[a-z]+/.test(t)?t==="jpeg"?"jpg":t:""},wt=(e,t="")=>(t+e).slice(-t.length),Rn=(e=new Date)=>`${e.getFullYear()}-${wt(e.getMonth()+1,"00")}-${wt(e.getDate(),"00")}_${wt(e.getHours(),"00")}-${wt(e.getMinutes(),"00")}-${wt(e.getSeconds(),"00")}`,dt=(e,t,i=null,a=null)=>{let n=typeof i=="string"?e.slice(0,e.size,i):e.slice(0,e.size,e.type);return n.lastModifiedDate=new Date,e._relativePath&&(n._relativePath=e._relativePath),fe(t)||(t=Rn()),t&&a===null&&li(t)?n.name=t:(a=a||Xl(n.type),n.name=t+(a?"."+a:"")),n},jl=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,yn=(e,t)=>{let i=jl();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Ql=(e,t)=>{let i=new ArrayBuffer(e.length),a=new Uint8Array(i);for(let n=0;n(/^data:(.+);/.exec(e)||[])[1]||null,Zl=e=>e.split(",")[1].replace(/\s/g,""),Kl=e=>atob(Zl(e)),Jl=e=>{let t=Sn(e),i=Kl(e);return Ql(i,t)},es=(e,t,i)=>dt(Jl(e),t,null,i),ts=e=>{if(!/^content-disposition:/i.test(e))return null;let t=e.split(/filename=|filename\*=.+''/).splice(1).map(i=>i.trim().replace(/^["']|[;"']{0,2}$/g,"")).filter(i=>i.length);return t.length?decodeURI(t[t.length-1]):null},is=e=>{if(/content-length:/i.test(e)){let t=e.match(/[0-9]+/)[0];return t?parseInt(t,10):null}return null},as=e=>/x-content-transfer-id:/i.test(e)&&(e.split(":")[1]||"").trim()||null,Wi=e=>{let t={source:null,name:null,size:null},i=e.split(` +`);for(let a of i){let n=ts(a);if(n){t.name=n;continue}let r=is(a);if(r){t.size=r;continue}let o=as(a);if(o){t.source=o;continue}}return t},ns=e=>{let t={source:null,complete:!1,progress:0,size:null,timestamp:null,duration:0,request:null},i=()=>t.progress,a=()=>{t.request&&t.request.abort&&t.request.abort()},n=()=>{let l=t.source;o.fire("init",l),l instanceof File?o.fire("load",l):l instanceof Blob?o.fire("load",dt(l,l.name)):Li(l)?o.fire("load",es(l)):r(l)},r=l=>{if(!e){o.fire("error",{type:"error",body:"Can't load URL",code:400});return}t.timestamp=Date.now(),t.request=e(l,s=>{t.duration=Date.now()-t.timestamp,t.complete=!0,s instanceof Blob&&(s=dt(s,s.name||Ot(l))),o.fire("load",s instanceof Blob?s:s?s.body:null)},s=>{o.fire("error",typeof s=="string"?{type:"error",code:0,body:s}:s)},(s,u,c)=>{if(c&&(t.size=c),t.duration=Date.now()-t.timestamp,!s){t.progress=null;return}t.progress=u/c,o.fire("progress",t.progress)},()=>{o.fire("abort")},s=>{let u=Wi(typeof s=="string"?s:s.headers);o.fire("meta",{size:t.size||u.size,filename:u.name,source:u.source})})},o={...oi(),setSource:l=>t.source=l,getProgress:i,abort:a,load:n};return o},Ca=e=>/GET|HEAD/.test(e),Xe=(e,t,i)=>{let a={onheaders:()=>{},onprogress:()=>{},onload:()=>{},ontimeout:()=>{},onerror:()=>{},onabort:()=>{},abort:()=>{n=!0,o.abort()}},n=!1,r=!1;i={method:"POST",headers:{},withCredentials:!1,...i},t=encodeURI(t),Ca(i.method)&&e&&(t=`${t}${encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))}`);let o=new XMLHttpRequest,l=Ca(i.method)?o:o.upload;return l.onprogress=s=>{n||a.onprogress(s.lengthComputable,s.loaded,s.total)},o.onreadystatechange=()=>{o.readyState<2||o.readyState===4&&o.status===0||r||(r=!0,a.onheaders(o))},o.onload=()=>{o.status>=200&&o.status<300?a.onload(o):a.onerror(o)},o.onerror=()=>a.onerror(o),o.onabort=()=>{n=!0,a.onabort()},o.ontimeout=()=>a.ontimeout(o),o.open(i.method,t,!0),ht(i.timeout)&&(o.timeout=i.timeout),Object.keys(i.headers).forEach(s=>{let u=unescape(encodeURIComponent(i.headers[s]));o.setRequestHeader(s,u)}),i.responseType&&(o.responseType=i.responseType),i.withCredentials&&(o.withCredentials=!0),o.send(e),a},te=(e,t,i,a)=>({type:e,code:t,body:i,headers:a}),je=e=>t=>{e(te("error",0,"Timeout",t.getAllResponseHeaders()))},za=e=>/\?/.test(e),Lt=(...e)=>{let t="";return e.forEach(i=>{t+=za(t)&&za(i)?i.replace(/\?/,"&"):i}),t},_i=(e="",t)=>{if(typeof t=="function")return t;if(!t||!fe(t.url))return null;let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o,l,s,u)=>{let c=Xe(n,Lt(e,t.url),{...t,responseType:"blob"});return c.onload=d=>{let h=d.getAllResponseHeaders(),f=Wi(h).name||Ot(n);r(te("load",d.status,t.method==="HEAD"?null:dt(i(d.response),f),h))},c.onerror=d=>{o(te("error",d.status,a(d.response)||d.statusText,d.getAllResponseHeaders()))},c.onheaders=d=>{u(te("headers",d.status,null,d.getAllResponseHeaders()))},c.ontimeout=je(o),c.onprogress=l,c.onabort=s,c}},_e={QUEUED:0,COMPLETE:1,PROCESSING:2,ERROR:3,WAITING:4},rs=(e,t,i,a,n,r,o,l,s,u,c)=>{let d=[],{chunkTransferId:h,chunkServer:f,chunkSize:p,chunkRetryDelays:m}=c,g={serverId:h,aborted:!1},b=t.ondata||(A=>A),E=t.onload||((A,F)=>F==="HEAD"?A.getResponseHeader("Upload-Offset"):A.response),T=t.onerror||(A=>null),_=A=>{let F=new FormData;se(n)&&F.append(i,JSON.stringify(n));let w=typeof t.headers=="function"?t.headers(a,n):{...t.headers,"Upload-Length":a.size},L={...t,headers:w},C=Xe(b(F),Lt(e,t.url),L);C.onload=P=>A(E(P,L.method)),C.onerror=P=>o(te("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),C.ontimeout=je(o)},y=A=>{let F=Lt(e,f.url,g.serverId),L={headers:typeof t.headers=="function"?t.headers(g.serverId):{...t.headers},method:"HEAD"},C=Xe(null,F,L);C.onload=P=>A(E(P,L.method)),C.onerror=P=>o(te("error",P.status,T(P.response)||P.statusText,P.getAllResponseHeaders())),C.ontimeout=je(o)},I=Math.floor(a.size/p);for(let A=0;A<=I;A++){let F=A*p,w=a.slice(F,F+p,"application/offset+octet-stream");d[A]={index:A,size:w.size,offset:F,data:w,file:a,progress:0,retries:[...m],status:_e.QUEUED,error:null,request:null,timeout:null}}let v=()=>r(g.serverId),R=A=>A.status===_e.QUEUED||A.status===_e.ERROR,S=A=>{if(g.aborted)return;if(A=A||d.find(R),!A){d.every(V=>V.status===_e.COMPLETE)&&v();return}A.status=_e.PROCESSING,A.progress=null;let F=f.ondata||(V=>V),w=f.onerror||(V=>null),L=Lt(e,f.url,g.serverId),C=typeof f.headers=="function"?f.headers(A):{...f.headers,"Content-Type":"application/offset+octet-stream","Upload-Offset":A.offset,"Upload-Length":a.size,"Upload-Name":a.name},P=A.request=Xe(F(A.data),L,{...f,headers:C});P.onload=()=>{A.status=_e.COMPLETE,A.request=null,O()},P.onprogress=(V,G,q)=>{A.progress=V?G:null,x()},P.onerror=V=>{A.status=_e.ERROR,A.request=null,A.error=w(V.response)||V.statusText,D(A)||o(te("error",V.status,w(V.response)||V.statusText,V.getAllResponseHeaders()))},P.ontimeout=V=>{A.status=_e.ERROR,A.request=null,D(A)||je(o)(V)},P.onabort=()=>{A.status=_e.QUEUED,A.request=null,s()}},D=A=>A.retries.length===0?!1:(A.status=_e.WAITING,clearTimeout(A.timeout),A.timeout=setTimeout(()=>{S(A)},A.retries.shift()),!0),x=()=>{let A=d.reduce((w,L)=>w===null||L.progress===null?null:w+L.progress,0);if(A===null)return l(!1,0,0);let F=d.reduce((w,L)=>w+L.size,0);l(!0,A,F)},O=()=>{d.filter(F=>F.status===_e.PROCESSING).length>=1||S()},z=()=>{d.forEach(A=>{clearTimeout(A.timeout),A.request&&A.request.abort()})};return g.serverId?y(A=>{g.aborted||(d.filter(F=>F.offset{F.status=_e.COMPLETE,F.progress=F.size}),O())}):_(A=>{g.aborted||(u(A),g.serverId=A,O())}),{abort:()=>{g.aborted=!0,z()}}},os=(e,t,i,a)=>(n,r,o,l,s,u,c)=>{if(!n)return;let d=a.chunkUploads,h=d&&n.size>a.chunkSize,f=d&&(h||a.chunkForce);if(n instanceof Blob&&f)return rs(e,t,i,n,r,o,l,s,u,c,a);let p=t.ondata||(y=>y),m=t.onload||(y=>y),g=t.onerror||(y=>null),b=typeof t.headers=="function"?t.headers(n,r)||{}:{...t.headers},E={...t,headers:b};var T=new FormData;se(r)&&T.append(i,JSON.stringify(r)),(n instanceof Blob?[{name:null,file:n}]:n).forEach(y=>{T.append(i,y.file,y.name===null?y.file.name:`${y.name}${y.file.name}`)});let _=Xe(p(T),Lt(e,t.url),E);return _.onload=y=>{o(te("load",y.status,m(y.response),y.getAllResponseHeaders()))},_.onerror=y=>{l(te("error",y.status,g(y.response)||y.statusText,y.getAllResponseHeaders()))},_.ontimeout=je(l),_.onprogress=s,_.onabort=u,_},ls=(e="",t,i,a)=>typeof t=="function"?(...n)=>t(i,...n,a):!t||!fe(t.url)?null:os(e,t,i,a),vt=(e="",t)=>{if(typeof t=="function")return t;if(!t||!fe(t.url))return(n,r)=>r();let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,r,o)=>{let l=Xe(n,e+t.url,t);return l.onload=s=>{r(te("load",s.status,i(s.response),s.getAllResponseHeaders()))},l.onerror=s=>{o(te("error",s.status,a(s.response)||s.statusText,s.getAllResponseHeaders()))},l.ontimeout=je(o),l}},wn=(e=0,t=1)=>e+Math.random()*(t-e),ss=(e,t=1e3,i=0,a=25,n=250)=>{let r=null,o=Date.now(),l=()=>{let s=Date.now()-o,u=wn(a,n);s+u>t&&(u=s+u-t);let c=s/t;if(c>=1||document.hidden){e(1);return}e(c),r=setTimeout(l,u)};return t>0&&l(),{clear:()=>{clearTimeout(r)}}},cs=(e,t)=>{let i={complete:!1,perceivedProgress:0,perceivedPerformanceUpdater:null,progress:null,timestamp:null,perceivedDuration:0,duration:0,request:null,response:null},{allowMinimumUploadDuration:a}=t,n=(c,d)=>{let h=()=>{i.duration===0||i.progress===null||u.fire("progress",u.getProgress())},f=()=>{i.complete=!0,u.fire("load-perceived",i.response.body)};u.fire("start"),i.timestamp=Date.now(),i.perceivedPerformanceUpdater=ss(p=>{i.perceivedProgress=p,i.perceivedDuration=Date.now()-i.timestamp,h(),i.response&&i.perceivedProgress===1&&!i.complete&&f()},a?wn(750,1500):0),i.request=e(c,d,p=>{i.response=se(p)?p:{type:"load",code:200,body:`${p}`,headers:{}},i.duration=Date.now()-i.timestamp,i.progress=1,u.fire("load",i.response.body),(!a||a&&i.perceivedProgress===1)&&f()},p=>{i.perceivedPerformanceUpdater.clear(),u.fire("error",se(p)?p:{type:"error",code:0,body:`${p}`})},(p,m,g)=>{i.duration=Date.now()-i.timestamp,i.progress=p?m/g:null,h()},()=>{i.perceivedPerformanceUpdater.clear(),u.fire("abort",i.response?i.response.body:null)},p=>{u.fire("transfer",p)})},r=()=>{i.request&&(i.perceivedPerformanceUpdater.clear(),i.request.abort&&i.request.abort(),i.complete=!0)},o=()=>{r(),i.complete=!1,i.perceivedProgress=0,i.progress=0,i.timestamp=null,i.perceivedDuration=0,i.duration=0,i.request=null,i.response=null},l=a?()=>i.progress?Math.min(i.progress,i.perceivedProgress):null:()=>i.progress||null,s=a?()=>Math.min(i.duration,i.perceivedDuration):()=>i.duration,u={...oi(),process:n,abort:r,getProgress:l,getDuration:s,reset:o};return u},vn=e=>e.substring(0,e.lastIndexOf("."))||e,ds=e=>{let t=[e.name,e.size,e.type];return e instanceof Blob||Li(e)?t[0]=e.name||Rn():Li(e)?(t[1]=e.length,t[2]=Sn(e)):fe(e)&&(t[0]=Ot(e),t[1]=0,t[2]="application/octet-stream"),{name:t[0],size:t[1],type:t[2]}},ut=e=>!!(e instanceof File||e instanceof Blob&&e.name),An=e=>{if(!se(e))return e;let t=ai(e)?[]:{};for(let i in e){if(!e.hasOwnProperty(i))continue;let a=e[i];t[i]=a&&se(a)?An(a):a}return t},us=(e=null,t=null,i=null)=>{let a=Ui(),n={archived:!1,frozen:!1,released:!1,source:null,file:i,serverFileReference:t,transferId:null,processingAborted:!1,status:t?k.PROCESSING_COMPLETE:k.INIT,activeLoader:null,activeProcessor:null},r=null,o={},l=R=>n.status=R,s=(R,...S)=>{n.released||n.frozen||I.fire(R,...S)},u=()=>li(n.file.name),c=()=>n.file.type,d=()=>n.file.size,h=()=>n.file,f=(R,S,D)=>{if(n.source=R,I.fireSync("init"),n.file){I.fireSync("load-skip");return}n.file=ds(R),S.on("init",()=>{s("load-init")}),S.on("meta",x=>{n.file.size=x.size,n.file.filename=x.filename,x.source&&(e=le.LIMBO,n.serverFileReference=x.source,n.status=k.PROCESSING_COMPLETE),s("load-meta")}),S.on("progress",x=>{l(k.LOADING),s("load-progress",x)}),S.on("error",x=>{l(k.LOAD_ERROR),s("load-request-error",x)}),S.on("abort",()=>{l(k.INIT),s("load-abort")}),S.on("load",x=>{n.activeLoader=null;let O=A=>{n.file=ut(A)?A:n.file,e===le.LIMBO&&n.serverFileReference?l(k.PROCESSING_COMPLETE):l(k.IDLE),s("load")},z=A=>{n.file=x,s("load-meta"),l(k.LOAD_ERROR),s("load-file-error",A)};if(n.serverFileReference){O(x);return}D(x,O,z)}),S.setSource(R),n.activeLoader=S,S.load()},p=()=>{n.activeLoader&&n.activeLoader.load()},m=()=>{if(n.activeLoader){n.activeLoader.abort();return}l(k.INIT),s("load-abort")},g=(R,S)=>{if(n.processingAborted){n.processingAborted=!1;return}if(l(k.PROCESSING),r=null,!(n.file instanceof Blob)){I.on("load",()=>{g(R,S)});return}R.on("load",O=>{n.transferId=null,n.serverFileReference=O}),R.on("transfer",O=>{n.transferId=O}),R.on("load-perceived",O=>{n.activeProcessor=null,n.transferId=null,n.serverFileReference=O,l(k.PROCESSING_COMPLETE),s("process-complete",O)}),R.on("start",()=>{s("process-start")}),R.on("error",O=>{n.activeProcessor=null,l(k.PROCESSING_ERROR),s("process-error",O)}),R.on("abort",O=>{n.activeProcessor=null,n.serverFileReference=O,l(k.IDLE),s("process-abort"),r&&r()}),R.on("progress",O=>{s("process-progress",O)});let D=O=>{n.archived||R.process(O,{...o})},x=console.error;S(n.file,D,x),n.activeProcessor=R},b=()=>{n.processingAborted=!1,l(k.PROCESSING_QUEUED)},E=()=>new Promise(R=>{if(!n.activeProcessor){n.processingAborted=!0,l(k.IDLE),s("process-abort"),R();return}r=()=>{R()},n.activeProcessor.abort()}),T=(R,S)=>new Promise((D,x)=>{let O=n.serverFileReference!==null?n.serverFileReference:n.transferId;if(O===null){D();return}R(O,()=>{n.serverFileReference=null,n.transferId=null,D()},z=>{if(!S){D();return}l(k.PROCESSING_REVERT_ERROR),s("process-revert-error"),x(z)}),l(k.IDLE),s("process-revert")}),_=(R,S,D)=>{let x=R.split("."),O=x[0],z=x.pop(),A=o;x.forEach(F=>A=A[F]),JSON.stringify(A[z])!==JSON.stringify(S)&&(A[z]=S,s("metadata-update",{key:O,value:o[O],silent:D}))},I={id:{get:()=>a},origin:{get:()=>e,set:R=>e=R},serverId:{get:()=>n.serverFileReference},transferId:{get:()=>n.transferId},status:{get:()=>n.status},filename:{get:()=>n.file.name},filenameWithoutExtension:{get:()=>vn(n.file.name)},fileExtension:{get:u},fileType:{get:c},fileSize:{get:d},file:{get:h},relativePath:{get:()=>n.file._relativePath},source:{get:()=>n.source},getMetadata:R=>An(R?o[R]:o),setMetadata:(R,S,D)=>{if(se(R)){let x=R;return Object.keys(x).forEach(O=>{_(O,x[O],S)}),R}return _(R,S,D),S},extend:(R,S)=>v[R]=S,abortLoad:m,retryLoad:p,requestProcessing:b,abortProcessing:E,load:f,process:g,revert:T,...oi(),freeze:()=>n.frozen=!0,release:()=>n.released=!0,released:{get:()=>n.released},archive:()=>n.archived=!0,archived:{get:()=>n.archived}},v=Ve(I);return v},hs=(e,t)=>ze(t)?0:fe(t)?e.findIndex(i=>i.id===t):-1,Na=(e,t)=>{let i=hs(e,t);if(!(i<0))return e[i]||null},Ba=(e,t,i,a,n,r)=>{let o=Xe(null,e,{method:"GET",responseType:"blob"});return o.onload=l=>{let s=l.getAllResponseHeaders(),u=Wi(s).name||Ot(e);t(te("load",l.status,dt(l.response,u),s))},o.onerror=l=>{i(te("error",l.status,l.statusText,l.getAllResponseHeaders()))},o.onheaders=l=>{r(te("headers",l.status,null,l.getAllResponseHeaders()))},o.ontimeout=je(i),o.onprogress=a,o.onabort=n,o},Ga=e=>(e.indexOf("//")===0&&(e=location.protocol+e),e.toLowerCase().replace("blob:","").replace(/([a-z])?:\/\//,"$1").split("/")[0]),fs=e=>(e.indexOf(":")>-1||e.indexOf("//")>-1)&&Ga(location.href)!==Ga(e),qt=e=>(...t)=>$e(e)?e(...t):e,ps=e=>!ut(e.file),Ri=(e,t)=>{clearTimeout(t.listUpdateTimeout),t.listUpdateTimeout=setTimeout(()=>{e("DID_UPDATE_ITEMS",{items:Le(t.items)})},0)},Va=(e,...t)=>new Promise(i=>{if(!e)return i(!0);let a=e(...t);if(a==null)return i(!0);if(typeof a=="boolean")return i(a);typeof a.then=="function"&&a.then(i)}),yi=(e,t)=>{e.items.sort((i,a)=>t(me(i),me(a)))},Re=(e,t)=>({query:i,success:a=()=>{},failure:n=()=>{},...r}={})=>{let o=qe(e.items,i);if(!o){n({error:te("error",0,"Item not found"),file:null});return}t(o,a,n,r||{})},ms=(e,t,i)=>({ABORT_ALL:()=>{Le(i.items).forEach(a=>{a.freeze(),a.abortLoad(),a.abortProcessing()})},DID_SET_FILES:({value:a=[]})=>{let n=a.map(o=>({source:o.source?o.source:o,options:o.options})),r=Le(i.items);r.forEach(o=>{n.find(l=>l.source===o.source||l.source===o.file)||e("REMOVE_ITEM",{query:o,remove:!1})}),r=Le(i.items),n.forEach((o,l)=>{r.find(s=>s.source===o.source||s.file===o.source)||e("ADD_ITEM",{...o,interactionMethod:ye.NONE,index:l})})},DID_UPDATE_ITEM_METADATA:({id:a,action:n,change:r})=>{r.silent||(clearTimeout(i.itemUpdateTimeout),i.itemUpdateTimeout=setTimeout(()=>{let o=Na(i.items,a);if(!t("IS_ASYNC")){Ae("SHOULD_PREPARE_OUTPUT",!1,{item:o,query:t,action:n,change:r}).then(c=>{let d=t("GET_BEFORE_PREPARE_FILE");d&&(c=d(o,c)),c&&e("REQUEST_PREPARE_OUTPUT",{query:a,item:o,success:h=>{e("DID_PREPARE_OUTPUT",{id:a,file:h})}},!0)});return}o.origin===le.LOCAL&&e("DID_LOAD_ITEM",{id:o.id,error:null,serverFileReference:o.source});let l=()=>{setTimeout(()=>{e("REQUEST_ITEM_PROCESSING",{query:a})},32)},s=c=>{o.revert(vt(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(c?l:()=>{}).catch(()=>{})},u=c=>{o.abortProcessing().then(c?l:()=>{})};if(o.status===k.PROCESSING_COMPLETE)return s(i.options.instantUpload);if(o.status===k.PROCESSING)return u(i.options.instantUpload);i.options.instantUpload&&l()},0))},MOVE_ITEM:({query:a,index:n})=>{let r=qe(i.items,a);if(!r)return;let o=i.items.indexOf(r);n=_n(n,0,i.items.length-1),o!==n&&i.items.splice(n,0,i.items.splice(o,1)[0])},SORT:({compare:a})=>{yi(i,a),e("DID_SORT_ITEMS",{items:t("GET_ACTIVE_ITEMS")})},ADD_ITEMS:({items:a,index:n,interactionMethod:r,success:o=()=>{},failure:l=()=>{}})=>{let s=n;if(n===-1||typeof n>"u"){let f=t("GET_ITEM_INSERT_LOCATION"),p=t("GET_TOTAL_ITEMS");s=f==="before"?0:p}let u=t("GET_IGNORED_FILES"),c=f=>ut(f)?!u.includes(f.name.toLowerCase()):!ze(f),h=a.filter(c).map(f=>new Promise((p,m)=>{e("ADD_ITEM",{interactionMethod:r,source:f.source||f,success:p,failure:m,index:s++,options:f.options||{}})}));Promise.all(h).then(o).catch(l)},ADD_ITEM:({source:a,index:n=-1,interactionMethod:r,success:o=()=>{},failure:l=()=>{},options:s={}})=>{if(ze(a)){l({error:te("error",0,"No source"),file:null});return}if(ut(a)&&i.options.ignoredFiles.includes(a.name.toLowerCase()))return;if(!Yl(i)){if(i.options.allowMultiple||!i.options.allowMultiple&&!i.options.allowReplace){let E=te("warning",0,"Max files");e("DID_THROW_MAX_FILES",{source:a,error:E}),l({error:E,file:null});return}let b=Le(i.items)[0];if(b.status===k.PROCESSING_COMPLETE||b.status===k.PROCESSING_REVERT_ERROR){let E=t("GET_FORCE_REVERT");if(b.revert(vt(i.options.server.url,i.options.server.revert),E).then(()=>{E&&e("ADD_ITEM",{source:a,index:n,interactionMethod:r,success:o,failure:l,options:s})}).catch(()=>{}),E)return}e("REMOVE_ITEM",{query:b.id})}let u=s.type==="local"?le.LOCAL:s.type==="limbo"?le.LIMBO:le.INPUT,c=us(u,u===le.INPUT?null:a,s.file);Object.keys(s.metadata||{}).forEach(b=>{c.setMetadata(b,s.metadata[b])}),Ze("DID_CREATE_ITEM",c,{query:t,dispatch:e});let d=t("GET_ITEM_INSERT_LOCATION");i.options.itemInsertLocationFreedom||(n=d==="before"?-1:i.items.length),ql(i.items,c,n),$e(d)&&a&&yi(i,d);let h=c.id;c.on("init",()=>{e("DID_INIT_ITEM",{id:h})}),c.on("load-init",()=>{e("DID_START_ITEM_LOAD",{id:h})}),c.on("load-meta",()=>{e("DID_UPDATE_ITEM_META",{id:h})}),c.on("load-progress",b=>{e("DID_UPDATE_ITEM_LOAD_PROGRESS",{id:h,progress:b})}),c.on("load-request-error",b=>{let E=qt(i.options.labelFileLoadError)(b);if(b.code>=400&&b.code<500){e("DID_THROW_ITEM_INVALID",{id:h,error:b,status:{main:E,sub:`${b.code} (${b.body})`}}),l({error:b,file:me(c)});return}e("DID_THROW_ITEM_LOAD_ERROR",{id:h,error:b,status:{main:E,sub:i.options.labelTapToRetry}})}),c.on("load-file-error",b=>{e("DID_THROW_ITEM_INVALID",{id:h,error:b.status,status:b.status}),l({error:b.status,file:me(c)})}),c.on("load-abort",()=>{e("REMOVE_ITEM",{query:h})}),c.on("load-skip",()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}})}),c.on("load",()=>{let b=E=>{if(!E){e("REMOVE_ITEM",{query:h});return}c.on("metadata-update",T=>{e("DID_UPDATE_ITEM_METADATA",{id:h,change:T})}),Ae("SHOULD_PREPARE_OUTPUT",!1,{item:c,query:t}).then(T=>{let _=t("GET_BEFORE_PREPARE_FILE");_&&(T=_(c,T));let y=()=>{e("COMPLETE_LOAD_ITEM",{query:h,item:c,data:{source:a,success:o}}),Ri(e,i)};if(T){e("REQUEST_PREPARE_OUTPUT",{query:h,item:c,success:I=>{e("DID_PREPARE_OUTPUT",{id:h,file:I}),y()}},!0);return}y()})};Ae("DID_LOAD_ITEM",c,{query:t,dispatch:e}).then(()=>{Va(t("GET_BEFORE_ADD_FILE"),me(c)).then(b)}).catch(E=>{if(!E||!E.error||!E.status)return b(!1);e("DID_THROW_ITEM_INVALID",{id:h,error:E.error,status:E.status})})}),c.on("process-start",()=>{e("DID_START_ITEM_PROCESSING",{id:h})}),c.on("process-progress",b=>{e("DID_UPDATE_ITEM_PROCESS_PROGRESS",{id:h,progress:b})}),c.on("process-error",b=>{e("DID_THROW_ITEM_PROCESSING_ERROR",{id:h,error:b,status:{main:qt(i.options.labelFileProcessingError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-revert-error",b=>{e("DID_THROW_ITEM_PROCESSING_REVERT_ERROR",{id:h,error:b,status:{main:qt(i.options.labelFileProcessingRevertError)(b),sub:i.options.labelTapToRetry}})}),c.on("process-complete",b=>{e("DID_COMPLETE_ITEM_PROCESSING",{id:h,error:null,serverFileReference:b}),e("DID_DEFINE_VALUE",{id:h,value:b})}),c.on("process-abort",()=>{e("DID_ABORT_ITEM_PROCESSING",{id:h})}),c.on("process-revert",()=>{e("DID_REVERT_ITEM_PROCESSING",{id:h}),e("DID_DEFINE_VALUE",{id:h,value:null})}),e("DID_ADD_ITEM",{id:h,index:n,interactionMethod:r}),Ri(e,i);let{url:f,load:p,restore:m,fetch:g}=i.options.server||{};c.load(a,ns(u===le.INPUT?fe(a)&&fs(a)&&g?_i(f,g):Ba:u===le.LIMBO?_i(f,m):_i(f,p)),(b,E,T)=>{Ae("LOAD_FILE",b,{query:t}).then(E).catch(T)})},REQUEST_PREPARE_OUTPUT:({item:a,success:n,failure:r=()=>{}})=>{let o={error:te("error",0,"Item not found"),file:null};if(a.archived)return r(o);Ae("PREPARE_OUTPUT",a.file,{query:t,item:a}).then(l=>{Ae("COMPLETE_PREPARE_OUTPUT",l,{query:t,item:a}).then(s=>{if(a.archived)return r(o);n(s)})})},COMPLETE_LOAD_ITEM:({item:a,data:n})=>{let{success:r,source:o}=n,l=t("GET_ITEM_INSERT_LOCATION");if($e(l)&&o&&yi(i,l),e("DID_LOAD_ITEM",{id:a.id,error:null,serverFileReference:a.origin===le.INPUT?null:o}),r(me(a)),a.origin===le.LOCAL){e("DID_LOAD_LOCAL_ITEM",{id:a.id});return}if(a.origin===le.LIMBO){e("DID_COMPLETE_ITEM_PROCESSING",{id:a.id,error:null,serverFileReference:o}),e("DID_DEFINE_VALUE",{id:a.id,value:a.serverId||o});return}t("IS_ASYNC")&&i.options.instantUpload&&e("REQUEST_ITEM_PROCESSING",{query:a.id})},RETRY_ITEM_LOAD:Re(i,a=>{a.retryLoad()}),REQUEST_ITEM_PREPARE:Re(i,(a,n,r)=>{e("REQUEST_PREPARE_OUTPUT",{query:a.id,item:a,success:o=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:o}),n({file:a,output:o})},failure:r},!0)}),REQUEST_ITEM_PROCESSING:Re(i,(a,n,r)=>{if(!(a.status===k.IDLE||a.status===k.PROCESSING_ERROR)){let l=()=>e("REQUEST_ITEM_PROCESSING",{query:a,success:n,failure:r}),s=()=>document.hidden?l():setTimeout(l,32);a.status===k.PROCESSING_COMPLETE||a.status===k.PROCESSING_REVERT_ERROR?a.revert(vt(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(s).catch(()=>{}):a.status===k.PROCESSING&&a.abortProcessing().then(s);return}a.status!==k.PROCESSING_QUEUED&&(a.requestProcessing(),e("DID_REQUEST_ITEM_PROCESSING",{id:a.id}),e("PROCESS_ITEM",{query:a,success:n,failure:r},!0))}),PROCESS_ITEM:Re(i,(a,n,r)=>{let o=t("GET_MAX_PARALLEL_UPLOADS");if(t("GET_ITEMS_BY_STATUS",k.PROCESSING).length===o){i.processingQueue.push({id:a.id,success:n,failure:r});return}if(a.status===k.PROCESSING)return;let s=()=>{let c=i.processingQueue.shift();if(!c)return;let{id:d,success:h,failure:f}=c,p=qe(i.items,d);if(!p||p.archived){s();return}e("PROCESS_ITEM",{query:d,success:h,failure:f},!0)};a.onOnce("process-complete",()=>{n(me(a)),s();let c=i.options.server;if(i.options.instantUpload&&a.origin===le.LOCAL&&$e(c.remove)){let f=()=>{};a.origin=le.LIMBO,i.options.server.remove(a.source,f,f)}t("GET_ITEMS_BY_STATUS",k.PROCESSING_COMPLETE).length===i.items.length&&e("DID_COMPLETE_ITEM_PROCESSING_ALL")}),a.onOnce("process-error",c=>{r({error:c,file:me(a)}),s()});let u=i.options;a.process(cs(ls(u.server.url,u.server.process,u.name,{chunkTransferId:a.transferId,chunkServer:u.server.patch,chunkUploads:u.chunkUploads,chunkForce:u.chunkForce,chunkSize:u.chunkSize,chunkRetryDelays:u.chunkRetryDelays}),{allowMinimumUploadDuration:t("GET_ALLOW_MINIMUM_UPLOAD_DURATION")}),(c,d,h)=>{Ae("PREPARE_OUTPUT",c,{query:t,item:a}).then(f=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:f}),d(f)}).catch(h)})}),RETRY_ITEM_PROCESSING:Re(i,a=>{e("REQUEST_ITEM_PROCESSING",{query:a})}),REQUEST_REMOVE_ITEM:Re(i,a=>{Va(t("GET_BEFORE_REMOVE_FILE"),me(a)).then(n=>{n&&e("REMOVE_ITEM",{query:a})})}),RELEASE_ITEM:Re(i,a=>{a.release()}),REMOVE_ITEM:Re(i,(a,n,r,o)=>{let l=()=>{let u=a.id;Na(i.items,u).archive(),e("DID_REMOVE_ITEM",{error:null,id:u,item:a}),Ri(e,i),n(me(a))},s=i.options.server;a.origin===le.LOCAL&&s&&$e(s.remove)&&o.remove!==!1?(e("DID_START_ITEM_REMOVE",{id:a.id}),s.remove(a.source,()=>l(),u=>{e("DID_THROW_ITEM_REMOVE_ERROR",{id:a.id,error:te("error",0,u,null),status:{main:qt(i.options.labelFileRemoveError)(u),sub:i.options.labelTapToRetry}})})):((o.revert&&a.origin!==le.LOCAL&&a.serverId!==null||i.options.chunkUploads&&a.file.size>i.options.chunkSize||i.options.chunkUploads&&i.options.chunkForce)&&a.revert(vt(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")),l())}),ABORT_ITEM_LOAD:Re(i,a=>{a.abortLoad()}),ABORT_ITEM_PROCESSING:Re(i,a=>{if(a.serverId){e("REVERT_ITEM_PROCESSING",{id:a.id});return}a.abortProcessing().then(()=>{i.options.instantUpload&&e("REMOVE_ITEM",{query:a.id})})}),REQUEST_REVERT_ITEM_PROCESSING:Re(i,a=>{if(!i.options.instantUpload){e("REVERT_ITEM_PROCESSING",{query:a});return}let n=l=>{l&&e("REVERT_ITEM_PROCESSING",{query:a})},r=t("GET_BEFORE_REMOVE_FILE");if(!r)return n(!0);let o=r(me(a));if(o==null)return n(!0);if(typeof o=="boolean")return n(o);typeof o.then=="function"&&o.then(n)}),REVERT_ITEM_PROCESSING:Re(i,a=>{a.revert(vt(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(()=>{(i.options.instantUpload||ps(a))&&e("REMOVE_ITEM",{query:a.id})}).catch(()=>{})}),SET_OPTIONS:({options:a})=>{let n=Object.keys(a),r=gs.filter(l=>n.includes(l));[...r,...Object.keys(a).filter(l=>!r.includes(l))].forEach(l=>{e(`SET_${ri(l,"_").toUpperCase()}`,{value:a[l]})})}}),gs=["server"],Yi=e=>e,Ne=e=>document.createElement(e),ie=(e,t)=>{let i=e.childNodes[0];i?t!==i.nodeValue&&(i.nodeValue=t):(i=document.createTextNode(t),e.appendChild(i))},Ua=(e,t,i,a)=>{let n=(a%360-90)*Math.PI/180;return{x:e+i*Math.cos(n),y:t+i*Math.sin(n)}},Es=(e,t,i,a,n,r)=>{let o=Ua(e,t,i,n),l=Ua(e,t,i,a);return["M",o.x,o.y,"A",i,i,0,r,0,l.x,l.y].join(" ")},Ts=(e,t,i,a,n)=>{let r=1;return n>a&&n-a<=.5&&(r=0),a>n&&a-n>=.5&&(r=0),Es(e,t,i,Math.min(.9999,a)*360,Math.min(.9999,n)*360,r)},Is=({root:e,props:t})=>{t.spin=!1,t.progress=0,t.opacity=0;let i=Jt("svg");e.ref.path=Jt("path",{"stroke-width":2,"stroke-linecap":"round"}),i.appendChild(e.ref.path),e.ref.svg=i,e.appendChild(i)},bs=({root:e,props:t})=>{if(t.opacity===0)return;t.align&&(e.element.dataset.align=t.align);let i=parseInt(ae(e.ref.path,"stroke-width"),10),a=e.rect.element.width*.5,n=0,r=0;t.spin?(n=0,r=.5):(n=0,r=t.progress);let o=Ts(a,a,a-i,n,r);ae(e.ref.path,"d",o),ae(e.ref.path,"stroke-opacity",t.spin||t.progress>0?1:0)},ka=ne({tag:"div",name:"progress-indicator",ignoreRectUpdate:!0,ignoreRect:!0,create:Is,write:bs,mixins:{apis:["progress","spin","align"],styles:["opacity"],animations:{opacity:{type:"tween",duration:500},progress:{type:"spring",stiffness:.95,damping:.65,mass:10}}}}),_s=({root:e,props:t})=>{e.element.innerHTML=(t.icon||"")+`${t.label}`,t.isDisabled=!1},Rs=({root:e,props:t})=>{let{isDisabled:i}=t,a=e.query("GET_DISABLED")||t.opacity===0;a&&!i?(t.isDisabled=!0,ae(e.element,"disabled","disabled")):!a&&i&&(t.isDisabled=!1,e.element.removeAttribute("disabled"))},Ln=ne({tag:"button",attributes:{type:"button"},ignoreRect:!0,ignoreRectUpdate:!0,name:"file-action-button",mixins:{apis:["label"],styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}},listeners:!0},create:_s,write:Rs}),Mn=(e,t=".",i=1e3,a={})=>{let{labelBytes:n="bytes",labelKilobytes:r="KB",labelMegabytes:o="MB",labelGigabytes:l="GB"}=a;e=Math.round(Math.abs(e));let s=i,u=i*i,c=i*i*i;return ee.toFixed(t).split(".").filter(a=>a!=="0").join(i),ys=({root:e,props:t})=>{let i=Ne("span");i.className="filepond--file-info-main",ae(i,"aria-hidden","true"),e.appendChild(i),e.ref.fileName=i;let a=Ne("span");a.className="filepond--file-info-sub",e.appendChild(a),e.ref.fileSize=a,ie(a,e.query("GET_LABEL_FILE_WAITING_FOR_SIZE")),ie(i,Yi(e.query("GET_ITEM_NAME",t.id)))},Mi=({root:e,props:t})=>{ie(e.ref.fileSize,Mn(e.query("GET_ITEM_SIZE",t.id),".",e.query("GET_FILE_SIZE_BASE"),e.query("GET_FILE_SIZE_LABELS",e.query))),ie(e.ref.fileName,Yi(e.query("GET_ITEM_NAME",t.id)))},Wa=({root:e,props:t})=>{if(ht(e.query("GET_ITEM_SIZE",t.id))){Mi({root:e,props:t});return}ie(e.ref.fileSize,e.query("GET_LABEL_FILE_SIZE_NOT_AVAILABLE"))},Ss=ne({name:"file-info",ignoreRect:!0,ignoreRectUpdate:!0,write:pe({DID_LOAD_ITEM:Mi,DID_UPDATE_ITEM_META:Mi,DID_THROW_ITEM_LOAD_ERROR:Wa,DID_THROW_ITEM_INVALID:Wa}),didCreateView:e=>{Ze("CREATE_VIEW",{...e,view:e})},create:ys,mixins:{styles:["translateX","translateY"],animations:{translateX:"spring",translateY:"spring"}}}),On=e=>Math.round(e*100),ws=({root:e})=>{let t=Ne("span");t.className="filepond--file-status-main",e.appendChild(t),e.ref.main=t;let i=Ne("span");i.className="filepond--file-status-sub",e.appendChild(i),e.ref.sub=i,xn({root:e,action:{progress:null}})},xn=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_LOADING"):`${e.query("GET_LABEL_FILE_LOADING")} ${On(t.progress)}%`;ie(e.ref.main,i),ie(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},vs=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_PROCESSING"):`${e.query("GET_LABEL_FILE_PROCESSING")} ${On(t.progress)}%`;ie(e.ref.main,i),ie(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},As=({root:e})=>{ie(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING")),ie(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Ls=({root:e})=>{ie(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_ABORTED")),ie(e.ref.sub,e.query("GET_LABEL_TAP_TO_RETRY"))},Ms=({root:e})=>{ie(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_COMPLETE")),ie(e.ref.sub,e.query("GET_LABEL_TAP_TO_UNDO"))},Ya=({root:e})=>{ie(e.ref.main,""),ie(e.ref.sub,"")},At=({root:e,action:t})=>{ie(e.ref.main,t.status.main),ie(e.ref.sub,t.status.sub)},Os=ne({name:"file-status",ignoreRect:!0,ignoreRectUpdate:!0,write:pe({DID_LOAD_ITEM:Ya,DID_REVERT_ITEM_PROCESSING:Ya,DID_REQUEST_ITEM_PROCESSING:As,DID_ABORT_ITEM_PROCESSING:Ls,DID_COMPLETE_ITEM_PROCESSING:Ms,DID_UPDATE_ITEM_PROCESS_PROGRESS:vs,DID_UPDATE_ITEM_LOAD_PROGRESS:xn,DID_THROW_ITEM_LOAD_ERROR:At,DID_THROW_ITEM_INVALID:At,DID_THROW_ITEM_PROCESSING_ERROR:At,DID_THROW_ITEM_PROCESSING_REVERT_ERROR:At,DID_THROW_ITEM_REMOVE_ERROR:At}),didCreateView:e=>{Ze("CREATE_VIEW",{...e,view:e})},create:ws,mixins:{styles:["translateX","translateY","opacity"],animations:{opacity:{type:"tween",duration:250},translateX:"spring",translateY:"spring"}}}),Oi={AbortItemLoad:{label:"GET_LABEL_BUTTON_ABORT_ITEM_LOAD",action:"ABORT_ITEM_LOAD",className:"filepond--action-abort-item-load",align:"LOAD_INDICATOR_POSITION"},RetryItemLoad:{label:"GET_LABEL_BUTTON_RETRY_ITEM_LOAD",action:"RETRY_ITEM_LOAD",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-load",align:"BUTTON_PROCESS_ITEM_POSITION"},RemoveItem:{label:"GET_LABEL_BUTTON_REMOVE_ITEM",action:"REQUEST_REMOVE_ITEM",icon:"GET_ICON_REMOVE",className:"filepond--action-remove-item",align:"BUTTON_REMOVE_ITEM_POSITION"},ProcessItem:{label:"GET_LABEL_BUTTON_PROCESS_ITEM",action:"REQUEST_ITEM_PROCESSING",icon:"GET_ICON_PROCESS",className:"filepond--action-process-item",align:"BUTTON_PROCESS_ITEM_POSITION"},AbortItemProcessing:{label:"GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING",action:"ABORT_ITEM_PROCESSING",className:"filepond--action-abort-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RetryItemProcessing:{label:"GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING",action:"RETRY_ITEM_PROCESSING",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RevertItemProcessing:{label:"GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING",action:"REQUEST_REVERT_ITEM_PROCESSING",icon:"GET_ICON_UNDO",className:"filepond--action-revert-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"}},xi=[];ee(Oi,e=>{xi.push(e)});var Ie=e=>{if(Di(e)==="right")return 0;let t=e.ref.buttonRemoveItem.rect.element;return t.hidden?null:t.width+t.left},xs=e=>e.ref.buttonAbortItemLoad.rect.element.width,Xt=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.height/4),Ds=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.left/2),Ps=e=>e.query("GET_STYLE_LOAD_INDICATOR_POSITION"),Fs=e=>e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION"),Di=e=>e.query("GET_STYLE_BUTTON_REMOVE_ITEM_POSITION"),Cs={buttonAbortItemLoad:{opacity:0},buttonRetryItemLoad:{opacity:0},buttonRemoveItem:{opacity:0},buttonProcessItem:{opacity:0},buttonAbortItemProcessing:{opacity:0},buttonRetryItemProcessing:{opacity:0},buttonRevertItemProcessing:{opacity:0},loadProgressIndicator:{opacity:0,align:Ps},processProgressIndicator:{opacity:0,align:Fs},processingCompleteIndicator:{opacity:0,scaleX:.75,scaleY:.75},info:{translateX:0,translateY:0,opacity:0},status:{translateX:0,translateY:0,opacity:0}},$a={buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ie},status:{translateX:Ie}},Si={buttonAbortItemProcessing:{opacity:1},processProgressIndicator:{opacity:1},status:{opacity:1}},ot={DID_THROW_ITEM_INVALID:{buttonRemoveItem:{opacity:1},info:{translateX:Ie},status:{translateX:Ie,opacity:1}},DID_START_ITEM_LOAD:{buttonAbortItemLoad:{opacity:1},loadProgressIndicator:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_LOAD_ERROR:{buttonRetryItemLoad:{opacity:1},buttonRemoveItem:{opacity:1},info:{translateX:Ie},status:{opacity:1}},DID_START_ITEM_REMOVE:{processProgressIndicator:{opacity:1,align:Di},info:{translateX:Ie},status:{opacity:0}},DID_THROW_ITEM_REMOVE_ERROR:{processProgressIndicator:{opacity:0,align:Di},buttonRemoveItem:{opacity:1},info:{translateX:Ie},status:{opacity:1,translateX:Ie}},DID_LOAD_ITEM:$a,DID_LOAD_LOCAL_ITEM:{buttonRemoveItem:{opacity:1},info:{translateX:Ie},status:{translateX:Ie}},DID_START_ITEM_PROCESSING:Si,DID_REQUEST_ITEM_PROCESSING:Si,DID_UPDATE_ITEM_PROCESS_PROGRESS:Si,DID_COMPLETE_ITEM_PROCESSING:{buttonRevertItemProcessing:{opacity:1},info:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_PROCESSING_ERROR:{buttonRemoveItem:{opacity:1},buttonRetryItemProcessing:{opacity:1},status:{opacity:1},info:{translateX:Ie}},DID_THROW_ITEM_PROCESSING_REVERT_ERROR:{buttonRevertItemProcessing:{opacity:1},status:{opacity:1},info:{opacity:1}},DID_ABORT_ITEM_PROCESSING:{buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:Ie},status:{opacity:1}},DID_REVERT_ITEM_PROCESSING:$a},zs=ne({create:({root:e})=>{e.element.innerHTML=e.query("GET_ICON_DONE")},name:"processing-complete-indicator",ignoreRect:!0,mixins:{styles:["scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",opacity:{type:"tween",duration:250}}}}),Ns=({root:e,props:t})=>{let i=Object.keys(Oi).reduce((p,m)=>(p[m]={...Oi[m]},p),{}),{id:a}=t,n=e.query("GET_ALLOW_REVERT"),r=e.query("GET_ALLOW_REMOVE"),o=e.query("GET_ALLOW_PROCESS"),l=e.query("GET_INSTANT_UPLOAD"),s=e.query("IS_ASYNC"),u=e.query("GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN"),c;s?o&&!n?c=p=>!/RevertItemProcessing/.test(p):!o&&n?c=p=>!/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(p):!o&&!n&&(c=p=>!/Process/.test(p)):c=p=>!/Process/.test(p);let d=c?xi.filter(c):xi.concat();if(l&&n&&(i.RevertItemProcessing.label="GET_LABEL_BUTTON_REMOVE_ITEM",i.RevertItemProcessing.icon="GET_ICON_REMOVE"),s&&!n){let p=ot.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Ds,p.info.translateY=Xt,p.status.translateY=Xt,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}if(s&&!o&&(["DID_START_ITEM_PROCESSING","DID_REQUEST_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_THROW_ITEM_PROCESSING_ERROR"].forEach(p=>{ot[p].status.translateY=Xt}),ot.DID_THROW_ITEM_PROCESSING_ERROR.status.translateX=xs),u&&n){i.RevertItemProcessing.align="BUTTON_REMOVE_ITEM_POSITION";let p=ot.DID_COMPLETE_ITEM_PROCESSING;p.info.translateX=Ie,p.status.translateY=Xt,p.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}r||(i.RemoveItem.disabled=!0),ee(i,(p,m)=>{let g=e.createChildView(Ln,{label:e.query(m.label),icon:e.query(m.icon),opacity:0});d.includes(p)&&e.appendChildView(g),m.disabled&&(g.element.setAttribute("disabled","disabled"),g.element.setAttribute("hidden","hidden")),g.element.dataset.align=e.query(`GET_STYLE_${m.align}`),g.element.classList.add(m.className),g.on("click",b=>{b.stopPropagation(),!m.disabled&&e.dispatch(m.action,{query:a})}),e.ref[`button${p}`]=g}),e.ref.processingCompleteIndicator=e.appendChildView(e.createChildView(zs)),e.ref.processingCompleteIndicator.element.dataset.align=e.query("GET_STYLE_BUTTON_PROCESS_ITEM_POSITION"),e.ref.info=e.appendChildView(e.createChildView(Ss,{id:a})),e.ref.status=e.appendChildView(e.createChildView(Os,{id:a}));let h=e.appendChildView(e.createChildView(ka,{opacity:0,align:e.query("GET_STYLE_LOAD_INDICATOR_POSITION")}));h.element.classList.add("filepond--load-indicator"),e.ref.loadProgressIndicator=h;let f=e.appendChildView(e.createChildView(ka,{opacity:0,align:e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION")}));f.element.classList.add("filepond--process-indicator"),e.ref.processProgressIndicator=f,e.ref.activeStyles=[]},Bs=({root:e,actions:t,props:i})=>{Gs({root:e,actions:t,props:i});let a=t.concat().filter(n=>/^DID_/.test(n.type)).reverse().find(n=>ot[n.type]);if(a){e.ref.activeStyles=[];let n=ot[a.type];ee(Cs,(r,o)=>{let l=e.ref[r];ee(o,(s,u)=>{let c=n[r]&&typeof n[r][s]<"u"?n[r][s]:u;e.ref.activeStyles.push({control:l,key:s,value:c})})})}e.ref.activeStyles.forEach(({control:n,key:r,value:o})=>{n[r]=typeof o=="function"?o(e):o})},Gs=pe({DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING:({root:e,action:t})=>{e.ref.buttonAbortItemProcessing.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD:({root:e,action:t})=>{e.ref.buttonAbortItemLoad.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL:({root:e,action:t})=>{e.ref.buttonAbortItemRemoval.label=t.value},DID_REQUEST_ITEM_PROCESSING:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_START_ITEM_LOAD:({root:e})=>{e.ref.loadProgressIndicator.spin=!0,e.ref.loadProgressIndicator.progress=0},DID_START_ITEM_REMOVE:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_UPDATE_ITEM_LOAD_PROGRESS:({root:e,action:t})=>{e.ref.loadProgressIndicator.spin=!1,e.ref.loadProgressIndicator.progress=t.progress},DID_UPDATE_ITEM_PROCESS_PROGRESS:({root:e,action:t})=>{e.ref.processProgressIndicator.spin=!1,e.ref.processProgressIndicator.progress=t.progress}}),Vs=ne({create:Ns,write:Bs,didCreateView:e=>{Ze("CREATE_VIEW",{...e,view:e})},name:"file"}),Us=({root:e,props:t})=>{e.ref.fileName=Ne("legend"),e.appendChild(e.ref.fileName),e.ref.file=e.appendChildView(e.createChildView(Vs,{id:t.id})),e.ref.data=!1},ks=({root:e,props:t})=>{ie(e.ref.fileName,Yi(e.query("GET_ITEM_NAME",t.id)))},Hs=ne({create:Us,ignoreRect:!0,write:pe({DID_LOAD_ITEM:ks}),didCreateView:e=>{Ze("CREATE_VIEW",{...e,view:e})},tag:"fieldset",name:"file-wrapper"}),qa={type:"spring",damping:.6,mass:7},Ws=({root:e,props:t})=>{[{name:"top"},{name:"center",props:{translateY:null,scaleY:null},mixins:{animations:{scaleY:qa},styles:["translateY","scaleY"]}},{name:"bottom",props:{translateY:null},mixins:{animations:{translateY:qa},styles:["translateY"]}}].forEach(i=>{Ys(e,i,t.name)}),e.element.classList.add(`filepond--${t.name}`),e.ref.scalable=null},Ys=(e,t,i)=>{let a=ne({name:`panel-${t.name} filepond--${i}`,mixins:t.mixins,ignoreRectUpdate:!0}),n=e.createChildView(a,t.props);e.ref[t.name]=e.appendChildView(n)},$s=({root:e,props:t})=>{if((e.ref.scalable===null||t.scalable!==e.ref.scalable)&&(e.ref.scalable=hn(t.scalable)?t.scalable:!0,e.element.dataset.scalable=e.ref.scalable),!t.height)return;let i=e.ref.top.rect.element,a=e.ref.bottom.rect.element,n=Math.max(i.height+a.height,t.height);e.ref.center.translateY=i.height,e.ref.center.scaleY=(n-i.height-a.height)/100,e.ref.bottom.translateY=n-a.height},Dn=ne({name:"panel",read:({root:e,props:t})=>t.heightCurrent=e.ref.bottom.translateY,write:$s,create:Ws,ignoreRect:!0,mixins:{apis:["height","heightCurrent","scalable"]}}),qs=e=>{let t=e.map(a=>a.id),i;return{setIndex:a=>{i=a},getIndex:()=>i,getItemIndex:a=>t.indexOf(a.id)}},Xa={type:"spring",stiffness:.75,damping:.45,mass:10},ja="spring",Qa={DID_START_ITEM_LOAD:"busy",DID_UPDATE_ITEM_LOAD_PROGRESS:"loading",DID_THROW_ITEM_INVALID:"load-invalid",DID_THROW_ITEM_LOAD_ERROR:"load-error",DID_LOAD_ITEM:"idle",DID_THROW_ITEM_REMOVE_ERROR:"remove-error",DID_START_ITEM_REMOVE:"busy",DID_START_ITEM_PROCESSING:"busy processing",DID_REQUEST_ITEM_PROCESSING:"busy processing",DID_UPDATE_ITEM_PROCESS_PROGRESS:"processing",DID_COMPLETE_ITEM_PROCESSING:"processing-complete",DID_THROW_ITEM_PROCESSING_ERROR:"processing-error",DID_THROW_ITEM_PROCESSING_REVERT_ERROR:"processing-revert-error",DID_ABORT_ITEM_PROCESSING:"cancelled",DID_REVERT_ITEM_PROCESSING:"idle"},Xs=({root:e,props:t})=>{if(e.ref.handleClick=a=>e.dispatch("DID_ACTIVATE_ITEM",{id:t.id}),e.element.id=`filepond--item-${t.id}`,e.element.addEventListener("click",e.ref.handleClick),e.ref.container=e.appendChildView(e.createChildView(Hs,{id:t.id})),e.ref.panel=e.appendChildView(e.createChildView(Dn,{name:"item-panel"})),e.ref.panel.height=null,t.markedForRemoval=!1,!e.query("GET_ALLOW_REORDER"))return;e.element.dataset.dragState="idle";let i=a=>{if(!a.isPrimary)return;let n=!1,r={x:a.pageX,y:a.pageY};t.dragOrigin={x:e.translateX,y:e.translateY},t.dragCenter={x:a.offsetX,y:a.offsetY};let o=qs(e.query("GET_ACTIVE_ITEMS"));e.dispatch("DID_GRAB_ITEM",{id:t.id,dragState:o});let l=u=>{if(!u.isPrimary)return;u.stopPropagation(),u.preventDefault(),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},t.dragOffset.x*t.dragOffset.x+t.dragOffset.y*t.dragOffset.y>16&&!n&&(n=!0,e.element.removeEventListener("click",e.ref.handleClick)),e.dispatch("DID_DRAG_ITEM",{id:t.id,dragState:o})},s=u=>{u.isPrimary&&(document.removeEventListener("pointermove",l),document.removeEventListener("pointerup",s),t.dragOffset={x:u.pageX-r.x,y:u.pageY-r.y},e.dispatch("DID_DROP_ITEM",{id:t.id,dragState:o}),n&&setTimeout(()=>e.element.addEventListener("click",e.ref.handleClick),0))};document.addEventListener("pointermove",l),document.addEventListener("pointerup",s)};e.element.addEventListener("pointerdown",i)},js=pe({DID_UPDATE_PANEL_HEIGHT:({root:e,action:t})=>{e.height=t.height}}),Qs=pe({DID_GRAB_ITEM:({root:e,props:t})=>{t.dragOrigin={x:e.translateX,y:e.translateY}},DID_DRAG_ITEM:({root:e})=>{e.element.dataset.dragState="drag"},DID_DROP_ITEM:({root:e,props:t})=>{t.dragOffset=null,t.dragOrigin=null,e.element.dataset.dragState="drop"}},({root:e,actions:t,props:i,shouldOptimize:a})=>{e.element.dataset.dragState==="drop"&&e.scaleX<=1&&(e.element.dataset.dragState="idle");let n=t.concat().filter(o=>/^DID_/.test(o.type)).reverse().find(o=>Qa[o.type]);n&&n.type!==i.currentState&&(i.currentState=n.type,e.element.dataset.filepondItemState=Qa[i.currentState]||"");let r=e.query("GET_ITEM_PANEL_ASPECT_RATIO")||e.query("GET_PANEL_ASPECT_RATIO");r?a||(e.height=e.rect.element.width*r):(js({root:e,actions:t,props:i}),!e.height&&e.ref.container.rect.element.height>0&&(e.height=e.ref.container.rect.element.height)),a&&(e.ref.panel.height=null),e.ref.panel.height=e.height}),Zs=ne({create:Xs,write:Qs,destroy:({root:e,props:t})=>{e.element.removeEventListener("click",e.ref.handleClick),e.dispatch("RELEASE_ITEM",{query:t.id})},tag:"li",name:"item",mixins:{apis:["id","interactionMethod","markedForRemoval","spawnDate","dragCenter","dragOrigin","dragOffset"],styles:["translateX","translateY","scaleX","scaleY","opacity","height"],animations:{scaleX:ja,scaleY:ja,translateX:Xa,translateY:Xa,opacity:{type:"tween",duration:150}}}}),$i=(e,t)=>Math.max(1,Math.floor((e+1)/t)),qi=(e,t,i)=>{if(!i)return;let a=e.rect.element.width,n=t.length,r=null;if(n===0||i.topE){if(i.left{ae(e.element,"role","list"),e.ref.lastItemSpanwDate=Date.now()},Js=({root:e,action:t})=>{let{id:i,index:a,interactionMethod:n}=t;e.ref.addIndex=a;let r=Date.now(),o=r,l=1;if(n!==ye.NONE){l=0;let s=e.query("GET_ITEM_INSERT_INTERVAL"),u=r-e.ref.lastItemSpanwDate;o=u{e.dragOffset?(e.translateX=null,e.translateY=null,e.translateX=e.dragOrigin.x+e.dragOffset.x,e.translateY=e.dragOrigin.y+e.dragOffset.y,e.scaleX=1.025,e.scaleY=1.025):(e.translateX=t,e.translateY=i,Date.now()>e.spawnDate&&(e.opacity===0&&ec(e,t,i,a,n),e.scaleX=1,e.scaleY=1,e.opacity=1))},ec=(e,t,i,a,n)=>{e.interactionMethod===ye.NONE?(e.translateX=null,e.translateX=t,e.translateY=null,e.translateY=i):e.interactionMethod===ye.DROP?(e.translateX=null,e.translateX=t-a*20,e.translateY=null,e.translateY=i-n*10,e.scaleX=.8,e.scaleY=.8):e.interactionMethod===ye.BROWSE?(e.translateY=null,e.translateY=i-30):e.interactionMethod===ye.API&&(e.translateX=null,e.translateX=t-30,e.translateY=null)},tc=({root:e,action:t})=>{let{id:i}=t,a=e.childViews.find(n=>n.id===i);a&&(a.scaleX=.9,a.scaleY=.9,a.opacity=0,a.markedForRemoval=!0)},wi=e=>e.rect.element.height+e.rect.element.marginBottom*.5+e.rect.element.marginTop*.5,ic=e=>e.rect.element.width+e.rect.element.marginLeft*.5+e.rect.element.marginRight*.5,ac=({root:e,action:t})=>{let{id:i,dragState:a}=t,n=e.query("GET_ITEM",{id:i}),r=e.childViews.find(g=>g.id===i),o=e.childViews.length,l=a.getItemIndex(n);if(!r)return;let s={x:r.dragOrigin.x+r.dragOffset.x+r.dragCenter.x,y:r.dragOrigin.y+r.dragOffset.y+r.dragCenter.y},u=wi(r),c=ic(r),d=Math.floor(e.rect.outer.width/c);d>o&&(d=o);let h=Math.floor(o/d+1);jt.setHeight=u*h,jt.setWidth=c*d;var f={y:Math.floor(s.y/u),x:Math.floor(s.x/c),getGridIndex:function(){return s.y>jt.getHeight||s.y<0||s.x>jt.getWidth||s.x<0?l:this.y*d+this.x},getColIndex:function(){let b=e.query("GET_ACTIVE_ITEMS"),E=e.childViews.filter(x=>x.rect.element.height),T=b.map(x=>E.find(O=>O.id===x.id)),_=T.findIndex(x=>x===r),y=wi(r),I=T.length,v=I,R=0,S=0,D=0;for(let x=0;xx){if(s.y1?f.getGridIndex():f.getColIndex();e.dispatch("MOVE_ITEM",{query:r,index:p});let m=a.getIndex();if(m===void 0||m!==p){if(a.setIndex(p),m===void 0)return;e.dispatch("DID_REORDER_ITEMS",{items:e.query("GET_ACTIVE_ITEMS"),origin:l,target:p})}},nc=pe({DID_ADD_ITEM:Js,DID_REMOVE_ITEM:tc,DID_DRAG_ITEM:ac}),rc=({root:e,props:t,actions:i,shouldOptimize:a})=>{nc({root:e,props:t,actions:i});let{dragCoordinates:n}=t,r=e.rect.element.width,o=e.childViews.filter(T=>T.rect.element.height),l=e.query("GET_ACTIVE_ITEMS").map(T=>o.find(_=>_.id===T.id)).filter(T=>T),s=n?qi(e,l,n):null,u=e.ref.addIndex||null;e.ref.addIndex=null;let c=0,d=0,h=0;if(l.length===0)return;let f=l[0].rect.element,p=f.marginTop+f.marginBottom,m=f.marginLeft+f.marginRight,g=f.width+m,b=f.height+p,E=$i(r,g);if(E===1){let T=0,_=0;l.forEach((y,I)=>{if(s){let S=I-s;S===-2?_=-p*.25:S===-1?_=-p*.75:S===0?_=p*.75:S===1?_=p*.25:_=0}a&&(y.translateX=null,y.translateY=null),y.markedForRemoval||Za(y,0,T+_);let R=(y.rect.element.height+p)*(y.markedForRemoval?y.opacity:1);T+=R})}else{let T=0,_=0;l.forEach((y,I)=>{I===s&&(c=1),I===u&&(h+=1),y.markedForRemoval&&y.opacity<.5&&(d-=1);let v=I+h+c+d,R=v%E,S=Math.floor(v/E),D=R*g,x=S*b,O=Math.sign(D-T),z=Math.sign(x-_);T=D,_=x,!y.markedForRemoval&&(a&&(y.translateX=null,y.translateY=null),Za(y,D,x,O,z))})}},oc=(e,t)=>t.filter(i=>i.data&&i.data.id?e.id===i.data.id:!0),lc=ne({create:Ks,write:rc,tag:"ul",name:"list",didWriteView:({root:e})=>{e.childViews.filter(t=>t.markedForRemoval&&t.opacity===0&&t.resting).forEach(t=>{t._destroy(),e.removeChildView(t)})},filterFrameActionsForChild:oc,mixins:{apis:["dragCoordinates"]}}),sc=({root:e,props:t})=>{e.ref.list=e.appendChildView(e.createChildView(lc)),t.dragCoordinates=null,t.overflowing=!1},cc=({root:e,props:t,action:i})=>{e.query("GET_ITEM_INSERT_LOCATION_FREEDOM")&&(t.dragCoordinates={left:i.position.scopeLeft-e.ref.list.rect.element.left,top:i.position.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},dc=({props:e})=>{e.dragCoordinates=null},uc=pe({DID_DRAG:cc,DID_END_DRAG:dc}),hc=({root:e,props:t,actions:i})=>{if(uc({root:e,props:t,actions:i}),e.ref.list.dragCoordinates=t.dragCoordinates,t.overflowing&&!t.overflow&&(t.overflowing=!1,e.element.dataset.state="",e.height=null),t.overflow){let a=Math.round(t.overflow);a!==e.height&&(t.overflowing=!0,e.element.dataset.state="overflow",e.height=a)}},fc=ne({create:sc,write:hc,name:"list-scroller",mixins:{apis:["overflow","dragCoordinates"],styles:["height","translateY"],animations:{translateY:"spring"}}}),Me=(e,t,i,a="")=>{i?ae(e,t,a):e.removeAttribute(t)},pc=e=>{if(!(!e||e.value==="")){try{e.value=""}catch{}if(e.value){let t=Ne("form"),i=e.parentNode,a=e.nextSibling;t.appendChild(e),t.reset(),a?i.insertBefore(e,a):i.appendChild(e)}}},mc=({root:e,props:t})=>{e.element.id=`filepond--browser-${t.id}`,ae(e.element,"name",e.query("GET_NAME")),ae(e.element,"aria-controls",`filepond--assistant-${t.id}`),ae(e.element,"aria-labelledby",`filepond--drop-label-${t.id}`),Pn({root:e,action:{value:e.query("GET_ACCEPTED_FILE_TYPES")}}),Fn({root:e,action:{value:e.query("GET_ALLOW_MULTIPLE")}}),Cn({root:e,action:{value:e.query("GET_ALLOW_DIRECTORIES_ONLY")}}),Pi({root:e}),zn({root:e,action:{value:e.query("GET_REQUIRED")}}),Nn({root:e,action:{value:e.query("GET_CAPTURE_METHOD")}}),e.ref.handleChange=i=>{if(!e.element.value)return;let a=Array.from(e.element.files).map(n=>(n._relativePath=n.webkitRelativePath,n));setTimeout(()=>{t.onload(a),pc(e.element)},250)},e.element.addEventListener("change",e.ref.handleChange)},Pn=({root:e,action:t})=>{e.query("GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE")&&Me(e.element,"accept",!!t.value,t.value?t.value.join(","):"")},Fn=({root:e,action:t})=>{Me(e.element,"multiple",t.value)},Cn=({root:e,action:t})=>{Me(e.element,"webkitdirectory",t.value)},Pi=({root:e})=>{let t=e.query("GET_DISABLED"),i=e.query("GET_ALLOW_BROWSE"),a=t||!i;Me(e.element,"disabled",a)},zn=({root:e,action:t})=>{t.value?e.query("GET_TOTAL_ITEMS")===0&&Me(e.element,"required",!0):Me(e.element,"required",!1)},Nn=({root:e,action:t})=>{Me(e.element,"capture",!!t.value,t.value===!0?"":t.value)},Ka=({root:e})=>{let{element:t}=e;e.query("GET_TOTAL_ITEMS")>0?(Me(t,"required",!1),Me(t,"name",!1)):(Me(t,"name",!0,e.query("GET_NAME")),e.query("GET_CHECK_VALIDITY")&&t.setCustomValidity(""),e.query("GET_REQUIRED")&&Me(t,"required",!0))},gc=({root:e})=>{e.query("GET_CHECK_VALIDITY")&&e.element.setCustomValidity(e.query("GET_LABEL_INVALID_FIELD"))},Ec=ne({tag:"input",name:"browser",ignoreRect:!0,ignoreRectUpdate:!0,attributes:{type:"file"},create:mc,destroy:({root:e})=>{e.element.removeEventListener("change",e.ref.handleChange)},write:pe({DID_LOAD_ITEM:Ka,DID_REMOVE_ITEM:Ka,DID_THROW_ITEM_INVALID:gc,DID_SET_DISABLED:Pi,DID_SET_ALLOW_BROWSE:Pi,DID_SET_ALLOW_DIRECTORIES_ONLY:Cn,DID_SET_ALLOW_MULTIPLE:Fn,DID_SET_ACCEPTED_FILE_TYPES:Pn,DID_SET_CAPTURE_METHOD:Nn,DID_SET_REQUIRED:zn})}),Ja={ENTER:13,SPACE:32},Tc=({root:e,props:t})=>{let i=Ne("label");ae(i,"for",`filepond--browser-${t.id}`),ae(i,"id",`filepond--drop-label-${t.id}`),ae(i,"aria-hidden","true"),e.ref.handleKeyDown=a=>{(a.keyCode===Ja.ENTER||a.keyCode===Ja.SPACE)&&(a.preventDefault(),e.ref.label.click())},e.ref.handleClick=a=>{a.target===i||i.contains(a.target)||e.ref.label.click()},i.addEventListener("keydown",e.ref.handleKeyDown),e.element.addEventListener("click",e.ref.handleClick),Bn(i,t.caption),e.appendChild(i),e.ref.label=i},Bn=(e,t)=>{e.innerHTML=t;let i=e.querySelector(".filepond--label-action");return i&&ae(i,"tabindex","0"),t},Ic=ne({name:"drop-label",ignoreRect:!0,create:Tc,destroy:({root:e})=>{e.ref.label.addEventListener("keydown",e.ref.handleKeyDown),e.element.removeEventListener("click",e.ref.handleClick)},write:pe({DID_SET_LABEL_IDLE:({root:e,action:t})=>{Bn(e.ref.label,t.value)}}),mixins:{styles:["opacity","translateX","translateY"],animations:{opacity:{type:"tween",duration:150},translateX:"spring",translateY:"spring"}}}),bc=ne({name:"drip-blob",ignoreRect:!0,mixins:{styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}}}}),_c=({root:e})=>{let t=e.rect.element.width*.5,i=e.rect.element.height*.5;e.ref.blob=e.appendChildView(e.createChildView(bc,{opacity:0,scaleX:2.5,scaleY:2.5,translateX:t,translateY:i}))},Rc=({root:e,action:t})=>{if(!e.ref.blob){_c({root:e});return}e.ref.blob.translateX=t.position.scopeLeft,e.ref.blob.translateY=t.position.scopeTop,e.ref.blob.scaleX=1,e.ref.blob.scaleY=1,e.ref.blob.opacity=1},yc=({root:e})=>{e.ref.blob&&(e.ref.blob.opacity=0)},Sc=({root:e})=>{e.ref.blob&&(e.ref.blob.scaleX=2.5,e.ref.blob.scaleY=2.5,e.ref.blob.opacity=0)},wc=({root:e,props:t,actions:i})=>{vc({root:e,props:t,actions:i});let{blob:a}=e.ref;i.length===0&&a&&a.opacity===0&&(e.removeChildView(a),e.ref.blob=null)},vc=pe({DID_DRAG:Rc,DID_DROP:Sc,DID_END_DRAG:yc}),Ac=ne({ignoreRect:!0,ignoreRectUpdate:!0,name:"drip",write:wc}),Gn=(e,t)=>{try{let i=new DataTransfer;t.forEach(a=>{a instanceof File?i.items.add(a):i.items.add(new File([a],a.name,{type:a.type}))}),e.files=i.files}catch{return!1}return!0},Lc=({root:e})=>e.ref.fields={},si=(e,t)=>e.ref.fields[t],Xi=e=>{e.query("GET_ACTIVE_ITEMS").forEach(t=>{e.ref.fields[t.id]&&e.element.appendChild(e.ref.fields[t.id])})},en=({root:e})=>Xi(e),Mc=({root:e,action:t})=>{let n=!(e.query("GET_ITEM",t.id).origin===le.LOCAL)&&e.query("SHOULD_UPDATE_FILE_INPUT"),r=Ne("input");r.type=n?"file":"hidden",r.name=e.query("GET_NAME"),r.disabled=e.query("GET_DISABLED"),e.ref.fields[t.id]=r,Xi(e)},Oc=({root:e,action:t})=>{let i=si(e,t.id);if(!i||(t.serverFileReference!==null&&(i.value=t.serverFileReference),!e.query("SHOULD_UPDATE_FILE_INPUT")))return;let a=e.query("GET_ITEM",t.id);Gn(i,[a.file])},xc=({root:e,action:t})=>{e.query("SHOULD_UPDATE_FILE_INPUT")&&setTimeout(()=>{let i=si(e,t.id);i&&Gn(i,[t.file])},0)},Dc=({root:e})=>{e.element.disabled=e.query("GET_DISABLED")},Pc=({root:e,action:t})=>{let i=si(e,t.id);i&&(i.parentNode&&i.parentNode.removeChild(i),delete e.ref.fields[t.id])},Fc=({root:e,action:t})=>{let i=si(e,t.id);i&&(t.value===null?i.removeAttribute("value"):i.type!="file"&&(i.value=t.value),Xi(e))},Cc=pe({DID_SET_DISABLED:Dc,DID_ADD_ITEM:Mc,DID_LOAD_ITEM:Oc,DID_REMOVE_ITEM:Pc,DID_DEFINE_VALUE:Fc,DID_PREPARE_OUTPUT:xc,DID_REORDER_ITEMS:en,DID_SORT_ITEMS:en}),zc=ne({tag:"fieldset",name:"data",create:Lc,write:Cc,ignoreRect:!0}),Nc=e=>"getRootNode"in e?e.getRootNode():document,Bc=["jpg","jpeg","png","gif","bmp","webp","svg","tiff"],Gc=["css","csv","html","txt"],Vc={zip:"zip|compressed",epub:"application/epub+zip"},Vn=(e="")=>(e=e.toLowerCase(),Bc.includes(e)?"image/"+(e==="jpg"?"jpeg":e==="svg"?"svg+xml":e):Gc.includes(e)?"text/"+e:Vc[e]||""),ji=e=>new Promise((t,i)=>{let a=Xc(e);if(a.length&&!Uc(e))return t(a);kc(e).then(t)}),Uc=e=>e.files?e.files.length>0:!1,kc=e=>new Promise((t,i)=>{let a=(e.items?Array.from(e.items):[]).filter(n=>Hc(n)).map(n=>Wc(n));if(!a.length){t(e.files?Array.from(e.files):[]);return}Promise.all(a).then(n=>{let r=[];n.forEach(o=>{r.push.apply(r,o)}),t(r.filter(o=>o).map(o=>(o._relativePath||(o._relativePath=o.webkitRelativePath),o)))}).catch(console.error)}),Hc=e=>{if(Un(e)){let t=Qi(e);if(t)return t.isFile||t.isDirectory}return e.kind==="file"},Wc=e=>new Promise((t,i)=>{if(qc(e)){Yc(Qi(e)).then(t).catch(i);return}t([e.getAsFile()])}),Yc=e=>new Promise((t,i)=>{let a=[],n=0,r=0,o=()=>{r===0&&n===0&&t(a)},l=s=>{n++;let u=s.createReader(),c=()=>{u.readEntries(d=>{if(d.length===0){n--,o();return}d.forEach(h=>{h.isDirectory?l(h):(r++,h.file(f=>{let p=$c(f);h.fullPath&&(p._relativePath=h.fullPath),a.push(p),r--,o()}))}),c()},i)};c()};l(e)}),$c=e=>{if(e.type.length)return e;let t=e.lastModifiedDate,i=e.name,a=Vn(li(e.name));return a.length&&(e=e.slice(0,e.size,a),e.name=i,e.lastModifiedDate=t),e},qc=e=>Un(e)&&(Qi(e)||{}).isDirectory,Un=e=>"webkitGetAsEntry"in e,Qi=e=>e.webkitGetAsEntry(),Xc=e=>{let t=[];try{if(t=Qc(e),t.length)return t;t=jc(e)}catch{}return t},jc=e=>{let t=e.getData("url");return typeof t=="string"&&t.length?[t]:[]},Qc=e=>{let t=e.getData("text/html");if(typeof t=="string"&&t.length){let i=t.match(/src\s*=\s*"(.+?)"/);if(i)return[i[1]]}return[]},ti=[],Qe=e=>({pageLeft:e.pageX,pageTop:e.pageY,scopeLeft:e.offsetX||e.layerX,scopeTop:e.offsetY||e.layerY}),Zc=(e,t,i)=>{let a=Kc(t),n={element:e,filterElement:i,state:null,ondrop:()=>{},onenter:()=>{},ondrag:()=>{},onexit:()=>{},onload:()=>{},allowdrop:()=>{}};return n.destroy=a.addListener(n),n},Kc=e=>{let t=ti.find(a=>a.element===e);if(t)return t;let i=Jc(e);return ti.push(i),i},Jc=e=>{let t=[],i={dragenter:td,dragover:id,dragleave:nd,drop:ad},a={};ee(i,(r,o)=>{a[r]=o(e,t),e.addEventListener(r,a[r],!1)});let n={element:e,addListener:r=>(t.push(r),()=>{t.splice(t.indexOf(r),1),t.length===0&&(ti.splice(ti.indexOf(n),1),ee(i,o=>{e.removeEventListener(o,a[o],!1)}))})};return n},ed=(e,t)=>("elementFromPoint"in e||(e=document),e.elementFromPoint(t.x,t.y)),Zi=(e,t)=>{let i=Nc(t),a=ed(i,{x:e.pageX-window.pageXOffset,y:e.pageY-window.pageYOffset});return a===t||t.contains(a)},kn=null,Qt=(e,t)=>{try{e.dropEffect=t}catch{}},td=(e,t)=>i=>{i.preventDefault(),kn=i.target,t.forEach(a=>{let{element:n,onenter:r}=a;Zi(i,n)&&(a.state="enter",r(Qe(i)))})},id=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;ji(a).then(n=>{let r=!1;t.some(o=>{let{filterElement:l,element:s,onenter:u,onexit:c,ondrag:d,allowdrop:h}=o;Qt(a,"copy");let f=h(n);if(!f){Qt(a,"none");return}if(Zi(i,s)){if(r=!0,o.state===null){o.state="enter",u(Qe(i));return}if(o.state="over",l&&!f){Qt(a,"none");return}d(Qe(i))}else l&&!r&&Qt(a,"none"),o.state&&(o.state=null,c(Qe(i)))})})},ad=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;ji(a).then(n=>{t.forEach(r=>{let{filterElement:o,element:l,ondrop:s,onexit:u,allowdrop:c}=r;if(r.state=null,!(o&&!Zi(i,l))){if(!c(n))return u(Qe(i));s(Qe(i),n)}})})},nd=(e,t)=>i=>{kn===i.target&&t.forEach(a=>{let{onexit:n}=a;a.state=null,n(Qe(i))})},rd=(e,t,i)=>{e.classList.add("filepond--hopper");let{catchesDropsOnPage:a,requiresDropOnElement:n,filterItems:r=c=>c}=i,o=Zc(e,a?document.documentElement:e,n),l="",s="";o.allowdrop=c=>t(r(c)),o.ondrop=(c,d)=>{let h=r(d);if(!t(h)){u.ondragend(c);return}s="drag-drop",u.onload(h,c)},o.ondrag=c=>{u.ondrag(c)},o.onenter=c=>{s="drag-over",u.ondragstart(c)},o.onexit=c=>{s="drag-exit",u.ondragend(c)};let u={updateHopperState:()=>{l!==s&&(e.dataset.hopperState=s,l=s)},onload:()=>{},ondragstart:()=>{},ondrag:()=>{},ondragend:()=>{},destroy:()=>{o.destroy()}};return u},Fi=!1,lt=[],Hn=e=>{let t=document.activeElement;if(t&&/textarea|input/i.test(t.nodeName)){let i=!1,a=t;for(;a!==document.body;){if(a.classList.contains("filepond--root")){i=!0;break}a=a.parentNode}if(!i)return}ji(e.clipboardData).then(i=>{i.length&<.forEach(a=>a(i))})},od=e=>{lt.includes(e)||(lt.push(e),!Fi&&(Fi=!0,document.addEventListener("paste",Hn)))},ld=e=>{ki(lt,lt.indexOf(e)),lt.length===0&&(document.removeEventListener("paste",Hn),Fi=!1)},sd=()=>{let e=i=>{t.onload(i)},t={destroy:()=>{ld(e)},onload:()=>{}};return od(e),t},cd=({root:e,props:t})=>{e.element.id=`filepond--assistant-${t.id}`,ae(e.element,"role","status"),ae(e.element,"aria-live","polite"),ae(e.element,"aria-relevant","additions")},tn=null,an=null,vi=[],ci=(e,t)=>{e.element.textContent=t},dd=e=>{e.element.textContent=""},Wn=(e,t,i)=>{let a=e.query("GET_TOTAL_ITEMS");ci(e,`${i} ${t}, ${a} ${a===1?e.query("GET_LABEL_FILE_COUNT_SINGULAR"):e.query("GET_LABEL_FILE_COUNT_PLURAL")}`),clearTimeout(an),an=setTimeout(()=>{dd(e)},1500)},Yn=e=>e.element.parentNode.contains(document.activeElement),ud=({root:e,action:t})=>{if(!Yn(e))return;e.element.textContent="";let i=e.query("GET_ITEM",t.id);vi.push(i.filename),clearTimeout(tn),tn=setTimeout(()=>{Wn(e,vi.join(", "),e.query("GET_LABEL_FILE_ADDED")),vi.length=0},750)},hd=({root:e,action:t})=>{if(!Yn(e))return;let i=t.item;Wn(e,i.filename,e.query("GET_LABEL_FILE_REMOVED"))},fd=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_COMPLETE");ci(e,`${a} ${n}`)},nn=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_ABORTED");ci(e,`${a} ${n}`)},Zt=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename;ci(e,`${t.status.main} ${a} ${t.status.sub}`)},pd=ne({create:cd,ignoreRect:!0,ignoreRectUpdate:!0,write:pe({DID_LOAD_ITEM:ud,DID_REMOVE_ITEM:hd,DID_COMPLETE_ITEM_PROCESSING:fd,DID_ABORT_ITEM_PROCESSING:nn,DID_REVERT_ITEM_PROCESSING:nn,DID_THROW_ITEM_REMOVE_ERROR:Zt,DID_THROW_ITEM_LOAD_ERROR:Zt,DID_THROW_ITEM_INVALID:Zt,DID_THROW_ITEM_PROCESSING_ERROR:Zt}),tag:"span",name:"assistant"}),$n=(e,t="-")=>e.replace(new RegExp(`${t}.`,"g"),i=>i.charAt(1).toUpperCase()),qn=(e,t=16,i=!0)=>{let a=Date.now(),n=null;return(...r)=>{clearTimeout(n);let o=Date.now()-a,l=()=>{a=Date.now(),e(...r)};oe.preventDefault(),gd=({root:e,props:t})=>{let i=e.query("GET_ID");i&&(e.element.id=i);let a=e.query("GET_CLASS_NAME");a&&a.split(" ").filter(s=>s.length).forEach(s=>{e.element.classList.add(s)}),e.ref.label=e.appendChildView(e.createChildView(Ic,{...t,translateY:null,caption:e.query("GET_LABEL_IDLE")})),e.ref.list=e.appendChildView(e.createChildView(fc,{translateY:null})),e.ref.panel=e.appendChildView(e.createChildView(Dn,{name:"panel-root"})),e.ref.assistant=e.appendChildView(e.createChildView(pd,{...t})),e.ref.data=e.appendChildView(e.createChildView(zc,{...t})),e.ref.measure=Ne("div"),e.ref.measure.style.height="100%",e.element.appendChild(e.ref.measure),e.ref.bounds=null,e.query("GET_STYLES").filter(s=>!ze(s.value)).map(({name:s,value:u})=>{e.element.dataset[s]=u}),e.ref.widthPrevious=null,e.ref.widthUpdated=qn(()=>{e.ref.updateHistory=[],e.dispatch("DID_RESIZE_ROOT")},250),e.ref.previousAspectRatio=null,e.ref.updateHistory=[];let n=window.matchMedia("(pointer: fine) and (hover: hover)").matches,r="PointerEvent"in window;e.query("GET_ALLOW_REORDER")&&r&&!n&&(e.element.addEventListener("touchmove",ii,{passive:!1}),e.element.addEventListener("gesturestart",ii));let o=e.query("GET_CREDITS");if(o.length===2){let s=document.createElement("a");s.className="filepond--credits",s.setAttribute("aria-hidden","true"),s.href=o[0],s.tabindex=-1,s.target="_blank",s.rel="noopener noreferrer",s.textContent=o[1],e.element.appendChild(s),e.ref.credits=s}},Ed=({root:e,props:t,actions:i})=>{if(Rd({root:e,props:t,actions:i}),i.filter(I=>/^DID_SET_STYLE_/.test(I.type)).filter(I=>!ze(I.data.value)).map(({type:I,data:v})=>{let R=$n(I.substring(8).toLowerCase(),"_");e.element.dataset[R]=v.value,e.invalidateLayout()}),e.rect.element.hidden)return;e.rect.element.width!==e.ref.widthPrevious&&(e.ref.widthPrevious=e.rect.element.width,e.ref.widthUpdated());let a=e.ref.bounds;a||(a=e.ref.bounds=bd(e),e.element.removeChild(e.ref.measure),e.ref.measure=null);let{hopper:n,label:r,list:o,panel:l}=e.ref;n&&n.updateHopperState();let s=e.query("GET_PANEL_ASPECT_RATIO"),u=e.query("GET_ALLOW_MULTIPLE"),c=e.query("GET_TOTAL_ITEMS"),d=u?e.query("GET_MAX_FILES")||md:1,h=c===d,f=i.find(I=>I.type==="DID_ADD_ITEM");if(h&&f){let I=f.data.interactionMethod;r.opacity=0,u?r.translateY=-40:I===ye.API?r.translateX=40:I===ye.BROWSE?r.translateY=40:r.translateY=30}else h||(r.opacity=1,r.translateX=0,r.translateY=0);let p=Td(e),m=Id(e),g=r.rect.element.height,b=!u||h?0:g,E=h?o.rect.element.marginTop:0,T=c===0?0:o.rect.element.marginBottom,_=b+E+m.visual+T,y=b+E+m.bounds+T;if(o.translateY=Math.max(0,b-o.rect.element.marginTop)-p.top,s){let I=e.rect.element.width,v=I*s;s!==e.ref.previousAspectRatio&&(e.ref.previousAspectRatio=s,e.ref.updateHistory=[]);let R=e.ref.updateHistory;R.push(I);let S=2;if(R.length>S*2){let x=R.length,O=x-10,z=0;for(let A=x;A>=O;A--)if(R[A]===R[A-2]&&z++,z>=S)return}l.scalable=!1,l.height=v;let D=v-b-(T-p.bottom)-(h?E:0);m.visual>D?o.overflow=D:o.overflow=null,e.height=v}else if(a.fixedHeight){l.scalable=!1;let I=a.fixedHeight-b-(T-p.bottom)-(h?E:0);m.visual>I?o.overflow=I:o.overflow=null}else if(a.cappedHeight){let I=_>=a.cappedHeight,v=Math.min(a.cappedHeight,_);l.scalable=!0,l.height=I?v:v-p.top-p.bottom;let R=v-b-(T-p.bottom)-(h?E:0);_>a.cappedHeight&&m.visual>R?o.overflow=R:o.overflow=null,e.height=Math.min(a.cappedHeight,y-p.top-p.bottom)}else{let I=c>0?p.top+p.bottom:0;l.scalable=!0,l.height=Math.max(g,_-I),e.height=Math.max(g,y-I)}e.ref.credits&&l.heightCurrent&&(e.ref.credits.style.transform=`translateY(${l.heightCurrent}px)`)},Td=e=>{let t=e.ref.list.childViews[0].childViews[0];return t?{top:t.rect.element.marginTop,bottom:t.rect.element.marginBottom}:{top:0,bottom:0}},Id=e=>{let t=0,i=0,a=e.ref.list,n=a.childViews[0],r=n.childViews.filter(E=>E.rect.element.height),o=e.query("GET_ACTIVE_ITEMS").map(E=>r.find(T=>T.id===E.id)).filter(E=>E);if(o.length===0)return{visual:t,bounds:i};let l=n.rect.element.width,s=qi(n,o,a.dragCoordinates),u=o[0].rect.element,c=u.marginTop+u.marginBottom,d=u.marginLeft+u.marginRight,h=u.width+d,f=u.height+c,p=typeof s<"u"&&s>=0?1:0,m=o.find(E=>E.markedForRemoval&&E.opacity<.45)?-1:0,g=o.length+p+m,b=$i(l,h);return b===1?o.forEach(E=>{let T=E.rect.element.height+c;i+=T,t+=T*E.opacity}):(i=Math.ceil(g/b)*f,t=i),{visual:t,bounds:i}},bd=e=>{let t=e.ref.measureHeight||null;return{cappedHeight:parseInt(e.style.maxHeight,10)||null,fixedHeight:t===0?null:t}},Ki=(e,t)=>{let i=e.query("GET_ALLOW_REPLACE"),a=e.query("GET_ALLOW_MULTIPLE"),n=e.query("GET_TOTAL_ITEMS"),r=e.query("GET_MAX_FILES"),o=t.length;return!a&&o>1?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:te("warning",0,"Max files")}),!0):(r=a?r:1,!a&&i?!1:ht(r)&&n+o>r?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:te("warning",0,"Max files")}),!0):!1)},_d=(e,t,i)=>{let a=e.childViews[0];return qi(a,t,{left:i.scopeLeft-a.rect.element.left,top:i.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},rn=e=>{let t=e.query("GET_ALLOW_DROP"),i=e.query("GET_DISABLED"),a=t&&!i;if(a&&!e.ref.hopper){let n=rd(e.element,r=>{let o=e.query("GET_BEFORE_DROP_FILE")||(()=>!0);return e.query("GET_DROP_VALIDATION")?r.every(s=>Ze("ALLOW_HOPPER_ITEM",s,{query:e.query}).every(u=>u===!0)&&o(s)):!0},{filterItems:r=>{let o=e.query("GET_IGNORED_FILES");return r.filter(l=>ut(l)?!o.includes(l.name.toLowerCase()):!0)},catchesDropsOnPage:e.query("GET_DROP_ON_PAGE"),requiresDropOnElement:e.query("GET_DROP_ON_ELEMENT")});n.onload=(r,o)=>{let s=e.ref.list.childViews[0].childViews.filter(c=>c.rect.element.height),u=e.query("GET_ACTIVE_ITEMS").map(c=>s.find(d=>d.id===c.id)).filter(c=>c);Ae("ADD_ITEMS",r,{dispatch:e.dispatch}).then(c=>{if(Ki(e,c))return!1;e.dispatch("ADD_ITEMS",{items:c,index:_d(e.ref.list,u,o),interactionMethod:ye.DROP})}),e.dispatch("DID_DROP",{position:o}),e.dispatch("DID_END_DRAG",{position:o})},n.ondragstart=r=>{e.dispatch("DID_START_DRAG",{position:r})},n.ondrag=qn(r=>{e.dispatch("DID_DRAG",{position:r})}),n.ondragend=r=>{e.dispatch("DID_END_DRAG",{position:r})},e.ref.hopper=n,e.ref.drip=e.appendChildView(e.createChildView(Ac))}else!a&&e.ref.hopper&&(e.ref.hopper.destroy(),e.ref.hopper=null,e.removeChildView(e.ref.drip))},on=(e,t)=>{let i=e.query("GET_ALLOW_BROWSE"),a=e.query("GET_DISABLED"),n=i&&!a;n&&!e.ref.browser?e.ref.browser=e.appendChildView(e.createChildView(Ec,{...t,onload:r=>{Ae("ADD_ITEMS",r,{dispatch:e.dispatch}).then(o=>{if(Ki(e,o))return!1;e.dispatch("ADD_ITEMS",{items:o,index:-1,interactionMethod:ye.BROWSE})})}}),0):!n&&e.ref.browser&&(e.removeChildView(e.ref.browser),e.ref.browser=null)},ln=e=>{let t=e.query("GET_ALLOW_PASTE"),i=e.query("GET_DISABLED"),a=t&&!i;a&&!e.ref.paster?(e.ref.paster=sd(),e.ref.paster.onload=n=>{Ae("ADD_ITEMS",n,{dispatch:e.dispatch}).then(r=>{if(Ki(e,r))return!1;e.dispatch("ADD_ITEMS",{items:r,index:-1,interactionMethod:ye.PASTE})})}):!a&&e.ref.paster&&(e.ref.paster.destroy(),e.ref.paster=null)},Rd=pe({DID_SET_ALLOW_BROWSE:({root:e,props:t})=>{on(e,t)},DID_SET_ALLOW_DROP:({root:e})=>{rn(e)},DID_SET_ALLOW_PASTE:({root:e})=>{ln(e)},DID_SET_DISABLED:({root:e,props:t})=>{rn(e),ln(e),on(e,t),e.query("GET_DISABLED")?e.element.dataset.disabled="disabled":e.element.removeAttribute("data-disabled")}}),yd=ne({name:"root",read:({root:e})=>{e.ref.measure&&(e.ref.measureHeight=e.ref.measure.offsetHeight)},create:gd,write:Ed,destroy:({root:e})=>{e.ref.paster&&e.ref.paster.destroy(),e.ref.hopper&&e.ref.hopper.destroy(),e.element.removeEventListener("touchmove",ii),e.element.removeEventListener("gesturestart",ii)},mixins:{styles:["height"]}}),Sd=(e={})=>{let t=null,i=ei(),a=Uo(vl(i),[Wl,Ml(i)],[ms,Ll(i)]);a.dispatch("SET_OPTIONS",{options:e});let n=()=>{document.hidden||a.dispatch("KICK")};document.addEventListener("visibilitychange",n);let r=null,o=!1,l=!1,s=null,u=null,c=()=>{o||(o=!0),clearTimeout(r),r=setTimeout(()=>{o=!1,s=null,u=null,l&&(l=!1,a.dispatch("DID_STOP_RESIZE"))},500)};window.addEventListener("resize",c);let d=yd(a,{id:Ui()}),h=!1,f=!1,p={_read:()=>{o&&(u=window.innerWidth,s||(s=u),!l&&u!==s&&(a.dispatch("DID_START_RESIZE"),l=!0)),f&&h&&(h=d.element.offsetParent===null),!h&&(d._read(),f=d.rect.element.hidden)},_write:w=>{let L=a.processActionQueue().filter(C=>!/^SET_/.test(C.type));h&&!L.length||(E(L),h=d._write(w,L,l),Dl(a.query("GET_ITEMS")),h&&a.processDispatchQueue())}},m=w=>L=>{let C={type:w};if(!L)return C;if(L.hasOwnProperty("error")&&(C.error=L.error?{...L.error}:null),L.status&&(C.status={...L.status}),L.file&&(C.output=L.file),L.source)C.file=L.source;else if(L.item||L.id){let P=L.item?L.item:a.query("GET_ITEM",L.id);C.file=P?me(P):null}return L.items&&(C.items=L.items.map(me)),/progress/.test(w)&&(C.progress=L.progress),L.hasOwnProperty("origin")&&L.hasOwnProperty("target")&&(C.origin=L.origin,C.target=L.target),C},g={DID_DESTROY:m("destroy"),DID_INIT:m("init"),DID_THROW_MAX_FILES:m("warning"),DID_INIT_ITEM:m("initfile"),DID_START_ITEM_LOAD:m("addfilestart"),DID_UPDATE_ITEM_LOAD_PROGRESS:m("addfileprogress"),DID_LOAD_ITEM:m("addfile"),DID_THROW_ITEM_INVALID:[m("error"),m("addfile")],DID_THROW_ITEM_LOAD_ERROR:[m("error"),m("addfile")],DID_THROW_ITEM_REMOVE_ERROR:[m("error"),m("removefile")],DID_PREPARE_OUTPUT:m("preparefile"),DID_START_ITEM_PROCESSING:m("processfilestart"),DID_UPDATE_ITEM_PROCESS_PROGRESS:m("processfileprogress"),DID_ABORT_ITEM_PROCESSING:m("processfileabort"),DID_COMPLETE_ITEM_PROCESSING:m("processfile"),DID_COMPLETE_ITEM_PROCESSING_ALL:m("processfiles"),DID_REVERT_ITEM_PROCESSING:m("processfilerevert"),DID_THROW_ITEM_PROCESSING_ERROR:[m("error"),m("processfile")],DID_REMOVE_ITEM:m("removefile"),DID_UPDATE_ITEMS:m("updatefiles"),DID_ACTIVATE_ITEM:m("activatefile"),DID_REORDER_ITEMS:m("reorderfiles")},b=w=>{let L={pond:F,...w};delete L.type,d.element.dispatchEvent(new CustomEvent(`FilePond:${w.type}`,{detail:L,bubbles:!0,cancelable:!0,composed:!0}));let C=[];w.hasOwnProperty("error")&&C.push(w.error),w.hasOwnProperty("file")&&C.push(w.file);let P=["type","error","file"];Object.keys(w).filter(G=>!P.includes(G)).forEach(G=>C.push(w[G])),F.fire(w.type,...C);let V=a.query(`GET_ON${w.type.toUpperCase()}`);V&&V(...C)},E=w=>{w.length&&w.filter(L=>g[L.type]).forEach(L=>{let C=g[L.type];(Array.isArray(C)?C:[C]).forEach(P=>{L.type==="DID_INIT_ITEM"?b(P(L.data)):setTimeout(()=>{b(P(L.data))},0)})})},T=w=>a.dispatch("SET_OPTIONS",{options:w}),_=w=>a.query("GET_ACTIVE_ITEM",w),y=w=>new Promise((L,C)=>{a.dispatch("REQUEST_ITEM_PREPARE",{query:w,success:P=>{L(P)},failure:P=>{C(P)}})}),I=(w,L={})=>new Promise((C,P)=>{S([{source:w,options:L}],{index:L.index}).then(V=>C(V&&V[0])).catch(P)}),v=w=>w.file&&w.id,R=(w,L)=>(typeof w=="object"&&!v(w)&&!L&&(L=w,w=void 0),a.dispatch("REMOVE_ITEM",{...L,query:w}),a.query("GET_ACTIVE_ITEM",w)===null),S=(...w)=>new Promise((L,C)=>{let P=[],V={};if(ai(w[0]))P.push.apply(P,w[0]),Object.assign(V,w[1]||{});else{let G=w[w.length-1];typeof G=="object"&&!(G instanceof Blob)&&Object.assign(V,w.pop()),P.push(...w)}a.dispatch("ADD_ITEMS",{items:P,index:V.index,interactionMethod:ye.API,success:L,failure:C})}),D=()=>a.query("GET_ACTIVE_ITEMS"),x=w=>new Promise((L,C)=>{a.dispatch("REQUEST_ITEM_PROCESSING",{query:w,success:P=>{L(P)},failure:P=>{C(P)}})}),O=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,C=L.length?L:D();return Promise.all(C.map(y))},z=(...w)=>{let L=Array.isArray(w[0])?w[0]:w;if(!L.length){let C=D().filter(P=>!(P.status===k.IDLE&&P.origin===le.LOCAL)&&P.status!==k.PROCESSING&&P.status!==k.PROCESSING_COMPLETE&&P.status!==k.PROCESSING_REVERT_ERROR);return Promise.all(C.map(x))}return Promise.all(L.map(x))},A=(...w)=>{let L=Array.isArray(w[0])?w[0]:w,C;typeof L[L.length-1]=="object"?C=L.pop():Array.isArray(w[0])&&(C=w[1]);let P=D();return L.length?L.map(G=>Ye(G)?P[G]?P[G].id:null:G).filter(G=>G).map(G=>R(G,C)):Promise.all(P.map(G=>R(G,C)))},F={...oi(),...p,...Al(a,i),setOptions:T,addFile:I,addFiles:S,getFile:_,processFile:x,prepareFile:y,removeFile:R,moveFile:(w,L)=>a.dispatch("MOVE_ITEM",{query:w,index:L}),getFiles:D,processFiles:z,removeFiles:A,prepareFiles:O,sort:w=>a.dispatch("SORT",{compare:w}),browse:()=>{var w=d.element.querySelector("input[type=file]");w&&w.click()},destroy:()=>{F.fire("destroy",d.element),a.dispatch("ABORT_ALL"),d._destroy(),window.removeEventListener("resize",c),document.removeEventListener("visibilitychange",n),a.dispatch("DID_DESTROY")},insertBefore:w=>Ma(d.element,w),insertAfter:w=>Oa(d.element,w),appendTo:w=>w.appendChild(d.element),replaceElement:w=>{Ma(d.element,w),w.parentNode.removeChild(w),t=w},restoreElement:()=>{t&&(Oa(t,d.element),d.element.parentNode.removeChild(d.element),t=null)},isAttachedTo:w=>d.element===w||t===w,element:{get:()=>d.element},status:{get:()=>a.query("GET_STATUS")}};return a.dispatch("DID_INIT"),Ve(F)},Xn=(e={})=>{let t={};return ee(ei(),(a,n)=>{t[a]=n[0]}),Sd({...t,...e})},wd=e=>e.charAt(0).toLowerCase()+e.slice(1),vd=e=>$n(e.replace(/^data-/,"")),jn=(e,t)=>{ee(t,(i,a)=>{ee(e,(n,r)=>{let o=new RegExp(i);if(!o.test(n)||(delete e[n],a===!1))return;if(fe(a)){e[a]=r;return}let s=a.group;se(a)&&!e[s]&&(e[s]={}),e[s][wd(n.replace(o,""))]=r}),a.mapping&&jn(e[a.group],a.mapping)})},Ad=(e,t={})=>{let i=[];ee(e.attributes,n=>{i.push(e.attributes[n])});let a=i.filter(n=>n.name).reduce((n,r)=>{let o=ae(e,r.name);return n[vd(r.name)]=o===r.name?!0:o,n},{});return jn(a,t),a},Ld=(e,t={})=>{let i={"^class$":"className","^multiple$":"allowMultiple","^capture$":"captureMethod","^webkitdirectory$":"allowDirectoriesOnly","^server":{group:"server",mapping:{"^process":{group:"process"},"^revert":{group:"revert"},"^fetch":{group:"fetch"},"^restore":{group:"restore"},"^load":{group:"load"}}},"^type$":!1,"^files$":!1};Ze("SET_ATTRIBUTE_TO_OPTION_MAP",i);let a={...t},n=Ad(e.nodeName==="FIELDSET"?e.querySelector("input[type=file]"):e,i);Object.keys(n).forEach(o=>{se(n[o])?(se(a[o])||(a[o]={}),Object.assign(a[o],n[o])):a[o]=n[o]}),a.files=(t.files||[]).concat(Array.from(e.querySelectorAll("input:not([type=file])")).map(o=>({source:o.value,options:{type:o.dataset.type}})));let r=Xn(a);return e.files&&Array.from(e.files).forEach(o=>{r.addFile(o)}),r.replaceElement(e),r},Md=(...e)=>Vo(e[0])?Ld(...e):Xn(...e),Od=["fire","_read","_write"],sn=e=>{let t={};return gn(e,t,Od),t},xd=(e,t)=>e.replace(/(?:{([a-zA-Z]+)})/g,(i,a)=>t[a]),Dd=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i);return{transfer:(n,r)=>{},post:(n,r,o)=>{let l=Ui();a.onmessage=s=>{s.data.id===l&&r(s.data.message)},a.postMessage({id:l,message:n},o)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},Pd=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Qn=(e,t)=>{let i=e.slice(0,e.size,e.type);return i.lastModifiedDate=e.lastModifiedDate,i.name=t,i},Fd=e=>Qn(e,e.name),cn=[],Cd=e=>{if(cn.includes(e))return;cn.push(e);let t=e({addFilter:Fl,utils:{Type:M,forin:ee,isString:fe,isFile:ut,toNaturalFileSize:Mn,replaceInString:xd,getExtensionFromFilename:li,getFilenameWithoutExtension:vn,guesstimateMimeType:Vn,getFileFromBlob:dt,getFilenameFromURL:Ot,createRoute:pe,createWorker:Dd,createView:ne,createItemAPI:me,loadImage:Pd,copyFile:Fd,renameFile:Qn,createBlob:yn,applyFilterChain:Ae,text:ie,getNumericAspectRatioFromString:In},views:{fileActionButton:Ln}});Cl(t.options)},zd=()=>Object.prototype.toString.call(window.operamini)==="[object OperaMini]",Nd=()=>"Promise"in window,Bd=()=>"slice"in Blob.prototype,Gd=()=>"URL"in window&&"createObjectURL"in window.URL,Vd=()=>"visibilityState"in document,Ud=()=>"performance"in window,kd=()=>"supports"in(window.CSS||{}),Hd=()=>/MSIE|Trident/.test(window.navigator.userAgent),Ci=(()=>{let e=dn()&&!zd()&&Vd()&&Nd()&&Bd()&&Gd()&&Ud()&&(kd()||Hd());return()=>e})(),Ge={apps:[]},Wd="filepond",Ke=()=>{},Zn={},ft={},xt={},zi={},st=Ke,ct=Ke,Ni=Ke,Bi=Ke,be=Ke,Gi=Ke,Mt=Ke;if(Ci()){hl(()=>{Ge.apps.forEach(i=>i._read())},i=>{Ge.apps.forEach(a=>a._write(i))});let e=()=>{document.dispatchEvent(new CustomEvent("FilePond:loaded",{detail:{supported:Ci,create:st,destroy:ct,parse:Ni,find:Bi,registerPlugin:be,setOptions:Mt}})),document.removeEventListener("DOMContentLoaded",e)};document.readyState!=="loading"?setTimeout(()=>e(),0):document.addEventListener("DOMContentLoaded",e);let t=()=>ee(ei(),(i,a)=>{zi[i]=a[1]});Zn={...bn},xt={...le},ft={...k},zi={},t(),st=(...i)=>{let a=Md(...i);return a.on("destroy",ct),Ge.apps.push(a),sn(a)},ct=i=>{let a=Ge.apps.findIndex(n=>n.isAttachedTo(i));return a>=0?(Ge.apps.splice(a,1)[0].restoreElement(),!0):!1},Ni=i=>Array.from(i.querySelectorAll(`.${Wd}`)).filter(r=>!Ge.apps.find(o=>o.isAttachedTo(r))).map(r=>st(r)),Bi=i=>{let a=Ge.apps.find(n=>n.isAttachedTo(i));return a?sn(a):null},be=(...i)=>{i.forEach(Cd),t()},Gi=()=>{let i={};return ee(ei(),(a,n)=>{i[a]=n[0]}),i},Mt=i=>(se(i)&&(Ge.apps.forEach(a=>{a.setOptions(i)}),zl(i)),Gi())}function Kn(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,a)}return i}function pr(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,a=new Array(t);i
',su=Number.isNaN||De.isNaN;function Y(e){return typeof e=="number"&&!su(e)}var ur=function(t){return t>0&&t<1/0};function ea(e){return typeof e>"u"}function tt(e){return ia(e)==="object"&&e!==null}var cu=Object.prototype.hasOwnProperty;function mt(e){if(!tt(e))return!1;try{var t=e.constructor,i=t.prototype;return t&&i&&cu.call(i,"isPrototypeOf")}catch{return!1}}function ge(e){return typeof e=="function"}var du=Array.prototype.slice;function Sr(e){return Array.from?Array.from(e):du.call(e)}function re(e,t){return e&&ge(t)&&(Array.isArray(e)||Y(e.length)?Sr(e).forEach(function(i,a){t.call(e,i,a,e)}):tt(e)&&Object.keys(e).forEach(function(i){t.call(e,e[i],i,e)})),e}var K=Object.assign||function(t){for(var i=arguments.length,a=new Array(i>1?i-1:0),n=1;n0&&a.forEach(function(r){tt(r)&&Object.keys(r).forEach(function(o){t[o]=r[o]})}),t},uu=/\.\d*(?:0|9){12}\d*$/;function Et(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return uu.test(e)?Math.round(e*t)/t:e}var hu=/^width|height|left|top|marginLeft|marginTop$/;function ke(e,t){var i=e.style;re(t,function(a,n){hu.test(n)&&Y(a)&&(a="".concat(a,"px")),i[n]=a})}function fu(e,t){return e.classList?e.classList.contains(t):e.className.indexOf(t)>-1}function ce(e,t){if(t){if(Y(e.length)){re(e,function(a){ce(a,t)});return}if(e.classList){e.classList.add(t);return}var i=e.className.trim();i?i.indexOf(t)<0&&(e.className="".concat(i," ").concat(t)):e.className=t}}function xe(e,t){if(t){if(Y(e.length)){re(e,function(i){xe(i,t)});return}if(e.classList){e.classList.remove(t);return}e.className.indexOf(t)>=0&&(e.className=e.className.replace(t,""))}}function gt(e,t,i){if(t){if(Y(e.length)){re(e,function(a){gt(a,t,i)});return}i?ce(e,t):xe(e,t)}}var pu=/([a-z\d])([A-Z])/g;function ga(e){return e.replace(pu,"$1-$2").toLowerCase()}function ua(e,t){return tt(e[t])?e[t]:e.dataset?e.dataset[t]:e.getAttribute("data-".concat(ga(t)))}function Bt(e,t,i){tt(i)?e[t]=i:e.dataset?e.dataset[t]=i:e.setAttribute("data-".concat(ga(t)),i)}function mu(e,t){if(tt(e[t]))try{delete e[t]}catch{e[t]=void 0}else if(e.dataset)try{delete e.dataset[t]}catch{e.dataset[t]=void 0}else e.removeAttribute("data-".concat(ga(t)))}var wr=/\s\s*/,vr=function(){var e=!1;if(fi){var t=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return e=!0,t},set:function(r){t=r}});De.addEventListener("test",i,a),De.removeEventListener("test",i,a)}return e}();function Oe(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(wr).forEach(function(r){if(!vr){var o=e.listeners;o&&o[r]&&o[r][i]&&(n=o[r][i],delete o[r][i],Object.keys(o[r]).length===0&&delete o[r],Object.keys(o).length===0&&delete e.listeners)}e.removeEventListener(r,n,a)})}function Se(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(wr).forEach(function(r){if(a.once&&!vr){var o=e.listeners,l=o===void 0?{}:o;n=function(){delete l[r][i],e.removeEventListener(r,n,a);for(var u=arguments.length,c=new Array(u),d=0;dMath.abs(i)&&(i=h)})}),i}function ui(e,t){var i=e.pageX,a=e.pageY,n={endX:i,endY:a};return t?n:pr({startX:i,startY:a},n)}function Tu(e){var t=0,i=0,a=0;return re(e,function(n){var r=n.startX,o=n.startY;t+=r,i+=o,a+=1}),t/=a,i/=a,{pageX:t,pageY:i}}function He(e){var t=e.aspectRatio,i=e.height,a=e.width,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",r=ur(a),o=ur(i);if(r&&o){var l=i*t;n==="contain"&&l>a||n==="cover"&&l90?{width:s,height:l}:{width:l,height:s}}function bu(e,t,i,a){var n=t.aspectRatio,r=t.naturalWidth,o=t.naturalHeight,l=t.rotate,s=l===void 0?0:l,u=t.scaleX,c=u===void 0?1:u,d=t.scaleY,h=d===void 0?1:d,f=i.aspectRatio,p=i.naturalWidth,m=i.naturalHeight,g=a.fillColor,b=g===void 0?"transparent":g,E=a.imageSmoothingEnabled,T=E===void 0?!0:E,_=a.imageSmoothingQuality,y=_===void 0?"low":_,I=a.maxWidth,v=I===void 0?1/0:I,R=a.maxHeight,S=R===void 0?1/0:R,D=a.minWidth,x=D===void 0?0:D,O=a.minHeight,z=O===void 0?0:O,A=document.createElement("canvas"),F=A.getContext("2d"),w=He({aspectRatio:f,width:v,height:S}),L=He({aspectRatio:f,width:x,height:z},"cover"),C=Math.min(w.width,Math.max(L.width,p)),P=Math.min(w.height,Math.max(L.height,m)),V=He({aspectRatio:n,width:v,height:S}),G=He({aspectRatio:n,width:x,height:z},"cover"),q=Math.min(V.width,Math.max(G.width,r)),X=Math.min(V.height,Math.max(G.height,o)),j=[-q/2,-X/2,q,X];return A.width=Et(C),A.height=Et(P),F.fillStyle=b,F.fillRect(0,0,C,P),F.save(),F.translate(C/2,P/2),F.rotate(s*Math.PI/180),F.scale(c,h),F.imageSmoothingEnabled=T,F.imageSmoothingQuality=y,F.drawImage.apply(F,[e].concat(mr(j.map(function(de){return Math.floor(Et(de))})))),F.restore(),A}var Lr=String.fromCharCode;function _u(e,t,i){var a="";i+=t;for(var n=t;n0;)i.push(Lr.apply(null,Sr(n.subarray(0,a)))),n=n.subarray(a);return"data:".concat(t,";base64,").concat(btoa(i.join("")))}function wu(e){var t=new DataView(e),i;try{var a,n,r;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(var o=t.byteLength,l=2;l+1=8&&(r=u+d)}}}if(r){var h=t.getUint16(r,a),f,p;for(p=0;p=0?r:Rr),height:Math.max(a.offsetHeight,o>=0?o:yr)};this.containerData=l,ke(n,{width:l.width,height:l.height}),ce(t,Ee),xe(n,Ee)},initCanvas:function(){var t=this.containerData,i=this.imageData,a=this.options.viewMode,n=Math.abs(i.rotate)%180===90,r=n?i.naturalHeight:i.naturalWidth,o=n?i.naturalWidth:i.naturalHeight,l=r/o,s=t.width,u=t.height;t.height*l>t.width?a===3?s=t.height*l:u=t.width/l:a===3?u=t.width/l:s=t.height*l;var c={aspectRatio:l,naturalWidth:r,naturalHeight:o,width:s,height:u};this.canvasData=c,this.limited=a===1||a===2,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=K({},c)},limitCanvas:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=a.viewMode,s=r.aspectRatio,u=this.cropped&&o;if(t){var c=Number(a.minCanvasWidth)||0,d=Number(a.minCanvasHeight)||0;l>1?(c=Math.max(c,n.width),d=Math.max(d,n.height),l===3&&(d*s>c?c=d*s:d=c/s)):l>0&&(c?c=Math.max(c,u?o.width:0):d?d=Math.max(d,u?o.height:0):u&&(c=o.width,d=o.height,d*s>c?c=d*s:d=c/s));var h=He({aspectRatio:s,width:c,height:d});c=h.width,d=h.height,r.minWidth=c,r.minHeight=d,r.maxWidth=1/0,r.maxHeight=1/0}if(i)if(l>(u?0:1)){var f=n.width-r.width,p=n.height-r.height;r.minLeft=Math.min(0,f),r.minTop=Math.min(0,p),r.maxLeft=Math.max(0,f),r.maxTop=Math.max(0,p),u&&this.limited&&(r.minLeft=Math.min(o.left,o.left+(o.width-r.width)),r.minTop=Math.min(o.top,o.top+(o.height-r.height)),r.maxLeft=o.left,r.maxTop=o.top,l===2&&(r.width>=n.width&&(r.minLeft=Math.min(0,f),r.maxLeft=Math.max(0,f)),r.height>=n.height&&(r.minTop=Math.min(0,p),r.maxTop=Math.max(0,p))))}else r.minLeft=-r.width,r.minTop=-r.height,r.maxLeft=n.width,r.maxTop=n.height},renderCanvas:function(t,i){var a=this.canvasData,n=this.imageData;if(i){var r=Iu({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),o=r.width,l=r.height,s=a.width*(o/a.naturalWidth),u=a.height*(l/a.naturalHeight);a.left-=(s-a.width)/2,a.top-=(u-a.height)/2,a.width=s,a.height=u,a.aspectRatio=o/l,a.naturalWidth=o,a.naturalHeight=l,this.limitCanvas(!0,!1)}(a.width>a.maxWidth||a.widtha.maxHeight||a.heighti.width?r.height=r.width/a:r.width=r.height*a),this.cropBoxData=r,this.limitCropBox(!0,!0),r.width=Math.min(Math.max(r.width,r.minWidth),r.maxWidth),r.height=Math.min(Math.max(r.height,r.minHeight),r.maxHeight),r.width=Math.max(r.minWidth,r.width*n),r.height=Math.max(r.minHeight,r.height*n),r.left=i.left+(i.width-r.width)/2,r.top=i.top+(i.height-r.height)/2,r.oldLeft=r.left,r.oldTop=r.top,this.initialCropBoxData=K({},r)},limitCropBox:function(t,i){var a=this.options,n=this.containerData,r=this.canvasData,o=this.cropBoxData,l=this.limited,s=a.aspectRatio;if(t){var u=Number(a.minCropBoxWidth)||0,c=Number(a.minCropBoxHeight)||0,d=l?Math.min(n.width,r.width,r.width+r.left,n.width-r.left):n.width,h=l?Math.min(n.height,r.height,r.height+r.top,n.height-r.top):n.height;u=Math.min(u,n.width),c=Math.min(c,n.height),s&&(u&&c?c*s>u?c=u/s:u=c*s:u?c=u/s:c&&(u=c*s),h*s>d?h=d/s:d=h*s),o.minWidth=Math.min(u,d),o.minHeight=Math.min(c,h),o.maxWidth=d,o.maxHeight=h}i&&(l?(o.minLeft=Math.max(0,r.left),o.minTop=Math.max(0,r.top),o.maxLeft=Math.min(n.width,r.left+r.width)-o.width,o.maxTop=Math.min(n.height,r.top+r.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=n.width-o.width,o.maxTop=n.height-o.height))},renderCropBox:function(){var t=this.options,i=this.containerData,a=this.cropBoxData;(a.width>a.maxWidth||a.widtha.maxHeight||a.height=i.width&&a.height>=i.height?Tr:pa),ke(this.cropBox,K({width:a.width,height:a.height},zt({translateX:a.left,translateY:a.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Tt(this.element,oa,this.getData())}},Lu={initPreview:function(){var t=this.element,i=this.crossOrigin,a=this.options.preview,n=i?this.crossOriginUrl:this.url,r=t.alt||"The image to preview",o=document.createElement("img");if(i&&(o.crossOrigin=i),o.src=n,o.alt=r,this.viewBox.appendChild(o),this.viewBoxImage=o,!!a){var l=a;typeof a=="string"?l=t.ownerDocument.querySelectorAll(a):a.querySelector&&(l=[a]),this.previews=l,re(l,function(s){var u=document.createElement("img");Bt(s,di,{width:s.offsetWidth,height:s.offsetHeight,html:s.innerHTML}),i&&(u.crossOrigin=i),u.src=n,u.alt=r,u.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',s.innerHTML="",s.appendChild(u)})}},resetPreview:function(){re(this.previews,function(t){var i=ua(t,di);ke(t,{width:i.width,height:i.height}),t.innerHTML=i.html,mu(t,di)})},preview:function(){var t=this.imageData,i=this.canvasData,a=this.cropBoxData,n=a.width,r=a.height,o=t.width,l=t.height,s=a.left-i.left-t.left,u=a.top-i.top-t.top;!this.cropped||this.disabled||(ke(this.viewBoxImage,K({width:o,height:l},zt(K({translateX:-s,translateY:-u},t)))),re(this.previews,function(c){var d=ua(c,di),h=d.width,f=d.height,p=h,m=f,g=1;n&&(g=h/n,m=r*g),r&&m>f&&(g=f/r,p=n*g,m=f),ke(c,{width:p,height:m}),ke(c.getElementsByTagName("img")[0],K({width:o*g,height:l*g},zt(K({translateX:-s*g,translateY:-u*g},t))))}))}},Mu={bind:function(){var t=this.element,i=this.options,a=this.cropper;ge(i.cropstart)&&Se(t,ca,i.cropstart),ge(i.cropmove)&&Se(t,sa,i.cropmove),ge(i.cropend)&&Se(t,la,i.cropend),ge(i.crop)&&Se(t,oa,i.crop),ge(i.zoom)&&Se(t,da,i.zoom),Se(a,ar,this.onCropStart=this.cropStart.bind(this)),i.zoomable&&i.zoomOnWheel&&Se(a,sr,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Se(a,ir,this.onDblclick=this.dblclick.bind(this)),Se(t.ownerDocument,nr,this.onCropMove=this.cropMove.bind(this)),Se(t.ownerDocument,rr,this.onCropEnd=this.cropEnd.bind(this)),i.responsive&&Se(window,lr,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,i=this.options,a=this.cropper;ge(i.cropstart)&&Oe(t,ca,i.cropstart),ge(i.cropmove)&&Oe(t,sa,i.cropmove),ge(i.cropend)&&Oe(t,la,i.cropend),ge(i.crop)&&Oe(t,oa,i.crop),ge(i.zoom)&&Oe(t,da,i.zoom),Oe(a,ar,this.onCropStart),i.zoomable&&i.zoomOnWheel&&Oe(a,sr,this.onWheel,{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Oe(a,ir,this.onDblclick),Oe(t.ownerDocument,nr,this.onCropMove),Oe(t.ownerDocument,rr,this.onCropEnd),i.responsive&&Oe(window,lr,this.onResize)}},Ou={resize:function(){if(!this.disabled){var t=this.options,i=this.container,a=this.containerData,n=i.offsetWidth/a.width,r=i.offsetHeight/a.height,o=Math.abs(n-1)>Math.abs(r-1)?n:r;if(o!==1){var l,s;t.restore&&(l=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(re(l,function(u,c){l[c]=u*o})),this.setCropBoxData(re(s,function(u,c){s[c]=u*o})))}}},dblclick:function(){this.disabled||this.options.dragMode===_r||this.setDragMode(fu(this.dragBox,na)?br:ma)},wheel:function(t){var i=this,a=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){i.wheeling=!1},50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*a,t)))},cropStart:function(t){var i=t.buttons,a=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(Y(i)&&i!==1||Y(a)&&a!==0||t.ctrlKey))){var n=this.options,r=this.pointers,o;t.changedTouches?re(t.changedTouches,function(l){r[l.identifier]=ui(l)}):r[t.pointerId||0]=ui(t),Object.keys(r).length>1&&n.zoomable&&n.zoomOnTouch?o=Ir:o=ua(t.target,Nt),au.test(o)&&Tt(this.element,ca,{originalEvent:t,action:o})!==!1&&(t.preventDefault(),this.action=o,this.cropping=!1,o===Er&&(this.cropping=!0,ce(this.dragBox,hi)))}},cropMove:function(t){var i=this.action;if(!(this.disabled||!i)){var a=this.pointers;t.preventDefault(),Tt(this.element,sa,{originalEvent:t,action:i})!==!1&&(t.changedTouches?re(t.changedTouches,function(n){K(a[n.identifier]||{},ui(n,!0))}):K(a[t.pointerId||0]||{},ui(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var i=this.action,a=this.pointers;t.changedTouches?re(t.changedTouches,function(n){delete a[n.identifier]}):delete a[t.pointerId||0],i&&(t.preventDefault(),Object.keys(a).length||(this.action=""),this.cropping&&(this.cropping=!1,gt(this.dragBox,hi,this.cropped&&this.options.modal)),Tt(this.element,la,{originalEvent:t,action:i}))}}},xu={change:function(t){var i=this.options,a=this.canvasData,n=this.containerData,r=this.cropBoxData,o=this.pointers,l=this.action,s=i.aspectRatio,u=r.left,c=r.top,d=r.width,h=r.height,f=u+d,p=c+h,m=0,g=0,b=n.width,E=n.height,T=!0,_;!s&&t.shiftKey&&(s=d&&h?d/h:1),this.limited&&(m=r.minLeft,g=r.minTop,b=m+Math.min(n.width,a.width,a.left+a.width),E=g+Math.min(n.height,a.height,a.top+a.height));var y=o[Object.keys(o)[0]],I={x:y.endX-y.startX,y:y.endY-y.startY},v=function(S){switch(S){case Je:f+I.x>b&&(I.x=b-f);break;case et:u+I.xE&&(I.y=E-p);break}};switch(l){case pa:u+=I.x,c+=I.y;break;case Je:if(I.x>=0&&(f>=b||s&&(c<=g||p>=E))){T=!1;break}v(Je),d+=I.x,d<0&&(l=et,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case Ue:if(I.y<=0&&(c<=g||s&&(u<=m||f>=b))){T=!1;break}v(Ue),h-=I.y,c+=I.y,h<0&&(l=pt,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case et:if(I.x<=0&&(u<=m||s&&(c<=g||p>=E))){T=!1;break}v(et),d-=I.x,u+=I.x,d<0&&(l=Je,d=-d,u-=d),s&&(h=d/s,c+=(r.height-h)/2);break;case pt:if(I.y>=0&&(p>=E||s&&(u<=m||f>=b))){T=!1;break}v(pt),h+=I.y,h<0&&(l=Ue,h=-h,c-=h),s&&(d=h*s,u+=(r.width-d)/2);break;case Dt:if(s){if(I.y<=0&&(c<=g||f>=b)){T=!1;break}v(Ue),h-=I.y,c+=I.y,d=h*s}else v(Ue),v(Je),I.x>=0?fg&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Ct,h=-h,d=-d,c-=h,u-=d):d<0?(l=Pt,d=-d,u-=d):h<0&&(l=Ft,h=-h,c-=h);break;case Pt:if(s){if(I.y<=0&&(c<=g||u<=m)){T=!1;break}v(Ue),h-=I.y,c+=I.y,d=h*s,u+=r.width-d}else v(Ue),v(et),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y<=0&&c<=g&&(T=!1):(d-=I.x,u+=I.x),I.y<=0?c>g&&(h-=I.y,c+=I.y):(h-=I.y,c+=I.y);d<0&&h<0?(l=Ft,h=-h,d=-d,c-=h,u-=d):d<0?(l=Dt,d=-d,u-=d):h<0&&(l=Ct,h=-h,c-=h);break;case Ct:if(s){if(I.x<=0&&(u<=m||p>=E)){T=!1;break}v(et),d-=I.x,u+=I.x,h=d/s}else v(pt),v(et),I.x<=0?u>m?(d-=I.x,u+=I.x):I.y>=0&&p>=E&&(T=!1):(d-=I.x,u+=I.x),I.y>=0?p=0&&(f>=b||p>=E)){T=!1;break}v(Je),d+=I.x,h=d/s}else v(pt),v(Je),I.x>=0?f=0&&p>=E&&(T=!1):d+=I.x,I.y>=0?p0?l=I.y>0?Ft:Dt:I.x<0&&(u-=d,l=I.y>0?Ct:Pt),I.y<0&&(c-=h),this.cropped||(xe(this.cropBox,Ee),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}T&&(r.width=d,r.height=h,r.left=u,r.top=c,this.action=l,this.renderCropBox()),re(o,function(R){R.startX=R.endX,R.startY=R.endY})}},Du={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&ce(this.dragBox,hi),xe(this.cropBox,Ee),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=K({},this.initialImageData),this.canvasData=K({},this.initialCanvasData),this.cropBoxData=K({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(K(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),xe(this.dragBox,hi),ce(this.cropBox,Ee)),this},replace:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),i?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,re(this.previews,function(a){a.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,xe(this.cropper,er)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,ce(this.cropper,er)),this},destroy:function(){var t=this.element;return t[Z]?(t[Z]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=a.left,r=a.top;return this.moveTo(ea(t)?t:n+Number(t),ea(i)?i:r+Number(i))},moveTo:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(Y(t)&&(a.left=t,n=!0),Y(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,i){var a=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(a.width*t/a.naturalWidth,null,i)},zoomTo:function(t,i,a){var n=this.options,r=this.canvasData,o=r.width,l=r.height,s=r.naturalWidth,u=r.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,d=u*t;if(Tt(this.element,da,{ratio:t,oldRatio:o/s,originalEvent:a})===!1)return this;if(a){var h=this.pointers,f=Ar(this.cropper),p=h&&Object.keys(h).length?Tu(h):{pageX:a.pageX,pageY:a.pageY};r.left-=(c-o)*((p.pageX-f.left-r.left)/o),r.top-=(d-l)*((p.pageY-f.top-r.top)/l)}else mt(i)&&Y(i.x)&&Y(i.y)?(r.left-=(c-o)*((i.x-r.left)/o),r.top-=(d-l)*((i.y-r.top)/l)):(r.left-=(c-o)/2,r.top-=(d-l)/2);r.width=c,r.height=d,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),Y(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,Y(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(Y(i)?i:1,t)},scale:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.imageData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(Y(t)&&(a.scaleX=t,n=!0),Y(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.options,a=this.imageData,n=this.canvasData,r=this.cropBoxData,o;if(this.ready&&this.cropped){o={x:r.left-n.left,y:r.top-n.top,width:r.width,height:r.height};var l=a.width/a.naturalWidth;if(re(o,function(c,d){o[d]=c/l}),t){var s=Math.round(o.y+o.height),u=Math.round(o.x+o.width);o.x=Math.round(o.x),o.y=Math.round(o.y),o.width=u-o.x,o.height=s-o.y}}else o={x:0,y:0,width:0,height:0};return i.rotatable&&(o.rotate=a.rotate||0),i.scalable&&(o.scaleX=a.scaleX||1,o.scaleY=a.scaleY||1),o},setData:function(t){var i=this.options,a=this.imageData,n=this.canvasData,r={};if(this.ready&&!this.disabled&&mt(t)){var o=!1;i.rotatable&&Y(t.rotate)&&t.rotate!==a.rotate&&(a.rotate=t.rotate,o=!0),i.scalable&&(Y(t.scaleX)&&t.scaleX!==a.scaleX&&(a.scaleX=t.scaleX,o=!0),Y(t.scaleY)&&t.scaleY!==a.scaleY&&(a.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var l=a.width/a.naturalWidth;Y(t.x)&&(r.left=t.x*l+n.left),Y(t.y)&&(r.top=t.y*l+n.top),Y(t.width)&&(r.width=t.width*l),Y(t.height)&&(r.height=t.height*l),this.setCropBoxData(r)}return this},getContainerData:function(){return this.ready?K({},this.containerData):{}},getImageData:function(){return this.sized?K({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,i={};return this.ready&&re(["left","top","width","height","naturalWidth","naturalHeight"],function(a){i[a]=t[a]}),i},setCanvasData:function(t){var i=this.canvasData,a=i.aspectRatio;return this.ready&&!this.disabled&&mt(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)?(i.width=t.width,i.height=t.width/a):Y(t.height)&&(i.height=t.height,i.width=t.height*a),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,i;return this.ready&&this.cropped&&(i={left:t.left,top:t.top,width:t.width,height:t.height}),i||{}},setCropBoxData:function(t){var i=this.cropBoxData,a=this.options.aspectRatio,n,r;return this.ready&&this.cropped&&!this.disabled&&mt(t)&&(Y(t.left)&&(i.left=t.left),Y(t.top)&&(i.top=t.top),Y(t.width)&&t.width!==i.width&&(n=!0,i.width=t.width),Y(t.height)&&t.height!==i.height&&(r=!0,i.height=t.height),a&&(n?i.height=i.width/a:r&&(i.width=i.height*a)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var i=this.canvasData,a=bu(this.image,this.imageData,i,t);if(!this.cropped)return a;var n=this.getData(t.rounded),r=n.x,o=n.y,l=n.width,s=n.height,u=a.width/Math.floor(i.naturalWidth);u!==1&&(r*=u,o*=u,l*=u,s*=u);var c=l/s,d=He({aspectRatio:c,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),h=He({aspectRatio:c,width:t.minWidth||0,height:t.minHeight||0},"cover"),f=He({aspectRatio:c,width:t.width||(u!==1?a.width:l),height:t.height||(u!==1?a.height:s)}),p=f.width,m=f.height;p=Math.min(d.width,Math.max(h.width,p)),m=Math.min(d.height,Math.max(h.height,m));var g=document.createElement("canvas"),b=g.getContext("2d");g.width=Et(p),g.height=Et(m),b.fillStyle=t.fillColor||"transparent",b.fillRect(0,0,p,m);var E=t.imageSmoothingEnabled,T=E===void 0?!0:E,_=t.imageSmoothingQuality;b.imageSmoothingEnabled=T,_&&(b.imageSmoothingQuality=_);var y=a.width,I=a.height,v=r,R=o,S,D,x,O,z,A;v<=-l||v>y?(v=0,S=0,x=0,z=0):v<=0?(x=-v,v=0,S=Math.min(y,l+v),z=S):v<=y&&(x=0,S=Math.min(l,y-v),z=S),S<=0||R<=-s||R>I?(R=0,D=0,O=0,A=0):R<=0?(O=-R,R=0,D=Math.min(I,s+R),A=D):R<=I&&(O=0,D=Math.min(s,I-R),A=D);var F=[v,R,S,D];if(z>0&&A>0){var w=p/l;F.push(x*w,O*w,z*w,A*w)}return b.drawImage.apply(b,[a].concat(mr(F.map(function(L){return Math.floor(Et(L))})))),g},setAspectRatio:function(t){var i=this.options;return!this.disabled&&!ea(t)&&(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var i=this.options,a=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var r=t===ma,o=i.movable&&t===br;t=r||o?t:_r,i.dragMode=t,Bt(a,Nt,t),gt(a,na,r),gt(a,ra,o),i.cropBoxMovable||(Bt(n,Nt,t),gt(n,na,r),gt(n,ra,o))}return this}},Pu=De.Cropper,Ea=function(){function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Yd(this,e),!t||!ou.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=K({},dr,mt(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return $d(e,[{key:"init",value:function(){var i=this.element,a=i.tagName.toLowerCase(),n;if(!i[Z]){if(i[Z]=this,a==="img"){if(this.isImg=!0,n=i.getAttribute("src")||"",this.originalUrl=n,!n)return;n=i.src}else a==="canvas"&&window.HTMLCanvasElement&&(n=i.toDataURL());this.load(n)}}},{key:"load",value:function(i){var a=this;if(i){this.url=i,this.imageData={};var n=this.element,r=this.options;if(!r.rotatable&&!r.scalable&&(r.checkOrientation=!1),!r.checkOrientation||!window.ArrayBuffer){this.clone();return}if(nu.test(i)){ru.test(i)?this.read(yu(i)):this.clone();return}var o=new XMLHttpRequest,l=this.clone.bind(this);this.reloading=!0,this.xhr=o,o.onabort=l,o.onerror=l,o.ontimeout=l,o.onprogress=function(){o.getResponseHeader("content-type")!==cr&&o.abort()},o.onload=function(){a.read(o.response)},o.onloadend=function(){a.reloading=!1,a.xhr=null},r.checkCrossOrigin&&hr(i)&&n.crossOrigin&&(i=fr(i)),o.open("GET",i,!0),o.responseType="arraybuffer",o.withCredentials=n.crossOrigin==="use-credentials",o.send()}}},{key:"read",value:function(i){var a=this.options,n=this.imageData,r=wu(i),o=0,l=1,s=1;if(r>1){this.url=Su(i,cr);var u=vu(r);o=u.rotate,l=u.scaleX,s=u.scaleY}a.rotatable&&(n.rotate=o),a.scalable&&(n.scaleX=l,n.scaleY=s),this.clone()}},{key:"clone",value:function(){var i=this.element,a=this.url,n=i.crossOrigin,r=a;this.options.checkCrossOrigin&&hr(a)&&(n||(n="anonymous"),r=fr(a)),this.crossOrigin=n,this.crossOriginUrl=r;var o=document.createElement("img");n&&(o.crossOrigin=n),o.src=r||a,o.alt=i.alt||"The image to crop",this.image=o,o.onload=this.start.bind(this),o.onerror=this.stop.bind(this),ce(o,tr),i.parentNode.insertBefore(o,i.nextSibling)}},{key:"start",value:function(){var i=this,a=this.image;a.onload=null,a.onerror=null,this.sizing=!0;var n=De.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(De.navigator.userAgent),r=function(u,c){K(i.imageData,{naturalWidth:u,naturalHeight:c,aspectRatio:u/c}),i.initialImageData=K({},i.imageData),i.sizing=!1,i.sized=!0,i.build()};if(a.naturalWidth&&!n){r(a.naturalWidth,a.naturalHeight);return}var o=document.createElement("img"),l=document.body||document.documentElement;this.sizingImage=o,o.onload=function(){r(o.width,o.height),n||l.removeChild(o)},o.src=a.src,n||(o.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",l.appendChild(o))}},{key:"stop",value:function(){var i=this.image;i.onload=null,i.onerror=null,i.parentNode.removeChild(i),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var i=this.element,a=this.options,n=this.image,r=i.parentNode,o=document.createElement("div");o.innerHTML=lu;var l=o.querySelector(".".concat(Z,"-container")),s=l.querySelector(".".concat(Z,"-canvas")),u=l.querySelector(".".concat(Z,"-drag-box")),c=l.querySelector(".".concat(Z,"-crop-box")),d=c.querySelector(".".concat(Z,"-face"));this.container=r,this.cropper=l,this.canvas=s,this.dragBox=u,this.cropBox=c,this.viewBox=l.querySelector(".".concat(Z,"-view-box")),this.face=d,s.appendChild(n),ce(i,Ee),r.insertBefore(l,i.nextSibling),xe(n,tr),this.initPreview(),this.bind(),a.initialAspectRatio=Math.max(0,a.initialAspectRatio)||NaN,a.aspectRatio=Math.max(0,a.aspectRatio)||NaN,a.viewMode=Math.max(0,Math.min(3,Math.round(a.viewMode)))||0,ce(c,Ee),a.guides||ce(c.getElementsByClassName("".concat(Z,"-dashed")),Ee),a.center||ce(c.getElementsByClassName("".concat(Z,"-center")),Ee),a.background&&ce(l,"".concat(Z,"-bg")),a.highlight||ce(d,Jd),a.cropBoxMovable&&(ce(d,ra),Bt(d,Nt,pa)),a.cropBoxResizable||(ce(c.getElementsByClassName("".concat(Z,"-line")),Ee),ce(c.getElementsByClassName("".concat(Z,"-point")),Ee)),this.render(),this.ready=!0,this.setDragMode(a.dragMode),a.autoCrop&&this.crop(),this.setData(a.data),ge(a.ready)&&Se(i,or,a.ready,{once:!0}),Tt(i,or)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var i=this.cropper.parentNode;i&&i.removeChild(this.cropper),xe(this.element,Ee)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=Pu,e}},{key:"setDefaults",value:function(i){K(dr,mt(i)&&i)}}]),e}();K(Ea.prototype,Au,Lu,Mu,Ou,xu,Du);var Mr=({addFilter:e,utils:t})=>{let{Type:i,replaceInString:a,toNaturalFileSize:n}=t;return e("ALLOW_HOPPER_ITEM",(r,{query:o})=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return!0;let l=o("GET_MAX_FILE_SIZE");if(l!==null&&r.size>l)return!1;let s=o("GET_MIN_FILE_SIZE");return!(s!==null&&r.sizenew Promise((l,s)=>{if(!o("GET_ALLOW_FILE_SIZE_VALIDATION"))return l(r);let u=o("GET_FILE_VALIDATE_SIZE_FILTER");if(u&&!u(r))return l(r);let c=o("GET_MAX_FILE_SIZE");if(c!==null&&r.size>c){s({status:{main:o("GET_LABEL_MAX_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_FILE_SIZE"),{filesize:n(c,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}let d=o("GET_MIN_FILE_SIZE");if(d!==null&&r.sizep+m.fileSize,0)>h){s({status:{main:o("GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED"),sub:a(o("GET_LABEL_MAX_TOTAL_FILE_SIZE"),{filesize:n(h,".",o("GET_FILE_SIZE_BASE"),o("GET_FILE_SIZE_LABELS",o))})}});return}l(r)})),{options:{allowFileSizeValidation:[!0,i.BOOLEAN],maxFileSize:[null,i.INT],minFileSize:[null,i.INT],maxTotalFileSize:[null,i.INT],fileValidateSizeFilter:[null,i.FUNCTION],labelMinFileSizeExceeded:["File is too small",i.STRING],labelMinFileSize:["Minimum file size is {filesize}",i.STRING],labelMaxFileSizeExceeded:["File is too large",i.STRING],labelMaxFileSize:["Maximum file size is {filesize}",i.STRING],labelMaxTotalFileSizeExceeded:["Maximum total size exceeded",i.STRING],labelMaxTotalFileSize:["Maximum total file size is {filesize}",i.STRING]}}},Fu=typeof window<"u"&&typeof window.document<"u";Fu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Mr}));var Or=Mr;var xr=({addFilter:e,utils:t})=>{let{Type:i,isString:a,replaceInString:n,guesstimateMimeType:r,getExtensionFromFilename:o,getFilenameFromURL:l}=t,s=(f,p)=>{let m=(/^[^/]+/.exec(f)||[]).pop(),g=p.slice(0,-2);return m===g},u=(f,p)=>f.some(m=>/\*$/.test(m)?s(p,m):m===p),c=f=>{let p="";if(a(f)){let m=l(f),g=o(m);g&&(p=r(g))}else p=f.type;return p},d=(f,p,m)=>{if(p.length===0)return!0;let g=c(f);return m?new Promise((b,E)=>{m(f,g).then(T=>{u(p,T)?b():E()}).catch(E)}):u(p,g)},h=f=>p=>f[p]===null?!1:f[p]||p;return e("SET_ATTRIBUTE_TO_OPTION_MAP",f=>Object.assign(f,{accept:"acceptedFileTypes"})),e("ALLOW_HOPPER_ITEM",(f,{query:p})=>p("GET_ALLOW_FILE_TYPE_VALIDATION")?d(f,p("GET_ACCEPTED_FILE_TYPES")):!0),e("LOAD_FILE",(f,{query:p})=>new Promise((m,g)=>{if(!p("GET_ALLOW_FILE_TYPE_VALIDATION")){m(f);return}let b=p("GET_ACCEPTED_FILE_TYPES"),E=p("GET_FILE_VALIDATE_TYPE_DETECT_TYPE"),T=d(f,b,E),_=()=>{let y=b.map(h(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP"))).filter(v=>v!==!1),I=y.filter(function(v,R){return y.indexOf(v)===R});g({status:{main:p("GET_LABEL_FILE_TYPE_NOT_ALLOWED"),sub:n(p("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES"),{allTypes:I.join(", "),allButLastType:I.slice(0,-1).join(", "),lastType:I[y.length-1]})}})};if(typeof T=="boolean")return T?m(f):_();T.then(()=>{m(f)}).catch(_)})),{options:{allowFileTypeValidation:[!0,i.BOOLEAN],acceptedFileTypes:[[],i.ARRAY],labelFileTypeNotAllowed:["File is of invalid type",i.STRING],fileValidateTypeLabelExpectedTypes:["Expects {allButLastType} or {lastType}",i.STRING],fileValidateTypeLabelExpectedTypesMap:[{},i.OBJECT],fileValidateTypeDetectType:[null,i.FUNCTION]}}},Cu=typeof window<"u"&&typeof window.document<"u";Cu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:xr}));var Dr=xr;var Pr=e=>/^image/.test(e.type),Fr=({addFilter:e,utils:t})=>{let{Type:i,isFile:a,getNumericAspectRatioFromString:n}=t,r=(u,c)=>!(!Pr(u.file)||!c("GET_ALLOW_IMAGE_CROP")),o=u=>typeof u=="object",l=u=>typeof u=="number",s=(u,c)=>u.setMetadata("crop",Object.assign({},u.getMetadata("crop"),c));return e("DID_CREATE_ITEM",(u,{query:c})=>{u.extend("setImageCrop",d=>{if(!(!r(u,c)||!o(center)))return u.setMetadata("crop",d),d}),u.extend("setImageCropCenter",d=>{if(!(!r(u,c)||!o(d)))return s(u,{center:d})}),u.extend("setImageCropZoom",d=>{if(!(!r(u,c)||!l(d)))return s(u,{zoom:Math.max(1,d)})}),u.extend("setImageCropRotation",d=>{if(!(!r(u,c)||!l(d)))return s(u,{rotation:d})}),u.extend("setImageCropFlip",d=>{if(!(!r(u,c)||!o(d)))return s(u,{flip:d})}),u.extend("setImageCropAspectRatio",d=>{if(!r(u,c)||typeof d>"u")return;let h=u.getMetadata("crop"),f=n(d),p={center:{x:.5,y:.5},flip:h?Object.assign({},h.flip):{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:f};return u.setMetadata("crop",p),p})}),e("DID_LOAD_ITEM",(u,{query:c})=>new Promise((d,h)=>{let f=u.file;if(!a(f)||!Pr(f)||!c("GET_ALLOW_IMAGE_CROP")||u.getMetadata("crop"))return d(u);let m=c("GET_IMAGE_CROP_ASPECT_RATIO");u.setMetadata("crop",{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:m?n(m):null}),d(u)})),{options:{allowImageCrop:[!0,i.BOOLEAN],imageCropAspectRatio:[null,i.STRING]}}},zu=typeof window<"u"&&typeof window.document<"u";zu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Fr}));var Cr=Fr;var Ta=e=>/^image/.test(e.type),zr=e=>{let{addFilter:t,utils:i,views:a}=e,{Type:n,createRoute:r,createItemAPI:o=c=>c}=i,{fileActionButton:l}=a;t("SHOULD_REMOVE_ON_REVERT",(c,{item:d,query:h})=>new Promise(f=>{let{file:p}=d,m=h("GET_ALLOW_IMAGE_EDIT")&&h("GET_IMAGE_EDIT_ALLOW_EDIT")&&Ta(p);f(!m)})),t("DID_LOAD_ITEM",(c,{query:d,dispatch:h})=>new Promise((f,p)=>{if(c.origin>1){f(c);return}let{file:m}=c;if(!d("GET_ALLOW_IMAGE_EDIT")||!d("GET_IMAGE_EDIT_INSTANT_EDIT")){f(c);return}if(!Ta(m)){f(c);return}let g=(E,T,_)=>y=>{s.shift(),y?T(E):_(E),h("KICK"),b()},b=()=>{if(!s.length)return;let{item:E,resolve:T,reject:_}=s[0];h("EDIT_ITEM",{id:E.id,handleEditorResponse:g(E,T,_)})};u({item:c,resolve:f,reject:p}),s.length===1&&b()})),t("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{c.extend("edit",()=>{h("EDIT_ITEM",{id:c.id})})});let s=[],u=c=>(s.push(c),c);return t("CREATE_VIEW",c=>{let{is:d,view:h,query:f}=c;if(!f("GET_ALLOW_IMAGE_EDIT"))return;let p=f("GET_ALLOW_IMAGE_PREVIEW");if(!(d("file-info")&&!p||d("file")&&p))return;let g=f("GET_IMAGE_EDIT_EDITOR");if(!g)return;g.filepondCallbackBridge||(g.outputData=!0,g.outputFile=!1,g.filepondCallbackBridge={onconfirm:g.onconfirm||(()=>{}),oncancel:g.oncancel||(()=>{})});let b=({root:_,props:y,action:I})=>{let{id:v}=y,{handleEditorResponse:R}=I;g.cropAspectRatio=_.query("GET_IMAGE_CROP_ASPECT_RATIO")||g.cropAspectRatio,g.outputCanvasBackgroundColor=_.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||g.outputCanvasBackgroundColor;let S=_.query("GET_ITEM",v);if(!S)return;let D=S.file,x=S.getMetadata("crop"),O={center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},z=S.getMetadata("resize"),A=S.getMetadata("filter")||null,F=S.getMetadata("filters")||null,w=S.getMetadata("colors")||null,L=S.getMetadata("markup")||null,C={crop:x||O,size:z?{upscale:z.upscale,mode:z.mode,width:z.size.width,height:z.size.height}:null,filter:F?F.id||F.matrix:_.query("GET_ALLOW_IMAGE_FILTER")&&_.query("GET_IMAGE_FILTER_COLOR_MATRIX")&&!w?A:null,color:w,markup:L};g.onconfirm=({data:P})=>{let{crop:V,size:G,filter:q,color:X,colorMatrix:j,markup:de}=P,U={};if(V&&(U.crop=V),G){let W=(S.getMetadata("resize")||{}).size,$={width:G.width,height:G.height};!($.width&&$.height)&&W&&($.width=W.width,$.height=W.height),($.width||$.height)&&(U.resize={upscale:G.upscale,mode:G.mode,size:$})}de&&(U.markup=de),U.colors=X,U.filters=q,U.filter=j,S.setMetadata(U),g.filepondCallbackBridge.onconfirm(P,o(S)),R&&(g.onclose=()=>{R(!0),g.onclose=null})},g.oncancel=()=>{g.filepondCallbackBridge.oncancel(o(S)),R&&(g.onclose=()=>{R(!1),g.onclose=null})},g.open(D,C)},E=({root:_,props:y})=>{if(!f("GET_IMAGE_EDIT_ALLOW_EDIT"))return;let{id:I}=y,v=f("GET_ITEM",I);if(!v)return;let R=v.file;if(Ta(R))if(_.ref.handleEdit=S=>{S.stopPropagation(),_.dispatch("EDIT_ITEM",{id:I})},p){let S=h.createChildView(l,{label:"edit",icon:f("GET_IMAGE_EDIT_ICON_EDIT"),opacity:0});S.element.classList.add("filepond--action-edit-item"),S.element.dataset.align=f("GET_STYLE_IMAGE_EDIT_BUTTON_EDIT_ITEM_POSITION"),S.on("click",_.ref.handleEdit),_.ref.buttonEditItem=h.appendChildView(S)}else{let S=h.element.querySelector(".filepond--file-info-main"),D=document.createElement("button");D.className="filepond--action-edit-item-alt",D.innerHTML=f("GET_IMAGE_EDIT_ICON_EDIT")+"edit",D.addEventListener("click",_.ref.handleEdit),S.appendChild(D),_.ref.editButton=D}};h.registerDestroyer(({root:_})=>{_.ref.buttonEditItem&&_.ref.buttonEditItem.off("click",_.ref.handleEdit),_.ref.editButton&&_.ref.editButton.removeEventListener("click",_.ref.handleEdit)});let T={EDIT_ITEM:b,DID_LOAD_ITEM:E};if(p){let _=({root:y})=>{y.ref.buttonEditItem&&(y.ref.buttonEditItem.opacity=1)};T.DID_IMAGE_PREVIEW_SHOW=_}h.registerWriter(r(T))}),{options:{allowImageEdit:[!0,n.BOOLEAN],styleImageEditButtonEditItemPosition:["bottom center",n.STRING],imageEditInstantEdit:[!1,n.BOOLEAN],imageEditAllowEdit:[!0,n.BOOLEAN],imageEditIconEdit:['',n.STRING],imageEditEditor:[null,n.OBJECT]}}},Nu=typeof window<"u"&&typeof window.document<"u";Nu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:zr}));var Nr=zr;var Bu=e=>/^image\/jpeg/.test(e.type),it={JPEG:65496,APP1:65505,EXIF:1165519206,TIFF:18761,Orientation:274,Unknown:65280},at=(e,t,i=!1)=>e.getUint16(t,i),Br=(e,t,i=!1)=>e.getUint32(t,i),Gu=e=>new Promise((t,i)=>{let a=new FileReader;a.onload=function(n){let r=new DataView(n.target.result);if(at(r,0)!==it.JPEG){t(-1);return}let o=r.byteLength,l=2;for(;ltypeof window<"u"&&typeof window.document<"u")(),Uu=()=>Vu,ku="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=",Gr,pi=Uu()?new Image:{};pi.onload=()=>Gr=pi.naturalWidth>pi.naturalHeight;pi.src=ku;var Hu=()=>Gr,Vr=({addFilter:e,utils:t})=>{let{Type:i,isFile:a}=t;return e("DID_LOAD_ITEM",(n,{query:r})=>new Promise((o,l)=>{let s=n.file;if(!a(s)||!Bu(s)||!r("GET_ALLOW_IMAGE_EXIF_ORIENTATION")||!Hu())return o(n);Gu(s).then(u=>{n.setMetadata("exif",{orientation:u}),o(n)})})),{options:{allowImageExifOrientation:[!0,i.BOOLEAN]}}},Wu=typeof window<"u"&&typeof window.document<"u";Wu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Vr}));var Ur=Vr;var Yu=e=>/^image/.test(e.type),kr=(e,t)=>Vt(e.x*t,e.y*t),Hr=(e,t)=>Vt(e.x+t.x,e.y+t.y),$u=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Vt(e.x/t,e.y/t)},mi=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=Vt(e.x-i.x,e.y-i.y);return Vt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},Vt=(e=0,t=0)=>({x:e,y:t}),Te=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},qu=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=Te(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>Te(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},we=e=>e!=null,Xu=(e,t,i=1)=>{let a=Te(e.x,t,i,"width")||Te(e.left,t,i,"width"),n=Te(e.y,t,i,"height")||Te(e.top,t,i,"height"),r=Te(e.width,t,i,"width"),o=Te(e.height,t,i,"height"),l=Te(e.right,t,i,"width"),s=Te(e.bottom,t,i,"height");return we(n)||(we(o)&&we(s)?n=t.height-o-s:n=s),we(a)||(we(r)&&we(l)?a=t.width-r-l:a=l),we(r)||(we(a)&&we(l)?r=t.width-a-l:r=0),we(o)||(we(n)&&we(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},ju=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Fe=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),Qu="http://www.w3.org/2000/svg",It=(e,t)=>{let i=document.createElementNS(Qu,e);return t&&Fe(i,t),i},Zu=e=>Fe(e,{...e.rect,...e.styles}),Ku=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Fe(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},Ju={contain:"xMidYMid meet",cover:"xMidYMid slice"},eh=(e,t)=>{Fe(e,{...e.rect,...e.styles,preserveAspectRatio:Ju[t.fit]||"none"})},th={left:"start",center:"middle",right:"end"},ih=(e,t,i,a)=>{let n=Te(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=th[t.textAlign]||"start";Fe(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},ah=(e,t,i,a)=>{Fe(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Fe(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=$u({x:s.x-l.x,y:s.y-l.y}),c=Te(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=kr(u,c),h=Hr(l,d),f=mi(l,2,h),p=mi(l,-2,h);Fe(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=kr(u,-c),h=Hr(s,d),f=mi(s,2,h),p=mi(s,-2,h);Fe(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},nh=(e,t,i,a)=>{Fe(e,{...e.styles,fill:"none",d:ju(t.points.map(n=>({x:Te(n.x,i,a,"width"),y:Te(n.y,i,a,"height")})))})},gi=e=>t=>It(e,{id:t.id}),rh=e=>{let t=It("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},oh=e=>{let t=It("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=It("line");t.appendChild(i);let a=It("path");t.appendChild(a);let n=It("path");return t.appendChild(n),t},lh={image:rh,rect:gi("rect"),ellipse:gi("ellipse"),text:gi("text"),path:gi("path"),line:oh},sh={rect:Zu,ellipse:Ku,image:eh,text:ih,path:nh,line:ah},ch=(e,t)=>lh[e](t),dh=(e,t,i,a,n)=>{t!=="path"&&(e.rect=Xu(i,a,n)),e.styles=qu(i,a,n),sh[t](e,i,a,n)},uh=["x","y","left","top","right","bottom","width","height"],hh=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,fh=e=>{let[t,i]=e,a=i.points?{}:uh.reduce((n,r)=>(n[r]=hh(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},ph=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexe.utils.createView({name:"image-preview-markup",tag:"svg",ignoreRect:!0,mixins:{apis:["width","height","crop","markup","resize","dirty"]},write:({root:t,props:i})=>{if(!i.dirty)return;let{crop:a,resize:n,markup:r}=i,o=i.width,l=i.height,s=a.width,u=a.height;if(n){let{size:f}=n,p=f&&f.width,m=f&&f.height,g=n.mode,b=n.upscale;p&&!m&&(m=p),m&&!p&&(p=m);let E=s{let[p,m]=f,g=ch(p,m);dh(g,p,m,c,d),t.element.appendChild(g)})}}),Gt=(e,t)=>({x:e,y:t}),gh=(e,t)=>e.x*t.x+e.y*t.y,Wr=(e,t)=>Gt(e.x-t.x,e.y-t.y),Eh=(e,t)=>gh(Wr(e,t),Wr(e,t)),Yr=(e,t)=>Math.sqrt(Eh(e,t)),$r=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Gt(u*d,u*h)},Th=(e,t)=>{let i=e.width,a=e.height,n=$r(i,t),r=$r(a,t),o=Gt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Gt(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Gt(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:Yr(o,l),height:Yr(o,s)}},Ih=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},Xr=(e,t,i,a)=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=Th(t,i);return Math.max(s.width/o,s.height/l)},jr=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},bh=(e,t={})=>{let{zoom:i,rotation:a,center:n,aspectRatio:r}=t;r||(r=e.height/e.width);let o=Ih(e,r,i),l={x:o.width*.5,y:o.height*.5},s={x:0,y:0,width:o.width,height:o.height,center:l},u=typeof t.scaleToFit>"u"||t.scaleToFit,c=Xr(e,jr(s,r),a,u?n:{x:.5,y:.5}),d=i*c;return{widthFloat:o.width/d,heightFloat:o.height/d,width:Math.round(o.width/d),height:Math.round(o.height/d)}},Pe={type:"spring",stiffness:.5,damping:.45,mass:10},_h=e=>e.utils.createView({name:"image-bitmap",ignoreRect:!0,mixins:{styles:["scaleX","scaleY"]},create:({root:t,props:i})=>{t.appendChild(i.image)}}),Rh=e=>e.utils.createView({name:"image-canvas-wrapper",tag:"div",ignoreRect:!0,mixins:{apis:["crop","width","height"],styles:["originX","originY","translateX","translateY","scaleX","scaleY","rotateZ"],animations:{originX:Pe,originY:Pe,scaleX:Pe,scaleY:Pe,translateX:Pe,translateY:Pe,rotateZ:Pe}},create:({root:t,props:i})=>{i.width=i.image.width,i.height=i.image.height,t.ref.bitmap=t.appendChildView(t.createChildView(_h(e),{image:i.image}))},write:({root:t,props:i})=>{let{flip:a}=i.crop,{bitmap:n}=t.ref;n.scaleX=a.horizontal?-1:1,n.scaleY=a.vertical?-1:1}}),yh=e=>e.utils.createView({name:"image-clip",tag:"div",ignoreRect:!0,mixins:{apis:["crop","markup","resize","width","height","dirty","background"],styles:["width","height","opacity"],animations:{opacity:{type:"tween",duration:250}}},didWriteView:function({root:t,props:i}){i.background&&(t.element.style.backgroundColor=i.background)},create:({root:t,props:i})=>{t.ref.image=t.appendChildView(t.createChildView(Rh(e),Object.assign({},i))),t.ref.createMarkup=()=>{t.ref.markup||(t.ref.markup=t.appendChildView(t.createChildView(mh(e),Object.assign({},i))))},t.ref.destroyMarkup=()=>{t.ref.markup&&(t.removeChildView(t.ref.markup),t.ref.markup=null)};let a=t.query("GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR");a!==null&&(a==="grid"?t.element.dataset.transparencyIndicator=a:t.element.dataset.transparencyIndicator="color")},write:({root:t,props:i,shouldOptimize:a})=>{let{crop:n,markup:r,resize:o,dirty:l,width:s,height:u}=i;t.ref.image.crop=n;let c={x:0,y:0,width:s,height:u,center:{x:s*.5,y:u*.5}},d={width:t.ref.image.width,height:t.ref.image.height},h={x:n.center.x*d.width,y:n.center.y*d.height},f={x:c.center.x-d.width*n.center.x,y:c.center.y-d.height*n.center.y},p=Math.PI*2+n.rotation%(Math.PI*2),m=n.aspectRatio||d.height/d.width,g=typeof n.scaleToFit>"u"||n.scaleToFit,b=Xr(d,jr(c,m),p,g?n.center:{x:.5,y:.5}),E=n.zoom*b;r&&r.length?(t.ref.createMarkup(),t.ref.markup.width=s,t.ref.markup.height=u,t.ref.markup.resize=o,t.ref.markup.dirty=l,t.ref.markup.markup=r,t.ref.markup.crop=bh(d,n)):t.ref.markup&&t.ref.destroyMarkup();let T=t.ref.image;if(a){T.originX=null,T.originY=null,T.translateX=null,T.translateY=null,T.rotateZ=null,T.scaleX=null,T.scaleY=null;return}T.originX=h.x,T.originY=h.y,T.translateX=f.x,T.translateY=f.y,T.rotateZ=p,T.scaleX=E,T.scaleY=E}}),Sh=e=>e.utils.createView({name:"image-preview",tag:"div",ignoreRect:!0,mixins:{apis:["image","crop","markup","resize","dirty","background"],styles:["translateY","scaleX","scaleY","opacity"],animations:{scaleX:Pe,scaleY:Pe,translateY:Pe,opacity:{type:"tween",duration:400}}},create:({root:t,props:i})=>{t.ref.clip=t.appendChildView(t.createChildView(yh(e),{id:i.id,image:i.image,crop:i.crop,markup:i.markup,resize:i.resize,dirty:i.dirty,background:i.background}))},write:({root:t,props:i,shouldOptimize:a})=>{let{clip:n}=t.ref,{image:r,crop:o,markup:l,resize:s,dirty:u}=i;if(n.crop=o,n.markup=l,n.resize=s,n.dirty=u,n.opacity=a?0:1,a||t.rect.element.hidden)return;let c=r.height/r.width,d=o.aspectRatio||c,h=t.rect.inner.width,f=t.rect.inner.height,p=t.query("GET_IMAGE_PREVIEW_HEIGHT"),m=t.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),g=t.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),b=t.query("GET_PANEL_ASPECT_RATIO"),E=t.query("GET_ALLOW_MULTIPLE");b&&!E&&(p=h*b,d=b);let T=p!==null?p:Math.max(m,Math.min(h*d,g)),_=T/d;_>h&&(_=h,T=_*d),T>f&&(T=f,_=f/d),n.width=_,n.height=T}}),wh=` @@ -18,13 +18,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho -`,Yr=0,Sh=e=>e.utils.createView({name:"image-preview-overlay",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let a=yh;if(document.querySelector("base")){let n=new URL(window.location.href.replace(window.location.hash,"")).href;a=a.replace(/url\(\#/g,"url("+n+"#")}Yr++,t.element.classList.add(`filepond--image-preview-overlay-${i.status}`),t.element.innerHTML=a.replace(/__UID__/g,Yr)},mixins:{styles:["opacity"],animations:{opacity:{type:"spring",mass:25}}}}),wh=function(){self.onmessage=e=>{createImageBitmap(e.data.message.file).then(t=>{self.postMessage({id:e.data.id,message:t},[t])})}},vh=function(){self.onmessage=e=>{let t=e.data.message.imageData,i=e.data.message.colorMatrix,a=t.data,n=a.length,r=i[0],o=i[1],l=i[2],s=i[3],u=i[4],c=i[5],d=i[6],h=i[7],f=i[8],p=i[9],m=i[10],g=i[11],b=i[12],E=i[13],T=i[14],_=i[15],y=i[16],I=i[17],v=i[18],R=i[19],S=0,D=0,x=0,O=0,B=0;for(;S{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t(a,n)},i.src=e},Lh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},Mh=(e,t,i,a)=>{a!==-1&&e.transform.apply(e,Lh[a](t,i))},Oh=(e,t,i,a)=>{t=Math.round(t),i=Math.round(i);let n=document.createElement("canvas");n.width=t,n.height=i;let r=n.getContext("2d");return a>=5&&a<=8&&([t,i]=[i,t]),Mh(r,t,i,a),r.drawImage(e,0,0,t,i),n},Xr=e=>/^image/.test(e.type)&&!/svg/.test(e.type),xh=10,Dh=10,Ph=e=>{let t=Math.min(xh/e.width,Dh/e.height),i=document.createElement("canvas"),a=i.getContext("2d"),n=i.width=Math.ceil(e.width*t),r=i.height=Math.ceil(e.height*t);a.drawImage(e,0,0,n,r);let o=null;try{o=a.getImageData(0,0,n,r).data}catch{return null}let l=o.length,s=0,u=0,c=0,d=0;for(;dMath.floor(Math.sqrt(e/(t/4))),Fh=(e,t)=>(t=t||document.createElement("canvas"),t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t),Ch=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t},zh=e=>new Promise((t,i)=>{let a=new Image;a.crossOrigin="Anonymous",a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Nh=e=>{let t=Sh(e),i=Rh(e),{createWorker:a}=e.utils,n=(E,T,_)=>new Promise(y=>{E.ref.imageData||(E.ref.imageData=_.getContext("2d").getImageData(0,0,_.width,_.height));let I=Ch(E.ref.imageData);if(!T||T.length!==20)return _.getContext("2d").putImageData(I,0,0),y();let v=a(vh);v.post({imageData:I,colorMatrix:T},R=>{_.getContext("2d").putImageData(R,0,0),v.terminate(),y()},[I.data.buffer])}),r=(E,T)=>{E.removeChildView(T),T.image.width=1,T.image.height=1,T._destroy()},o=({root:E})=>{let T=E.ref.images.shift();return T.opacity=0,T.translateY=-15,E.ref.imageViewBin.push(T),T},l=({root:E,props:T,image:_})=>{let y=T.id,I=E.query("GET_ITEM",{id:y});if(!I)return;let v=I.getMetadata("crop")||{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},R=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),S,D,x=!1;E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(S=I.getMetadata("markup")||[],D=I.getMetadata("resize"),x=!0);let O=E.appendChildView(E.createChildView(i,{id:y,image:_,crop:v,resize:D,markup:S,dirty:x,background:R,opacity:0,scaleX:1.15,scaleY:1.15,translateY:15}),E.childViews.length);E.ref.images.push(O),O.opacity=1,O.scaleX=1,O.scaleY=1,O.translateY=0,setTimeout(()=>{E.dispatch("DID_IMAGE_PREVIEW_SHOW",{id:y})},250)},s=({root:E,props:T})=>{let _=E.query("GET_ITEM",{id:T.id});if(!_)return;let y=E.ref.images[E.ref.images.length-1];y.crop=_.getMetadata("crop"),y.background=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(y.dirty=!0,y.resize=_.getMetadata("resize"),y.markup=_.getMetadata("markup"))},u=({root:E,props:T,action:_})=>{if(!/crop|filter|markup|resize/.test(_.change.key)||!E.ref.images.length)return;let y=E.query("GET_ITEM",{id:T.id});if(y){if(/filter/.test(_.change.key)){let I=E.ref.images[E.ref.images.length-1];n(E,_.change.value,I.image);return}if(/crop|markup|resize/.test(_.change.key)){let I=y.getMetadata("crop"),v=E.ref.images[E.ref.images.length-1];if(I&&I.aspectRatio&&v.crop&&v.crop.aspectRatio&&Math.abs(I.aspectRatio-v.crop.aspectRatio)>1e-5){let R=o({root:E});l({root:E,props:T,image:Fh(R.image)})}else s({root:E,props:T})}}},c=E=>{let _=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./);return(_?parseInt(_[1]):null)<=58?!1:"createImageBitmap"in window&&Xr(E)},d=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file);Ah(I,(v,R)=>{E.dispatch("DID_IMAGE_PREVIEW_CALCULATE_SIZE",{id:_,width:v,height:R})})},h=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file),v=()=>{zh(I).then(R)},R=S=>{URL.revokeObjectURL(I);let x=(y.getMetadata("exif")||{}).orientation||-1,{width:O,height:B}=S;if(!O||!B)return;x>=5&&x<=8&&([O,B]=[B,O]);let A=Math.max(1,window.devicePixelRatio*.75),w=E.query("GET_IMAGE_PREVIEW_ZOOM_FACTOR")*A,L=B/O,N=E.rect.element.width,P=E.rect.element.height,U=N,V=U*L;L>1?(U=Math.min(O,N*w),V=U*L):(V=Math.min(B,P*w),U=V/L);let q=Oh(S,U,V,x),X=()=>{let se=E.query("GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR")?Ph(data):null;y.setMetadata("color",se,!0),"close"in S&&S.close(),E.ref.overlayShadow.opacity=1,l({root:E,props:T,image:q})},j=y.getMetadata("filter");j?n(E,j,q).then(X):X()};if(c(y.file)){let S=a(wh);S.post({file:y.file},D=>{if(S.terminate(),!D){v();return}R(D)})}else v()},f=({root:E})=>{let T=E.ref.images[E.ref.images.length-1];T.translateY=0,T.scaleX=1,T.scaleY=1,T.opacity=1},p=({root:E})=>{E.ref.overlayShadow.opacity=1,E.ref.overlayError.opacity=0,E.ref.overlaySuccess.opacity=0},m=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlayError.opacity=1},g=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlaySuccess.opacity=1},b=({root:E})=>{E.ref.images=[],E.ref.imageData=null,E.ref.imageViewBin=[],E.ref.overlayShadow=E.appendChildView(E.createChildView(t,{opacity:0,status:"idle"})),E.ref.overlaySuccess=E.appendChildView(E.createChildView(t,{opacity:0,status:"success"})),E.ref.overlayError=E.appendChildView(E.createChildView(t,{opacity:0,status:"failure"}))};return e.utils.createView({name:"image-preview-wrapper",create:b,styles:["height"],apis:["height"],destroy:({root:E})=>{E.ref.images.forEach(T=>{T.image.width=1,T.image.height=1})},didWriteView:({root:E})=>{E.ref.images.forEach(T=>{T.dirty=!1})},write:e.utils.createRoute({DID_IMAGE_PREVIEW_DRAW:f,DID_IMAGE_PREVIEW_CONTAINER_CREATE:d,DID_FINISH_CALCULATE_PREVIEWSIZE:h,DID_UPDATE_ITEM_METADATA:u,DID_THROW_ITEM_LOAD_ERROR:m,DID_THROW_ITEM_PROCESSING_ERROR:m,DID_THROW_ITEM_INVALID:m,DID_COMPLETE_ITEM_PROCESSING:g,DID_START_ITEM_PROCESSING:p,DID_REVERT_ITEM_PROCESSING:p},({root:E})=>{let T=E.ref.imageViewBin.filter(_=>_.opacity===0);E.ref.imageViewBin=E.ref.imageViewBin.filter(_=>_.opacity>0),T.forEach(_=>r(E,_)),T.length=0})})},jr=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n,isFile:r}=i,o=Nh(e);return t("CREATE_VIEW",l=>{let{is:s,view:u,query:c}=l;if(!s("file")||!c("GET_ALLOW_IMAGE_PREVIEW"))return;let d=({root:g,props:b})=>{let{id:E}=b,T=c("GET_ITEM",E);if(!T||!r(T.file)||T.archived)return;let _=T.file;if(!Hu(_)||!c("GET_IMAGE_PREVIEW_FILTER_ITEM")(T))return;let y="createImageBitmap"in(window||{}),I=c("GET_IMAGE_PREVIEW_MAX_FILE_SIZE");if(!y&&I&&_.size>I)return;g.ref.imagePreview=u.appendChildView(u.createChildView(o,{id:E}));let v=g.query("GET_IMAGE_PREVIEW_HEIGHT");v&&g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:v});let R=!y&&_.size>c("GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE");g.dispatch("DID_IMAGE_PREVIEW_CONTAINER_CREATE",{id:E},R)},h=(g,b)=>{if(!g.ref.imagePreview)return;let{id:E}=b,T=g.query("GET_ITEM",{id:E});if(!T)return;let _=g.query("GET_PANEL_ASPECT_RATIO"),y=g.query("GET_ITEM_PANEL_ASPECT_RATIO"),I=g.query("GET_IMAGE_PREVIEW_HEIGHT");if(_||y||I)return;let{imageWidth:v,imageHeight:R}=g.ref;if(!v||!R)return;let S=g.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),D=g.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),O=(T.getMetadata("exif")||{}).orientation||-1;if(O>=5&&O<=8&&([v,R]=[R,v]),!Xr(T.file)||g.query("GET_IMAGE_PREVIEW_UPSCALE")){let N=2048/v;v*=N,R*=N}let B=R/v,A=(T.getMetadata("crop")||{}).aspectRatio||B,F=Math.max(S,Math.min(R,D)),w=g.rect.element.width,L=Math.min(w*A,F);g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:L})},f=({root:g})=>{g.ref.shouldRescale=!0},p=({root:g,action:b})=>{b.change.key==="crop"&&(g.ref.shouldRescale=!0)},m=({root:g,action:b})=>{g.ref.imageWidth=b.width,g.ref.imageHeight=b.height,g.ref.shouldRescale=!0,g.ref.shouldDrawPreview=!0,g.dispatch("KICK")};u.registerWriter(n({DID_RESIZE_ROOT:f,DID_STOP_RESIZE:f,DID_LOAD_ITEM:d,DID_IMAGE_PREVIEW_CALCULATE_SIZE:m,DID_UPDATE_ITEM_METADATA:p},({root:g,props:b})=>{g.ref.imagePreview&&(g.rect.element.hidden||(g.ref.shouldRescale&&(h(g,b),g.ref.shouldRescale=!1),g.ref.shouldDrawPreview&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{g.dispatch("DID_FINISH_CALCULATE_PREVIEWSIZE",{id:b.id})})}),g.ref.shouldDrawPreview=!1)))}))}),{options:{allowImagePreview:[!0,a.BOOLEAN],imagePreviewFilterItem:[()=>!0,a.FUNCTION],imagePreviewHeight:[null,a.INT],imagePreviewMinHeight:[44,a.INT],imagePreviewMaxHeight:[256,a.INT],imagePreviewMaxFileSize:[null,a.INT],imagePreviewZoomFactor:[2,a.INT],imagePreviewUpscale:[!1,a.BOOLEAN],imagePreviewMaxInstantPreviewFileSize:[1e6,a.INT],imagePreviewTransparencyIndicator:[null,a.STRING],imagePreviewCalculateAverageImageColor:[!1,a.BOOLEAN],imagePreviewMarkupShow:[!0,a.BOOLEAN],imagePreviewMarkupFilter:[()=>!0,a.FUNCTION]}}},Bh=typeof window<"u"&&typeof window.document<"u";Bh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:jr}));var Qr=jr;var Gh=e=>/^image/.test(e.type),Vh=(e,t)=>{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t({width:a,height:n})},i.onerror=()=>t(null),i.src=e},Zr=({addFilter:e,utils:t})=>{let{Type:i}=t;return e("DID_LOAD_ITEM",(a,{query:n})=>new Promise((r,o)=>{let l=a.file;if(!Gh(l)||!n("GET_ALLOW_IMAGE_RESIZE"))return r(a);let s=n("GET_IMAGE_RESIZE_MODE"),u=n("GET_IMAGE_RESIZE_TARGET_WIDTH"),c=n("GET_IMAGE_RESIZE_TARGET_HEIGHT"),d=n("GET_IMAGE_RESIZE_UPSCALE");if(u===null&&c===null)return r(a);let h=u===null?c:u,f=c===null?h:c,p=URL.createObjectURL(l);Vh(p,m=>{if(URL.revokeObjectURL(p),!m)return r(a);let{width:g,height:b}=m,E=(a.getMetadata("exif")||{}).orientation||-1;if(E>=5&&E<=8&&([g,b]=[b,g]),g===h&&b===f)return r(a);if(!d){if(s==="cover"){if(g<=h||b<=f)return r(a)}else if(g<=h&&b<=h)return r(a)}a.setMetadata("resize",{mode:s,upscale:d,size:{width:h,height:f}}),r(a)})})),{options:{allowImageResize:[!0,i.BOOLEAN],imageResizeMode:["cover",i.STRING],imageResizeUpscale:[!0,i.BOOLEAN],imageResizeTargetWidth:[null,i.INT],imageResizeTargetHeight:[null,i.INT]}}},Uh=typeof window<"u"&&typeof window.document<"u";Uh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Zr}));var Kr=Zr;var kh=e=>/^image/.test(e.type),Hh=e=>e.substr(0,e.lastIndexOf("."))||e,Wh={jpeg:"jpg","svg+xml":"svg"},Yh=(e,t)=>{let i=Hh(e),a=t.split("/")[1],n=Wh[a]||a;return`${i}.${n}`},$h=e=>/jpeg|png|svg\+xml/.test(e)?e:"image/jpeg",qh=e=>/^image/.test(e.type),Xh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},jh=(e,t,i)=>(i===-1&&(i=1),Xh[i](e,t)),Gt=(e,t)=>({x:e,y:t}),Qh=(e,t)=>e.x*t.x+e.y*t.y,Jr=(e,t)=>Gt(e.x-t.x,e.y-t.y),Zh=(e,t)=>Qh(Jr(e,t),Jr(e,t)),eo=(e,t)=>Math.sqrt(Zh(e,t)),to=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Gt(u*d,u*h)},Kh=(e,t)=>{let i=e.width,a=e.height,n=to(i,t),r=to(a,t),o=Gt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Gt(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Gt(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:eo(o,l),height:eo(o,s)}},no=(e,t,i=0,a={x:.5,y:.5})=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=Kh(t,i);return Math.max(s.width/o,s.height/l)},ro=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},io=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},oo=e=>{e.width=1,e.height=1,e.getContext("2d").clearRect(0,0,1,1)},ao=e=>e&&(e.horizontal||e.vertical),Jh=(e,t,i)=>{if(t<=1&&!ao(i))return e.width=e.naturalWidth,e.height=e.naturalHeight,e;let a=document.createElement("canvas"),n=e.naturalWidth,r=e.naturalHeight,o=t>=5&&t<=8;o?(a.width=r,a.height=n):(a.width=n,a.height=r);let l=a.getContext("2d");if(t&&l.transform.apply(l,jh(n,r,t)),ao(i)){let s=[1,0,0,1,0,0];(!o&&i.horizontal||o&i.vertical)&&(s[0]=-1,s[4]=n),(!o&&i.vertical||o&&i.horizontal)&&(s[3]=-1,s[5]=r),l.transform(...s)}return l.drawImage(e,0,0,n,r),a},ef=(e,t,i={},a={})=>{let{canvasMemoryLimit:n,background:r=null}=a,o=i.zoom||1,l=Jh(e,t,i.flip),s={width:l.width,height:l.height},u=i.aspectRatio||s.height/s.width,c=io(s,u,o);if(n){let T=c.width*c.height;if(T>n){let _=Math.sqrt(n)/Math.sqrt(T);s.width=Math.floor(s.width*_),s.height=Math.floor(s.height*_),c=io(s,u,o)}}let d=document.createElement("canvas"),h={x:c.width*.5,y:c.height*.5},f={x:0,y:0,width:c.width,height:c.height,center:h},p=typeof i.scaleToFit>"u"||i.scaleToFit,m=o*no(s,ro(f,u),i.rotation,p?i.center:{x:.5,y:.5});d.width=Math.round(c.width/m),d.height=Math.round(c.height/m),h.x/=m,h.y/=m;let g={x:h.x-s.width*(i.center?i.center.x:.5),y:h.y-s.height*(i.center?i.center.y:.5)},b=d.getContext("2d");r&&(b.fillStyle=r,b.fillRect(0,0,d.width,d.height)),b.translate(h.x,h.y),b.rotate(i.rotation||0),b.drawImage(l,g.x-h.x,g.y-h.y,s.width,s.height);let E=b.getImageData(0,0,d.width,d.height);return oo(d),E},tf=(()=>typeof window<"u"&&typeof window.document<"u")();tf&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){var a=this.toDataURL(t,i).split(",")[1];setTimeout(function(){for(var n=atob(a),r=n.length,o=new Uint8Array(r),l=0;lnew Promise(a=>{let n=i?i(e):e;Promise.resolve(n).then(r=>{r.toBlob(a,t.type,t.quality)})}),gi=(e,t)=>Vt(e.x*t,e.y*t),Ei=(e,t)=>Vt(e.x+t.x,e.y+t.y),lo=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Vt(e.x/t,e.y/t)},ke=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=Vt(e.x-i.x,e.y-i.y);return Vt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},Vt=(e=0,t=0)=>({x:e,y:t}),ce=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},it=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=ce(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>ce(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},Se=e=>e!=null,It=(e,t,i=1)=>{let a=ce(e.x,t,i,"width")||ce(e.left,t,i,"width"),n=ce(e.y,t,i,"height")||ce(e.top,t,i,"height"),r=ce(e.width,t,i,"width"),o=ce(e.height,t,i,"height"),l=ce(e.right,t,i,"width"),s=ce(e.bottom,t,i,"height");return Se(n)||(Se(o)&&Se(s)?n=t.height-o-s:n=s),Se(a)||(Se(r)&&Se(l)?a=t.width-r-l:a=l),Se(r)||(Se(a)&&Se(l)?r=t.width-a-l:r=0),Se(o)||(Se(n)&&Se(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},nf=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Pe=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),rf="http://www.w3.org/2000/svg",Tt=(e,t)=>{let i=document.createElementNS(rf,e);return t&&Pe(i,t),i},of=e=>Pe(e,{...e.rect,...e.styles}),lf=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Pe(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},sf={contain:"xMidYMid meet",cover:"xMidYMid slice"},cf=(e,t)=>{Pe(e,{...e.rect,...e.styles,preserveAspectRatio:sf[t.fit]||"none"})},df={left:"start",center:"middle",right:"end"},uf=(e,t,i,a)=>{let n=ce(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=df[t.textAlign]||"start";Pe(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},hf=(e,t,i,a)=>{Pe(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Pe(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=lo({x:s.x-l.x,y:s.y-l.y}),c=ce(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=gi(u,c),h=Ei(l,d),f=ke(l,2,h),p=ke(l,-2,h);Pe(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=gi(u,-c),h=Ei(s,d),f=ke(s,2,h),p=ke(s,-2,h);Pe(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},ff=(e,t,i,a)=>{Pe(e,{...e.styles,fill:"none",d:nf(t.points.map(n=>({x:ce(n.x,i,a,"width"),y:ce(n.y,i,a,"height")})))})},mi=e=>t=>Tt(e,{id:t.id}),pf=e=>{let t=Tt("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},mf=e=>{let t=Tt("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=Tt("line");t.appendChild(i);let a=Tt("path");t.appendChild(a);let n=Tt("path");return t.appendChild(n),t},gf={image:pf,rect:mi("rect"),ellipse:mi("ellipse"),text:mi("text"),path:mi("path"),line:mf},Ef={rect:of,ellipse:lf,image:cf,text:uf,path:ff,line:hf},Tf=(e,t)=>gf[e](t),If=(e,t,i,a,n)=>{t!=="path"&&(e.rect=It(i,a,n)),e.styles=it(i,a,n),Ef[t](e,i,a,n)},so=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexnew Promise(n=>{let{background:r=null}=a,o=new FileReader;o.onloadend=()=>{let l=o.result,s=document.createElement("div");s.style.cssText="position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;",s.innerHTML=l;let u=s.querySelector("svg");document.body.appendChild(s);let c=u.getBBox();s.parentNode.removeChild(s);let d=s.querySelector("title"),h=u.getAttribute("viewBox")||"",f=u.getAttribute("width")||"",p=u.getAttribute("height")||"",m=parseFloat(f)||null,g=parseFloat(p)||null,b=(f.match(/[a-z]+/)||[])[0]||"",E=(p.match(/[a-z]+/)||[])[0]||"",T=h.split(" ").map(parseFloat),_=T.length?{x:T[0],y:T[1],width:T[2],height:T[3]}:c,y=m??_.width,I=g??_.height;u.style.overflow="visible",u.setAttribute("width",y),u.setAttribute("height",I);let v="";if(i&&i.length){let j={width:y,height:I};v=i.sort(so).reduce((se,k)=>{let W=Tf(k[0],k[1]);return If(W,k[0],k[1],j),W.removeAttribute("id"),W.getAttribute("opacity")===1&&W.removeAttribute("opacity"),se+` +`,qr=0,vh=e=>e.utils.createView({name:"image-preview-overlay",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let a=wh;if(document.querySelector("base")){let n=new URL(window.location.href.replace(window.location.hash,"")).href;a=a.replace(/url\(\#/g,"url("+n+"#")}qr++,t.element.classList.add(`filepond--image-preview-overlay-${i.status}`),t.element.innerHTML=a.replace(/__UID__/g,qr)},mixins:{styles:["opacity"],animations:{opacity:{type:"spring",mass:25}}}}),Ah=function(){self.onmessage=e=>{createImageBitmap(e.data.message.file).then(t=>{self.postMessage({id:e.data.id,message:t},[t])})}},Lh=function(){self.onmessage=e=>{let t=e.data.message.imageData,i=e.data.message.colorMatrix,a=t.data,n=a.length,r=i[0],o=i[1],l=i[2],s=i[3],u=i[4],c=i[5],d=i[6],h=i[7],f=i[8],p=i[9],m=i[10],g=i[11],b=i[12],E=i[13],T=i[14],_=i[15],y=i[16],I=i[17],v=i[18],R=i[19],S=0,D=0,x=0,O=0,z=0;for(;S{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t(a,n)},i.src=e},Oh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},xh=(e,t,i,a)=>{a!==-1&&e.transform.apply(e,Oh[a](t,i))},Dh=(e,t,i,a)=>{t=Math.round(t),i=Math.round(i);let n=document.createElement("canvas");n.width=t,n.height=i;let r=n.getContext("2d");return a>=5&&a<=8&&([t,i]=[i,t]),xh(r,t,i,a),r.drawImage(e,0,0,t,i),n},Qr=e=>/^image/.test(e.type)&&!/svg/.test(e.type),Ph=10,Fh=10,Ch=e=>{let t=Math.min(Ph/e.width,Fh/e.height),i=document.createElement("canvas"),a=i.getContext("2d"),n=i.width=Math.ceil(e.width*t),r=i.height=Math.ceil(e.height*t);a.drawImage(e,0,0,n,r);let o=null;try{o=a.getImageData(0,0,n,r).data}catch{return null}let l=o.length,s=0,u=0,c=0,d=0;for(;dMath.floor(Math.sqrt(e/(t/4))),zh=(e,t)=>(t=t||document.createElement("canvas"),t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t),Nh=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t},Bh=e=>new Promise((t,i)=>{let a=new Image;a.crossOrigin="Anonymous",a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Gh=e=>{let t=vh(e),i=Sh(e),{createWorker:a}=e.utils,n=(E,T,_)=>new Promise(y=>{E.ref.imageData||(E.ref.imageData=_.getContext("2d").getImageData(0,0,_.width,_.height));let I=Nh(E.ref.imageData);if(!T||T.length!==20)return _.getContext("2d").putImageData(I,0,0),y();let v=a(Lh);v.post({imageData:I,colorMatrix:T},R=>{_.getContext("2d").putImageData(R,0,0),v.terminate(),y()},[I.data.buffer])}),r=(E,T)=>{E.removeChildView(T),T.image.width=1,T.image.height=1,T._destroy()},o=({root:E})=>{let T=E.ref.images.shift();return T.opacity=0,T.translateY=-15,E.ref.imageViewBin.push(T),T},l=({root:E,props:T,image:_})=>{let y=T.id,I=E.query("GET_ITEM",{id:y});if(!I)return;let v=I.getMetadata("crop")||{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},R=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),S,D,x=!1;E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(S=I.getMetadata("markup")||[],D=I.getMetadata("resize"),x=!0);let O=E.appendChildView(E.createChildView(i,{id:y,image:_,crop:v,resize:D,markup:S,dirty:x,background:R,opacity:0,scaleX:1.15,scaleY:1.15,translateY:15}),E.childViews.length);E.ref.images.push(O),O.opacity=1,O.scaleX=1,O.scaleY=1,O.translateY=0,setTimeout(()=>{E.dispatch("DID_IMAGE_PREVIEW_SHOW",{id:y})},250)},s=({root:E,props:T})=>{let _=E.query("GET_ITEM",{id:T.id});if(!_)return;let y=E.ref.images[E.ref.images.length-1];y.crop=_.getMetadata("crop"),y.background=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(y.dirty=!0,y.resize=_.getMetadata("resize"),y.markup=_.getMetadata("markup"))},u=({root:E,props:T,action:_})=>{if(!/crop|filter|markup|resize/.test(_.change.key)||!E.ref.images.length)return;let y=E.query("GET_ITEM",{id:T.id});if(y){if(/filter/.test(_.change.key)){let I=E.ref.images[E.ref.images.length-1];n(E,_.change.value,I.image);return}if(/crop|markup|resize/.test(_.change.key)){let I=y.getMetadata("crop"),v=E.ref.images[E.ref.images.length-1];if(I&&I.aspectRatio&&v.crop&&v.crop.aspectRatio&&Math.abs(I.aspectRatio-v.crop.aspectRatio)>1e-5){let R=o({root:E});l({root:E,props:T,image:zh(R.image)})}else s({root:E,props:T})}}},c=E=>{let _=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./),y=_?parseInt(_[1]):null;return y!==null&&y<=58?!1:"createImageBitmap"in window&&Qr(E)},d=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file);Mh(I,(v,R)=>{E.dispatch("DID_IMAGE_PREVIEW_CALCULATE_SIZE",{id:_,width:v,height:R})})},h=({root:E,props:T})=>{let{id:_}=T,y=E.query("GET_ITEM",_);if(!y)return;let I=URL.createObjectURL(y.file),v=()=>{Bh(I).then(R)},R=S=>{URL.revokeObjectURL(I);let x=(y.getMetadata("exif")||{}).orientation||-1,{width:O,height:z}=S;if(!O||!z)return;x>=5&&x<=8&&([O,z]=[z,O]);let A=Math.max(1,window.devicePixelRatio*.75),w=E.query("GET_IMAGE_PREVIEW_ZOOM_FACTOR")*A,L=z/O,C=E.rect.element.width,P=E.rect.element.height,V=C,G=V*L;L>1?(V=Math.min(O,C*w),G=V*L):(G=Math.min(z,P*w),V=G/L);let q=Dh(S,V,G,x),X=()=>{let de=E.query("GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR")?Ch(data):null;y.setMetadata("color",de,!0),"close"in S&&S.close(),E.ref.overlayShadow.opacity=1,l({root:E,props:T,image:q})},j=y.getMetadata("filter");j?n(E,j,q).then(X):X()};if(c(y.file)){let S=a(Ah);S.post({file:y.file},D=>{if(S.terminate(),!D){v();return}R(D)})}else v()},f=({root:E})=>{let T=E.ref.images[E.ref.images.length-1];T.translateY=0,T.scaleX=1,T.scaleY=1,T.opacity=1},p=({root:E})=>{E.ref.overlayShadow.opacity=1,E.ref.overlayError.opacity=0,E.ref.overlaySuccess.opacity=0},m=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlayError.opacity=1},g=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlaySuccess.opacity=1},b=({root:E})=>{E.ref.images=[],E.ref.imageData=null,E.ref.imageViewBin=[],E.ref.overlayShadow=E.appendChildView(E.createChildView(t,{opacity:0,status:"idle"})),E.ref.overlaySuccess=E.appendChildView(E.createChildView(t,{opacity:0,status:"success"})),E.ref.overlayError=E.appendChildView(E.createChildView(t,{opacity:0,status:"failure"}))};return e.utils.createView({name:"image-preview-wrapper",create:b,styles:["height"],apis:["height"],destroy:({root:E})=>{E.ref.images.forEach(T=>{T.image.width=1,T.image.height=1})},didWriteView:({root:E})=>{E.ref.images.forEach(T=>{T.dirty=!1})},write:e.utils.createRoute({DID_IMAGE_PREVIEW_DRAW:f,DID_IMAGE_PREVIEW_CONTAINER_CREATE:d,DID_FINISH_CALCULATE_PREVIEWSIZE:h,DID_UPDATE_ITEM_METADATA:u,DID_THROW_ITEM_LOAD_ERROR:m,DID_THROW_ITEM_PROCESSING_ERROR:m,DID_THROW_ITEM_INVALID:m,DID_COMPLETE_ITEM_PROCESSING:g,DID_START_ITEM_PROCESSING:p,DID_REVERT_ITEM_PROCESSING:p},({root:E})=>{let T=E.ref.imageViewBin.filter(_=>_.opacity===0);E.ref.imageViewBin=E.ref.imageViewBin.filter(_=>_.opacity>0),T.forEach(_=>r(E,_)),T.length=0})})},Zr=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n,isFile:r}=i,o=Gh(e);return t("CREATE_VIEW",l=>{let{is:s,view:u,query:c}=l;if(!s("file")||!c("GET_ALLOW_IMAGE_PREVIEW"))return;let d=({root:g,props:b})=>{let{id:E}=b,T=c("GET_ITEM",E);if(!T||!r(T.file)||T.archived)return;let _=T.file;if(!Yu(_)||!c("GET_IMAGE_PREVIEW_FILTER_ITEM")(T))return;let y="createImageBitmap"in(window||{}),I=c("GET_IMAGE_PREVIEW_MAX_FILE_SIZE");if(!y&&I&&_.size>I)return;g.ref.imagePreview=u.appendChildView(u.createChildView(o,{id:E}));let v=g.query("GET_IMAGE_PREVIEW_HEIGHT");v&&g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:v});let R=!y&&_.size>c("GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE");g.dispatch("DID_IMAGE_PREVIEW_CONTAINER_CREATE",{id:E},R)},h=(g,b)=>{if(!g.ref.imagePreview)return;let{id:E}=b,T=g.query("GET_ITEM",{id:E});if(!T)return;let _=g.query("GET_PANEL_ASPECT_RATIO"),y=g.query("GET_ITEM_PANEL_ASPECT_RATIO"),I=g.query("GET_IMAGE_PREVIEW_HEIGHT");if(_||y||I)return;let{imageWidth:v,imageHeight:R}=g.ref;if(!v||!R)return;let S=g.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),D=g.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),O=(T.getMetadata("exif")||{}).orientation||-1;if(O>=5&&O<=8&&([v,R]=[R,v]),!Qr(T.file)||g.query("GET_IMAGE_PREVIEW_UPSCALE")){let C=2048/v;v*=C,R*=C}let z=R/v,A=(T.getMetadata("crop")||{}).aspectRatio||z,F=Math.max(S,Math.min(R,D)),w=g.rect.element.width,L=Math.min(w*A,F);g.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:L})},f=({root:g})=>{g.ref.shouldRescale=!0},p=({root:g,action:b})=>{b.change.key==="crop"&&(g.ref.shouldRescale=!0)},m=({root:g,action:b})=>{g.ref.imageWidth=b.width,g.ref.imageHeight=b.height,g.ref.shouldRescale=!0,g.ref.shouldDrawPreview=!0,g.dispatch("KICK")};u.registerWriter(n({DID_RESIZE_ROOT:f,DID_STOP_RESIZE:f,DID_LOAD_ITEM:d,DID_IMAGE_PREVIEW_CALCULATE_SIZE:m,DID_UPDATE_ITEM_METADATA:p},({root:g,props:b})=>{g.ref.imagePreview&&(g.rect.element.hidden||(g.ref.shouldRescale&&(h(g,b),g.ref.shouldRescale=!1),g.ref.shouldDrawPreview&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{g.dispatch("DID_FINISH_CALCULATE_PREVIEWSIZE",{id:b.id})})}),g.ref.shouldDrawPreview=!1)))}))}),{options:{allowImagePreview:[!0,a.BOOLEAN],imagePreviewFilterItem:[()=>!0,a.FUNCTION],imagePreviewHeight:[null,a.INT],imagePreviewMinHeight:[44,a.INT],imagePreviewMaxHeight:[256,a.INT],imagePreviewMaxFileSize:[null,a.INT],imagePreviewZoomFactor:[2,a.INT],imagePreviewUpscale:[!1,a.BOOLEAN],imagePreviewMaxInstantPreviewFileSize:[1e6,a.INT],imagePreviewTransparencyIndicator:[null,a.STRING],imagePreviewCalculateAverageImageColor:[!1,a.BOOLEAN],imagePreviewMarkupShow:[!0,a.BOOLEAN],imagePreviewMarkupFilter:[()=>!0,a.FUNCTION]}}},Vh=typeof window<"u"&&typeof window.document<"u";Vh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Zr}));var Kr=Zr;var Uh=e=>/^image/.test(e.type),kh=(e,t)=>{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t({width:a,height:n})},i.onerror=()=>t(null),i.src=e},Jr=({addFilter:e,utils:t})=>{let{Type:i}=t;return e("DID_LOAD_ITEM",(a,{query:n})=>new Promise((r,o)=>{let l=a.file;if(!Uh(l)||!n("GET_ALLOW_IMAGE_RESIZE"))return r(a);let s=n("GET_IMAGE_RESIZE_MODE"),u=n("GET_IMAGE_RESIZE_TARGET_WIDTH"),c=n("GET_IMAGE_RESIZE_TARGET_HEIGHT"),d=n("GET_IMAGE_RESIZE_UPSCALE");if(u===null&&c===null)return r(a);let h=u===null?c:u,f=c===null?h:c,p=URL.createObjectURL(l);kh(p,m=>{if(URL.revokeObjectURL(p),!m)return r(a);let{width:g,height:b}=m,E=(a.getMetadata("exif")||{}).orientation||-1;if(E>=5&&E<=8&&([g,b]=[b,g]),g===h&&b===f)return r(a);if(!d){if(s==="cover"){if(g<=h||b<=f)return r(a)}else if(g<=h&&b<=h)return r(a)}a.setMetadata("resize",{mode:s,upscale:d,size:{width:h,height:f}}),r(a)})})),{options:{allowImageResize:[!0,i.BOOLEAN],imageResizeMode:["cover",i.STRING],imageResizeUpscale:[!0,i.BOOLEAN],imageResizeTargetWidth:[null,i.INT],imageResizeTargetHeight:[null,i.INT]}}},Hh=typeof window<"u"&&typeof window.document<"u";Hh&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Jr}));var eo=Jr;var Wh=e=>/^image/.test(e.type),Yh=e=>e.substr(0,e.lastIndexOf("."))||e,$h={jpeg:"jpg","svg+xml":"svg"},qh=(e,t)=>{let i=Yh(e),a=t.split("/")[1],n=$h[a]||a;return`${i}.${n}`},Xh=e=>/jpeg|png|svg\+xml/.test(e)?e:"image/jpeg",jh=e=>/^image/.test(e.type),Qh={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},Zh=(e,t,i)=>(i===-1&&(i=1),Qh[i](e,t)),Ut=(e,t)=>({x:e,y:t}),Kh=(e,t)=>e.x*t.x+e.y*t.y,to=(e,t)=>Ut(e.x-t.x,e.y-t.y),Jh=(e,t)=>Kh(to(e,t),to(e,t)),io=(e,t)=>Math.sqrt(Jh(e,t)),ao=(e,t)=>{let i=e,a=1.5707963267948966,n=t,r=1.5707963267948966-t,o=Math.sin(a),l=Math.sin(n),s=Math.sin(r),u=Math.cos(r),c=i/o,d=c*l,h=c*s;return Ut(u*d,u*h)},ef=(e,t)=>{let i=e.width,a=e.height,n=ao(i,t),r=ao(a,t),o=Ut(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),l=Ut(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),s=Ut(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:io(o,l),height:io(o,s)}},oo=(e,t,i=0,a={x:.5,y:.5})=>{let n=a.x>.5?1-a.x:a.x,r=a.y>.5?1-a.y:a.y,o=n*2*e.width,l=r*2*e.height,s=ef(t,i);return Math.max(s.width/o,s.height/l)},lo=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,r=(e.height-a)*.5;return{x:n,y:r,width:i,height:a}},no=(e,t,i=1)=>{let a=e.height/e.width,n=1,r=t,o=1,l=a;l>r&&(l=r,o=l/a);let s=Math.max(n/o,r/l),u=e.width/(i*s*o),c=u*t;return{width:u,height:c}},so=e=>{e.width=1,e.height=1,e.getContext("2d").clearRect(0,0,1,1)},ro=e=>e&&(e.horizontal||e.vertical),tf=(e,t,i)=>{if(t<=1&&!ro(i))return e.width=e.naturalWidth,e.height=e.naturalHeight,e;let a=document.createElement("canvas"),n=e.naturalWidth,r=e.naturalHeight,o=t>=5&&t<=8;o?(a.width=r,a.height=n):(a.width=n,a.height=r);let l=a.getContext("2d");if(t&&l.transform.apply(l,Zh(n,r,t)),ro(i)){let s=[1,0,0,1,0,0];(!o&&i.horizontal||o&i.vertical)&&(s[0]=-1,s[4]=n),(!o&&i.vertical||o&&i.horizontal)&&(s[3]=-1,s[5]=r),l.transform(...s)}return l.drawImage(e,0,0,n,r),a},af=(e,t,i={},a={})=>{let{canvasMemoryLimit:n,background:r=null}=a,o=i.zoom||1,l=tf(e,t,i.flip),s={width:l.width,height:l.height},u=i.aspectRatio||s.height/s.width,c=no(s,u,o);if(n){let T=c.width*c.height;if(T>n){let _=Math.sqrt(n)/Math.sqrt(T);s.width=Math.floor(s.width*_),s.height=Math.floor(s.height*_),c=no(s,u,o)}}let d=document.createElement("canvas"),h={x:c.width*.5,y:c.height*.5},f={x:0,y:0,width:c.width,height:c.height,center:h},p=typeof i.scaleToFit>"u"||i.scaleToFit,m=o*oo(s,lo(f,u),i.rotation,p?i.center:{x:.5,y:.5});d.width=Math.round(c.width/m),d.height=Math.round(c.height/m),h.x/=m,h.y/=m;let g={x:h.x-s.width*(i.center?i.center.x:.5),y:h.y-s.height*(i.center?i.center.y:.5)},b=d.getContext("2d");r&&(b.fillStyle=r,b.fillRect(0,0,d.width,d.height)),b.translate(h.x,h.y),b.rotate(i.rotation||0),b.drawImage(l,g.x-h.x,g.y-h.y,s.width,s.height);let E=b.getImageData(0,0,d.width,d.height);return so(d),E},nf=(()=>typeof window<"u"&&typeof window.document<"u")();nf&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){var a=this.toDataURL(t,i).split(",")[1];setTimeout(function(){for(var n=atob(a),r=n.length,o=new Uint8Array(r),l=0;lnew Promise(a=>{let n=i?i(e):e;Promise.resolve(n).then(r=>{r.toBlob(a,t.type,t.quality)})}),Ti=(e,t)=>kt(e.x*t,e.y*t),Ii=(e,t)=>kt(e.x+t.x,e.y+t.y),co=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:kt(e.x/t,e.y/t)},We=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),r=kt(e.x-i.x,e.y-i.y);return kt(i.x+a*r.x-n*r.y,i.y+n*r.x+a*r.y)},kt=(e=0,t=0)=>({x:e,y:t}),ue=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},nt=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",o=ue(e.borderWidth||e.lineWidth,t,i),l=e.lineCap||"round",s=e.lineJoin||"round",u=typeof a=="string"?"":a.map(d=>ue(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":l,"stroke-linejoin":s,"stroke-width":o||0,"stroke-dasharray":u,stroke:r,fill:n,opacity:c}},ve=e=>e!=null,_t=(e,t,i=1)=>{let a=ue(e.x,t,i,"width")||ue(e.left,t,i,"width"),n=ue(e.y,t,i,"height")||ue(e.top,t,i,"height"),r=ue(e.width,t,i,"width"),o=ue(e.height,t,i,"height"),l=ue(e.right,t,i,"width"),s=ue(e.bottom,t,i,"height");return ve(n)||(ve(o)&&ve(s)?n=t.height-o-s:n=s),ve(a)||(ve(r)&&ve(l)?a=t.width-r-l:a=l),ve(r)||(ve(a)&&ve(l)?r=t.width-a-l:r=0),ve(o)||(ve(n)&&ve(s)?o=t.height-n-s:o=0),{x:a||0,y:n||0,width:r||0,height:o||0}},of=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Ce=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),lf="http://www.w3.org/2000/svg",bt=(e,t)=>{let i=document.createElementNS(lf,e);return t&&Ce(i,t),i},sf=e=>Ce(e,{...e.rect,...e.styles}),cf=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Ce(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},df={contain:"xMidYMid meet",cover:"xMidYMid slice"},uf=(e,t)=>{Ce(e,{...e.rect,...e.styles,preserveAspectRatio:df[t.fit]||"none"})},hf={left:"start",center:"middle",right:"end"},ff=(e,t,i,a)=>{let n=ue(t.fontSize,i,a),r=t.fontFamily||"sans-serif",o=t.fontWeight||"normal",l=hf[t.textAlign]||"start";Ce(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":o,"font-size":n,"font-family":r,"text-anchor":l}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},pf=(e,t,i,a)=>{Ce(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],r=e.childNodes[1],o=e.childNodes[2],l=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Ce(n,{x1:l.x,y1:l.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;r.style.display="none",o.style.display="none";let u=co({x:s.x-l.x,y:s.y-l.y}),c=ue(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=Ti(u,c),h=Ii(l,d),f=We(l,2,h),p=We(l,-2,h);Ce(r,{style:"display:block;",d:`M${f.x},${f.y} L${l.x},${l.y} L${p.x},${p.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=Ti(u,-c),h=Ii(s,d),f=We(s,2,h),p=We(s,-2,h);Ce(o,{style:"display:block;",d:`M${f.x},${f.y} L${s.x},${s.y} L${p.x},${p.y}`})}},mf=(e,t,i,a)=>{Ce(e,{...e.styles,fill:"none",d:of(t.points.map(n=>({x:ue(n.x,i,a,"width"),y:ue(n.y,i,a,"height")})))})},Ei=e=>t=>bt(e,{id:t.id}),gf=e=>{let t=bt("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},Ef=e=>{let t=bt("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=bt("line");t.appendChild(i);let a=bt("path");t.appendChild(a);let n=bt("path");return t.appendChild(n),t},Tf={image:gf,rect:Ei("rect"),ellipse:Ei("ellipse"),text:Ei("text"),path:Ei("path"),line:Ef},If={rect:sf,ellipse:cf,image:uf,text:ff,path:mf,line:pf},bf=(e,t)=>Tf[e](t),_f=(e,t,i,a,n)=>{t!=="path"&&(e.rect=_t(i,a,n)),e.styles=nt(i,a,n),If[t](e,i,a,n)},uo=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexnew Promise(n=>{let{background:r=null}=a,o=new FileReader;o.onloadend=()=>{let l=o.result,s=document.createElement("div");s.style.cssText="position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;",s.innerHTML=l;let u=s.querySelector("svg");document.body.appendChild(s);let c=u.getBBox();s.parentNode.removeChild(s);let d=s.querySelector("title"),h=u.getAttribute("viewBox")||"",f=u.getAttribute("width")||"",p=u.getAttribute("height")||"",m=parseFloat(f)||null,g=parseFloat(p)||null,b=(f.match(/[a-z]+/)||[])[0]||"",E=(p.match(/[a-z]+/)||[])[0]||"",T=h.split(" ").map(parseFloat),_=T.length?{x:T[0],y:T[1],width:T[2],height:T[3]}:c,y=m??_.width,I=g??_.height;u.style.overflow="visible",u.setAttribute("width",y),u.setAttribute("height",I);let v="";if(i&&i.length){let j={width:y,height:I};v=i.sort(uo).reduce((de,U)=>{let W=bf(U[0],U[1]);return _f(W,U[0],U[1],j),W.removeAttribute("id"),W.getAttribute("opacity")===1&&W.removeAttribute("opacity"),de+` `+W.outerHTML+` `},""),v=` ${v.replace(/ /g," ")} -`}let R=t.aspectRatio||I/y,S=y,D=S*R,x=typeof t.scaleToFit>"u"||t.scaleToFit,O=t.center?t.center.x:.5,B=t.center?t.center.y:.5,A=no({width:y,height:I},ro({width:S,height:D},R),t.rotation,x?{x:O,y:B}:{x:.5,y:.5}),F=t.zoom*A,w=t.rotation*(180/Math.PI),L={x:S*.5,y:D*.5},N={x:L.x-y*O,y:L.y-I*B},P=[`rotate(${w} ${L.x} ${L.y})`,`translate(${L.x} ${L.y})`,`scale(${F})`,`translate(${-L.x} ${-L.y})`,`translate(${N.x} ${N.y})`],U=t.flip&&t.flip.horizontal,V=t.flip&&t.flip.vertical,q=[`scale(${U?-1:1} ${V?-1:1})`,`translate(${U?-y:0} ${V?-I:0})`],X=` +`}let R=t.aspectRatio||I/y,S=y,D=S*R,x=typeof t.scaleToFit>"u"||t.scaleToFit,O=t.center?t.center.x:.5,z=t.center?t.center.y:.5,A=oo({width:y,height:I},lo({width:S,height:D},R),t.rotation,x?{x:O,y:z}:{x:.5,y:.5}),F=t.zoom*A,w=t.rotation*(180/Math.PI),L={x:S*.5,y:D*.5},C={x:L.x-y*O,y:L.y-I*z},P=[`rotate(${w} ${L.x} ${L.y})`,`translate(${L.x} ${L.y})`,`scale(${F})`,`translate(${-L.x} ${-L.y})`,`translate(${C.x} ${C.y})`],V=t.flip&&t.flip.horizontal,G=t.flip&&t.flip.vertical,q=[`scale(${V?-1:1} ${G?-1:1})`,`translate(${V?-y:0} ${G?-I:0})`],X=` ${u.outerHTML}${v} -`;n(X)},o.readAsText(e)}),_f=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},Rf=()=>{let e={resize:c,filter:u},t=(d,h)=>(d.forEach(f=>{h=e[f.type](h,f.data)}),h),i=(d,h)=>{let f=d.transforms,p=null;if(f.forEach(m=>{m.type==="filter"&&(p=m)}),p){let m=null;f.forEach(g=>{g.type==="resize"&&(m=g)}),m&&(m.data.matrix=p.data,f=f.filter(g=>g.type!=="filter"))}h(t(f,d.imageData))};self.onmessage=d=>{i(d.data.message,h=>{self.postMessage({id:d.data.id,message:h},[h.data.buffer])})};let a=1,n=1,r=1;function o(d,h,f){let p=h[d]/255,m=h[d+1]/255,g=h[d+2]/255,b=h[d+3]/255,E=p*f[0]+m*f[1]+g*f[2]+b*f[3]+f[4],T=p*f[5]+m*f[6]+g*f[7]+b*f[8]+f[9],_=p*f[10]+m*f[11]+g*f[12]+b*f[13]+f[14],y=p*f[15]+m*f[16]+g*f[17]+b*f[18]+f[19],I=Math.max(0,E*y)+a*(1-y),v=Math.max(0,T*y)+n*(1-y),R=Math.max(0,_*y)+r*(1-y);h[d]=Math.max(0,Math.min(1,I))*255,h[d+1]=Math.max(0,Math.min(1,v))*255,h[d+2]=Math.max(0,Math.min(1,R))*255}let l=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===l}function u(d,h){if(!h||s(h))return d;let f=d.data,p=f.length,m=h[0],g=h[1],b=h[2],E=h[3],T=h[4],_=h[5],y=h[6],I=h[7],v=h[8],R=h[9],S=h[10],D=h[11],x=h[12],O=h[13],B=h[14],A=h[15],F=h[16],w=h[17],L=h[18],N=h[19],P=0,U=0,V=0,q=0,X=0,j=0,se=0,k=0,W=0,C=0,z=0,G=0;for(;P1&&p===!1)return u(d,b);m=d.width*A,g=d.height*A}let E=d.width,T=d.height,_=Math.round(m),y=Math.round(g),I=d.data,v=new Uint8ClampedArray(_*y*4),R=E/_,S=T/y,D=Math.ceil(R*.5),x=Math.ceil(S*.5);for(let O=0;O=-1&&z<=1&&(F=2*z*z*z-3*z*z+1,F>0)){C=4*(W+X*E);let G=I[C+3];V+=F*G,L+=F,G<255&&(F=F*G/250),N+=F*I[C],P+=F*I[C+1],U+=F*I[C+2],w+=F}}}v[A]=N/w,v[A+1]=P/w,v[A+2]=U/w,v[A+3]=V/L,b&&o(A,v,b)}return{data:v,width:_,height:y}}},yf=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,r=!1;for(;i=65504&&a<=65519||a===65534)||(r||(r=yf(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},wf=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(Sf(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),vf=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,Af=(e,t)=>{let i=vf();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Lf=()=>Math.random().toString(36).substr(2,9),Mf=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(r,o,l)=>{let s=Lf();n[s]=o,a.onmessage=u=>{let c=n[u.data.id];c&&(c(u.data.message),delete n[u.data.id])},a.postMessage({id:s,message:r},l)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},Of=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),xf=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),Df=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),r=t.sort(so).map(o=>()=>new Promise(l=>{Gf[o[0]](n,a,o[1],l)&&l()}));xf(r).then(()=>i(e))}),bt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},_t=e=>{e.fill(),e.stroke(),e.globalAlpha=1},Pf=(e,t,i)=>{let a=It(i,t),n=it(i,t);return bt(e,n),e.rect(a.x,a.y,a.width,a.height),_t(e,n),!0},Ff=(e,t,i)=>{let a=It(i,t),n=it(i,t);bt(e,n);let r=a.x,o=a.y,l=a.width,s=a.height,u=.5522848,c=l/2*u,d=s/2*u,h=r+l,f=o+s,p=r+l/2,m=o+s/2;return e.moveTo(r,m),e.bezierCurveTo(r,m-d,p-c,o,p,o),e.bezierCurveTo(p+c,o,h,m-d,h,m),e.bezierCurveTo(h,m+d,p+c,f,p,f),e.bezierCurveTo(p-c,f,r,m+d,r,m),_t(e,n),!0},Cf=(e,t,i,a)=>{let n=It(i,t),r=it(i,t);bt(e,r);let o=new Image;new URL(i.src,window.location.href).origin!==window.location.origin&&(o.crossOrigin=""),o.onload=()=>{if(i.fit==="cover"){let s=n.width/n.height,u=s>1?o.width:o.height*s,c=s>1?o.width/s:o.height,d=o.width*.5-u*.5,h=o.height*.5-c*.5;e.drawImage(o,d,h,u,c,n.x,n.y,n.width,n.height)}else if(i.fit==="contain"){let s=Math.min(n.width/o.width,n.height/o.height),u=s*o.width,c=s*o.height,d=n.x+n.width*.5-u*.5,h=n.y+n.height*.5-c*.5;e.drawImage(o,0,0,o.width,o.height,d,h,u,c)}else e.drawImage(o,0,0,o.width,o.height,n.x,n.y,n.width,n.height);_t(e,r),a()},o.src=i.src},zf=(e,t,i)=>{let a=It(i,t),n=it(i,t);bt(e,n);let r=ce(i.fontSize,t),o=i.fontFamily||"sans-serif",l=i.fontWeight||"normal",s=i.textAlign||"left";return e.font=`${l} ${r}px ${o}`,e.textAlign=s,e.fillText(i.text,a.x,a.y),_t(e,n),!0},Nf=(e,t,i)=>{let a=it(i,t);bt(e,a),e.beginPath();let n=i.points.map(o=>({x:ce(o.x,t,1,"width"),y:ce(o.y,t,1,"height")}));e.moveTo(n[0].x,n[0].y);let r=n.length;for(let o=1;o{let a=It(i,t),n=it(i,t);bt(e,n),e.beginPath();let r={x:a.x,y:a.y},o={x:a.x+a.width,y:a.y+a.height};e.moveTo(r.x,r.y),e.lineTo(o.x,o.y);let l=lo({x:o.x-r.x,y:o.y-r.y}),s=.04*Math.min(t.width,t.height);if(i.lineDecoration.indexOf("arrow-begin")!==-1){let u=gi(l,s),c=Ei(r,u),d=ke(r,2,c),h=ke(r,-2,c);e.moveTo(d.x,d.y),e.lineTo(r.x,r.y),e.lineTo(h.x,h.y)}if(i.lineDecoration.indexOf("arrow-end")!==-1){let u=gi(l,-s),c=Ei(o,u),d=ke(o,2,c),h=ke(o,-2,c);e.moveTo(d.x,d.y),e.lineTo(o.x,o.y),e.lineTo(h.x,h.y)}return _t(e,n),!0},Gf={rect:Pf,ellipse:Ff,image:Cf,text:zf,line:Bf,path:Nf},Vf=e=>{let t=document.createElement("canvas");return t.width=e.width,t.height=e.height,t.getContext("2d").putImageData(e,0,0),t},Uf=(e,t,i={})=>new Promise((a,n)=>{if(!e||!qh(e))return n({status:"not an image file",file:e});let{stripImageHead:r,beforeCreateBlob:o,afterCreateBlob:l,canvasMemoryLimit:s}=i,{crop:u,size:c,filter:d,markup:h,output:f}=t,p=t.image&&t.image.orientation?Math.max(1,Math.min(8,t.image.orientation)):null,m=f&&f.quality,g=m===null?null:m/100,b=f&&f.type||null,E=f&&f.background||null,T=[];c&&(typeof c.width=="number"||typeof c.height=="number")&&T.push({type:"resize",data:c}),d&&d.length===20&&T.push({type:"filter",data:d});let _=v=>{let R=l?l(v):v;Promise.resolve(R).then(a)},y=(v,R)=>{let S=Vf(v),D=h.length?Df(S,h):S;Promise.resolve(D).then(x=>{af(x,R,o).then(O=>{if(oo(x),r)return _(O);wf(e).then(B=>{B!==null&&(O=new Blob([B,O.slice(20)],{type:O.type})),_(O)})}).catch(n)})};if(/svg/.test(e.type)&&b===null)return bf(e,u,h,{background:E}).then(v=>{a(Af(v,"image/svg+xml"))});let I=URL.createObjectURL(e);Of(I).then(v=>{URL.revokeObjectURL(I);let R=ef(v,p,u,{canvasMemoryLimit:s,background:E}),S={quality:g,type:b||e.type};if(!T.length)return y(R,S);let D=Mf(Rf);D.post({transforms:T,imageData:R},x=>{y(_f(x),S),D.terminate()},[R.data.buffer])}).catch(n)}),kf=["x","y","left","top","right","bottom","width","height"],Hf=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,Wf=e=>{let[t,i]=e,a=i.points?{}:kf.reduce((n,r)=>(n[r]=Hf(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},Yf=e=>new Promise((t,i)=>{let a=new Image;a.src=URL.createObjectURL(e);let n=()=>{let o=a.naturalWidth,l=a.naturalHeight;o&&l&&(URL.revokeObjectURL(a.src),clearInterval(r),t({width:o,height:l}))};a.onerror=o=>{URL.revokeObjectURL(a.src),clearInterval(r),i(o)};let r=setInterval(n,1);n()});typeof window<"u"&&typeof window.document<"u"&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){let a=this;setTimeout(()=>{let n=a.toDataURL(t,i).split(",")[1],r=atob(n),o=r.length,l=new Uint8Array(o);for(;o--;)l[o]=r.charCodeAt(o);e(new Blob([l],{type:t||"image/png"}))})}}));var Ta=typeof window<"u"&&typeof window.document<"u",$f=Ta&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,co=({addFilter:e,utils:t})=>{let{Type:i,forin:a,getFileFromBlob:n,isFile:r}=t,o=["crop","resize","filter","markup","output"],l=c=>(d,h,f)=>d(h,c?c(f):f),s=c=>c.aspectRatio===null&&c.rotation===0&&c.zoom===1&&c.center&&c.center.x===.5&&c.center.y===.5&&c.flip&&c.flip.horizontal===!1&&c.flip.vertical===!1;e("SHOULD_PREPARE_OUTPUT",(c,{query:d})=>new Promise(h=>{h(!d("IS_ASYNC"))}));let u=(c,d,h)=>new Promise(f=>{if(!c("GET_ALLOW_IMAGE_TRANSFORM")||h.archived||!r(d)||!kh(d))return f(!1);Yf(d).then(()=>{let p=c("GET_IMAGE_TRANSFORM_IMAGE_FILTER");if(p){let m=p(d);if(m==null)return handleRevert(!0);if(typeof m=="boolean")return f(m);if(typeof m.then=="function")return m.then(f)}f(!0)}).catch(p=>{f(!1)})});return e("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{d("GET_ALLOW_IMAGE_TRANSFORM")&&c.extend("requestPrepare",()=>new Promise((f,p)=>{h("REQUEST_PREPARE_OUTPUT",{query:c.id,item:c,success:f,failure:p},!0)}))}),e("PREPARE_OUTPUT",(c,{query:d,item:h})=>new Promise(f=>{u(d,c,h).then(p=>{if(!p)return f(c);let m=[];d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL")&&m.push(()=>new Promise(R=>{R({name:d("GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME"),file:c})})),d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT")&&m.push((R,S,D)=>new Promise(x=>{R(S,D).then(O=>x({name:d("GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME"),file:O}))}));let g=d("GET_IMAGE_TRANSFORM_VARIANTS")||{};a(g,(R,S)=>{let D=l(S);m.push((x,O,B)=>new Promise(A=>{D(x,O,B).then(F=>A({name:R,file:F}))}))});let b=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY"),E=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE"),T=b===null?null:b/100,_=d("GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE"),y=d("GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS")||o;h.setMetadata("output",{type:_,quality:T,client:y},!0);let I=(R,S)=>new Promise((D,x)=>{let O={...S};Object.keys(O).filter(V=>V!=="exif").forEach(V=>{y.indexOf(V)===-1&&delete O[V]});let{resize:B,exif:A,output:F,crop:w,filter:L,markup:N}=O,P={image:{orientation:A?A.orientation:null},output:F&&(F.type||typeof F.quality=="number"||F.background)?{type:F.type,quality:typeof F.quality=="number"?F.quality*100:null,background:F.background||d("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||null}:void 0,size:B&&(B.size.width||B.size.height)?{mode:B.mode,upscale:B.upscale,...B.size}:void 0,crop:w&&!s(w)?{...w}:void 0,markup:N&&N.length?N.map(Wf):[],filter:L};if(P.output){let V=F.type?F.type!==R.type:!1,q=/\/jpe?g$/.test(R.type),X=F.quality!==null?q&&E==="always":!1;if(!!!(P.size||P.crop||P.filter||V||X))return D(R)}let U={beforeCreateBlob:d("GET_IMAGE_TRANSFORM_BEFORE_CREATE_BLOB"),afterCreateBlob:d("GET_IMAGE_TRANSFORM_AFTER_CREATE_BLOB"),canvasMemoryLimit:d("GET_IMAGE_TRANSFORM_CANVAS_MEMORY_LIMIT"),stripImageHead:d("GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD")};Uf(R,P,U).then(V=>{let q=n(V,Yh(R.name,$h(V.type)));D(q)}).catch(x)}),v=m.map(R=>R(I,c,h.getMetadata()));Promise.all(v).then(R=>{f(R.length===1&&R[0].name===null?R[0].file:R)})})})),{options:{allowImageTransform:[!0,i.BOOLEAN],imageTransformImageFilter:[null,i.FUNCTION],imageTransformOutputMimeType:[null,i.STRING],imageTransformOutputQuality:[null,i.INT],imageTransformOutputStripImageHead:[!0,i.BOOLEAN],imageTransformClientTransforms:[null,i.ARRAY],imageTransformOutputQualityMode:["always",i.STRING],imageTransformVariants:[null,i.OBJECT],imageTransformVariantsIncludeDefault:[!0,i.BOOLEAN],imageTransformVariantsDefaultName:[null,i.STRING],imageTransformVariantsIncludeOriginal:[!1,i.BOOLEAN],imageTransformVariantsOriginalName:["original_",i.STRING],imageTransformBeforeCreateBlob:[null,i.FUNCTION],imageTransformAfterCreateBlob:[null,i.FUNCTION],imageTransformCanvasMemoryLimit:[Ta&&$f?4096*4096:null,i.INT],imageTransformCanvasBackgroundColor:[null,i.STRING]}}};Ta&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:co}));var uo=co;var Ia=e=>/^video/.test(e.type),Ut=e=>/^audio/.test(e.type),ba=class{constructor(t,i){this.mediaEl=t,this.audioElems=i,this.onplayhead=!1,this.duration=0,this.timelineWidth=this.audioElems.timeline.offsetWidth-this.audioElems.playhead.offsetWidth,this.moveplayheadFn=this.moveplayhead.bind(this),this.registerListeners()}registerListeners(){this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1),this.mediaEl.addEventListener("canplaythrough",()=>this.duration=this.mediaEl.duration,!1),this.audioElems.timeline.addEventListener("click",this.timelineClicked.bind(this),!1),this.audioElems.button.addEventListener("click",this.play.bind(this)),this.audioElems.playhead.addEventListener("mousedown",this.mouseDown.bind(this),!1),window.addEventListener("mouseup",this.mouseUp.bind(this),!1)}play(){this.mediaEl.paused?this.mediaEl.play():this.mediaEl.pause(),this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause")}timeUpdate(){let t=this.mediaEl.currentTime/this.duration*100;this.audioElems.playhead.style.marginLeft=t+"%",this.mediaEl.currentTime===this.duration&&(this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause"))}moveplayhead(t){let i=t.clientX-this.getPosition(this.audioElems.timeline);i>=0&&i<=this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=i+"px"),i<0&&(this.audioElems.playhead.style.marginLeft="0px"),i>this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=this.timelineWidth-4+"px")}timelineClicked(t){this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t)}mouseDown(){this.onplayhead=!0,window.addEventListener("mousemove",this.moveplayheadFn,!0),this.mediaEl.removeEventListener("timeupdate",this.timeUpdate.bind(this),!1)}mouseUp(t){window.removeEventListener("mousemove",this.moveplayheadFn,!0),this.onplayhead==!0&&(this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t),this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1)),this.onplayhead=!1}clickPercent(t){return(t.clientX-this.getPosition(this.audioElems.timeline))/this.timelineWidth}getPosition(t){return t.getBoundingClientRect().left}},qf=e=>e.utils.createView({name:"media-preview",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id}),r=Ut(n.file)?"audio":"video";if(t.ref.media=document.createElement(r),t.ref.media.setAttribute("controls",!0),t.element.appendChild(t.ref.media),Ut(n.file)){let o=document.createDocumentFragment();t.ref.audio=[],t.ref.audio.container=document.createElement("div"),t.ref.audio.button=document.createElement("span"),t.ref.audio.timeline=document.createElement("div"),t.ref.audio.playhead=document.createElement("div"),t.ref.audio.container.className="audioplayer",t.ref.audio.button.className="playpausebtn play",t.ref.audio.timeline.className="timeline",t.ref.audio.playhead.className="playhead",t.ref.audio.timeline.appendChild(t.ref.audio.playhead),t.ref.audio.container.appendChild(t.ref.audio.button),t.ref.audio.container.appendChild(t.ref.audio.timeline),o.appendChild(t.ref.audio.container),t.element.appendChild(o)}},write:e.utils.createRoute({DID_MEDIA_PREVIEW_LOAD:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id});if(!n)return;let r=window.URL||window.webkitURL,o=new Blob([n.file],{type:n.file.type});t.ref.media.type=n.file.type,t.ref.media.src=n.file.mock&&n.file.url||r.createObjectURL(o),Ut(n.file)&&new ba(t.ref.media,t.ref.audio),t.ref.media.addEventListener("loadeddata",()=>{let l=75;if(Ia(n.file)){let s=t.ref.media.offsetWidth,u=t.ref.media.videoWidth/s;l=t.ref.media.videoHeight/u}t.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:i.id,height:l})},!1)}})}),Xf=e=>{let t=({root:a,props:n})=>{let{id:r}=n;a.query("GET_ITEM",r)&&a.dispatch("DID_MEDIA_PREVIEW_LOAD",{id:r})},i=({root:a,props:n})=>{let r=qf(e);a.ref.media=a.appendChildView(a.createChildView(r,{id:n.id}))};return e.utils.createView({name:"media-preview-wrapper",create:i,write:e.utils.createRoute({DID_MEDIA_PREVIEW_CONTAINER_CREATE:t})})},_a=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n}=i,r=Xf(e);return t("CREATE_VIEW",o=>{let{is:l,view:s,query:u}=o;if(!l("file"))return;let c=({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=u("GET_ALLOW_VIDEO_PREVIEW"),g=u("GET_ALLOW_AUDIO_PREVIEW");!p||p.archived||(!Ia(p.file)||!m)&&(!Ut(p.file)||!g)||(d.ref.mediaPreview=s.appendChildView(s.createChildView(r,{id:f})),d.dispatch("DID_MEDIA_PREVIEW_CONTAINER_CREATE",{id:f}))};s.registerWriter(n({DID_LOAD_ITEM:c},({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=d.query("GET_ALLOW_VIDEO_PREVIEW"),g=d.query("GET_ALLOW_AUDIO_PREVIEW");!p||(!Ia(p.file)||!m)&&(!Ut(p.file)||!g)||d.rect.element.hidden}))}),{options:{allowVideoPreview:[!0,a.BOOLEAN],allowAudioPreview:[!0,a.BOOLEAN]}}},jf=typeof window<"u"&&typeof window.document<"u";jf&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:_a}));var ho={labelIdle:'\u0627\u0633\u062D\u0628 \u0648 \u0627\u062F\u0631\u062C \u0645\u0644\u0641\u0627\u062A\u0643 \u0623\u0648 \u062A\u0635\u0641\u062D ',labelInvalidField:"\u0627\u0644\u062D\u0642\u0644 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",labelFileWaitingForSize:"\u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u062D\u062C\u0645",labelFileSizeNotAvailable:"\u0627\u0644\u062D\u062C\u0645 \u063A\u064A\u0631 \u0645\u062A\u0627\u062D",labelFileLoading:"\u0628\u0627\u0644\u0625\u0646\u062A\u0638\u0627\u0631",labelFileLoadError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644",labelFileProcessing:"\u064A\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingComplete:"\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingRevertError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u0631\u0627\u062C\u0639",labelFileRemoveError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062D\u0630\u0641",labelTapToCancel:"\u0627\u0646\u0642\u0631 \u0644\u0644\u0625\u0644\u063A\u0627\u0621",labelTapToRetry:"\u0627\u0646\u0642\u0631 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629",labelTapToUndo:"\u0627\u0646\u0642\u0631 \u0644\u0644\u062A\u0631\u0627\u062C\u0639",labelButtonRemoveItem:"\u0645\u0633\u062D",labelButtonAbortItemLoad:"\u0625\u0644\u063A\u0627\u0621",labelButtonRetryItemLoad:"\u0625\u0639\u0627\u062F\u0629",labelButtonAbortItemProcessing:"\u0625\u0644\u063A\u0627\u0621",labelButtonUndoItemProcessing:"\u062A\u0631\u0627\u062C\u0639",labelButtonRetryItemProcessing:"\u0625\u0639\u0627\u062F\u0629",labelButtonProcessItem:"\u0631\u0641\u0639",labelMaxFileSizeExceeded:"\u0627\u0644\u0645\u0644\u0641 \u0643\u0628\u064A\u0631 \u062C\u062F\u0627",labelMaxFileSize:"\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0642\u0635\u0649: {filesize}",labelMaxTotalFileSizeExceeded:"\u062A\u0645 \u062A\u062C\u0627\u0648\u0632 \u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u062D\u062C\u0645 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",labelMaxTotalFileSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641: {filesize}",labelFileTypeNotAllowed:"\u0645\u0644\u0641 \u0645\u0646 \u0646\u0648\u0639 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",fileValidateTypeLabelExpectedTypes:"\u062A\u062A\u0648\u0642\u0639 {allButLastType} \u0645\u0646 {lastType}",imageValidateSizeLabelFormatError:"\u0646\u0648\u0639 \u0627\u0644\u0635\u0648\u0631\u0629 \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645",imageValidateSizeLabelImageSizeTooSmall:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0635\u063A\u064A\u0631 \u062C\u062F\u0627",imageValidateSizeLabelImageSizeTooBig:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u0628\u064A\u0631\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0627\u0644\u062F\u0642\u0629 \u0636\u0639\u064A\u0641\u0629 \u062C\u062F\u0627",imageValidateSizeLabelImageResolutionTooHigh:"\u0627\u0644\u062F\u0642\u0629 \u0645\u0631\u062A\u0641\u0639\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinResolution:"\u0623\u0642\u0644 \u062F\u0642\u0629: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0623\u0642\u0635\u0649 \u062F\u0642\u0629: {maxResolution}"};var fo={labelIdle:'P\u0159et\xE1hn\u011Bte soubor sem (drag&drop) nebo Vyhledat ',labelInvalidField:"Pole obsahuje chybn\xE9 soubory",labelFileWaitingForSize:"Zji\u0161\u0165uje se velikost",labelFileSizeNotAvailable:"Velikost nen\xED zn\xE1m\xE1",labelFileLoading:"P\u0159en\xE1\u0161\xED se",labelFileLoadError:"Chyba p\u0159i p\u0159enosu",labelFileProcessing:"Prob\xEDh\xE1 upload",labelFileProcessingComplete:"Upload dokon\u010Den",labelFileProcessingAborted:"Upload stornov\xE1n",labelFileProcessingError:"Chyba p\u0159i uploadu",labelFileProcessingRevertError:"Chyba p\u0159i obnov\u011B",labelFileRemoveError:"Chyba p\u0159i odstran\u011Bn\xED",labelTapToCancel:"klepn\u011Bte pro storno",labelTapToRetry:"klepn\u011Bte pro opakov\xE1n\xED",labelTapToUndo:"klepn\u011Bte pro vr\xE1cen\xED",labelButtonRemoveItem:"Odstranit",labelButtonAbortItemLoad:"Storno",labelButtonRetryItemLoad:"Opakovat",labelButtonAbortItemProcessing:"Zp\u011Bt",labelButtonUndoItemProcessing:"Vr\xE1tit",labelButtonRetryItemProcessing:"Opakovat",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Soubor je p\u0159\xEDli\u0161 velk\xFD",labelMaxFileSize:"Nejv\u011Bt\u0161\xED velikost souboru je {filesize}",labelMaxTotalFileSizeExceeded:"P\u0159ekro\u010Dena maxim\xE1ln\xED celkov\xE1 velikost souboru",labelMaxTotalFileSize:"Maxim\xE1ln\xED celkov\xE1 velikost souboru je {filesize}",labelFileTypeNotAllowed:"Soubor je nespr\xE1vn\xE9ho typu",fileValidateTypeLabelExpectedTypes:"O\u010Dek\xE1v\xE1 se {allButLastType} nebo {lastType}",imageValidateSizeLabelFormatError:"Obr\xE1zek tohoto typu nen\xED podporov\xE1n",imageValidateSizeLabelImageSizeTooSmall:"Obr\xE1zek je p\u0159\xEDli\u0161 mal\xFD",imageValidateSizeLabelImageSizeTooBig:"Obr\xE1zek je p\u0159\xEDli\u0161 velk\xFD",imageValidateSizeLabelExpectedMinSize:"Minim\xE1ln\xED rozm\u011Br je {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maxim\xE1ln\xED rozm\u011Br je {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 mal\xE9",imageValidateSizeLabelImageResolutionTooHigh:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 velk\xE9",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1ln\xED rozli\u0161en\xED je {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1ln\xED rozli\u0161en\xED je {maxResolution}"};var po={labelIdle:'Tr\xE6k & slip filer eller Gennemse ',labelInvalidField:"Felt indeholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilg\xE6ngelig",labelFileLoading:"Loader",labelFileLoadError:"Load fejlede",labelFileProcessing:"Uploader",labelFileProcessingComplete:"Upload f\xE6rdig",labelFileProcessingAborted:"Upload annulleret",labelFileProcessingError:"Upload fejlede",labelFileProcessingRevertError:"Fortryd fejlede",labelFileRemoveError:"Fjern fejlede",labelTapToCancel:"tryk for at annullere",labelTapToRetry:"tryk for at pr\xF8ve igen",labelTapToUndo:"tryk for at fortryde",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Annuller",labelButtonRetryItemLoad:"Fors\xF8g igen",labelButtonAbortItemProcessing:"Annuller",labelButtonUndoItemProcessing:"Fortryd",labelButtonRetryItemProcessing:"Pr\xF8v igen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal totalst\xF8rrelse overskredet",labelMaxTotalFileSize:"Maksimal total filst\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Ugyldigt format",imageValidateSizeLabelImageSizeTooSmall:"Billedet er for lille",imageValidateSizeLabelImageSizeTooBig:"Billedet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimum st\xF8rrelse er {minBredde} \xD7 {minH\xF8jde}",imageValidateSizeLabelExpectedMaxSize:"Maksimal st\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"For lav opl\xF8sning",imageValidateSizeLabelImageResolutionTooHigh:"For h\xF8j opl\xF8sning",imageValidateSizeLabelExpectedMinResolution:"Minimum opl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal opl\xF8sning er {maxResolution}"};var mo={labelIdle:'Dateien ablegen oder ausw\xE4hlen ',labelInvalidField:"Feld beinhaltet ung\xFCltige Dateien",labelFileWaitingForSize:"Dateigr\xF6\xDFe berechnen",labelFileSizeNotAvailable:"Dateigr\xF6\xDFe nicht verf\xFCgbar",labelFileLoading:"Laden",labelFileLoadError:"Fehler beim Laden",labelFileProcessing:"Upload l\xE4uft",labelFileProcessingComplete:"Upload abgeschlossen",labelFileProcessingAborted:"Upload abgebrochen",labelFileProcessingError:"Fehler beim Upload",labelFileProcessingRevertError:"Fehler beim Wiederherstellen",labelFileRemoveError:"Fehler beim L\xF6schen",labelTapToCancel:"abbrechen",labelTapToRetry:"erneut versuchen",labelTapToUndo:"r\xFCckg\xE4ngig",labelButtonRemoveItem:"Entfernen",labelButtonAbortItemLoad:"Verwerfen",labelButtonRetryItemLoad:"Erneut versuchen",labelButtonAbortItemProcessing:"Abbrechen",labelButtonUndoItemProcessing:"R\xFCckg\xE4ngig",labelButtonRetryItemProcessing:"Erneut versuchen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Datei ist zu gro\xDF",labelMaxFileSize:"Maximale Dateigr\xF6\xDFe: {filesize}",labelMaxTotalFileSizeExceeded:"Maximale gesamte Dateigr\xF6\xDFe \xFCberschritten",labelMaxTotalFileSize:"Maximale gesamte Dateigr\xF6\xDFe: {filesize}",labelFileTypeNotAllowed:"Dateityp ung\xFCltig",fileValidateTypeLabelExpectedTypes:"Erwartet {allButLastType} oder {lastType}",imageValidateSizeLabelFormatError:"Bildtyp nicht unterst\xFCtzt",imageValidateSizeLabelImageSizeTooSmall:"Bild ist zu klein",imageValidateSizeLabelImageSizeTooBig:"Bild ist zu gro\xDF",imageValidateSizeLabelExpectedMinSize:"Mindestgr\xF6\xDFe: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale Gr\xF6\xDFe: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Aufl\xF6sung ist zu niedrig",imageValidateSizeLabelImageResolutionTooHigh:"Aufl\xF6sung ist zu hoch",imageValidateSizeLabelExpectedMinResolution:"Mindestaufl\xF6sung: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale Aufl\xF6sung: {maxResolution}"};var go={labelIdle:'Drag & Drop your files or Browse ',labelInvalidField:"Field contains invalid files",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"Size not available",labelFileLoading:"Loading",labelFileLoadError:"Error during load",labelFileProcessing:"Uploading",labelFileProcessingComplete:"Upload complete",labelFileProcessingAborted:"Upload cancelled",labelFileProcessingError:"Error during upload",labelFileProcessingRevertError:"Error during revert",labelFileRemoveError:"Error during remove",labelTapToCancel:"tap to cancel",labelTapToRetry:"tap to retry",labelTapToUndo:"tap to undo",labelButtonRemoveItem:"Remove",labelButtonAbortItemLoad:"Abort",labelButtonRetryItemLoad:"Retry",labelButtonAbortItemProcessing:"Cancel",labelButtonUndoItemProcessing:"Undo",labelButtonRetryItemProcessing:"Retry",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"File is too large",labelMaxFileSize:"Maximum file size is {filesize}",labelMaxTotalFileSizeExceeded:"Maximum total size exceeded",labelMaxTotalFileSize:"Maximum total file size is {filesize}",labelFileTypeNotAllowed:"File of invalid type",fileValidateTypeLabelExpectedTypes:"Expects {allButLastType} or {lastType}",imageValidateSizeLabelFormatError:"Image type not supported",imageValidateSizeLabelImageSizeTooSmall:"Image is too small",imageValidateSizeLabelImageSizeTooBig:"Image is too big",imageValidateSizeLabelExpectedMinSize:"Minimum size is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum size is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolution is too low",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimum resolution is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum resolution is {maxResolution}"};var Eo={labelIdle:'Arrastra y suelta tus archivos o Examinar ',labelInvalidField:"El campo contiene archivos inv\xE1lidos",labelFileWaitingForSize:"Esperando tama\xF1o",labelFileSizeNotAvailable:"Tama\xF1o no disponible",labelFileLoading:"Cargando",labelFileLoadError:"Error durante la carga",labelFileProcessing:"Cargando",labelFileProcessingComplete:"Carga completa",labelFileProcessingAborted:"Carga cancelada",labelFileProcessingError:"Error durante la carga",labelFileProcessingRevertError:"Error durante la reversi\xF3n",labelFileRemoveError:"Error durante la eliminaci\xF3n",labelTapToCancel:"toca para cancelar",labelTapToRetry:"tocar para volver a intentar",labelTapToUndo:"tocar para deshacer",labelButtonRemoveItem:"Eliminar",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reintentar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Deshacer",labelButtonRetryItemProcessing:"Reintentar",labelButtonProcessItem:"Cargar",labelMaxFileSizeExceeded:"El archivo es demasiado grande",labelMaxFileSize:"El tama\xF1o m\xE1ximo del archivo es {filesize}",labelMaxTotalFileSizeExceeded:"Tama\xF1o total m\xE1ximo excedido",labelMaxTotalFileSize:"El tama\xF1o total m\xE1ximo del archivo es {filesize}",labelFileTypeNotAllowed:"Archivo de tipo no v\xE1lido",fileValidateTypeLabelExpectedTypes:"Espera {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagen no compatible",imageValidateSizeLabelImageSizeTooSmall:"La imagen es demasiado peque\xF1a",imageValidateSizeLabelImageSizeTooBig:"La imagen es demasiado grande",imageValidateSizeLabelExpectedMinSize:"El tama\xF1o m\xEDnimo es {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"El tama\xF1o m\xE1ximo es {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La resoluci\xF3n es demasiado baja",imageValidateSizeLabelImageResolutionTooHigh:"La resoluci\xF3n es demasiado alta",imageValidateSizeLabelExpectedMinResolution:"La resoluci\xF3n m\xEDnima es {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La resoluci\xF3n m\xE1xima es {maxResolution}"};var To={labelIdle:'\u0641\u0627\u06CC\u0644 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0628\u06A9\u0634\u06CC\u062F \u0648 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F\u060C \u06CC\u0627 \u062C\u0633\u062A\u062C\u0648 \u06A9\u0646\u06CC\u062F ',labelInvalidField:"\u0641\u06CC\u0644\u062F \u062F\u0627\u0631\u0627\u06CC \u0641\u0627\u06CC\u0644 \u0647\u0627\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"\u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A",labelFileLoading:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileLoadError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0627\u062C\u0631\u0627",labelFileProcessing:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingComplete:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0627\u0645\u0644 \u0634\u062F",labelFileProcessingAborted:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0644\u063A\u0648 \u0634\u062F",labelFileProcessingError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingRevertError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelFileRemoveError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelTapToCancel:"\u0628\u0631\u0627\u06CC \u0644\u063A\u0648 \u0636\u0631\u0628\u0647 \u0628\u0632\u0646\u06CC\u062F",labelTapToRetry:"\u0628\u0631\u0627\u06CC \u062A\u06A9\u0631\u0627\u0631 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelTapToUndo:"\u0628\u0631\u0627\u06CC \u0628\u0631\u06AF\u0634\u062A \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelButtonRemoveItem:"\u062D\u0630\u0641",labelButtonAbortItemLoad:"\u0644\u063A\u0648",labelButtonRetryItemLoad:"\u062A\u06A9\u0631\u0627\u0631",labelButtonAbortItemProcessing:"\u0644\u063A\u0648",labelButtonUndoItemProcessing:"\u0628\u0631\u06AF\u0634\u062A",labelButtonRetryItemProcessing:"\u062A\u06A9\u0631\u0627\u0631",labelButtonProcessItem:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelMaxFileSizeExceeded:"\u0641\u0627\u06CC\u0644 \u0628\u0633\u06CC\u0627\u0631 \u062D\u062C\u06CC\u0645 \u0627\u0633\u062A",labelMaxFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0645\u062C\u0627\u0632 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelMaxTotalFileSizeExceeded:"\u0627\u0632 \u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0628\u06CC\u0634\u062A\u0631 \u0634\u062F",labelMaxTotalFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelFileTypeNotAllowed:"\u0646\u0648\u0639 \u0641\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",fileValidateTypeLabelExpectedTypes:"\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 {allButLastType} \u06CC\u0627 {lastType}",imageValidateSizeLabelFormatError:"\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC \u0634\u0648\u062F",imageValidateSizeLabelImageSizeTooSmall:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0648\u0686\u06A9 \u0627\u0633\u062A",imageValidateSizeLabelImageSizeTooBig:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0628\u0632\u0631\u06AF \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinSize:"\u062D\u062F\u0627\u0642\u0644 \u0627\u0646\u062F\u0627\u0632\u0647 {minWidth} \xD7 {minHeight} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0627\u0646\u062F\u0627\u0632\u0647 {maxWidth} \xD7 {maxHeight} \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooLow:"\u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0645 \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooHigh:"\u0648\u0636\u0648\u0639 \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0632\u06CC\u0627\u062F \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinResolution:"\u062D\u062F\u0627\u0642\u0644 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {minResolution} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxResolution:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {maxResolution} \u0627\u0633\u062A"};var Io={labelIdle:'Ved\xE4 ja pudota tiedostoja tai Selaa ',labelInvalidField:"Kent\xE4ss\xE4 on virheellisi\xE4 tiedostoja",labelFileWaitingForSize:"Odotetaan kokoa",labelFileSizeNotAvailable:"Kokoa ei saatavilla",labelFileLoading:"Ladataan",labelFileLoadError:"Virhe latauksessa",labelFileProcessing:"L\xE4hetet\xE4\xE4n",labelFileProcessingComplete:"L\xE4hetys valmis",labelFileProcessingAborted:"L\xE4hetys peruttu",labelFileProcessingError:"Virhe l\xE4hetyksess\xE4",labelFileProcessingRevertError:"Virhe palautuksessa",labelFileRemoveError:"Virhe poistamisessa",labelTapToCancel:"peruuta napauttamalla",labelTapToRetry:"yrit\xE4 uudelleen napauttamalla",labelTapToUndo:"kumoa napauttamalla",labelButtonRemoveItem:"Poista",labelButtonAbortItemLoad:"Keskeyt\xE4",labelButtonRetryItemLoad:"Yrit\xE4 uudelleen",labelButtonAbortItemProcessing:"Peruuta",labelButtonUndoItemProcessing:"Kumoa",labelButtonRetryItemProcessing:"Yrit\xE4 uudelleen",labelButtonProcessItem:"L\xE4het\xE4",labelMaxFileSizeExceeded:"Tiedoston koko on liian suuri",labelMaxFileSize:"Tiedoston maksimikoko on {filesize}",labelMaxTotalFileSizeExceeded:"Tiedostojen yhdistetty maksimikoko ylitetty",labelMaxTotalFileSize:"Tiedostojen yhdistetty maksimikoko on {filesize}",labelFileTypeNotAllowed:"Tiedostotyyppi\xE4 ei sallita",fileValidateTypeLabelExpectedTypes:"Sallitaan {allButLastType} tai {lastType}",imageValidateSizeLabelFormatError:"Kuvatyyppi\xE4 ei tueta",imageValidateSizeLabelImageSizeTooSmall:"Kuva on liian pieni",imageValidateSizeLabelImageSizeTooBig:"Kuva on liian suuri",imageValidateSizeLabelExpectedMinSize:"Minimikoko on {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimikoko on {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resoluutio on liian pieni",imageValidateSizeLabelImageResolutionTooHigh:"Resoluutio on liian suuri",imageValidateSizeLabelExpectedMinResolution:"Minimiresoluutio on {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimiresoluutio on {maxResolution}"};var bo={labelIdle:'Faites glisser vos fichiers ou Parcourir ',labelInvalidField:"Le champ contient des fichiers invalides",labelFileWaitingForSize:"En attente de taille",labelFileSizeNotAvailable:"Taille non disponible",labelFileLoading:"Chargement",labelFileLoadError:"Erreur durant le chargement",labelFileProcessing:"Traitement",labelFileProcessingComplete:"Traitement effectu\xE9",labelFileProcessingAborted:"Traitement interrompu",labelFileProcessingError:"Erreur durant le traitement",labelFileProcessingRevertError:"Erreur durant la restauration",labelFileRemoveError:"Erreur durant la suppression",labelTapToCancel:"appuyer pour annuler",labelTapToRetry:"appuyer pour r\xE9essayer",labelTapToUndo:"appuyer pour revenir en arri\xE8re",labelButtonRemoveItem:"Retirer",labelButtonAbortItemLoad:"Annuler",labelButtonRetryItemLoad:"Recommencer",labelButtonAbortItemProcessing:"Annuler",labelButtonUndoItemProcessing:"Revenir en arri\xE8re",labelButtonRetryItemProcessing:"Recommencer",labelButtonProcessItem:"Transf\xE9rer",labelMaxFileSizeExceeded:"Le fichier est trop volumineux",labelMaxFileSize:"La taille maximale de fichier est {filesize}",labelMaxTotalFileSizeExceeded:"Taille totale maximale d\xE9pass\xE9e",labelMaxTotalFileSize:"La taille totale maximale des fichiers est {filesize}",labelFileTypeNotAllowed:"Fichier non valide",fileValidateTypeLabelExpectedTypes:"Attendu {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Type d'image non pris en charge",imageValidateSizeLabelImageSizeTooSmall:"L'image est trop petite",imageValidateSizeLabelImageSizeTooBig:"L'image est trop grande",imageValidateSizeLabelExpectedMinSize:"La taille minimale est {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La taille maximale est {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La r\xE9solution est trop faible",imageValidateSizeLabelImageResolutionTooHigh:"La r\xE9solution est trop \xE9lev\xE9e",imageValidateSizeLabelExpectedMinResolution:"La r\xE9solution minimale est {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La r\xE9solution maximale est {maxResolution}"};var _o={labelIdle:'Mozgasd ide a f\xE1jlt a felt\xF6lt\xE9shez, vagy tall\xF3z\xE1s ',labelInvalidField:"A mez\u0151 \xE9rv\xE9nytelen f\xE1jlokat tartalmaz",labelFileWaitingForSize:"F\xE1ljm\xE9ret kisz\xE1mol\xE1sa",labelFileSizeNotAvailable:"A f\xE1jlm\xE9ret nem el\xE9rhet\u0151",labelFileLoading:"T\xF6lt\xE9s",labelFileLoadError:"Hiba a bet\xF6lt\xE9s sor\xE1n",labelFileProcessing:"Felt\xF6lt\xE9s",labelFileProcessingComplete:"Sikeres felt\xF6lt\xE9s",labelFileProcessingAborted:"A felt\xF6lt\xE9s megszak\xEDtva",labelFileProcessingError:"Hiba t\xF6rt\xE9nt a felt\xF6lt\xE9s sor\xE1n",labelFileProcessingRevertError:"Hiba a vissza\xE1ll\xEDt\xE1s sor\xE1n",labelFileRemoveError:"Hiba t\xF6rt\xE9nt az elt\xE1vol\xEDt\xE1s sor\xE1n",labelTapToCancel:"koppints a t\xF6rl\xE9shez",labelTapToRetry:"koppints az \xFAjrakezd\xE9shez",labelTapToUndo:"koppints a visszavon\xE1shoz",labelButtonRemoveItem:"Elt\xE1vol\xEDt\xE1s",labelButtonAbortItemLoad:"Megszak\xEDt\xE1s",labelButtonRetryItemLoad:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonAbortItemProcessing:"Megszak\xEDt\xE1s",labelButtonUndoItemProcessing:"Visszavon\xE1s",labelButtonRetryItemProcessing:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonProcessItem:"Felt\xF6lt\xE9s",labelMaxFileSizeExceeded:"A f\xE1jl t\xFAll\xE9pte a maxim\xE1lis m\xE9retet",labelMaxFileSize:"Maxim\xE1lis f\xE1jlm\xE9ret: {filesize}",labelMaxTotalFileSizeExceeded:"T\xFAll\xE9pte a maxim\xE1lis teljes m\xE9retet",labelMaxTotalFileSize:"A maxim\xE1is teljes f\xE1jlm\xE9ret: {filesize}",labelFileTypeNotAllowed:"\xC9rv\xE9nytelen t\xEDpus\xFA f\xE1jl",fileValidateTypeLabelExpectedTypes:"Enged\xE9lyezett t\xEDpusok {allButLastType} vagy {lastType}",imageValidateSizeLabelFormatError:"A k\xE9pt\xEDpus nem t\xE1mogatott",imageValidateSizeLabelImageSizeTooSmall:"A k\xE9p t\xFAl kicsi",imageValidateSizeLabelImageSizeTooBig:"A k\xE9p t\xFAl nagy",imageValidateSizeLabelExpectedMinSize:"Minimum m\xE9ret: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum m\xE9ret: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"A felbont\xE1s t\xFAl alacsony",imageValidateSizeLabelImageResolutionTooHigh:"A felbont\xE1s t\xFAl magas",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1is felbont\xE1s: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1lis felbont\xE1s: {maxResolution}"};var Ro={labelIdle:'Seret dan Jatuhkan file Anda atau Jelajahi',labelInvalidField:"Field berisi file tidak valid",labelFileWaitingForSize:"Menunggu ukuran",labelFileSizeNotAvailable:"Ukuran tidak tersedia",labelFileLoading:"Memuat",labelFileLoadError:"Kesalahan saat memuat",labelFileProcessing:"Mengunggah",labelFileProcessingComplete:"Unggahan selesai",labelFileProcessingAborted:"Unggahan dibatalkan",labelFileProcessingError:"Kesalahan saat mengunggah",labelFileProcessingRevertError:"Kesalahan saat pengembalian",labelFileRemoveError:"Kesalahan saat menghapus",labelTapToCancel:"ketuk untuk membatalkan",labelTapToRetry:"ketuk untuk mencoba lagi",labelTapToUndo:"ketuk untuk mengurungkan",labelButtonRemoveItem:"Hapus",labelButtonAbortItemLoad:"Batal",labelButtonRetryItemLoad:"Coba Kembali",labelButtonAbortItemProcessing:"Batal",labelButtonUndoItemProcessing:"Batal",labelButtonRetryItemProcessing:"Coba Kembali",labelButtonProcessItem:"Unggah",labelMaxFileSizeExceeded:"File terlalu besar",labelMaxFileSize:"Ukuran file maksimum adalah {filesize}",labelMaxTotalFileSizeExceeded:"Jumlah file maksimum terlampaui",labelMaxTotalFileSize:"Jumlah file maksimum adalah {filesize}",labelFileTypeNotAllowed:"Jenis file tidak valid",fileValidateTypeLabelExpectedTypes:"Mengharapkan {allButLastType} atau {lastType}",imageValidateSizeLabelFormatError:"Jenis gambar tidak didukung",imageValidateSizeLabelImageSizeTooSmall:"Gambar terlalu kecil",imageValidateSizeLabelImageSizeTooBig:"Gambar terlalu besar",imageValidateSizeLabelExpectedMinSize:"Ukuran minimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Ukuran maksimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolusi terlalu rendah",imageValidateSizeLabelImageResolutionTooHigh:"Resolusi terlalu tinggi",imageValidateSizeLabelExpectedMinResolution:"Resolusi minimum adalah {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolusi maksimum adalah {maxResolution}"};var yo={labelIdle:'Trascina e rilascia i tuoi file oppure Carica ',labelInvalidField:"Il campo contiene dei file non validi",labelFileWaitingForSize:"Aspettando le dimensioni",labelFileSizeNotAvailable:"Dimensioni non disponibili",labelFileLoading:"Caricamento",labelFileLoadError:"Errore durante il caricamento",labelFileProcessing:"Caricamento",labelFileProcessingComplete:"Caricamento completato",labelFileProcessingAborted:"Caricamento cancellato",labelFileProcessingError:"Errore durante il caricamento",labelFileProcessingRevertError:"Errore durante il ripristino",labelFileRemoveError:"Errore durante l'eliminazione",labelTapToCancel:"tocca per cancellare",labelTapToRetry:"tocca per riprovare",labelTapToUndo:"tocca per ripristinare",labelButtonRemoveItem:"Elimina",labelButtonAbortItemLoad:"Cancella",labelButtonRetryItemLoad:"Ritenta",labelButtonAbortItemProcessing:"Camcella",labelButtonUndoItemProcessing:"Indietro",labelButtonRetryItemProcessing:"Ritenta",labelButtonProcessItem:"Carica",labelMaxFileSizeExceeded:"Il peso del file \xE8 eccessivo",labelMaxFileSize:"Il peso massimo del file \xE8 {filesize}",labelMaxTotalFileSizeExceeded:"Dimensione totale massima superata",labelMaxTotalFileSize:"La dimensione massima totale del file \xE8 {filesize}",labelFileTypeNotAllowed:"File non supportato",fileValidateTypeLabelExpectedTypes:"Aspetta {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo di immagine non compatibile",imageValidateSizeLabelImageSizeTooSmall:"L'immagine \xE8 troppo piccola",imageValidateSizeLabelImageSizeTooBig:"L'immagine \xE8 troppo grande",imageValidateSizeLabelExpectedMinSize:"La dimensione minima \xE8 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La dimensione massima \xE8 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La risoluzione \xE8 troppo bassa",imageValidateSizeLabelImageResolutionTooHigh:"La risoluzione \xE8 troppo alta",imageValidateSizeLabelExpectedMinResolution:"La risoluzione minima \xE8 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La risoluzione massima \xE8 {maxResolution}"};var So={labelIdle:'Drag & Drop je bestanden of Bladeren ',labelInvalidField:"Veld bevat ongeldige bestanden",labelFileWaitingForSize:"Wachten op grootte",labelFileSizeNotAvailable:"Grootte niet beschikbaar",labelFileLoading:"Laden",labelFileLoadError:"Fout tijdens laden",labelFileProcessing:"Uploaden",labelFileProcessingComplete:"Upload afgerond",labelFileProcessingAborted:"Upload geannuleerd",labelFileProcessingError:"Fout tijdens upload",labelFileProcessingRevertError:"Fout bij herstellen",labelFileRemoveError:"Fout bij verwijderen",labelTapToCancel:"tik om te annuleren",labelTapToRetry:"tik om opnieuw te proberen",labelTapToUndo:"tik om ongedaan te maken",labelButtonRemoveItem:"Verwijderen",labelButtonAbortItemLoad:"Afbreken",labelButtonRetryItemLoad:"Opnieuw proberen",labelButtonAbortItemProcessing:"Annuleren",labelButtonUndoItemProcessing:"Ongedaan maken",labelButtonRetryItemProcessing:"Opnieuw proberen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Bestand is te groot",labelMaxFileSize:"Maximale bestandsgrootte is {filesize}",labelMaxTotalFileSizeExceeded:"Maximale totale grootte overschreden",labelMaxTotalFileSize:"Maximale totale bestandsgrootte is {filesize}",labelFileTypeNotAllowed:"Ongeldig bestandstype",fileValidateTypeLabelExpectedTypes:"Verwacht {allButLastType} of {lastType}",imageValidateSizeLabelFormatError:"Afbeeldingstype niet ondersteund",imageValidateSizeLabelImageSizeTooSmall:"Afbeelding is te klein",imageValidateSizeLabelImageSizeTooBig:"Afbeelding is te groot",imageValidateSizeLabelExpectedMinSize:"Minimale afmeting is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale afmeting is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolutie is te laag",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimale resolutie is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale resolutie is {maxResolution}"};var wo={labelIdle:'Dra og slipp filene dine, eller Bla gjennom... ',labelInvalidField:"Feltet inneholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilgjengelig",labelFileLoading:"Laster",labelFileLoadError:"Feil under lasting",labelFileProcessing:"Laster opp",labelFileProcessingComplete:"Opplasting ferdig",labelFileProcessingAborted:"Opplasting avbrutt",labelFileProcessingError:"Feil under opplasting",labelFileProcessingRevertError:"Feil under reversering",labelFileRemoveError:"Feil under flytting",labelTapToCancel:"klikk for \xE5 avbryte",labelTapToRetry:"klikk for \xE5 pr\xF8ve p\xE5 nytt",labelTapToUndo:"klikk for \xE5 angre",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"Pr\xF8v p\xE5 nytt",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"Angre",labelButtonRetryItemProcessing:"Pr\xF8v p\xE5 nytt",labelButtonProcessItem:"Last opp",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal total st\xF8rrelse oversteget",labelMaxTotalFileSize:"Maksimal total st\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildeformat ikke st\xF8ttet",imageValidateSizeLabelImageSizeTooSmall:"Bildet er for lite",imageValidateSizeLabelImageSizeTooBig:"Bildet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimumsst\xF8rrelse er {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimumsst\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Oppl\xF8sningen er for lav",imageValidateSizeLabelImageResolutionTooHigh:"Oppl\xF8sningen er for h\xF8y",imageValidateSizeLabelExpectedMinResolution:"Minimum oppl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal oppl\xF8sning er {maxResolution}"};var vo={labelIdle:'Przeci\u0105gnij i upu\u015B\u0107 lub wybierz pliki',labelInvalidField:"Nieprawid\u0142owe pliki",labelFileWaitingForSize:"Pobieranie rozmiaru",labelFileSizeNotAvailable:"Nieznany rozmiar",labelFileLoading:"Wczytywanie",labelFileLoadError:"B\u0142\u0105d wczytywania",labelFileProcessing:"Przesy\u0142anie",labelFileProcessingComplete:"Przes\u0142ano",labelFileProcessingAborted:"Przerwano",labelFileProcessingError:"Przesy\u0142anie nie powiod\u0142o si\u0119",labelFileProcessingRevertError:"Co\u015B posz\u0142o nie tak",labelFileRemoveError:"Nieudane usuni\u0119cie",labelTapToCancel:"Anuluj",labelTapToRetry:"Pon\xF3w",labelTapToUndo:"Cofnij",labelButtonRemoveItem:"Usu\u0144",labelButtonAbortItemLoad:"Przerwij",labelButtonRetryItemLoad:"Pon\xF3w",labelButtonAbortItemProcessing:"Anuluj",labelButtonUndoItemProcessing:"Cofnij",labelButtonRetryItemProcessing:"Pon\xF3w",labelButtonProcessItem:"Prze\u015Blij",labelMaxFileSizeExceeded:"Plik jest zbyt du\u017Cy",labelMaxFileSize:"Dopuszczalna wielko\u015B\u0107 pliku to {filesize}",labelMaxTotalFileSizeExceeded:"Przekroczono \u0142\u0105czny rozmiar plik\xF3w",labelMaxTotalFileSize:"\u0141\u0105czny rozmiar plik\xF3w nie mo\u017Ce przekroczy\u0107 {filesize}",labelFileTypeNotAllowed:"Niedozwolony rodzaj pliku",fileValidateTypeLabelExpectedTypes:"Oczekiwano {allButLastType} lub {lastType}",imageValidateSizeLabelFormatError:"Nieobs\u0142ugiwany format obrazu",imageValidateSizeLabelImageSizeTooSmall:"Obraz jest zbyt ma\u0142y",imageValidateSizeLabelImageSizeTooBig:"Obraz jest zbyt du\u017Cy",imageValidateSizeLabelExpectedMinSize:"Minimalne wymiary obrazu to {minWidth}\xD7{minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksymalna wymiary obrazu to {maxWidth}\xD7{maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozdzielczo\u015B\u0107 jest zbyt niska",imageValidateSizeLabelImageResolutionTooHigh:"Rozdzielczo\u015B\u0107 jest zbyt wysoka",imageValidateSizeLabelExpectedMinResolution:"Minimalna rozdzielczo\u015B\u0107 to {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksymalna rozdzielczo\u015B\u0107 to {maxResolution}"};var Ti={labelIdle:'Arraste e solte os arquivos ou Clique aqui ',labelInvalidField:"Arquivos inv\xE1lidos",labelFileWaitingForSize:"Calculando o tamanho do arquivo",labelFileSizeNotAvailable:"Tamanho do arquivo indispon\xEDvel",labelFileLoading:"Carregando",labelFileLoadError:"Erro durante o carregamento",labelFileProcessing:"Enviando",labelFileProcessingComplete:"Envio finalizado",labelFileProcessingAborted:"Envio cancelado",labelFileProcessingError:"Erro durante o envio",labelFileProcessingRevertError:"Erro ao reverter o envio",labelFileRemoveError:"Erro ao remover o arquivo",labelTapToCancel:"clique para cancelar",labelTapToRetry:"clique para reenviar",labelTapToUndo:"clique para desfazer",labelButtonRemoveItem:"Remover",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reenviar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Desfazer",labelButtonRetryItemProcessing:"Reenviar",labelButtonProcessItem:"Enviar",labelMaxFileSizeExceeded:"Arquivo \xE9 muito grande",labelMaxFileSize:"O tamanho m\xE1ximo permitido: {filesize}",labelMaxTotalFileSizeExceeded:"Tamanho total dos arquivos excedido",labelMaxTotalFileSize:"Tamanho total permitido: {filesize}",labelFileTypeNotAllowed:"Tipo de arquivo inv\xE1lido",fileValidateTypeLabelExpectedTypes:"Tipos de arquivo suportados s\xE3o {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagem inv\xE1lida",imageValidateSizeLabelImageSizeTooSmall:"Imagem muito pequena",imageValidateSizeLabelImageSizeTooBig:"Imagem muito grande",imageValidateSizeLabelExpectedMinSize:"Tamanho m\xEDnimo permitida: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Tamanho m\xE1ximo permitido: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolu\xE7\xE3o muito baixa",imageValidateSizeLabelImageResolutionTooHigh:"Resolu\xE7\xE3o muito alta",imageValidateSizeLabelExpectedMinResolution:"Resolu\xE7\xE3o m\xEDnima permitida: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolu\xE7\xE3o m\xE1xima permitida: {maxResolution}"};var Ao={labelIdle:'Trage \u0219i plaseaz\u0103 fi\u0219iere sau Caut\u0103-le ',labelInvalidField:"C\xE2mpul con\u021Bine fi\u0219iere care nu sunt valide",labelFileWaitingForSize:"\xCEn a\u0219teptarea dimensiunii",labelFileSizeNotAvailable:"Dimensiunea nu este diponibil\u0103",labelFileLoading:"Se \xEEncarc\u0103",labelFileLoadError:"Eroare la \xEEnc\u0103rcare",labelFileProcessing:"Se \xEEncarc\u0103",labelFileProcessingComplete:"\xCEnc\u0103rcare finalizat\u0103",labelFileProcessingAborted:"\xCEnc\u0103rcare anulat\u0103",labelFileProcessingError:"Eroare la \xEEnc\u0103rcare",labelFileProcessingRevertError:"Eroare la anulare",labelFileRemoveError:"Eroare la \u015Ftergere",labelTapToCancel:"apas\u0103 pentru a anula",labelTapToRetry:"apas\u0103 pentru a re\xEEncerca",labelTapToUndo:"apas\u0103 pentru a anula",labelButtonRemoveItem:"\u015Eterge",labelButtonAbortItemLoad:"Anuleaz\u0103",labelButtonRetryItemLoad:"Re\xEEncearc\u0103",labelButtonAbortItemProcessing:"Anuleaz\u0103",labelButtonUndoItemProcessing:"Anuleaz\u0103",labelButtonRetryItemProcessing:"Re\xEEncearc\u0103",labelButtonProcessItem:"\xCEncarc\u0103",labelMaxFileSizeExceeded:"Fi\u0219ierul este prea mare",labelMaxFileSize:"Dimensiunea maxim\u0103 a unui fi\u0219ier este de {filesize}",labelMaxTotalFileSizeExceeded:"Dimensiunea total\u0103 maxim\u0103 a fost dep\u0103\u0219it\u0103",labelMaxTotalFileSize:"Dimensiunea total\u0103 maxim\u0103 a fi\u0219ierelor este de {filesize}",labelFileTypeNotAllowed:"Tipul fi\u0219ierului nu este valid",fileValidateTypeLabelExpectedTypes:"Se a\u0219teapt\u0103 {allButLastType} sau {lastType}",imageValidateSizeLabelFormatError:"Formatul imaginii nu este acceptat",imageValidateSizeLabelImageSizeTooSmall:"Imaginea este prea mic\u0103",imageValidateSizeLabelImageSizeTooBig:"Imaginea este prea mare",imageValidateSizeLabelExpectedMinSize:"M\u0103rimea minim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelExpectedMaxSize:"M\u0103rimea maxim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rezolu\u021Bia este prea mic\u0103",imageValidateSizeLabelImageResolutionTooHigh:"Rezolu\u021Bia este prea mare",imageValidateSizeLabelExpectedMinResolution:"Rezolu\u021Bia minim\u0103 este de {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Rezolu\u021Bia maxim\u0103 este de {maxResolution}"};var Lo={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B",labelFileWaitingForSize:"\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0435\u0440",labelFileSizeNotAvailable:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",labelFileLoading:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435",labelFileLoadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438",labelFileProcessing:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelFileProcessingComplete:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",labelFileProcessingAborted:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430",labelFileProcessingError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435",labelFileProcessingRevertError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0435",labelFileRemoveError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438",labelTapToCancel:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B",labelTapToRetry:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelTapToUndo:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRemoveItem:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",labelButtonAbortItemLoad:"\u041F\u0440\u0435\u043A\u0440\u0430\u0449\u0435\u043D\u043E",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonAbortItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430",labelButtonUndoItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonProcessItem:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelFileTypeNotAllowed:"\u0424\u0430\u0439\u043B \u043D\u0435\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430",fileValidateTypeLabelExpectedTypes:"\u041E\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044F {allButLastType} \u0438\u043B\u0438 {lastType}",imageValidateSizeLabelFormatError:"\u0422\u0438\u043F \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043D\u0438\u0437\u043A\u043E\u0435",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u044B\u0441\u043E\u043A\u043E\u0435",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {maxResolution}"};var Mo={labelIdle:'Drag och sl\xE4pp dina filer eller Bl\xE4ddra ',labelInvalidField:"F\xE4ltet inneh\xE5ller felaktiga filer",labelFileWaitingForSize:"V\xE4ntar p\xE5 storlek",labelFileSizeNotAvailable:"Storleken finns inte tillg\xE4nglig",labelFileLoading:"Laddar",labelFileLoadError:"Fel under laddning",labelFileProcessing:"Laddar upp",labelFileProcessingComplete:"Uppladdning klar",labelFileProcessingAborted:"Uppladdning avbruten",labelFileProcessingError:"Fel under uppladdning",labelFileProcessingRevertError:"Fel under \xE5terst\xE4llning",labelFileRemoveError:"Fel under borttagning",labelTapToCancel:"tryck f\xF6r att avbryta",labelTapToRetry:"tryck f\xF6r att f\xF6rs\xF6ka igen",labelTapToUndo:"tryck f\xF6r att \xE5ngra",labelButtonRemoveItem:"Tabort",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"F\xF6rs\xF6k igen",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"\xC5ngra",labelButtonRetryItemProcessing:"F\xF6rs\xF6k igen",labelButtonProcessItem:"Ladda upp",labelMaxFileSizeExceeded:"Filen \xE4r f\xF6r stor",labelMaxFileSize:"St\xF6rsta till\xE5tna filstorlek \xE4r {filesize}",labelMaxTotalFileSizeExceeded:"Maximal uppladdningsstorlek uppn\xE5d",labelMaxTotalFileSize:"Maximal uppladdningsstorlek \xE4r {filesize}",labelFileTypeNotAllowed:"Felaktig filtyp",fileValidateTypeLabelExpectedTypes:"Godk\xE4nda filtyper {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildtypen saknar st\xF6d",imageValidateSizeLabelImageSizeTooSmall:"Bilden \xE4r f\xF6r liten",imageValidateSizeLabelImageSizeTooBig:"Bilden \xE4r f\xF6r stor",imageValidateSizeLabelExpectedMinSize:"Minimal storlek \xE4r {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximal storlek \xE4r {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Uppl\xF6sningen \xE4r f\xF6r l\xE5g",imageValidateSizeLabelImageResolutionTooHigh:"Uppl\xF6sningen \xE4r f\xF6r h\xF6g",imageValidateSizeLabelExpectedMinResolution:"Minsta till\xE5tna uppl\xF6sning \xE4r {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"H\xF6gsta till\xE5tna uppl\xF6sning \xE4r {maxResolution}"};var Oo={labelIdle:'Dosyan\u0131z\u0131 S\xFCr\xFCkleyin & B\u0131rak\u0131n ya da Se\xE7in ',labelInvalidField:"Alan ge\xE7ersiz dosyalar i\xE7eriyor",labelFileWaitingForSize:"Boyut hesaplan\u0131yor",labelFileSizeNotAvailable:"Boyut mevcut de\u011Fil",labelFileLoading:"Y\xFCkleniyor",labelFileLoadError:"Y\xFCkleme s\u0131ras\u0131nda hata olu\u015Ftu",labelFileProcessing:"Y\xFCkleniyor",labelFileProcessingComplete:"Y\xFCkleme tamamland\u0131",labelFileProcessingAborted:"Y\xFCkleme iptal edildi",labelFileProcessingError:"Y\xFCklerken hata olu\u015Ftu",labelFileProcessingRevertError:"Geri \xE7ekerken hata olu\u015Ftu",labelFileRemoveError:"Kald\u0131r\u0131rken hata olu\u015Ftu",labelTapToCancel:"\u0130ptal etmek i\xE7in t\u0131klay\u0131n",labelTapToRetry:"Tekrar denemek i\xE7in t\u0131klay\u0131n",labelTapToUndo:"Geri almak i\xE7in t\u0131klay\u0131n",labelButtonRemoveItem:"Kald\u0131r",labelButtonAbortItemLoad:"\u0130ptal Et",labelButtonRetryItemLoad:"Tekrar dene",labelButtonAbortItemProcessing:"\u0130ptal et",labelButtonUndoItemProcessing:"Geri Al",labelButtonRetryItemProcessing:"Tekrar dene",labelButtonProcessItem:"Y\xFCkle",labelMaxFileSizeExceeded:"Dosya \xE7ok b\xFCy\xFCk",labelMaxFileSize:"En fazla dosya boyutu: {filesize}",labelMaxTotalFileSizeExceeded:"Maximum boyut a\u015F\u0131ld\u0131",labelMaxTotalFileSize:"Maximum dosya boyutu :{filesize}",labelFileTypeNotAllowed:"Ge\xE7ersiz dosya tipi",fileValidateTypeLabelExpectedTypes:"\u015Eu {allButLastType} ya da \u015Fu dosya olmas\u0131 gerekir: {lastType}",imageValidateSizeLabelFormatError:"Resim tipi desteklenmiyor",imageValidateSizeLabelImageSizeTooSmall:"Resim \xE7ok k\xFC\xE7\xFCk",imageValidateSizeLabelImageSizeTooBig:"Resim \xE7ok b\xFCy\xFCk",imageValidateSizeLabelExpectedMinSize:"Minimum boyut {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum boyut {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok d\xFC\u015F\xFCk",imageValidateSizeLabelImageResolutionTooHigh:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok y\xFCksek",imageValidateSizeLabelExpectedMinResolution:"Minimum \xE7\xF6z\xFCn\xFCrl\xFCk {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum \xE7\xF6z\xFCn\xFCrl\xFCk {maxResolution}"};var xo={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B\u0438 \u0430\u0431\u043E \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0456 \u0444\u0430\u0439\u043B\u0438",labelFileWaitingForSize:"\u0412\u043A\u0430\u0436\u0456\u0442\u044C \u0440\u043E\u0437\u043C\u0456\u0440",labelFileSizeNotAvailable:"\u0420\u043E\u0437\u043C\u0456\u0440 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439",labelFileLoading:"\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F",labelFileLoadError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456",labelFileProcessing:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelFileProcessingComplete:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",labelFileProcessingAborted:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E",labelFileProcessingError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u0456",labelFileProcessingRevertError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0456",labelFileRemoveError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u0456",labelTapToCancel:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelTapToRetry:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelTapToUndo:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRemoveItem:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",labelButtonAbortItemLoad:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonAbortItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonUndoItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonProcessItem:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440 \u0444\u0430\u0439\u043B\u0443: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0435\u0440\u0435\u0432\u0438\u0449\u0435\u043D\u043E \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {filesize}",labelFileTypeNotAllowed:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0444\u0430\u0439\u043B\u0443 \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",fileValidateTypeLabelExpectedTypes:"\u041E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F {allButLastType} \u0430\u0431\u043E {lastType}",imageValidateSizeLabelFormatError:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0456",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0456",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {maxResolution}"};var Do={labelIdle:'K\xE9o th\u1EA3 t\u1EC7p c\u1EE7a b\u1EA1n ho\u1EB7c T\xECm ki\u1EBFm ',labelInvalidField:"Tr\u01B0\u1EDDng ch\u1EE9a c\xE1c t\u1EC7p kh\xF4ng h\u1EE3p l\u1EC7",labelFileWaitingForSize:"\u0110ang ch\u1EDD k\xEDch th\u01B0\u1EDBc",labelFileSizeNotAvailable:"K\xEDch th\u01B0\u1EDBc kh\xF4ng c\xF3 s\u1EB5n",labelFileLoading:"\u0110ang t\u1EA3i",labelFileLoadError:"L\u1ED7i khi t\u1EA3i",labelFileProcessing:"\u0110ang t\u1EA3i l\xEAn",labelFileProcessingComplete:"T\u1EA3i l\xEAn th\xE0nh c\xF4ng",labelFileProcessingAborted:"\u0110\xE3 hu\u1EF7 t\u1EA3i l\xEAn",labelFileProcessingError:"L\u1ED7i khi t\u1EA3i l\xEAn",labelFileProcessingRevertError:"L\u1ED7i khi ho\xE0n nguy\xEAn",labelFileRemoveError:"L\u1ED7i khi x\xF3a",labelTapToCancel:"nh\u1EA5n \u0111\u1EC3 h\u1EE7y",labelTapToRetry:"nh\u1EA5n \u0111\u1EC3 th\u1EED l\u1EA1i",labelTapToUndo:"nh\u1EA5n \u0111\u1EC3 ho\xE0n t\xE1c",labelButtonRemoveItem:"Xo\xE1",labelButtonAbortItemLoad:"Hu\u1EF7 b\u1ECF",labelButtonRetryItemLoad:"Th\u1EED l\u1EA1i",labelButtonAbortItemProcessing:"H\u1EE7y b\u1ECF",labelButtonUndoItemProcessing:"Ho\xE0n t\xE1c",labelButtonRetryItemProcessing:"Th\u1EED l\u1EA1i",labelButtonProcessItem:"T\u1EA3i l\xEAn",labelMaxFileSizeExceeded:"T\u1EADp tin qu\xE1 l\u1EDBn",labelMaxFileSize:"K\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelMaxTotalFileSizeExceeded:"\u0110\xE3 v\u01B0\u1EE3t qu\xE1 t\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a",labelMaxTotalFileSize:"T\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelFileTypeNotAllowed:"T\u1EC7p thu\u1ED9c lo\u1EA1i kh\xF4ng h\u1EE3p l\u1EC7",fileValidateTypeLabelExpectedTypes:"Ki\u1EC3u t\u1EC7p h\u1EE3p l\u1EC7 l\xE0 {allButLastType} ho\u1EB7c {lastType}",imageValidateSizeLabelFormatError:"Lo\u1EA1i h\xECnh \u1EA3nh kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3",imageValidateSizeLabelImageSizeTooSmall:"H\xECnh \u1EA3nh qu\xE1 nh\u1ECF",imageValidateSizeLabelImageSizeTooBig:"H\xECnh \u1EA3nh qu\xE1 l\u1EDBn",imageValidateSizeLabelExpectedMinSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i thi\u1EC3u l\xE0 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a l\xE0 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 th\u1EA5p",imageValidateSizeLabelImageResolutionTooHigh:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 cao",imageValidateSizeLabelExpectedMinResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i thi\u1EC3u l\xE0 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i \u0111a l\xE0 {maxResolution}"};var Po={labelIdle:'\u62D6\u653E\u6587\u4EF6\uFF0C\u6216\u8005 \u6D4F\u89C8 ',labelInvalidField:"\u5B57\u6BB5\u5305\u542B\u65E0\u6548\u6587\u4EF6",labelFileWaitingForSize:"\u8BA1\u7B97\u6587\u4EF6\u5927\u5C0F",labelFileSizeNotAvailable:"\u6587\u4EF6\u5927\u5C0F\u4E0D\u53EF\u7528",labelFileLoading:"\u52A0\u8F7D",labelFileLoadError:"\u52A0\u8F7D\u9519\u8BEF",labelFileProcessing:"\u4E0A\u4F20",labelFileProcessingComplete:"\u5DF2\u4E0A\u4F20",labelFileProcessingAborted:"\u4E0A\u4F20\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u4F20\u51FA\u9519",labelFileProcessingRevertError:"\u8FD8\u539F\u51FA\u9519",labelFileRemoveError:"\u5220\u9664\u51FA\u9519",labelTapToCancel:"\u70B9\u51FB\u53D6\u6D88",labelTapToRetry:"\u70B9\u51FB\u91CD\u8BD5",labelTapToUndo:"\u70B9\u51FB\u64A4\u6D88",labelButtonRemoveItem:"\u5220\u9664",labelButtonAbortItemLoad:"\u4E2D\u6B62",labelButtonRetryItemLoad:"\u91CD\u8BD5",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u64A4\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8BD5",labelButtonProcessItem:"\u4E0A\u4F20",labelMaxFileSizeExceeded:"\u6587\u4EF6\u592A\u5927",labelMaxFileSize:"\u6700\u5927\u503C: {filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u8FC7\u6700\u5927\u6587\u4EF6\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u6587\u4EF6\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u6587\u4EF6\u7C7B\u578B\u65E0\u6548",fileValidateTypeLabelExpectedTypes:"\u5E94\u4E3A {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u56FE\u50CF\u7C7B\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u56FE\u50CF\u592A\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u56FE\u50CF\u592A\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u503C: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u503C: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u5206\u8FA8\u7387\u592A\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u5206\u8FA8\u7387\u592A\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u5C0F\u5206\u8FA8\u7387\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u5927\u5206\u8FA8\u7387\uFF1A{maxResolution}"};var Fo={labelIdle:'\u62D6\u653E\u6A94\u6848\uFF0C\u6216\u8005 \u700F\u89BD ',labelInvalidField:"\u4E0D\u652F\u63F4\u6B64\u6A94\u6848",labelFileWaitingForSize:"\u6B63\u5728\u8A08\u7B97\u6A94\u6848\u5927\u5C0F",labelFileSizeNotAvailable:"\u6A94\u6848\u5927\u5C0F\u4E0D\u7B26",labelFileLoading:"\u8B80\u53D6\u4E2D",labelFileLoadError:"\u8B80\u53D6\u932F\u8AA4",labelFileProcessing:"\u4E0A\u50B3",labelFileProcessingComplete:"\u5DF2\u4E0A\u50B3",labelFileProcessingAborted:"\u4E0A\u50B3\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u50B3\u767C\u751F\u932F\u8AA4",labelFileProcessingRevertError:"\u9084\u539F\u932F\u8AA4",labelFileRemoveError:"\u522A\u9664\u932F\u8AA4",labelTapToCancel:"\u9EDE\u64CA\u53D6\u6D88",labelTapToRetry:"\u9EDE\u64CA\u91CD\u8A66",labelTapToUndo:"\u9EDE\u64CA\u9084\u539F",labelButtonRemoveItem:"\u522A\u9664",labelButtonAbortItemLoad:"\u505C\u6B62",labelButtonRetryItemLoad:"\u91CD\u8A66",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u53D6\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8A66",labelButtonProcessItem:"\u4E0A\u50B3",labelMaxFileSizeExceeded:"\u6A94\u6848\u904E\u5927",labelMaxFileSize:"\u6700\u5927\u503C\uFF1A{filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u904E\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u4E0D\u652F\u63F4\u6B64\u985E\u578B\u6A94\u6848",fileValidateTypeLabelExpectedTypes:"\u61C9\u70BA {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u6B64\u985E\u5716\u7247\u985E\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u5716\u7247\u904E\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u5716\u7247\u904E\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u5C3A\u5BF8\uFF1A{minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u5C3A\u5BF8\uFF1A{maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u89E3\u6790\u5EA6\u904E\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u89E3\u6790\u5EA6\u904E\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u4F4E\u89E3\u6790\u5EA6\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u9AD8\u89E3\u6790\u5EA6\uFF1A{maxResolution}"};Te(Lr);Te(Or);Te(Pr);Te(Cr);Te(Gr);Te(Qr);Te(Kr);Te(uo);Te(_a);window.FilePond=Zi;function Qf({acceptedFileTypes:e,imageEditorEmptyFillColor:t,imageEditorMode:i,imageEditorViewportHeight:a,imageEditorViewportWidth:n,deleteUploadedFileUsing:r,isDeletable:o,isDisabled:l,getUploadedFilesUsing:s,imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeMode:d,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeUpscale:p,isAvatar:m,hasImageEditor:g,hasCircleCropper:b,canEditSvgs:E,isSvgEditingConfirmed:T,confirmSvgEditingMessage:_,disabledSvgEditingMessage:y,isDownloadable:I,isMultiple:v,isOpenable:R,isPreviewable:S,isReorderable:D,loadingIndicatorPosition:x,locale:O,maxSize:B,minSize:A,panelAspectRatio:F,panelLayout:w,placeholder:L,removeUploadedFileButtonPosition:N,removeUploadedFileUsing:P,reorderUploadedFilesUsing:U,shouldAppendFiles:V,shouldOrientImageFromExif:q,shouldTransformImage:X,state:j,uploadButtonPosition:se,uploadProgressIndicatorPosition:k,uploadUsing:W}){return{fileKeyIndex:{},pond:null,shouldUpdateState:!0,state:j,lastState:null,uploadedFileIndex:{},isEditorOpen:!1,editingFile:{},currentRatio:"",editor:{},init:async function(){At(Co[O]??Co.en),this.pond=ot(this.$refs.input,{acceptedFileTypes:e,allowImageExifOrientation:q,allowPaste:!1,allowRemove:o,allowReorder:D,allowImagePreview:S,allowVideoPreview:S,allowAudioPreview:S,allowImageTransform:X,credits:!1,files:await this.getFiles(),imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeMode:d,imageResizeUpscale:p,itemInsertLocation:V?"after":"before",...L&&{labelIdle:L},maxFileSize:B,minFileSize:A,styleButtonProcessItemPosition:se,styleButtonRemoveItemPosition:N,styleLoadIndicatorPosition:x,stylePanelAspectRatio:F,stylePanelLayout:w,styleProgressIndicatorPosition:k,server:{load:async(z,G)=>{let K=await(await fetch(z,{cache:"no-store"})).blob();G(K)},process:(z,G,$,K,Rt,ze)=>{this.shouldUpdateState=!1;let kt=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,Ht=>(Ht^crypto.getRandomValues(new Uint8Array(1))[0]&15>>Ht/4).toString(16));W(kt,G,Ht=>{this.shouldUpdateState=!0,K(Ht)},Rt,ze)},remove:async(z,G)=>{let $=this.uploadedFileIndex[z]??null;$&&(await r($),G())},revert:async(z,G)=>{await P(z),G()}},allowImageEdit:g,imageEditEditor:{open:z=>this.loadEditor(z),onconfirm:()=>{},oncancel:()=>this.closeEditor(),onclose:()=>this.closeEditor()}}),this.$watch("state",async()=>{if(this.pond&&this.shouldUpdateState){if(this.state!==null&&Object.values(this.state).filter(z=>z.startsWith("livewire-file:")).length){this.lastState=null;return}JSON.stringify(this.state)!==this.lastState&&(this.lastState=JSON.stringify(this.state),this.pond.files=await this.getFiles())}}),this.pond.on("reorderfiles",async z=>{let G=z.map($=>$.source instanceof File?$.serverId:this.uploadedFileIndex[$.source]??null).filter($=>$);await U(V?G:G.reverse())}),this.pond.on("initfile",async z=>{I&&(m||this.insertDownloadLink(z))}),this.pond.on("initfile",async z=>{R&&(m||this.insertOpenLink(z))}),this.pond.on("addfilestart",async z=>{z.status===ut.PROCESSING_QUEUED&&this.dispatchFormEvent("file-upload-started")});let C=async()=>{this.pond.getFiles().filter(z=>z.status===ut.PROCESSING||z.status===ut.PROCESSING_QUEUED).length||this.dispatchFormEvent("file-upload-finished")};this.pond.on("processfile",C),this.pond.on("processfileabort",C),this.pond.on("processfilerevert",C)},destroy:function(){this.destroyEditor(),lt(this.$refs.input),this.pond=null},dispatchFormEvent:function(C){this.$el.closest("form")?.dispatchEvent(new CustomEvent(C,{composed:!0,cancelable:!0}))},getUploadedFiles:async function(){let C=await s();this.fileKeyIndex=C??{},this.uploadedFileIndex=Object.entries(this.fileKeyIndex).filter(([z,G])=>G?.url).reduce((z,[G,$])=>(z[$.url]=G,z),{})},getFiles:async function(){await this.getUploadedFiles();let C=[];for(let z of Object.values(this.fileKeyIndex))z&&C.push({source:z.url,options:{type:"local",...!z.type||/^image/.test(z.type)?{}:{file:{name:z.name,size:z.size,type:z.type}}}});return V?C:C.reverse()},insertDownloadLink:function(C){if(C.origin!==Mt.LOCAL)return;let z=this.getDownloadLink(C);z&&document.getElementById(`filepond--item-${C.id}`).querySelector(".filepond--file-info-main").prepend(z)},insertOpenLink:function(C){if(C.origin!==Mt.LOCAL)return;let z=this.getOpenLink(C);z&&document.getElementById(`filepond--item-${C.id}`).querySelector(".filepond--file-info-main").prepend(z)},getDownloadLink:function(C){let z=C.source;if(!z)return;let G=document.createElement("a");return G.className="filepond--download-icon",G.href=z,G.download=C.file.name,G},getOpenLink:function(C){let z=C.source;if(!z)return;let G=document.createElement("a");return G.className="filepond--open-icon",G.href=z,G.target="_blank",G},initEditor:function(){l||g&&(this.editor=new ma(this.$refs.editor,{aspectRatio:n/a,autoCropArea:1,center:!0,crop:C=>{this.$refs.xPositionInput.value=Math.round(C.detail.x),this.$refs.yPositionInput.value=Math.round(C.detail.y),this.$refs.heightInput.value=Math.round(C.detail.height),this.$refs.widthInput.value=Math.round(C.detail.width),this.$refs.rotationInput.value=C.detail.rotate},cropBoxResizable:!0,guides:!0,highlight:!0,responsive:!0,toggleDragModeOnDblclick:!0,viewMode:i,wheelZoomRatio:.02}))},closeEditor:function(){this.editingFile={},this.isEditorOpen=!1,this.destroyEditor()},fixImageDimensions:function(C,z){if(C.type!=="image/svg+xml")return z(C);let G=new FileReader;G.onload=$=>{let K=new DOMParser().parseFromString($.target.result,"image/svg+xml")?.querySelector("svg");if(!K)return z(C);let Rt=["viewBox","ViewBox","viewbox"].find(kt=>K.hasAttribute(kt));if(!Rt)return z(C);let ze=K.getAttribute(Rt).split(" ");return!ze||ze.length!==4?z(C):(K.setAttribute("width",parseFloat(ze[2])+"pt"),K.setAttribute("height",parseFloat(ze[3])+"pt"),z(new File([new Blob([new XMLSerializer().serializeToString(K)],{type:"image/svg+xml"})],C.name,{type:"image/svg+xml",_relativePath:""})))},G.readAsText(C)},loadEditor:function(C){if(l||!g||!C)return;let z=C.type==="image/svg+xml";if(!E&&z){alert(y);return}T&&z&&!confirm(_)||this.fixImageDimensions(C,G=>{this.editingFile=G,this.initEditor();let $=new FileReader;$.onload=K=>{this.isEditorOpen=!0,setTimeout(()=>this.editor.replace(K.target.result),200)},$.readAsDataURL(C)})},getRoundedCanvas:function(C){let z=C.width,G=C.height,$=document.createElement("canvas");$.width=z,$.height=G;let K=$.getContext("2d");return K.imageSmoothingEnabled=!0,K.drawImage(C,0,0,z,G),K.globalCompositeOperation="destination-in",K.beginPath(),K.ellipse(z/2,G/2,z/2,G/2,0,0,2*Math.PI),K.fill(),$},saveEditor:function(){if(l||!g)return;let C=this.editor.getCroppedCanvas({fillColor:t??"transparent",height:h,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",width:f});b&&(C=this.getRoundedCanvas(C)),C.toBlob(z=>{v&&this.pond.removeFile(this.pond.getFiles().find(G=>G.filename===this.editingFile.name)?.id,{revert:!0}),this.$nextTick(()=>{this.shouldUpdateState=!1;let G=this.editingFile.name.slice(0,this.editingFile.name.lastIndexOf(".")),$=this.editingFile.name.split(".").pop();$==="svg"&&($="png");let K=/-v(\d+)/;K.test(G)?G=G.replace(K,(Rt,ze)=>`-v${Number(ze)+1}`):G+="-v1",this.pond.addFile(new File([z],`${G}.${$}`,{type:this.editingFile.type==="image/svg+xml"||b?"image/png":this.editingFile.type,lastModified:new Date().getTime()})).then(()=>{this.closeEditor()}).catch(()=>{this.closeEditor()})})},b?"image/png":this.editingFile.type)},destroyEditor:function(){this.editor&&typeof this.editor.destroy=="function"&&this.editor.destroy(),this.editor=null}}}var Co={ar:ho,cs:fo,da:po,de:mo,en:go,es:Eo,fa:To,fi:Io,fr:bo,hu:_o,id:Ro,it:yo,nl:So,no:wo,pl:vo,pt_BR:Ti,pt_PT:Ti,ro:Ao,ru:Lo,sv:Mo,tr:Oo,uk:xo,vi:Do,zh_CN:Po,zh_TW:Fo};export{Qf as default}; +`;n(X)},o.readAsText(e)}),yf=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},Sf=()=>{let e={resize:c,filter:u},t=(d,h)=>(d.forEach(f=>{h=e[f.type](h,f.data)}),h),i=(d,h)=>{let f=d.transforms,p=null;if(f.forEach(m=>{m.type==="filter"&&(p=m)}),p){let m=null;f.forEach(g=>{g.type==="resize"&&(m=g)}),m&&(m.data.matrix=p.data,f=f.filter(g=>g.type!=="filter"))}h(t(f,d.imageData))};self.onmessage=d=>{i(d.data.message,h=>{self.postMessage({id:d.data.id,message:h},[h.data.buffer])})};let a=1,n=1,r=1;function o(d,h,f){let p=h[d]/255,m=h[d+1]/255,g=h[d+2]/255,b=h[d+3]/255,E=p*f[0]+m*f[1]+g*f[2]+b*f[3]+f[4],T=p*f[5]+m*f[6]+g*f[7]+b*f[8]+f[9],_=p*f[10]+m*f[11]+g*f[12]+b*f[13]+f[14],y=p*f[15]+m*f[16]+g*f[17]+b*f[18]+f[19],I=Math.max(0,E*y)+a*(1-y),v=Math.max(0,T*y)+n*(1-y),R=Math.max(0,_*y)+r*(1-y);h[d]=Math.max(0,Math.min(1,I))*255,h[d+1]=Math.max(0,Math.min(1,v))*255,h[d+2]=Math.max(0,Math.min(1,R))*255}let l=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===l}function u(d,h){if(!h||s(h))return d;let f=d.data,p=f.length,m=h[0],g=h[1],b=h[2],E=h[3],T=h[4],_=h[5],y=h[6],I=h[7],v=h[8],R=h[9],S=h[10],D=h[11],x=h[12],O=h[13],z=h[14],A=h[15],F=h[16],w=h[17],L=h[18],C=h[19],P=0,V=0,G=0,q=0,X=0,j=0,de=0,U=0,W=0,$=0,oe=0,N=0;for(;P1&&p===!1)return u(d,b);m=d.width*A,g=d.height*A}let E=d.width,T=d.height,_=Math.round(m),y=Math.round(g),I=d.data,v=new Uint8ClampedArray(_*y*4),R=E/_,S=T/y,D=Math.ceil(R*.5),x=Math.ceil(S*.5);for(let O=0;O=-1&&oe<=1&&(F=2*oe*oe*oe-3*oe*oe+1,F>0)){$=4*(W+X*E);let N=I[$+3];G+=F*N,L+=F,N<255&&(F=F*N/250),C+=F*I[$],P+=F*I[$+1],V+=F*I[$+2],w+=F}}}v[A]=C/w,v[A+1]=P/w,v[A+2]=V/w,v[A+3]=G/L,b&&o(A,v,b)}return{data:v,width:_,height:y}}},wf=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,r=!1;for(;i=65504&&a<=65519||a===65534)||(r||(r=wf(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},Af=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(vf(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),Lf=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,Mf=(e,t)=>{let i=Lf();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},Of=()=>Math.random().toString(36).substr(2,9),xf=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(r,o,l)=>{let s=Of();n[s]=o,a.onmessage=u=>{let c=n[u.data.id];c&&(c(u.data.message),delete n[u.data.id])},a.postMessage({id:s,message:r},l)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},Df=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),Pf=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),Ff=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),r=t.sort(uo).map(o=>()=>new Promise(l=>{Uf[o[0]](n,a,o[1],l)&&l()}));Pf(r).then(()=>i(e))}),Rt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},yt=e=>{e.fill(),e.stroke(),e.globalAlpha=1},Cf=(e,t,i)=>{let a=_t(i,t),n=nt(i,t);return Rt(e,n),e.rect(a.x,a.y,a.width,a.height),yt(e,n),!0},zf=(e,t,i)=>{let a=_t(i,t),n=nt(i,t);Rt(e,n);let r=a.x,o=a.y,l=a.width,s=a.height,u=.5522848,c=l/2*u,d=s/2*u,h=r+l,f=o+s,p=r+l/2,m=o+s/2;return e.moveTo(r,m),e.bezierCurveTo(r,m-d,p-c,o,p,o),e.bezierCurveTo(p+c,o,h,m-d,h,m),e.bezierCurveTo(h,m+d,p+c,f,p,f),e.bezierCurveTo(p-c,f,r,m+d,r,m),yt(e,n),!0},Nf=(e,t,i,a)=>{let n=_t(i,t),r=nt(i,t);Rt(e,r);let o=new Image;new URL(i.src,window.location.href).origin!==window.location.origin&&(o.crossOrigin=""),o.onload=()=>{if(i.fit==="cover"){let s=n.width/n.height,u=s>1?o.width:o.height*s,c=s>1?o.width/s:o.height,d=o.width*.5-u*.5,h=o.height*.5-c*.5;e.drawImage(o,d,h,u,c,n.x,n.y,n.width,n.height)}else if(i.fit==="contain"){let s=Math.min(n.width/o.width,n.height/o.height),u=s*o.width,c=s*o.height,d=n.x+n.width*.5-u*.5,h=n.y+n.height*.5-c*.5;e.drawImage(o,0,0,o.width,o.height,d,h,u,c)}else e.drawImage(o,0,0,o.width,o.height,n.x,n.y,n.width,n.height);yt(e,r),a()},o.src=i.src},Bf=(e,t,i)=>{let a=_t(i,t),n=nt(i,t);Rt(e,n);let r=ue(i.fontSize,t),o=i.fontFamily||"sans-serif",l=i.fontWeight||"normal",s=i.textAlign||"left";return e.font=`${l} ${r}px ${o}`,e.textAlign=s,e.fillText(i.text,a.x,a.y),yt(e,n),!0},Gf=(e,t,i)=>{let a=nt(i,t);Rt(e,a),e.beginPath();let n=i.points.map(o=>({x:ue(o.x,t,1,"width"),y:ue(o.y,t,1,"height")}));e.moveTo(n[0].x,n[0].y);let r=n.length;for(let o=1;o{let a=_t(i,t),n=nt(i,t);Rt(e,n),e.beginPath();let r={x:a.x,y:a.y},o={x:a.x+a.width,y:a.y+a.height};e.moveTo(r.x,r.y),e.lineTo(o.x,o.y);let l=co({x:o.x-r.x,y:o.y-r.y}),s=.04*Math.min(t.width,t.height);if(i.lineDecoration.indexOf("arrow-begin")!==-1){let u=Ti(l,s),c=Ii(r,u),d=We(r,2,c),h=We(r,-2,c);e.moveTo(d.x,d.y),e.lineTo(r.x,r.y),e.lineTo(h.x,h.y)}if(i.lineDecoration.indexOf("arrow-end")!==-1){let u=Ti(l,-s),c=Ii(o,u),d=We(o,2,c),h=We(o,-2,c);e.moveTo(d.x,d.y),e.lineTo(o.x,o.y),e.lineTo(h.x,h.y)}return yt(e,n),!0},Uf={rect:Cf,ellipse:zf,image:Nf,text:Bf,line:Vf,path:Gf},kf=e=>{let t=document.createElement("canvas");return t.width=e.width,t.height=e.height,t.getContext("2d").putImageData(e,0,0),t},Hf=(e,t,i={})=>new Promise((a,n)=>{if(!e||!jh(e))return n({status:"not an image file",file:e});let{stripImageHead:r,beforeCreateBlob:o,afterCreateBlob:l,canvasMemoryLimit:s}=i,{crop:u,size:c,filter:d,markup:h,output:f}=t,p=t.image&&t.image.orientation?Math.max(1,Math.min(8,t.image.orientation)):null,m=f&&f.quality,g=m===null?null:m/100,b=f&&f.type||null,E=f&&f.background||null,T=[];c&&(typeof c.width=="number"||typeof c.height=="number")&&T.push({type:"resize",data:c}),d&&d.length===20&&T.push({type:"filter",data:d});let _=v=>{let R=l?l(v):v;Promise.resolve(R).then(a)},y=(v,R)=>{let S=kf(v),D=h.length?Ff(S,h):S;Promise.resolve(D).then(x=>{rf(x,R,o).then(O=>{if(so(x),r)return _(O);Af(e).then(z=>{z!==null&&(O=new Blob([z,O.slice(20)],{type:O.type})),_(O)})}).catch(n)})};if(/svg/.test(e.type)&&b===null)return Rf(e,u,h,{background:E}).then(v=>{a(Mf(v,"image/svg+xml"))});let I=URL.createObjectURL(e);Df(I).then(v=>{URL.revokeObjectURL(I);let R=af(v,p,u,{canvasMemoryLimit:s,background:E}),S={quality:g,type:b||e.type};if(!T.length)return y(R,S);let D=xf(Sf);D.post({transforms:T,imageData:R},x=>{y(yf(x),S),D.terminate()},[R.data.buffer])}).catch(n)}),Wf=["x","y","left","top","right","bottom","width","height"],Yf=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,$f=e=>{let[t,i]=e,a=i.points?{}:Wf.reduce((n,r)=>(n[r]=Yf(i[r]),n),{});return[t,{zIndex:0,...i,...a}]},qf=e=>new Promise((t,i)=>{let a=new Image;a.src=URL.createObjectURL(e);let n=()=>{let o=a.naturalWidth,l=a.naturalHeight;o&&l&&(URL.revokeObjectURL(a.src),clearInterval(r),t({width:o,height:l}))};a.onerror=o=>{URL.revokeObjectURL(a.src),clearInterval(r),i(o)};let r=setInterval(n,1);n()});typeof window<"u"&&typeof window.document<"u"&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){let a=this;setTimeout(()=>{let n=a.toDataURL(t,i).split(",")[1],r=atob(n),o=r.length,l=new Uint8Array(o);for(;o--;)l[o]=r.charCodeAt(o);e(new Blob([l],{type:t||"image/png"}))})}}));var ba=typeof window<"u"&&typeof window.document<"u",Xf=ba&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,ho=({addFilter:e,utils:t})=>{let{Type:i,forin:a,getFileFromBlob:n,isFile:r}=t,o=["crop","resize","filter","markup","output"],l=c=>(d,h,f)=>d(h,c?c(f):f),s=c=>c.aspectRatio===null&&c.rotation===0&&c.zoom===1&&c.center&&c.center.x===.5&&c.center.y===.5&&c.flip&&c.flip.horizontal===!1&&c.flip.vertical===!1;e("SHOULD_PREPARE_OUTPUT",(c,{query:d})=>new Promise(h=>{h(!d("IS_ASYNC"))}));let u=(c,d,h)=>new Promise(f=>{if(!c("GET_ALLOW_IMAGE_TRANSFORM")||h.archived||!r(d)||!Wh(d))return f(!1);qf(d).then(()=>{let p=c("GET_IMAGE_TRANSFORM_IMAGE_FILTER");if(p){let m=p(d);if(m==null)return handleRevert(!0);if(typeof m=="boolean")return f(m);if(typeof m.then=="function")return m.then(f)}f(!0)}).catch(p=>{f(!1)})});return e("DID_CREATE_ITEM",(c,{query:d,dispatch:h})=>{d("GET_ALLOW_IMAGE_TRANSFORM")&&c.extend("requestPrepare",()=>new Promise((f,p)=>{h("REQUEST_PREPARE_OUTPUT",{query:c.id,item:c,success:f,failure:p},!0)}))}),e("PREPARE_OUTPUT",(c,{query:d,item:h})=>new Promise(f=>{u(d,c,h).then(p=>{if(!p)return f(c);let m=[];d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL")&&m.push(()=>new Promise(R=>{R({name:d("GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME"),file:c})})),d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT")&&m.push((R,S,D)=>new Promise(x=>{R(S,D).then(O=>x({name:d("GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME"),file:O}))}));let g=d("GET_IMAGE_TRANSFORM_VARIANTS")||{};a(g,(R,S)=>{let D=l(S);m.push((x,O,z)=>new Promise(A=>{D(x,O,z).then(F=>A({name:R,file:F}))}))});let b=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY"),E=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE"),T=b===null?null:b/100,_=d("GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE"),y=d("GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS")||o;h.setMetadata("output",{type:_,quality:T,client:y},!0);let I=(R,S)=>new Promise((D,x)=>{let O={...S};Object.keys(O).filter(G=>G!=="exif").forEach(G=>{y.indexOf(G)===-1&&delete O[G]});let{resize:z,exif:A,output:F,crop:w,filter:L,markup:C}=O,P={image:{orientation:A?A.orientation:null},output:F&&(F.type||typeof F.quality=="number"||F.background)?{type:F.type,quality:typeof F.quality=="number"?F.quality*100:null,background:F.background||d("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||null}:void 0,size:z&&(z.size.width||z.size.height)?{mode:z.mode,upscale:z.upscale,...z.size}:void 0,crop:w&&!s(w)?{...w}:void 0,markup:C&&C.length?C.map($f):[],filter:L};if(P.output){let G=F.type?F.type!==R.type:!1,q=/\/jpe?g$/.test(R.type),X=F.quality!==null?q&&E==="always":!1;if(!!!(P.size||P.crop||P.filter||G||X))return D(R)}let V={beforeCreateBlob:d("GET_IMAGE_TRANSFORM_BEFORE_CREATE_BLOB"),afterCreateBlob:d("GET_IMAGE_TRANSFORM_AFTER_CREATE_BLOB"),canvasMemoryLimit:d("GET_IMAGE_TRANSFORM_CANVAS_MEMORY_LIMIT"),stripImageHead:d("GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD")};Hf(R,P,V).then(G=>{let q=n(G,qh(R.name,Xh(G.type)));D(q)}).catch(x)}),v=m.map(R=>R(I,c,h.getMetadata()));Promise.all(v).then(R=>{f(R.length===1&&R[0].name===null?R[0].file:R)})})})),{options:{allowImageTransform:[!0,i.BOOLEAN],imageTransformImageFilter:[null,i.FUNCTION],imageTransformOutputMimeType:[null,i.STRING],imageTransformOutputQuality:[null,i.INT],imageTransformOutputStripImageHead:[!0,i.BOOLEAN],imageTransformClientTransforms:[null,i.ARRAY],imageTransformOutputQualityMode:["always",i.STRING],imageTransformVariants:[null,i.OBJECT],imageTransformVariantsIncludeDefault:[!0,i.BOOLEAN],imageTransformVariantsDefaultName:[null,i.STRING],imageTransformVariantsIncludeOriginal:[!1,i.BOOLEAN],imageTransformVariantsOriginalName:["original_",i.STRING],imageTransformBeforeCreateBlob:[null,i.FUNCTION],imageTransformAfterCreateBlob:[null,i.FUNCTION],imageTransformCanvasMemoryLimit:[ba&&Xf?4096*4096:null,i.INT],imageTransformCanvasBackgroundColor:[null,i.STRING]}}};ba&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:ho}));var fo=ho;var _a=e=>/^video/.test(e.type),Ht=e=>/^audio/.test(e.type),Ra=class{constructor(t,i){this.mediaEl=t,this.audioElems=i,this.onplayhead=!1,this.duration=0,this.timelineWidth=this.audioElems.timeline.offsetWidth-this.audioElems.playhead.offsetWidth,this.moveplayheadFn=this.moveplayhead.bind(this),this.registerListeners()}registerListeners(){this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1),this.mediaEl.addEventListener("canplaythrough",()=>this.duration=this.mediaEl.duration,!1),this.audioElems.timeline.addEventListener("click",this.timelineClicked.bind(this),!1),this.audioElems.button.addEventListener("click",this.play.bind(this)),this.audioElems.playhead.addEventListener("mousedown",this.mouseDown.bind(this),!1),window.addEventListener("mouseup",this.mouseUp.bind(this),!1)}play(){this.mediaEl.paused?this.mediaEl.play():this.mediaEl.pause(),this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause")}timeUpdate(){let t=this.mediaEl.currentTime/this.duration*100;this.audioElems.playhead.style.marginLeft=t+"%",this.mediaEl.currentTime===this.duration&&(this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause"))}moveplayhead(t){let i=t.clientX-this.getPosition(this.audioElems.timeline);i>=0&&i<=this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=i+"px"),i<0&&(this.audioElems.playhead.style.marginLeft="0px"),i>this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=this.timelineWidth-4+"px")}timelineClicked(t){this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t)}mouseDown(){this.onplayhead=!0,window.addEventListener("mousemove",this.moveplayheadFn,!0),this.mediaEl.removeEventListener("timeupdate",this.timeUpdate.bind(this),!1)}mouseUp(t){window.removeEventListener("mousemove",this.moveplayheadFn,!0),this.onplayhead==!0&&(this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t),this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1)),this.onplayhead=!1}clickPercent(t){return(t.clientX-this.getPosition(this.audioElems.timeline))/this.timelineWidth}getPosition(t){return t.getBoundingClientRect().left}},jf=e=>e.utils.createView({name:"media-preview",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id}),r=Ht(n.file)?"audio":"video";if(t.ref.media=document.createElement(r),t.ref.media.setAttribute("controls",!0),t.element.appendChild(t.ref.media),Ht(n.file)){let o=document.createDocumentFragment();t.ref.audio=[],t.ref.audio.container=document.createElement("div"),t.ref.audio.button=document.createElement("span"),t.ref.audio.timeline=document.createElement("div"),t.ref.audio.playhead=document.createElement("div"),t.ref.audio.container.className="audioplayer",t.ref.audio.button.className="playpausebtn play",t.ref.audio.timeline.className="timeline",t.ref.audio.playhead.className="playhead",t.ref.audio.timeline.appendChild(t.ref.audio.playhead),t.ref.audio.container.appendChild(t.ref.audio.button),t.ref.audio.container.appendChild(t.ref.audio.timeline),o.appendChild(t.ref.audio.container),t.element.appendChild(o)}},write:e.utils.createRoute({DID_MEDIA_PREVIEW_LOAD:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id});if(!n)return;let r=window.URL||window.webkitURL,o=new Blob([n.file],{type:n.file.type});t.ref.media.type=n.file.type,t.ref.media.src=n.file.mock&&n.file.url||r.createObjectURL(o),Ht(n.file)&&new Ra(t.ref.media,t.ref.audio),t.ref.media.addEventListener("loadeddata",()=>{let l=75;if(_a(n.file)){let s=t.ref.media.offsetWidth,u=t.ref.media.videoWidth/s;l=t.ref.media.videoHeight/u}t.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:i.id,height:l})},!1)}})}),Qf=e=>{let t=({root:a,props:n})=>{let{id:r}=n;a.query("GET_ITEM",r)&&a.dispatch("DID_MEDIA_PREVIEW_LOAD",{id:r})},i=({root:a,props:n})=>{let r=jf(e);a.ref.media=a.appendChildView(a.createChildView(r,{id:n.id}))};return e.utils.createView({name:"media-preview-wrapper",create:i,write:e.utils.createRoute({DID_MEDIA_PREVIEW_CONTAINER_CREATE:t})})},ya=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n}=i,r=Qf(e);return t("CREATE_VIEW",o=>{let{is:l,view:s,query:u}=o;if(!l("file"))return;let c=({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=u("GET_ALLOW_VIDEO_PREVIEW"),g=u("GET_ALLOW_AUDIO_PREVIEW");!p||p.archived||(!_a(p.file)||!m)&&(!Ht(p.file)||!g)||(d.ref.mediaPreview=s.appendChildView(s.createChildView(r,{id:f})),d.dispatch("DID_MEDIA_PREVIEW_CONTAINER_CREATE",{id:f}))};s.registerWriter(n({DID_LOAD_ITEM:c},({root:d,props:h})=>{let{id:f}=h,p=u("GET_ITEM",f),m=d.query("GET_ALLOW_VIDEO_PREVIEW"),g=d.query("GET_ALLOW_AUDIO_PREVIEW");!p||(!_a(p.file)||!m)&&(!Ht(p.file)||!g)||d.rect.element.hidden}))}),{options:{allowVideoPreview:[!0,a.BOOLEAN],allowAudioPreview:[!0,a.BOOLEAN]}}},Zf=typeof window<"u"&&typeof window.document<"u";Zf&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:ya}));var po={labelIdle:'\u0627\u0633\u062D\u0628 \u0648 \u0627\u062F\u0631\u062C \u0645\u0644\u0641\u0627\u062A\u0643 \u0623\u0648 \u062A\u0635\u0641\u062D ',labelInvalidField:"\u0627\u0644\u062D\u0642\u0644 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",labelFileWaitingForSize:"\u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u062D\u062C\u0645",labelFileSizeNotAvailable:"\u0627\u0644\u062D\u062C\u0645 \u063A\u064A\u0631 \u0645\u062A\u0627\u062D",labelFileLoading:"\u0628\u0627\u0644\u0625\u0646\u062A\u0638\u0627\u0631",labelFileLoadError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644",labelFileProcessing:"\u064A\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingComplete:"\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingRevertError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u0631\u0627\u062C\u0639",labelFileRemoveError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062D\u0630\u0641",labelTapToCancel:"\u0627\u0646\u0642\u0631 \u0644\u0644\u0625\u0644\u063A\u0627\u0621",labelTapToRetry:"\u0627\u0646\u0642\u0631 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629",labelTapToUndo:"\u0627\u0646\u0642\u0631 \u0644\u0644\u062A\u0631\u0627\u062C\u0639",labelButtonRemoveItem:"\u0645\u0633\u062D",labelButtonAbortItemLoad:"\u0625\u0644\u063A\u0627\u0621",labelButtonRetryItemLoad:"\u0625\u0639\u0627\u062F\u0629",labelButtonAbortItemProcessing:"\u0625\u0644\u063A\u0627\u0621",labelButtonUndoItemProcessing:"\u062A\u0631\u0627\u062C\u0639",labelButtonRetryItemProcessing:"\u0625\u0639\u0627\u062F\u0629",labelButtonProcessItem:"\u0631\u0641\u0639",labelMaxFileSizeExceeded:"\u0627\u0644\u0645\u0644\u0641 \u0643\u0628\u064A\u0631 \u062C\u062F\u0627",labelMaxFileSize:"\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0642\u0635\u0649: {filesize}",labelMaxTotalFileSizeExceeded:"\u062A\u0645 \u062A\u062C\u0627\u0648\u0632 \u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u062D\u062C\u0645 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",labelMaxTotalFileSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641: {filesize}",labelFileTypeNotAllowed:"\u0645\u0644\u0641 \u0645\u0646 \u0646\u0648\u0639 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",fileValidateTypeLabelExpectedTypes:"\u062A\u062A\u0648\u0642\u0639 {allButLastType} \u0645\u0646 {lastType}",imageValidateSizeLabelFormatError:"\u0646\u0648\u0639 \u0627\u0644\u0635\u0648\u0631\u0629 \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645",imageValidateSizeLabelImageSizeTooSmall:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0635\u063A\u064A\u0631 \u062C\u062F\u0627",imageValidateSizeLabelImageSizeTooBig:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u0628\u064A\u0631\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0627\u0644\u062F\u0642\u0629 \u0636\u0639\u064A\u0641\u0629 \u062C\u062F\u0627",imageValidateSizeLabelImageResolutionTooHigh:"\u0627\u0644\u062F\u0642\u0629 \u0645\u0631\u062A\u0641\u0639\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinResolution:"\u0623\u0642\u0644 \u062F\u0642\u0629: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0623\u0642\u0635\u0649 \u062F\u0642\u0629: {maxResolution}"};var mo={labelIdle:'P\u0159et\xE1hn\u011Bte soubor sem (drag&drop) nebo Vyhledat ',labelInvalidField:"Pole obsahuje chybn\xE9 soubory",labelFileWaitingForSize:"Zji\u0161\u0165uje se velikost",labelFileSizeNotAvailable:"Velikost nen\xED zn\xE1m\xE1",labelFileLoading:"P\u0159en\xE1\u0161\xED se",labelFileLoadError:"Chyba p\u0159i p\u0159enosu",labelFileProcessing:"Prob\xEDh\xE1 upload",labelFileProcessingComplete:"Upload dokon\u010Den",labelFileProcessingAborted:"Upload stornov\xE1n",labelFileProcessingError:"Chyba p\u0159i uploadu",labelFileProcessingRevertError:"Chyba p\u0159i obnov\u011B",labelFileRemoveError:"Chyba p\u0159i odstran\u011Bn\xED",labelTapToCancel:"klepn\u011Bte pro storno",labelTapToRetry:"klepn\u011Bte pro opakov\xE1n\xED",labelTapToUndo:"klepn\u011Bte pro vr\xE1cen\xED",labelButtonRemoveItem:"Odstranit",labelButtonAbortItemLoad:"Storno",labelButtonRetryItemLoad:"Opakovat",labelButtonAbortItemProcessing:"Zp\u011Bt",labelButtonUndoItemProcessing:"Vr\xE1tit",labelButtonRetryItemProcessing:"Opakovat",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Soubor je p\u0159\xEDli\u0161 velk\xFD",labelMaxFileSize:"Nejv\u011Bt\u0161\xED velikost souboru je {filesize}",labelMaxTotalFileSizeExceeded:"P\u0159ekro\u010Dena maxim\xE1ln\xED celkov\xE1 velikost souboru",labelMaxTotalFileSize:"Maxim\xE1ln\xED celkov\xE1 velikost souboru je {filesize}",labelFileTypeNotAllowed:"Soubor je nespr\xE1vn\xE9ho typu",fileValidateTypeLabelExpectedTypes:"O\u010Dek\xE1v\xE1 se {allButLastType} nebo {lastType}",imageValidateSizeLabelFormatError:"Obr\xE1zek tohoto typu nen\xED podporov\xE1n",imageValidateSizeLabelImageSizeTooSmall:"Obr\xE1zek je p\u0159\xEDli\u0161 mal\xFD",imageValidateSizeLabelImageSizeTooBig:"Obr\xE1zek je p\u0159\xEDli\u0161 velk\xFD",imageValidateSizeLabelExpectedMinSize:"Minim\xE1ln\xED rozm\u011Br je {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maxim\xE1ln\xED rozm\u011Br je {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 mal\xE9",imageValidateSizeLabelImageResolutionTooHigh:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 velk\xE9",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1ln\xED rozli\u0161en\xED je {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1ln\xED rozli\u0161en\xED je {maxResolution}"};var go={labelIdle:'Tr\xE6k & slip filer eller Gennemse ',labelInvalidField:"Felt indeholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilg\xE6ngelig",labelFileLoading:"Loader",labelFileLoadError:"Load fejlede",labelFileProcessing:"Uploader",labelFileProcessingComplete:"Upload f\xE6rdig",labelFileProcessingAborted:"Upload annulleret",labelFileProcessingError:"Upload fejlede",labelFileProcessingRevertError:"Fortryd fejlede",labelFileRemoveError:"Fjern fejlede",labelTapToCancel:"tryk for at annullere",labelTapToRetry:"tryk for at pr\xF8ve igen",labelTapToUndo:"tryk for at fortryde",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Annuller",labelButtonRetryItemLoad:"Fors\xF8g igen",labelButtonAbortItemProcessing:"Annuller",labelButtonUndoItemProcessing:"Fortryd",labelButtonRetryItemProcessing:"Pr\xF8v igen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal totalst\xF8rrelse overskredet",labelMaxTotalFileSize:"Maksimal total filst\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Ugyldigt format",imageValidateSizeLabelImageSizeTooSmall:"Billedet er for lille",imageValidateSizeLabelImageSizeTooBig:"Billedet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimum st\xF8rrelse er {minBredde} \xD7 {minH\xF8jde}",imageValidateSizeLabelExpectedMaxSize:"Maksimal st\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"For lav opl\xF8sning",imageValidateSizeLabelImageResolutionTooHigh:"For h\xF8j opl\xF8sning",imageValidateSizeLabelExpectedMinResolution:"Minimum opl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal opl\xF8sning er {maxResolution}"};var Eo={labelIdle:'Dateien ablegen oder ausw\xE4hlen ',labelInvalidField:"Feld beinhaltet ung\xFCltige Dateien",labelFileWaitingForSize:"Dateigr\xF6\xDFe berechnen",labelFileSizeNotAvailable:"Dateigr\xF6\xDFe nicht verf\xFCgbar",labelFileLoading:"Laden",labelFileLoadError:"Fehler beim Laden",labelFileProcessing:"Upload l\xE4uft",labelFileProcessingComplete:"Upload abgeschlossen",labelFileProcessingAborted:"Upload abgebrochen",labelFileProcessingError:"Fehler beim Upload",labelFileProcessingRevertError:"Fehler beim Wiederherstellen",labelFileRemoveError:"Fehler beim L\xF6schen",labelTapToCancel:"abbrechen",labelTapToRetry:"erneut versuchen",labelTapToUndo:"r\xFCckg\xE4ngig",labelButtonRemoveItem:"Entfernen",labelButtonAbortItemLoad:"Verwerfen",labelButtonRetryItemLoad:"Erneut versuchen",labelButtonAbortItemProcessing:"Abbrechen",labelButtonUndoItemProcessing:"R\xFCckg\xE4ngig",labelButtonRetryItemProcessing:"Erneut versuchen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Datei ist zu gro\xDF",labelMaxFileSize:"Maximale Dateigr\xF6\xDFe: {filesize}",labelMaxTotalFileSizeExceeded:"Maximale gesamte Dateigr\xF6\xDFe \xFCberschritten",labelMaxTotalFileSize:"Maximale gesamte Dateigr\xF6\xDFe: {filesize}",labelFileTypeNotAllowed:"Dateityp ung\xFCltig",fileValidateTypeLabelExpectedTypes:"Erwartet {allButLastType} oder {lastType}",imageValidateSizeLabelFormatError:"Bildtyp nicht unterst\xFCtzt",imageValidateSizeLabelImageSizeTooSmall:"Bild ist zu klein",imageValidateSizeLabelImageSizeTooBig:"Bild ist zu gro\xDF",imageValidateSizeLabelExpectedMinSize:"Mindestgr\xF6\xDFe: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale Gr\xF6\xDFe: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Aufl\xF6sung ist zu niedrig",imageValidateSizeLabelImageResolutionTooHigh:"Aufl\xF6sung ist zu hoch",imageValidateSizeLabelExpectedMinResolution:"Mindestaufl\xF6sung: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale Aufl\xF6sung: {maxResolution}"};var To={labelIdle:'Drag & Drop your files or Browse ',labelInvalidField:"Field contains invalid files",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"Size not available",labelFileLoading:"Loading",labelFileLoadError:"Error during load",labelFileProcessing:"Uploading",labelFileProcessingComplete:"Upload complete",labelFileProcessingAborted:"Upload cancelled",labelFileProcessingError:"Error during upload",labelFileProcessingRevertError:"Error during revert",labelFileRemoveError:"Error during remove",labelTapToCancel:"tap to cancel",labelTapToRetry:"tap to retry",labelTapToUndo:"tap to undo",labelButtonRemoveItem:"Remove",labelButtonAbortItemLoad:"Abort",labelButtonRetryItemLoad:"Retry",labelButtonAbortItemProcessing:"Cancel",labelButtonUndoItemProcessing:"Undo",labelButtonRetryItemProcessing:"Retry",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"File is too large",labelMaxFileSize:"Maximum file size is {filesize}",labelMaxTotalFileSizeExceeded:"Maximum total size exceeded",labelMaxTotalFileSize:"Maximum total file size is {filesize}",labelFileTypeNotAllowed:"File of invalid type",fileValidateTypeLabelExpectedTypes:"Expects {allButLastType} or {lastType}",imageValidateSizeLabelFormatError:"Image type not supported",imageValidateSizeLabelImageSizeTooSmall:"Image is too small",imageValidateSizeLabelImageSizeTooBig:"Image is too big",imageValidateSizeLabelExpectedMinSize:"Minimum size is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum size is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolution is too low",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimum resolution is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum resolution is {maxResolution}"};var Io={labelIdle:'Arrastra y suelta tus archivos o Examinar ',labelInvalidField:"El campo contiene archivos inv\xE1lidos",labelFileWaitingForSize:"Esperando tama\xF1o",labelFileSizeNotAvailable:"Tama\xF1o no disponible",labelFileLoading:"Cargando",labelFileLoadError:"Error durante la carga",labelFileProcessing:"Cargando",labelFileProcessingComplete:"Carga completa",labelFileProcessingAborted:"Carga cancelada",labelFileProcessingError:"Error durante la carga",labelFileProcessingRevertError:"Error durante la reversi\xF3n",labelFileRemoveError:"Error durante la eliminaci\xF3n",labelTapToCancel:"toca para cancelar",labelTapToRetry:"tocar para volver a intentar",labelTapToUndo:"tocar para deshacer",labelButtonRemoveItem:"Eliminar",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reintentar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Deshacer",labelButtonRetryItemProcessing:"Reintentar",labelButtonProcessItem:"Cargar",labelMaxFileSizeExceeded:"El archivo es demasiado grande",labelMaxFileSize:"El tama\xF1o m\xE1ximo del archivo es {filesize}",labelMaxTotalFileSizeExceeded:"Tama\xF1o total m\xE1ximo excedido",labelMaxTotalFileSize:"El tama\xF1o total m\xE1ximo del archivo es {filesize}",labelFileTypeNotAllowed:"Archivo de tipo no v\xE1lido",fileValidateTypeLabelExpectedTypes:"Espera {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagen no compatible",imageValidateSizeLabelImageSizeTooSmall:"La imagen es demasiado peque\xF1a",imageValidateSizeLabelImageSizeTooBig:"La imagen es demasiado grande",imageValidateSizeLabelExpectedMinSize:"El tama\xF1o m\xEDnimo es {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"El tama\xF1o m\xE1ximo es {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La resoluci\xF3n es demasiado baja",imageValidateSizeLabelImageResolutionTooHigh:"La resoluci\xF3n es demasiado alta",imageValidateSizeLabelExpectedMinResolution:"La resoluci\xF3n m\xEDnima es {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La resoluci\xF3n m\xE1xima es {maxResolution}"};var bo={labelIdle:'\u0641\u0627\u06CC\u0644 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0628\u06A9\u0634\u06CC\u062F \u0648 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F\u060C \u06CC\u0627 \u062C\u0633\u062A\u062C\u0648 \u06A9\u0646\u06CC\u062F ',labelInvalidField:"\u0641\u06CC\u0644\u062F \u062F\u0627\u0631\u0627\u06CC \u0641\u0627\u06CC\u0644 \u0647\u0627\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"\u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A",labelFileLoading:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileLoadError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0627\u062C\u0631\u0627",labelFileProcessing:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingComplete:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0627\u0645\u0644 \u0634\u062F",labelFileProcessingAborted:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0644\u063A\u0648 \u0634\u062F",labelFileProcessingError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingRevertError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelFileRemoveError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelTapToCancel:"\u0628\u0631\u0627\u06CC \u0644\u063A\u0648 \u0636\u0631\u0628\u0647 \u0628\u0632\u0646\u06CC\u062F",labelTapToRetry:"\u0628\u0631\u0627\u06CC \u062A\u06A9\u0631\u0627\u0631 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelTapToUndo:"\u0628\u0631\u0627\u06CC \u0628\u0631\u06AF\u0634\u062A \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelButtonRemoveItem:"\u062D\u0630\u0641",labelButtonAbortItemLoad:"\u0644\u063A\u0648",labelButtonRetryItemLoad:"\u062A\u06A9\u0631\u0627\u0631",labelButtonAbortItemProcessing:"\u0644\u063A\u0648",labelButtonUndoItemProcessing:"\u0628\u0631\u06AF\u0634\u062A",labelButtonRetryItemProcessing:"\u062A\u06A9\u0631\u0627\u0631",labelButtonProcessItem:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelMaxFileSizeExceeded:"\u0641\u0627\u06CC\u0644 \u0628\u0633\u06CC\u0627\u0631 \u062D\u062C\u06CC\u0645 \u0627\u0633\u062A",labelMaxFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0645\u062C\u0627\u0632 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelMaxTotalFileSizeExceeded:"\u0627\u0632 \u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0628\u06CC\u0634\u062A\u0631 \u0634\u062F",labelMaxTotalFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelFileTypeNotAllowed:"\u0646\u0648\u0639 \u0641\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",fileValidateTypeLabelExpectedTypes:"\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 {allButLastType} \u06CC\u0627 {lastType}",imageValidateSizeLabelFormatError:"\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC \u0634\u0648\u062F",imageValidateSizeLabelImageSizeTooSmall:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0648\u0686\u06A9 \u0627\u0633\u062A",imageValidateSizeLabelImageSizeTooBig:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0628\u0632\u0631\u06AF \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinSize:"\u062D\u062F\u0627\u0642\u0644 \u0627\u0646\u062F\u0627\u0632\u0647 {minWidth} \xD7 {minHeight} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0627\u0646\u062F\u0627\u0632\u0647 {maxWidth} \xD7 {maxHeight} \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooLow:"\u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0645 \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooHigh:"\u0648\u0636\u0648\u0639 \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0632\u06CC\u0627\u062F \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinResolution:"\u062D\u062F\u0627\u0642\u0644 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {minResolution} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxResolution:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {maxResolution} \u0627\u0633\u062A"};var _o={labelIdle:'Ved\xE4 ja pudota tiedostoja tai Selaa ',labelInvalidField:"Kent\xE4ss\xE4 on virheellisi\xE4 tiedostoja",labelFileWaitingForSize:"Odotetaan kokoa",labelFileSizeNotAvailable:"Kokoa ei saatavilla",labelFileLoading:"Ladataan",labelFileLoadError:"Virhe latauksessa",labelFileProcessing:"L\xE4hetet\xE4\xE4n",labelFileProcessingComplete:"L\xE4hetys valmis",labelFileProcessingAborted:"L\xE4hetys peruttu",labelFileProcessingError:"Virhe l\xE4hetyksess\xE4",labelFileProcessingRevertError:"Virhe palautuksessa",labelFileRemoveError:"Virhe poistamisessa",labelTapToCancel:"peruuta napauttamalla",labelTapToRetry:"yrit\xE4 uudelleen napauttamalla",labelTapToUndo:"kumoa napauttamalla",labelButtonRemoveItem:"Poista",labelButtonAbortItemLoad:"Keskeyt\xE4",labelButtonRetryItemLoad:"Yrit\xE4 uudelleen",labelButtonAbortItemProcessing:"Peruuta",labelButtonUndoItemProcessing:"Kumoa",labelButtonRetryItemProcessing:"Yrit\xE4 uudelleen",labelButtonProcessItem:"L\xE4het\xE4",labelMaxFileSizeExceeded:"Tiedoston koko on liian suuri",labelMaxFileSize:"Tiedoston maksimikoko on {filesize}",labelMaxTotalFileSizeExceeded:"Tiedostojen yhdistetty maksimikoko ylitetty",labelMaxTotalFileSize:"Tiedostojen yhdistetty maksimikoko on {filesize}",labelFileTypeNotAllowed:"Tiedostotyyppi\xE4 ei sallita",fileValidateTypeLabelExpectedTypes:"Sallitaan {allButLastType} tai {lastType}",imageValidateSizeLabelFormatError:"Kuvatyyppi\xE4 ei tueta",imageValidateSizeLabelImageSizeTooSmall:"Kuva on liian pieni",imageValidateSizeLabelImageSizeTooBig:"Kuva on liian suuri",imageValidateSizeLabelExpectedMinSize:"Minimikoko on {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimikoko on {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resoluutio on liian pieni",imageValidateSizeLabelImageResolutionTooHigh:"Resoluutio on liian suuri",imageValidateSizeLabelExpectedMinResolution:"Minimiresoluutio on {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimiresoluutio on {maxResolution}"};var Ro={labelIdle:'Faites glisser vos fichiers ou Parcourir ',labelInvalidField:"Le champ contient des fichiers invalides",labelFileWaitingForSize:"En attente de taille",labelFileSizeNotAvailable:"Taille non disponible",labelFileLoading:"Chargement",labelFileLoadError:"Erreur durant le chargement",labelFileProcessing:"Traitement",labelFileProcessingComplete:"Traitement effectu\xE9",labelFileProcessingAborted:"Traitement interrompu",labelFileProcessingError:"Erreur durant le traitement",labelFileProcessingRevertError:"Erreur durant la restauration",labelFileRemoveError:"Erreur durant la suppression",labelTapToCancel:"appuyer pour annuler",labelTapToRetry:"appuyer pour r\xE9essayer",labelTapToUndo:"appuyer pour revenir en arri\xE8re",labelButtonRemoveItem:"Retirer",labelButtonAbortItemLoad:"Annuler",labelButtonRetryItemLoad:"Recommencer",labelButtonAbortItemProcessing:"Annuler",labelButtonUndoItemProcessing:"Revenir en arri\xE8re",labelButtonRetryItemProcessing:"Recommencer",labelButtonProcessItem:"Transf\xE9rer",labelMaxFileSizeExceeded:"Le fichier est trop volumineux",labelMaxFileSize:"La taille maximale de fichier est {filesize}",labelMaxTotalFileSizeExceeded:"Taille totale maximale d\xE9pass\xE9e",labelMaxTotalFileSize:"La taille totale maximale des fichiers est {filesize}",labelFileTypeNotAllowed:"Fichier non valide",fileValidateTypeLabelExpectedTypes:"Attendu {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Type d'image non pris en charge",imageValidateSizeLabelImageSizeTooSmall:"L'image est trop petite",imageValidateSizeLabelImageSizeTooBig:"L'image est trop grande",imageValidateSizeLabelExpectedMinSize:"La taille minimale est {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La taille maximale est {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La r\xE9solution est trop faible",imageValidateSizeLabelImageResolutionTooHigh:"La r\xE9solution est trop \xE9lev\xE9e",imageValidateSizeLabelExpectedMinResolution:"La r\xE9solution minimale est {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La r\xE9solution maximale est {maxResolution}"};var yo={labelIdle:'Mozgasd ide a f\xE1jlt a felt\xF6lt\xE9shez, vagy tall\xF3z\xE1s ',labelInvalidField:"A mez\u0151 \xE9rv\xE9nytelen f\xE1jlokat tartalmaz",labelFileWaitingForSize:"F\xE1ljm\xE9ret kisz\xE1mol\xE1sa",labelFileSizeNotAvailable:"A f\xE1jlm\xE9ret nem el\xE9rhet\u0151",labelFileLoading:"T\xF6lt\xE9s",labelFileLoadError:"Hiba a bet\xF6lt\xE9s sor\xE1n",labelFileProcessing:"Felt\xF6lt\xE9s",labelFileProcessingComplete:"Sikeres felt\xF6lt\xE9s",labelFileProcessingAborted:"A felt\xF6lt\xE9s megszak\xEDtva",labelFileProcessingError:"Hiba t\xF6rt\xE9nt a felt\xF6lt\xE9s sor\xE1n",labelFileProcessingRevertError:"Hiba a vissza\xE1ll\xEDt\xE1s sor\xE1n",labelFileRemoveError:"Hiba t\xF6rt\xE9nt az elt\xE1vol\xEDt\xE1s sor\xE1n",labelTapToCancel:"koppints a t\xF6rl\xE9shez",labelTapToRetry:"koppints az \xFAjrakezd\xE9shez",labelTapToUndo:"koppints a visszavon\xE1shoz",labelButtonRemoveItem:"Elt\xE1vol\xEDt\xE1s",labelButtonAbortItemLoad:"Megszak\xEDt\xE1s",labelButtonRetryItemLoad:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonAbortItemProcessing:"Megszak\xEDt\xE1s",labelButtonUndoItemProcessing:"Visszavon\xE1s",labelButtonRetryItemProcessing:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonProcessItem:"Felt\xF6lt\xE9s",labelMaxFileSizeExceeded:"A f\xE1jl t\xFAll\xE9pte a maxim\xE1lis m\xE9retet",labelMaxFileSize:"Maxim\xE1lis f\xE1jlm\xE9ret: {filesize}",labelMaxTotalFileSizeExceeded:"T\xFAll\xE9pte a maxim\xE1lis teljes m\xE9retet",labelMaxTotalFileSize:"A maxim\xE1is teljes f\xE1jlm\xE9ret: {filesize}",labelFileTypeNotAllowed:"\xC9rv\xE9nytelen t\xEDpus\xFA f\xE1jl",fileValidateTypeLabelExpectedTypes:"Enged\xE9lyezett t\xEDpusok {allButLastType} vagy {lastType}",imageValidateSizeLabelFormatError:"A k\xE9pt\xEDpus nem t\xE1mogatott",imageValidateSizeLabelImageSizeTooSmall:"A k\xE9p t\xFAl kicsi",imageValidateSizeLabelImageSizeTooBig:"A k\xE9p t\xFAl nagy",imageValidateSizeLabelExpectedMinSize:"Minimum m\xE9ret: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum m\xE9ret: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"A felbont\xE1s t\xFAl alacsony",imageValidateSizeLabelImageResolutionTooHigh:"A felbont\xE1s t\xFAl magas",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1is felbont\xE1s: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1lis felbont\xE1s: {maxResolution}"};var So={labelIdle:'Seret & Jatuhkan berkas Anda atau Jelajahi',labelInvalidField:"Isian berisi berkas yang tidak valid",labelFileWaitingForSize:"Menunggu ukuran berkas",labelFileSizeNotAvailable:"Ukuran berkas tidak tersedia",labelFileLoading:"Memuat",labelFileLoadError:"Kesalahan saat memuat",labelFileProcessing:"Mengunggah",labelFileProcessingComplete:"Pengunggahan selesai",labelFileProcessingAborted:"Pengunggahan dibatalkan",labelFileProcessingError:"Kesalahan saat pengunggahan",labelFileProcessingRevertError:"Kesalahan saat pemulihan",labelFileRemoveError:"Kesalahan saat penghapusan",labelTapToCancel:"ketuk untuk membatalkan",labelTapToRetry:"ketuk untuk mencoba lagi",labelTapToUndo:"ketuk untuk mengurungkan",labelButtonRemoveItem:"Hapus",labelButtonAbortItemLoad:"Batalkan",labelButtonRetryItemLoad:"Coba Kembali",labelButtonAbortItemProcessing:"Batalkan",labelButtonUndoItemProcessing:"Urungkan",labelButtonRetryItemProcessing:"Coba Kembali",labelButtonProcessItem:"Unggah",labelMaxFileSizeExceeded:"Berkas terlalu besar",labelMaxFileSize:"Ukuran berkas maksimum adalah {filesize}",labelMaxTotalFileSizeExceeded:"Jumlah berkas maksimum terlampaui",labelMaxTotalFileSize:"Jumlah berkas maksimum adalah {filesize}",labelFileTypeNotAllowed:"Jenis berkas tidak valid",fileValidateTypeLabelExpectedTypes:"Mengharapkan {allButLastType} atau {lastType}",imageValidateSizeLabelFormatError:"Jenis citra tidak didukung",imageValidateSizeLabelImageSizeTooSmall:"Citra terlalu kecil",imageValidateSizeLabelImageSizeTooBig:"Citra terlalu besar",imageValidateSizeLabelExpectedMinSize:"Ukuran minimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Ukuran maksimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolusi terlalu rendah",imageValidateSizeLabelImageResolutionTooHigh:"Resolusi terlalu tinggi",imageValidateSizeLabelExpectedMinResolution:"Resolusi minimum adalah {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolusi maksimum adalah {maxResolution}"};var wo={labelIdle:'Trascina e rilascia i tuoi file oppure Carica ',labelInvalidField:"Il campo contiene dei file non validi",labelFileWaitingForSize:"Aspettando le dimensioni",labelFileSizeNotAvailable:"Dimensioni non disponibili",labelFileLoading:"Caricamento",labelFileLoadError:"Errore durante il caricamento",labelFileProcessing:"Caricamento",labelFileProcessingComplete:"Caricamento completato",labelFileProcessingAborted:"Caricamento cancellato",labelFileProcessingError:"Errore durante il caricamento",labelFileProcessingRevertError:"Errore durante il ripristino",labelFileRemoveError:"Errore durante l'eliminazione",labelTapToCancel:"tocca per cancellare",labelTapToRetry:"tocca per riprovare",labelTapToUndo:"tocca per ripristinare",labelButtonRemoveItem:"Elimina",labelButtonAbortItemLoad:"Cancella",labelButtonRetryItemLoad:"Ritenta",labelButtonAbortItemProcessing:"Camcella",labelButtonUndoItemProcessing:"Indietro",labelButtonRetryItemProcessing:"Ritenta",labelButtonProcessItem:"Carica",labelMaxFileSizeExceeded:"Il peso del file \xE8 eccessivo",labelMaxFileSize:"Il peso massimo del file \xE8 {filesize}",labelMaxTotalFileSizeExceeded:"Dimensione totale massima superata",labelMaxTotalFileSize:"La dimensione massima totale del file \xE8 {filesize}",labelFileTypeNotAllowed:"File non supportato",fileValidateTypeLabelExpectedTypes:"Aspetta {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo di immagine non compatibile",imageValidateSizeLabelImageSizeTooSmall:"L'immagine \xE8 troppo piccola",imageValidateSizeLabelImageSizeTooBig:"L'immagine \xE8 troppo grande",imageValidateSizeLabelExpectedMinSize:"La dimensione minima \xE8 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La dimensione massima \xE8 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La risoluzione \xE8 troppo bassa",imageValidateSizeLabelImageResolutionTooHigh:"La risoluzione \xE8 troppo alta",imageValidateSizeLabelExpectedMinResolution:"La risoluzione minima \xE8 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La risoluzione massima \xE8 {maxResolution}"};var vo={labelIdle:'Drag & Drop je bestanden of Bladeren ',labelInvalidField:"Veld bevat ongeldige bestanden",labelFileWaitingForSize:"Wachten op grootte",labelFileSizeNotAvailable:"Grootte niet beschikbaar",labelFileLoading:"Laden",labelFileLoadError:"Fout tijdens laden",labelFileProcessing:"Uploaden",labelFileProcessingComplete:"Upload afgerond",labelFileProcessingAborted:"Upload geannuleerd",labelFileProcessingError:"Fout tijdens upload",labelFileProcessingRevertError:"Fout bij herstellen",labelFileRemoveError:"Fout bij verwijderen",labelTapToCancel:"tik om te annuleren",labelTapToRetry:"tik om opnieuw te proberen",labelTapToUndo:"tik om ongedaan te maken",labelButtonRemoveItem:"Verwijderen",labelButtonAbortItemLoad:"Afbreken",labelButtonRetryItemLoad:"Opnieuw proberen",labelButtonAbortItemProcessing:"Annuleren",labelButtonUndoItemProcessing:"Ongedaan maken",labelButtonRetryItemProcessing:"Opnieuw proberen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Bestand is te groot",labelMaxFileSize:"Maximale bestandsgrootte is {filesize}",labelMaxTotalFileSizeExceeded:"Maximale totale grootte overschreden",labelMaxTotalFileSize:"Maximale totale bestandsgrootte is {filesize}",labelFileTypeNotAllowed:"Ongeldig bestandstype",fileValidateTypeLabelExpectedTypes:"Verwacht {allButLastType} of {lastType}",imageValidateSizeLabelFormatError:"Afbeeldingstype niet ondersteund",imageValidateSizeLabelImageSizeTooSmall:"Afbeelding is te klein",imageValidateSizeLabelImageSizeTooBig:"Afbeelding is te groot",imageValidateSizeLabelExpectedMinSize:"Minimale afmeting is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale afmeting is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolutie is te laag",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimale resolutie is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale resolutie is {maxResolution}"};var Ao={labelIdle:'Dra og slipp filene dine, eller Bla gjennom... ',labelInvalidField:"Feltet inneholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilgjengelig",labelFileLoading:"Laster",labelFileLoadError:"Feil under lasting",labelFileProcessing:"Laster opp",labelFileProcessingComplete:"Opplasting ferdig",labelFileProcessingAborted:"Opplasting avbrutt",labelFileProcessingError:"Feil under opplasting",labelFileProcessingRevertError:"Feil under reversering",labelFileRemoveError:"Feil under flytting",labelTapToCancel:"klikk for \xE5 avbryte",labelTapToRetry:"klikk for \xE5 pr\xF8ve p\xE5 nytt",labelTapToUndo:"klikk for \xE5 angre",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"Pr\xF8v p\xE5 nytt",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"Angre",labelButtonRetryItemProcessing:"Pr\xF8v p\xE5 nytt",labelButtonProcessItem:"Last opp",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal total st\xF8rrelse oversteget",labelMaxTotalFileSize:"Maksimal total st\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildeformat ikke st\xF8ttet",imageValidateSizeLabelImageSizeTooSmall:"Bildet er for lite",imageValidateSizeLabelImageSizeTooBig:"Bildet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimumsst\xF8rrelse er {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimumsst\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Oppl\xF8sningen er for lav",imageValidateSizeLabelImageResolutionTooHigh:"Oppl\xF8sningen er for h\xF8y",imageValidateSizeLabelExpectedMinResolution:"Minimum oppl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal oppl\xF8sning er {maxResolution}"};var Lo={labelIdle:'Przeci\u0105gnij i upu\u015B\u0107 lub wybierz pliki',labelInvalidField:"Nieprawid\u0142owe pliki",labelFileWaitingForSize:"Pobieranie rozmiaru",labelFileSizeNotAvailable:"Nieznany rozmiar",labelFileLoading:"Wczytywanie",labelFileLoadError:"B\u0142\u0105d wczytywania",labelFileProcessing:"Przesy\u0142anie",labelFileProcessingComplete:"Przes\u0142ano",labelFileProcessingAborted:"Przerwano",labelFileProcessingError:"Przesy\u0142anie nie powiod\u0142o si\u0119",labelFileProcessingRevertError:"Co\u015B posz\u0142o nie tak",labelFileRemoveError:"Nieudane usuni\u0119cie",labelTapToCancel:"Anuluj",labelTapToRetry:"Pon\xF3w",labelTapToUndo:"Cofnij",labelButtonRemoveItem:"Usu\u0144",labelButtonAbortItemLoad:"Przerwij",labelButtonRetryItemLoad:"Pon\xF3w",labelButtonAbortItemProcessing:"Anuluj",labelButtonUndoItemProcessing:"Cofnij",labelButtonRetryItemProcessing:"Pon\xF3w",labelButtonProcessItem:"Prze\u015Blij",labelMaxFileSizeExceeded:"Plik jest zbyt du\u017Cy",labelMaxFileSize:"Dopuszczalna wielko\u015B\u0107 pliku to {filesize}",labelMaxTotalFileSizeExceeded:"Przekroczono \u0142\u0105czny rozmiar plik\xF3w",labelMaxTotalFileSize:"\u0141\u0105czny rozmiar plik\xF3w nie mo\u017Ce przekroczy\u0107 {filesize}",labelFileTypeNotAllowed:"Niedozwolony rodzaj pliku",fileValidateTypeLabelExpectedTypes:"Oczekiwano {allButLastType} lub {lastType}",imageValidateSizeLabelFormatError:"Nieobs\u0142ugiwany format obrazu",imageValidateSizeLabelImageSizeTooSmall:"Obraz jest zbyt ma\u0142y",imageValidateSizeLabelImageSizeTooBig:"Obraz jest zbyt du\u017Cy",imageValidateSizeLabelExpectedMinSize:"Minimalne wymiary obrazu to {minWidth}\xD7{minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksymalna wymiary obrazu to {maxWidth}\xD7{maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozdzielczo\u015B\u0107 jest zbyt niska",imageValidateSizeLabelImageResolutionTooHigh:"Rozdzielczo\u015B\u0107 jest zbyt wysoka",imageValidateSizeLabelExpectedMinResolution:"Minimalna rozdzielczo\u015B\u0107 to {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksymalna rozdzielczo\u015B\u0107 to {maxResolution}"};var bi={labelIdle:'Arraste e solte os arquivos ou Clique aqui ',labelInvalidField:"Arquivos inv\xE1lidos",labelFileWaitingForSize:"Calculando o tamanho do arquivo",labelFileSizeNotAvailable:"Tamanho do arquivo indispon\xEDvel",labelFileLoading:"Carregando",labelFileLoadError:"Erro durante o carregamento",labelFileProcessing:"Enviando",labelFileProcessingComplete:"Envio finalizado",labelFileProcessingAborted:"Envio cancelado",labelFileProcessingError:"Erro durante o envio",labelFileProcessingRevertError:"Erro ao reverter o envio",labelFileRemoveError:"Erro ao remover o arquivo",labelTapToCancel:"clique para cancelar",labelTapToRetry:"clique para reenviar",labelTapToUndo:"clique para desfazer",labelButtonRemoveItem:"Remover",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reenviar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Desfazer",labelButtonRetryItemProcessing:"Reenviar",labelButtonProcessItem:"Enviar",labelMaxFileSizeExceeded:"Arquivo \xE9 muito grande",labelMaxFileSize:"O tamanho m\xE1ximo permitido: {filesize}",labelMaxTotalFileSizeExceeded:"Tamanho total dos arquivos excedido",labelMaxTotalFileSize:"Tamanho total permitido: {filesize}",labelFileTypeNotAllowed:"Tipo de arquivo inv\xE1lido",fileValidateTypeLabelExpectedTypes:"Tipos de arquivo suportados s\xE3o {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagem inv\xE1lida",imageValidateSizeLabelImageSizeTooSmall:"Imagem muito pequena",imageValidateSizeLabelImageSizeTooBig:"Imagem muito grande",imageValidateSizeLabelExpectedMinSize:"Tamanho m\xEDnimo permitida: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Tamanho m\xE1ximo permitido: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolu\xE7\xE3o muito baixa",imageValidateSizeLabelImageResolutionTooHigh:"Resolu\xE7\xE3o muito alta",imageValidateSizeLabelExpectedMinResolution:"Resolu\xE7\xE3o m\xEDnima permitida: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolu\xE7\xE3o m\xE1xima permitida: {maxResolution}"};var Mo={labelIdle:'Trage \u0219i plaseaz\u0103 fi\u0219iere sau Caut\u0103-le ',labelInvalidField:"C\xE2mpul con\u021Bine fi\u0219iere care nu sunt valide",labelFileWaitingForSize:"\xCEn a\u0219teptarea dimensiunii",labelFileSizeNotAvailable:"Dimensiunea nu este diponibil\u0103",labelFileLoading:"Se \xEEncarc\u0103",labelFileLoadError:"Eroare la \xEEnc\u0103rcare",labelFileProcessing:"Se \xEEncarc\u0103",labelFileProcessingComplete:"\xCEnc\u0103rcare finalizat\u0103",labelFileProcessingAborted:"\xCEnc\u0103rcare anulat\u0103",labelFileProcessingError:"Eroare la \xEEnc\u0103rcare",labelFileProcessingRevertError:"Eroare la anulare",labelFileRemoveError:"Eroare la \u015Ftergere",labelTapToCancel:"apas\u0103 pentru a anula",labelTapToRetry:"apas\u0103 pentru a re\xEEncerca",labelTapToUndo:"apas\u0103 pentru a anula",labelButtonRemoveItem:"\u015Eterge",labelButtonAbortItemLoad:"Anuleaz\u0103",labelButtonRetryItemLoad:"Re\xEEncearc\u0103",labelButtonAbortItemProcessing:"Anuleaz\u0103",labelButtonUndoItemProcessing:"Anuleaz\u0103",labelButtonRetryItemProcessing:"Re\xEEncearc\u0103",labelButtonProcessItem:"\xCEncarc\u0103",labelMaxFileSizeExceeded:"Fi\u0219ierul este prea mare",labelMaxFileSize:"Dimensiunea maxim\u0103 a unui fi\u0219ier este de {filesize}",labelMaxTotalFileSizeExceeded:"Dimensiunea total\u0103 maxim\u0103 a fost dep\u0103\u0219it\u0103",labelMaxTotalFileSize:"Dimensiunea total\u0103 maxim\u0103 a fi\u0219ierelor este de {filesize}",labelFileTypeNotAllowed:"Tipul fi\u0219ierului nu este valid",fileValidateTypeLabelExpectedTypes:"Se a\u0219teapt\u0103 {allButLastType} sau {lastType}",imageValidateSizeLabelFormatError:"Formatul imaginii nu este acceptat",imageValidateSizeLabelImageSizeTooSmall:"Imaginea este prea mic\u0103",imageValidateSizeLabelImageSizeTooBig:"Imaginea este prea mare",imageValidateSizeLabelExpectedMinSize:"M\u0103rimea minim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelExpectedMaxSize:"M\u0103rimea maxim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rezolu\u021Bia este prea mic\u0103",imageValidateSizeLabelImageResolutionTooHigh:"Rezolu\u021Bia este prea mare",imageValidateSizeLabelExpectedMinResolution:"Rezolu\u021Bia minim\u0103 este de {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Rezolu\u021Bia maxim\u0103 este de {maxResolution}"};var Oo={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B",labelFileWaitingForSize:"\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0435\u0440",labelFileSizeNotAvailable:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",labelFileLoading:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435",labelFileLoadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438",labelFileProcessing:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelFileProcessingComplete:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",labelFileProcessingAborted:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430",labelFileProcessingError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435",labelFileProcessingRevertError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0435",labelFileRemoveError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438",labelTapToCancel:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B",labelTapToRetry:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelTapToUndo:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRemoveItem:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",labelButtonAbortItemLoad:"\u041F\u0440\u0435\u043A\u0440\u0430\u0449\u0435\u043D\u043E",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonAbortItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430",labelButtonUndoItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonProcessItem:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelFileTypeNotAllowed:"\u0424\u0430\u0439\u043B \u043D\u0435\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430",fileValidateTypeLabelExpectedTypes:"\u041E\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044F {allButLastType} \u0438\u043B\u0438 {lastType}",imageValidateSizeLabelFormatError:"\u0422\u0438\u043F \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043D\u0438\u0437\u043A\u043E\u0435",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u044B\u0441\u043E\u043A\u043E\u0435",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {maxResolution}"};var xo={labelIdle:'Drag och sl\xE4pp dina filer eller Bl\xE4ddra ',labelInvalidField:"F\xE4ltet inneh\xE5ller felaktiga filer",labelFileWaitingForSize:"V\xE4ntar p\xE5 storlek",labelFileSizeNotAvailable:"Storleken finns inte tillg\xE4nglig",labelFileLoading:"Laddar",labelFileLoadError:"Fel under laddning",labelFileProcessing:"Laddar upp",labelFileProcessingComplete:"Uppladdning klar",labelFileProcessingAborted:"Uppladdning avbruten",labelFileProcessingError:"Fel under uppladdning",labelFileProcessingRevertError:"Fel under \xE5terst\xE4llning",labelFileRemoveError:"Fel under borttagning",labelTapToCancel:"tryck f\xF6r att avbryta",labelTapToRetry:"tryck f\xF6r att f\xF6rs\xF6ka igen",labelTapToUndo:"tryck f\xF6r att \xE5ngra",labelButtonRemoveItem:"Tabort",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"F\xF6rs\xF6k igen",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"\xC5ngra",labelButtonRetryItemProcessing:"F\xF6rs\xF6k igen",labelButtonProcessItem:"Ladda upp",labelMaxFileSizeExceeded:"Filen \xE4r f\xF6r stor",labelMaxFileSize:"St\xF6rsta till\xE5tna filstorlek \xE4r {filesize}",labelMaxTotalFileSizeExceeded:"Maximal uppladdningsstorlek uppn\xE5d",labelMaxTotalFileSize:"Maximal uppladdningsstorlek \xE4r {filesize}",labelFileTypeNotAllowed:"Felaktig filtyp",fileValidateTypeLabelExpectedTypes:"Godk\xE4nda filtyper {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildtypen saknar st\xF6d",imageValidateSizeLabelImageSizeTooSmall:"Bilden \xE4r f\xF6r liten",imageValidateSizeLabelImageSizeTooBig:"Bilden \xE4r f\xF6r stor",imageValidateSizeLabelExpectedMinSize:"Minimal storlek \xE4r {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximal storlek \xE4r {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Uppl\xF6sningen \xE4r f\xF6r l\xE5g",imageValidateSizeLabelImageResolutionTooHigh:"Uppl\xF6sningen \xE4r f\xF6r h\xF6g",imageValidateSizeLabelExpectedMinResolution:"Minsta till\xE5tna uppl\xF6sning \xE4r {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"H\xF6gsta till\xE5tna uppl\xF6sning \xE4r {maxResolution}"};var Do={labelIdle:'Dosyan\u0131z\u0131 S\xFCr\xFCkleyin & B\u0131rak\u0131n ya da Se\xE7in ',labelInvalidField:"Alan ge\xE7ersiz dosyalar i\xE7eriyor",labelFileWaitingForSize:"Boyut hesaplan\u0131yor",labelFileSizeNotAvailable:"Boyut mevcut de\u011Fil",labelFileLoading:"Y\xFCkleniyor",labelFileLoadError:"Y\xFCkleme s\u0131ras\u0131nda hata olu\u015Ftu",labelFileProcessing:"Y\xFCkleniyor",labelFileProcessingComplete:"Y\xFCkleme tamamland\u0131",labelFileProcessingAborted:"Y\xFCkleme iptal edildi",labelFileProcessingError:"Y\xFCklerken hata olu\u015Ftu",labelFileProcessingRevertError:"Geri \xE7ekerken hata olu\u015Ftu",labelFileRemoveError:"Kald\u0131r\u0131rken hata olu\u015Ftu",labelTapToCancel:"\u0130ptal etmek i\xE7in t\u0131klay\u0131n",labelTapToRetry:"Tekrar denemek i\xE7in t\u0131klay\u0131n",labelTapToUndo:"Geri almak i\xE7in t\u0131klay\u0131n",labelButtonRemoveItem:"Kald\u0131r",labelButtonAbortItemLoad:"\u0130ptal Et",labelButtonRetryItemLoad:"Tekrar dene",labelButtonAbortItemProcessing:"\u0130ptal et",labelButtonUndoItemProcessing:"Geri Al",labelButtonRetryItemProcessing:"Tekrar dene",labelButtonProcessItem:"Y\xFCkle",labelMaxFileSizeExceeded:"Dosya \xE7ok b\xFCy\xFCk",labelMaxFileSize:"En fazla dosya boyutu: {filesize}",labelMaxTotalFileSizeExceeded:"Maximum boyut a\u015F\u0131ld\u0131",labelMaxTotalFileSize:"Maximum dosya boyutu :{filesize}",labelFileTypeNotAllowed:"Ge\xE7ersiz dosya tipi",fileValidateTypeLabelExpectedTypes:"\u015Eu {allButLastType} ya da \u015Fu dosya olmas\u0131 gerekir: {lastType}",imageValidateSizeLabelFormatError:"Resim tipi desteklenmiyor",imageValidateSizeLabelImageSizeTooSmall:"Resim \xE7ok k\xFC\xE7\xFCk",imageValidateSizeLabelImageSizeTooBig:"Resim \xE7ok b\xFCy\xFCk",imageValidateSizeLabelExpectedMinSize:"Minimum boyut {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum boyut {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok d\xFC\u015F\xFCk",imageValidateSizeLabelImageResolutionTooHigh:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok y\xFCksek",imageValidateSizeLabelExpectedMinResolution:"Minimum \xE7\xF6z\xFCn\xFCrl\xFCk {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum \xE7\xF6z\xFCn\xFCrl\xFCk {maxResolution}"};var Po={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B\u0438 \u0430\u0431\u043E \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0456 \u0444\u0430\u0439\u043B\u0438",labelFileWaitingForSize:"\u0412\u043A\u0430\u0436\u0456\u0442\u044C \u0440\u043E\u0437\u043C\u0456\u0440",labelFileSizeNotAvailable:"\u0420\u043E\u0437\u043C\u0456\u0440 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439",labelFileLoading:"\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F",labelFileLoadError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456",labelFileProcessing:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelFileProcessingComplete:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",labelFileProcessingAborted:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E",labelFileProcessingError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u0456",labelFileProcessingRevertError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0456",labelFileRemoveError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u0456",labelTapToCancel:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelTapToRetry:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelTapToUndo:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRemoveItem:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",labelButtonAbortItemLoad:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonAbortItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonUndoItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonProcessItem:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440 \u0444\u0430\u0439\u043B\u0443: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0435\u0440\u0435\u0432\u0438\u0449\u0435\u043D\u043E \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {filesize}",labelFileTypeNotAllowed:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0444\u0430\u0439\u043B\u0443 \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",fileValidateTypeLabelExpectedTypes:"\u041E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F {allButLastType} \u0430\u0431\u043E {lastType}",imageValidateSizeLabelFormatError:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0456",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0456",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {maxResolution}"};var Fo={labelIdle:'K\xE9o th\u1EA3 t\u1EC7p c\u1EE7a b\u1EA1n ho\u1EB7c T\xECm ki\u1EBFm ',labelInvalidField:"Tr\u01B0\u1EDDng ch\u1EE9a c\xE1c t\u1EC7p kh\xF4ng h\u1EE3p l\u1EC7",labelFileWaitingForSize:"\u0110ang ch\u1EDD k\xEDch th\u01B0\u1EDBc",labelFileSizeNotAvailable:"K\xEDch th\u01B0\u1EDBc kh\xF4ng c\xF3 s\u1EB5n",labelFileLoading:"\u0110ang t\u1EA3i",labelFileLoadError:"L\u1ED7i khi t\u1EA3i",labelFileProcessing:"\u0110ang t\u1EA3i l\xEAn",labelFileProcessingComplete:"T\u1EA3i l\xEAn th\xE0nh c\xF4ng",labelFileProcessingAborted:"\u0110\xE3 hu\u1EF7 t\u1EA3i l\xEAn",labelFileProcessingError:"L\u1ED7i khi t\u1EA3i l\xEAn",labelFileProcessingRevertError:"L\u1ED7i khi ho\xE0n nguy\xEAn",labelFileRemoveError:"L\u1ED7i khi x\xF3a",labelTapToCancel:"nh\u1EA5n \u0111\u1EC3 h\u1EE7y",labelTapToRetry:"nh\u1EA5n \u0111\u1EC3 th\u1EED l\u1EA1i",labelTapToUndo:"nh\u1EA5n \u0111\u1EC3 ho\xE0n t\xE1c",labelButtonRemoveItem:"Xo\xE1",labelButtonAbortItemLoad:"Hu\u1EF7 b\u1ECF",labelButtonRetryItemLoad:"Th\u1EED l\u1EA1i",labelButtonAbortItemProcessing:"H\u1EE7y b\u1ECF",labelButtonUndoItemProcessing:"Ho\xE0n t\xE1c",labelButtonRetryItemProcessing:"Th\u1EED l\u1EA1i",labelButtonProcessItem:"T\u1EA3i l\xEAn",labelMaxFileSizeExceeded:"T\u1EADp tin qu\xE1 l\u1EDBn",labelMaxFileSize:"K\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelMaxTotalFileSizeExceeded:"\u0110\xE3 v\u01B0\u1EE3t qu\xE1 t\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a",labelMaxTotalFileSize:"T\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelFileTypeNotAllowed:"T\u1EC7p thu\u1ED9c lo\u1EA1i kh\xF4ng h\u1EE3p l\u1EC7",fileValidateTypeLabelExpectedTypes:"Ki\u1EC3u t\u1EC7p h\u1EE3p l\u1EC7 l\xE0 {allButLastType} ho\u1EB7c {lastType}",imageValidateSizeLabelFormatError:"Lo\u1EA1i h\xECnh \u1EA3nh kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3",imageValidateSizeLabelImageSizeTooSmall:"H\xECnh \u1EA3nh qu\xE1 nh\u1ECF",imageValidateSizeLabelImageSizeTooBig:"H\xECnh \u1EA3nh qu\xE1 l\u1EDBn",imageValidateSizeLabelExpectedMinSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i thi\u1EC3u l\xE0 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a l\xE0 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 th\u1EA5p",imageValidateSizeLabelImageResolutionTooHigh:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 cao",imageValidateSizeLabelExpectedMinResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i thi\u1EC3u l\xE0 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i \u0111a l\xE0 {maxResolution}"};var Co={labelIdle:'\u62D6\u653E\u6587\u4EF6\uFF0C\u6216\u8005 \u6D4F\u89C8 ',labelInvalidField:"\u5B57\u6BB5\u5305\u542B\u65E0\u6548\u6587\u4EF6",labelFileWaitingForSize:"\u8BA1\u7B97\u6587\u4EF6\u5927\u5C0F",labelFileSizeNotAvailable:"\u6587\u4EF6\u5927\u5C0F\u4E0D\u53EF\u7528",labelFileLoading:"\u52A0\u8F7D",labelFileLoadError:"\u52A0\u8F7D\u9519\u8BEF",labelFileProcessing:"\u4E0A\u4F20",labelFileProcessingComplete:"\u5DF2\u4E0A\u4F20",labelFileProcessingAborted:"\u4E0A\u4F20\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u4F20\u51FA\u9519",labelFileProcessingRevertError:"\u8FD8\u539F\u51FA\u9519",labelFileRemoveError:"\u5220\u9664\u51FA\u9519",labelTapToCancel:"\u70B9\u51FB\u53D6\u6D88",labelTapToRetry:"\u70B9\u51FB\u91CD\u8BD5",labelTapToUndo:"\u70B9\u51FB\u64A4\u6D88",labelButtonRemoveItem:"\u5220\u9664",labelButtonAbortItemLoad:"\u4E2D\u6B62",labelButtonRetryItemLoad:"\u91CD\u8BD5",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u64A4\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8BD5",labelButtonProcessItem:"\u4E0A\u4F20",labelMaxFileSizeExceeded:"\u6587\u4EF6\u592A\u5927",labelMaxFileSize:"\u6700\u5927\u503C: {filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u8FC7\u6700\u5927\u6587\u4EF6\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u6587\u4EF6\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u6587\u4EF6\u7C7B\u578B\u65E0\u6548",fileValidateTypeLabelExpectedTypes:"\u5E94\u4E3A {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u56FE\u50CF\u7C7B\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u56FE\u50CF\u592A\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u56FE\u50CF\u592A\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u503C: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u503C: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u5206\u8FA8\u7387\u592A\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u5206\u8FA8\u7387\u592A\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u5C0F\u5206\u8FA8\u7387\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u5927\u5206\u8FA8\u7387\uFF1A{maxResolution}"};var zo={labelIdle:'\u62D6\u653E\u6A94\u6848\uFF0C\u6216\u8005 \u700F\u89BD ',labelInvalidField:"\u4E0D\u652F\u63F4\u6B64\u6A94\u6848",labelFileWaitingForSize:"\u6B63\u5728\u8A08\u7B97\u6A94\u6848\u5927\u5C0F",labelFileSizeNotAvailable:"\u6A94\u6848\u5927\u5C0F\u4E0D\u7B26",labelFileLoading:"\u8B80\u53D6\u4E2D",labelFileLoadError:"\u8B80\u53D6\u932F\u8AA4",labelFileProcessing:"\u4E0A\u50B3",labelFileProcessingComplete:"\u5DF2\u4E0A\u50B3",labelFileProcessingAborted:"\u4E0A\u50B3\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u50B3\u767C\u751F\u932F\u8AA4",labelFileProcessingRevertError:"\u9084\u539F\u932F\u8AA4",labelFileRemoveError:"\u522A\u9664\u932F\u8AA4",labelTapToCancel:"\u9EDE\u64CA\u53D6\u6D88",labelTapToRetry:"\u9EDE\u64CA\u91CD\u8A66",labelTapToUndo:"\u9EDE\u64CA\u9084\u539F",labelButtonRemoveItem:"\u522A\u9664",labelButtonAbortItemLoad:"\u505C\u6B62",labelButtonRetryItemLoad:"\u91CD\u8A66",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u53D6\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8A66",labelButtonProcessItem:"\u4E0A\u50B3",labelMaxFileSizeExceeded:"\u6A94\u6848\u904E\u5927",labelMaxFileSize:"\u6700\u5927\u503C\uFF1A{filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u904E\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u4E0D\u652F\u63F4\u6B64\u985E\u578B\u6A94\u6848",fileValidateTypeLabelExpectedTypes:"\u61C9\u70BA {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u6B64\u985E\u5716\u7247\u985E\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u5716\u7247\u904E\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u5716\u7247\u904E\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u5C3A\u5BF8\uFF1A{minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u5C3A\u5BF8\uFF1A{maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u89E3\u6790\u5EA6\u904E\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u89E3\u6790\u5EA6\u904E\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u4F4E\u89E3\u6790\u5EA6\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u9AD8\u89E3\u6790\u5EA6\uFF1A{maxResolution}"};be(Or);be(Dr);be(Cr);be(Nr);be(Ur);be(Kr);be(eo);be(fo);be(ya);window.FilePond=Ji;function Kf({acceptedFileTypes:e,imageEditorEmptyFillColor:t,imageEditorMode:i,imageEditorViewportHeight:a,imageEditorViewportWidth:n,deleteUploadedFileUsing:r,isDeletable:o,isDisabled:l,getUploadedFilesUsing:s,imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeMode:d,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeUpscale:p,isAvatar:m,hasImageEditor:g,hasCircleCropper:b,canEditSvgs:E,isSvgEditingConfirmed:T,confirmSvgEditingMessage:_,disabledSvgEditingMessage:y,isDownloadable:I,isMultiple:v,isOpenable:R,isPreviewable:S,isReorderable:D,loadingIndicatorPosition:x,locale:O,maxFiles:z,maxSize:A,minSize:F,panelAspectRatio:w,panelLayout:L,placeholder:C,removeUploadedFileButtonPosition:P,removeUploadedFileUsing:V,reorderUploadedFilesUsing:G,shouldAppendFiles:q,shouldOrientImageFromExif:X,shouldTransformImage:j,state:de,uploadButtonPosition:U,uploadingMessage:W,uploadProgressIndicatorPosition:$,uploadUsing:oe}){return{fileKeyIndex:{},pond:null,shouldUpdateState:!0,state:de,lastState:null,uploadedFileIndex:{},isEditorOpen:!1,editingFile:{},currentRatio:"",editor:{},init:async function(){Mt(No[O]??No.en),this.pond=st(this.$refs.input,{acceptedFileTypes:e,allowImageExifOrientation:X,allowPaste:!1,allowRemove:o,allowReorder:D,allowImagePreview:S,allowVideoPreview:S,allowAudioPreview:S,allowImageTransform:j,credits:!1,files:await this.getFiles(),imageCropAspectRatio:u,imagePreviewHeight:c,imageResizeTargetHeight:h,imageResizeTargetWidth:f,imageResizeMode:d,imageResizeUpscale:p,itemInsertLocation:q?"after":"before",...C&&{labelIdle:C},maxFiles:z,maxFileSize:A,minFileSize:F,styleButtonProcessItemPosition:U,styleButtonRemoveItemPosition:P,styleLoadIndicatorPosition:x,stylePanelAspectRatio:w,stylePanelLayout:L,styleProgressIndicatorPosition:$,server:{load:async(B,H)=>{let J=await(await fetch(B,{cache:"no-store"})).blob();H(J)},process:(B,H,Q,J,St,Be)=>{this.shouldUpdateState=!1;let Wt=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,Yt=>(Yt^crypto.getRandomValues(new Uint8Array(1))[0]&15>>Yt/4).toString(16));oe(Wt,H,Yt=>{this.shouldUpdateState=!0,J(Yt)},St,Be)},remove:async(B,H)=>{let Q=this.uploadedFileIndex[B]??null;Q&&(await r(Q),H())},revert:async(B,H)=>{await V(B),H()}},allowImageEdit:g,imageEditEditor:{open:B=>this.loadEditor(B),onconfirm:()=>{},oncancel:()=>this.closeEditor(),onclose:()=>this.closeEditor()}}),this.$watch("state",async()=>{if(this.pond&&this.shouldUpdateState&&this.state!==void 0){if(this.state!==null&&Object.values(this.state).filter(B=>B.startsWith("livewire-file:")).length){this.lastState=null;return}JSON.stringify(this.state)!==this.lastState&&(this.lastState=JSON.stringify(this.state),this.pond.files=await this.getFiles())}}),this.pond.on("reorderfiles",async B=>{let H=B.map(Q=>Q.source instanceof File?Q.serverId:this.uploadedFileIndex[Q.source]??null).filter(Q=>Q);await G(q?H:H.reverse())}),this.pond.on("initfile",async B=>{I&&(m||this.insertDownloadLink(B))}),this.pond.on("initfile",async B=>{R&&(m||this.insertOpenLink(B))}),this.pond.on("addfilestart",async B=>{B.status===ft.PROCESSING_QUEUED&&this.dispatchFormEvent("form-processing-started",{message:W})});let N=async()=>{this.pond.getFiles().filter(B=>B.status===ft.PROCESSING||B.status===ft.PROCESSING_QUEUED).length||this.dispatchFormEvent("form-processing-finished")};this.pond.on("processfile",N),this.pond.on("processfileabort",N),this.pond.on("processfilerevert",N)},destroy:function(){this.destroyEditor(),ct(this.$refs.input),this.pond=null},dispatchFormEvent:function(N,B={}){this.$el.closest("form")?.dispatchEvent(new CustomEvent(N,{composed:!0,cancelable:!0,detail:B}))},getUploadedFiles:async function(){let N=await s();this.fileKeyIndex=N??{},this.uploadedFileIndex=Object.entries(this.fileKeyIndex).filter(([B,H])=>H?.url).reduce((B,[H,Q])=>(B[Q.url]=H,B),{})},getFiles:async function(){await this.getUploadedFiles();let N=[];for(let B of Object.values(this.fileKeyIndex))B&&N.push({source:B.url,options:{type:"local",...!B.type||/^image/.test(B.type)?{}:{file:{name:B.name,size:B.size,type:B.type}}}});return q?N:N.reverse()},insertDownloadLink:function(N){if(N.origin!==xt.LOCAL)return;let B=this.getDownloadLink(N);B&&document.getElementById(`filepond--item-${N.id}`).querySelector(".filepond--file-info-main").prepend(B)},insertOpenLink:function(N){if(N.origin!==xt.LOCAL)return;let B=this.getOpenLink(N);B&&document.getElementById(`filepond--item-${N.id}`).querySelector(".filepond--file-info-main").prepend(B)},getDownloadLink:function(N){let B=N.source;if(!B)return;let H=document.createElement("a");return H.className="filepond--download-icon",H.href=B,H.download=N.file.name,H},getOpenLink:function(N){let B=N.source;if(!B)return;let H=document.createElement("a");return H.className="filepond--open-icon",H.href=B,H.target="_blank",H},initEditor:function(){l||g&&(this.editor=new Ea(this.$refs.editor,{aspectRatio:n/a,autoCropArea:1,center:!0,crop:N=>{this.$refs.xPositionInput.value=Math.round(N.detail.x),this.$refs.yPositionInput.value=Math.round(N.detail.y),this.$refs.heightInput.value=Math.round(N.detail.height),this.$refs.widthInput.value=Math.round(N.detail.width),this.$refs.rotationInput.value=N.detail.rotate},cropBoxResizable:!0,guides:!0,highlight:!0,responsive:!0,toggleDragModeOnDblclick:!0,viewMode:i,wheelZoomRatio:.02}))},closeEditor:function(){this.editingFile={},this.isEditorOpen=!1,this.destroyEditor()},fixImageDimensions:function(N,B){if(N.type!=="image/svg+xml")return B(N);let H=new FileReader;H.onload=Q=>{let J=new DOMParser().parseFromString(Q.target.result,"image/svg+xml")?.querySelector("svg");if(!J)return B(N);let St=["viewBox","ViewBox","viewbox"].find(Wt=>J.hasAttribute(Wt));if(!St)return B(N);let Be=J.getAttribute(St).split(" ");return!Be||Be.length!==4?B(N):(J.setAttribute("width",parseFloat(Be[2])+"pt"),J.setAttribute("height",parseFloat(Be[3])+"pt"),B(new File([new Blob([new XMLSerializer().serializeToString(J)],{type:"image/svg+xml"})],N.name,{type:"image/svg+xml",_relativePath:""})))},H.readAsText(N)},loadEditor:function(N){if(l||!g||!N)return;let B=N.type==="image/svg+xml";if(!E&&B){alert(y);return}T&&B&&!confirm(_)||this.fixImageDimensions(N,H=>{this.editingFile=H,this.initEditor();let Q=new FileReader;Q.onload=J=>{this.isEditorOpen=!0,setTimeout(()=>this.editor.replace(J.target.result),200)},Q.readAsDataURL(N)})},getRoundedCanvas:function(N){let B=N.width,H=N.height,Q=document.createElement("canvas");Q.width=B,Q.height=H;let J=Q.getContext("2d");return J.imageSmoothingEnabled=!0,J.drawImage(N,0,0,B,H),J.globalCompositeOperation="destination-in",J.beginPath(),J.ellipse(B/2,H/2,B/2,H/2,0,0,2*Math.PI),J.fill(),Q},saveEditor:function(){if(l||!g)return;let N=this.editor.getCroppedCanvas({fillColor:t??"transparent",height:h,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",width:f});b&&(N=this.getRoundedCanvas(N)),N.toBlob(B=>{v&&this.pond.removeFile(this.pond.getFiles().find(H=>H.filename===this.editingFile.name)?.id,{revert:!0}),this.$nextTick(()=>{this.shouldUpdateState=!1;let H=this.editingFile.name.slice(0,this.editingFile.name.lastIndexOf(".")),Q=this.editingFile.name.split(".").pop();Q==="svg"&&(Q="png");let J=/-v(\d+)/;J.test(H)?H=H.replace(J,(St,Be)=>`-v${Number(Be)+1}`):H+="-v1",this.pond.addFile(new File([B],`${H}.${Q}`,{type:this.editingFile.type==="image/svg+xml"||b?"image/png":this.editingFile.type,lastModified:new Date().getTime()})).then(()=>{this.closeEditor()}).catch(()=>{this.closeEditor()})})},b?"image/png":this.editingFile.type)},destroyEditor:function(){this.editor&&typeof this.editor.destroy=="function"&&this.editor.destroy(),this.editor=null}}}var No={ar:po,cs:mo,da:go,de:Eo,en:To,es:Io,fa:bo,fi:_o,fr:Ro,hu:yo,id:So,it:wo,nl:vo,no:Ao,pl:Lo,pt_BR:bi,pt_PT:bi,ro:Mo,ru:Oo,sv:xo,tr:Do,uk:Po,vi:Fo,zh_CN:Co,zh_TW:zo};export{Kf as default}; /*! Bundled license information: filepond/dist/filepond.esm.js: (*! - * FilePond 4.30.4 + * FilePond 4.30.6 * Licensed under MIT, https://opensource.org/licenses/MIT/ * Please visit https://pqina.nl/filepond/ for details. *) @@ -95,7 +95,7 @@ filepond-plugin-image-exif-orientation/dist/filepond-plugin-image-exif-orientati filepond-plugin-image-preview/dist/filepond-plugin-image-preview.esm.js: (*! - * FilePondPluginImagePreview 4.6.11 + * FilePondPluginImagePreview 4.6.12 * Licensed under MIT, https://opensource.org/licenses/MIT/ * Please visit https://pqina.nl/filepond/ for details. *) diff --git a/public/js/filament/forms/components/key-value.js b/public/js/filament/forms/components/key-value.js index 6b3a02d69..3450bdffe 100644 --- a/public/js/filament/forms/components/key-value.js +++ b/public/js/filament/forms/components/key-value.js @@ -1 +1 @@ -function r({state:i}){return{state:i,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0&&this.addRow(),this.updateState(),this.$watch("state",(t,e)=>{let s=o=>o===null?0:Array.isArray(o)?o.length:typeof o!="object"?0:Object.keys(o).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows),s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.rows=e,this.updateState()},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default}; +function r({state:i}){return{state:i,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(t,e)=>{let s=o=>o===null?0:Array.isArray(o)?o.length:typeof o!="object"?0:Object.keys(o).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows),s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.rows=e,this.updateState()},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default}; diff --git a/public/js/filament/forms/components/markdown-editor.js b/public/js/filament/forms/components/markdown-editor.js index b6f93a8d7..99ce94abf 100644 --- a/public/js/filament/forms/components/markdown-editor.js +++ b/public/js/filament/forms/components/markdown-editor.js @@ -48,4 +48,4 @@ b`.split(/\n/).length!=3?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e. ----- `]},Rd={link:"URL for the link:",image:"URL of the image:"},Hd={locale:"en-US",format:{hour:"2-digit",minute:"2-digit"}},Bd={bold:"**",code:"```",italic:"*"},Wd={sbInit:"Attach files by drag and dropping or pasting from clipboard.",sbOnDragEnter:"Drop image to upload it.",sbOnDrop:"Uploading image #images_names#...",sbProgress:"Uploading #file_name#: #progress#%",sbOnUploaded:"Uploaded #image_name#",sizeUnits:" B, KB, MB"},Ud={noFileGiven:"You must select a file.",typeNotAllowed:"This image type is not allowed.",fileTooLarge:`Image #image_name# is too big (#image_size#). -Maximum file size is #image_max_size#.`,importError:"Something went wrong when uploading the image #image_name#."};Te.prototype.uploadImages=function(o,p,v){if(o.length!==0){for(var C=[],b=0;b=2){var H=M[1];if(p.imagesPreviewHandler){var Z=p.imagesPreviewHandler(M[1]);typeof Z=="string"&&(H=Z)}if(window.EMDEimagesCache[H])T(R,window.EMDEimagesCache[H]);else{var ee=document.createElement("img");ee.onload=function(){window.EMDEimagesCache[H]={naturalWidth:ee.naturalWidth,naturalHeight:ee.naturalHeight,url:H},T(R,window.EMDEimagesCache[H])},ee.src=H}}}})}this.codemirror.on("update",function(){E()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(p.autofocus===!0||o.autofocus)&&this.codemirror.focus();var z=this.codemirror;setTimeout(function(){z.refresh()}.bind(z),0)};Te.prototype.cleanup=function(){document.removeEventListener("keydown",this.documentOnKeyDown)};Te.prototype.autosave=function(){if(kc()){var o=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to use the autosave feature");return}this.options.autosave.binded!==!0&&(o.element.form!=null&&o.element.form!=null&&o.element.form.addEventListener("submit",function(){clearTimeout(o.autosaveTimeoutId),o.autosaveTimeoutId=void 0,localStorage.removeItem("smde_"+o.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)=="string"&&localStorage.getItem("smde_"+this.options.autosave.uniqueId)!=""&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var p=o.value();p!==""?localStorage.setItem("smde_"+this.options.autosave.uniqueId,p):localStorage.removeItem("smde_"+this.options.autosave.uniqueId);var v=document.getElementById("autosaved");if(v!=null&&v!=null&&v!=""){var C=new Date,b=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,"en-US"],this.options.autosave.timeFormat.format).format(C),k=this.options.autosave.text==null?"Autosaved: ":this.options.autosave.text;v.innerHTML=k+b}}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.clearAutosavedValue=function(){if(kc()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to clear the autosave value");return}localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.openBrowseFileWindow=function(o,p){var v=this,C=this.gui.toolbar.getElementsByClassName("imageInput")[0];C.click();function b(k){v.options.imageUploadFunction?v.uploadImagesUsingCustomFunction(v.options.imageUploadFunction,k.target.files):v.uploadImages(k.target.files,o,p),C.removeEventListener("change",b)}C.addEventListener("change",b)};Te.prototype.uploadImage=function(o,p,v){var C=this;p=p||function(S){yc(C,S)};function b(h){C.updateStatusBar("upload-image",h),setTimeout(function(){C.updateStatusBar("upload-image",C.options.imageTexts.sbInit)},1e4),v&&typeof v=="function"&&v(h),C.options.errorCallback(h)}function k(h){var S=C.options.imageTexts.sizeUnits.split(",");return h.replace("#image_name#",o.name).replace("#image_size#",Ii(o.size,S)).replace("#image_max_size#",Ii(C.options.imageMaxSize,S))}if(o.size>this.options.imageMaxSize){b(k(this.options.errorMessages.fileTooLarge));return}var s=new FormData;s.append("image",o),C.options.imageCSRFToken&&!C.options.imageCSRFHeader&&s.append(C.options.imageCSRFName,C.options.imageCSRFToken);var g=new XMLHttpRequest;g.upload.onprogress=function(h){if(h.lengthComputable){var S=""+Math.round(h.loaded*100/h.total);C.updateStatusBar("upload-image",C.options.imageTexts.sbProgress.replace("#file_name#",o.name).replace("#progress#",S))}},g.open("POST",this.options.imageUploadEndpoint),C.options.imageCSRFToken&&C.options.imageCSRFHeader&&g.setRequestHeader(C.options.imageCSRFName,C.options.imageCSRFToken),g.onload=function(){try{var h=JSON.parse(this.responseText)}catch{console.error("EasyMDE: The server did not return a valid json."),b(k(C.options.errorMessages.importError));return}this.status===200&&h&&!h.error&&h.data&&h.data.filePath?p((C.options.imagePathAbsolute?"":window.location.origin+"/")+h.data.filePath):h.error&&h.error in C.options.errorMessages?b(k(C.options.errorMessages[h.error])):h.error?b(k(h.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),b(k(C.options.errorMessages.importError)))},g.onerror=function(h){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+h.target.status+" ("+h.target.statusText+")"),b(C.options.errorMessages.importError)},g.send(s)};Te.prototype.uploadImageUsingCustomFunction=function(o,p){var v=this;function C(s){yc(v,s)}function b(s){var g=k(s);v.updateStatusBar("upload-image",g),setTimeout(function(){v.updateStatusBar("upload-image",v.options.imageTexts.sbInit)},1e4),v.options.errorCallback(g)}function k(s){var g=v.options.imageTexts.sizeUnits.split(",");return s.replace("#image_name#",p.name).replace("#image_size#",Ii(p.size,g)).replace("#image_max_size#",Ii(v.options.imageMaxSize,g))}o.apply(this,[p,C,b])};Te.prototype.setPreviewMaxHeight=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling,C=parseInt(window.getComputedStyle(p).paddingTop),b=parseInt(window.getComputedStyle(p).borderTopWidth),k=parseInt(this.options.maxHeight),s=k+C*2+b*2,g=s.toString()+"px";v.style.height=g};Te.prototype.createSideBySide=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling;if(!v||!v.classList.contains("editor-preview-side")){if(v=document.createElement("div"),v.className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var C=0;C{try{let w=S[S.length-1];if(w.origin==="+input"){let c="(https://)",d=w.text[w.text.length-1];if(d.endsWith(c)&&d!=="[]"+c){let T=w.from,E=w.to,y=w.text.length>1?0:T.ch;setTimeout(()=>{h.setSelection({line:E.line,ch:y+d.lastIndexOf("(")+1},{line:E.line,ch:y+d.lastIndexOf(")")})},25)}}}catch{}}),this.editor.codemirror.on("change",Alpine.debounce(()=>{this.editor&&(this.state=this.editor.value(),o&&this.$wire.call("$refresh"))},v??300)),p&&this.editor.codemirror.on("blur",()=>this.$wire.call("$refresh")),this.$watch("state",()=>{this.editor&&(this.editor.codemirror.hasFocus()||this.editor.value(this.state??""))})},destroy:function(){this.editor.cleanup(),this.editor=null},getToolbar:function(){let h=[];return s.includes("bold")&&h.push({name:"bold",action:EasyMDE.toggleBold,title:k.toolbar_buttons?.bold}),s.includes("italic")&&h.push({name:"italic",action:EasyMDE.toggleItalic,title:k.toolbar_buttons?.italic}),s.includes("strike")&&h.push({name:"strikethrough",action:EasyMDE.toggleStrikethrough,title:k.toolbar_buttons?.strike}),s.includes("link")&&h.push({name:"link",action:EasyMDE.drawLink,title:k.toolbar_buttons?.link}),["bold","italic","strike","link"].some(S=>s.includes(S))&&["heading"].some(S=>s.includes(S))&&h.push("|"),s.includes("heading")&&h.push({name:"heading",action:EasyMDE.toggleHeadingSmaller,title:k.toolbar_buttons?.heading}),["heading"].some(S=>s.includes(S))&&["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&h.push("|"),s.includes("blockquote")&&h.push({name:"quote",action:EasyMDE.toggleBlockquote,title:k.toolbar_buttons?.blockquote}),s.includes("codeBlock")&&h.push({name:"code",action:EasyMDE.toggleCodeBlock,title:k.toolbar_buttons?.code_block}),s.includes("bulletList")&&h.push({name:"unordered-list",action:EasyMDE.toggleUnorderedList,title:k.toolbar_buttons?.bullet_list}),s.includes("orderedList")&&h.push({name:"ordered-list",action:EasyMDE.toggleOrderedList,title:k.toolbar_buttons?.ordered_list}),["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&["table","attachFiles"].some(S=>s.includes(S))&&h.push("|"),s.includes("table")&&h.push({name:"table",action:EasyMDE.drawTable,title:k.toolbar_buttons?.table}),s.includes("attachFiles")&&h.push({name:"upload-image",action:EasyMDE.drawUploadedImage,title:k.toolbar_buttons?.attach_files}),["table","attachFiles"].some(S=>s.includes(S))&&["undo","redo"].some(S=>s.includes(S))&&h.push("|"),s.includes("undo")&&h.push({name:"undo",action:EasyMDE.undo,title:k.toolbar_buttons?.undo}),s.includes("redo")&&h.push({name:"redo",action:EasyMDE.redo,title:k.toolbar_buttons?.redo}),h}}}export{Kd as default}; +Maximum file size is #image_max_size#.`,importError:"Something went wrong when uploading the image #image_name#."};Te.prototype.uploadImages=function(o,p,v){if(o.length!==0){for(var C=[],b=0;b=2){var H=M[1];if(p.imagesPreviewHandler){var Z=p.imagesPreviewHandler(M[1]);typeof Z=="string"&&(H=Z)}if(window.EMDEimagesCache[H])T(R,window.EMDEimagesCache[H]);else{var ee=document.createElement("img");ee.onload=function(){window.EMDEimagesCache[H]={naturalWidth:ee.naturalWidth,naturalHeight:ee.naturalHeight,url:H},T(R,window.EMDEimagesCache[H])},ee.src=H}}}})}this.codemirror.on("update",function(){E()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(p.autofocus===!0||o.autofocus)&&this.codemirror.focus();var z=this.codemirror;setTimeout(function(){z.refresh()}.bind(z),0)};Te.prototype.cleanup=function(){document.removeEventListener("keydown",this.documentOnKeyDown)};Te.prototype.autosave=function(){if(kc()){var o=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to use the autosave feature");return}this.options.autosave.binded!==!0&&(o.element.form!=null&&o.element.form!=null&&o.element.form.addEventListener("submit",function(){clearTimeout(o.autosaveTimeoutId),o.autosaveTimeoutId=void 0,localStorage.removeItem("smde_"+o.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)=="string"&&localStorage.getItem("smde_"+this.options.autosave.uniqueId)!=""&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var p=o.value();p!==""?localStorage.setItem("smde_"+this.options.autosave.uniqueId,p):localStorage.removeItem("smde_"+this.options.autosave.uniqueId);var v=document.getElementById("autosaved");if(v!=null&&v!=null&&v!=""){var C=new Date,b=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,"en-US"],this.options.autosave.timeFormat.format).format(C),k=this.options.autosave.text==null?"Autosaved: ":this.options.autosave.text;v.innerHTML=k+b}}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.clearAutosavedValue=function(){if(kc()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to clear the autosave value");return}localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.openBrowseFileWindow=function(o,p){var v=this,C=this.gui.toolbar.getElementsByClassName("imageInput")[0];C.click();function b(k){v.options.imageUploadFunction?v.uploadImagesUsingCustomFunction(v.options.imageUploadFunction,k.target.files):v.uploadImages(k.target.files,o,p),C.removeEventListener("change",b)}C.addEventListener("change",b)};Te.prototype.uploadImage=function(o,p,v){var C=this;p=p||function(S){yc(C,S)};function b(h){C.updateStatusBar("upload-image",h),setTimeout(function(){C.updateStatusBar("upload-image",C.options.imageTexts.sbInit)},1e4),v&&typeof v=="function"&&v(h),C.options.errorCallback(h)}function k(h){var S=C.options.imageTexts.sizeUnits.split(",");return h.replace("#image_name#",o.name).replace("#image_size#",Ii(o.size,S)).replace("#image_max_size#",Ii(C.options.imageMaxSize,S))}if(o.size>this.options.imageMaxSize){b(k(this.options.errorMessages.fileTooLarge));return}var s=new FormData;s.append("image",o),C.options.imageCSRFToken&&!C.options.imageCSRFHeader&&s.append(C.options.imageCSRFName,C.options.imageCSRFToken);var g=new XMLHttpRequest;g.upload.onprogress=function(h){if(h.lengthComputable){var S=""+Math.round(h.loaded*100/h.total);C.updateStatusBar("upload-image",C.options.imageTexts.sbProgress.replace("#file_name#",o.name).replace("#progress#",S))}},g.open("POST",this.options.imageUploadEndpoint),C.options.imageCSRFToken&&C.options.imageCSRFHeader&&g.setRequestHeader(C.options.imageCSRFName,C.options.imageCSRFToken),g.onload=function(){try{var h=JSON.parse(this.responseText)}catch{console.error("EasyMDE: The server did not return a valid json."),b(k(C.options.errorMessages.importError));return}this.status===200&&h&&!h.error&&h.data&&h.data.filePath?p((C.options.imagePathAbsolute?"":window.location.origin+"/")+h.data.filePath):h.error&&h.error in C.options.errorMessages?b(k(C.options.errorMessages[h.error])):h.error?b(k(h.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),b(k(C.options.errorMessages.importError)))},g.onerror=function(h){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+h.target.status+" ("+h.target.statusText+")"),b(C.options.errorMessages.importError)},g.send(s)};Te.prototype.uploadImageUsingCustomFunction=function(o,p){var v=this;function C(s){yc(v,s)}function b(s){var g=k(s);v.updateStatusBar("upload-image",g),setTimeout(function(){v.updateStatusBar("upload-image",v.options.imageTexts.sbInit)},1e4),v.options.errorCallback(g)}function k(s){var g=v.options.imageTexts.sizeUnits.split(",");return s.replace("#image_name#",p.name).replace("#image_size#",Ii(p.size,g)).replace("#image_max_size#",Ii(v.options.imageMaxSize,g))}o.apply(this,[p,C,b])};Te.prototype.setPreviewMaxHeight=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling,C=parseInt(window.getComputedStyle(p).paddingTop),b=parseInt(window.getComputedStyle(p).borderTopWidth),k=parseInt(this.options.maxHeight),s=k+C*2+b*2,g=s.toString()+"px";v.style.height=g};Te.prototype.createSideBySide=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling;if(!v||!v.classList.contains("editor-preview-side")){if(v=document.createElement("div"),v.className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var C=0;C{try{let w=S[S.length-1];if(w.origin==="+input"){let c="(https://)",d=w.text[w.text.length-1];if(d.endsWith(c)&&d!=="[]"+c){let T=w.from,E=w.to,y=w.text.length>1?0:T.ch;setTimeout(()=>{h.setSelection({line:E.line,ch:y+d.lastIndexOf("(")+1},{line:E.line,ch:y+d.lastIndexOf(")")})},25)}}}catch{}}),this.editor.codemirror.on("change",Alpine.debounce(()=>{this.editor&&(this.state=this.editor.value(),o&&this.$wire.call("$refresh"))},v??300)),p&&this.editor.codemirror.on("blur",()=>this.$wire.call("$refresh")),this.$watch("state",()=>{this.editor&&(this.editor.codemirror.hasFocus()||Alpine.raw(this.editor).value(this.state??""))})},destroy:function(){this.editor.cleanup(),this.editor=null},getToolbar:function(){let h=[];return s.includes("bold")&&h.push({name:"bold",action:EasyMDE.toggleBold,title:k.toolbar_buttons?.bold}),s.includes("italic")&&h.push({name:"italic",action:EasyMDE.toggleItalic,title:k.toolbar_buttons?.italic}),s.includes("strike")&&h.push({name:"strikethrough",action:EasyMDE.toggleStrikethrough,title:k.toolbar_buttons?.strike}),s.includes("link")&&h.push({name:"link",action:EasyMDE.drawLink,title:k.toolbar_buttons?.link}),["bold","italic","strike","link"].some(S=>s.includes(S))&&["heading"].some(S=>s.includes(S))&&h.push("|"),s.includes("heading")&&h.push({name:"heading",action:EasyMDE.toggleHeadingSmaller,title:k.toolbar_buttons?.heading}),["heading"].some(S=>s.includes(S))&&["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&h.push("|"),s.includes("blockquote")&&h.push({name:"quote",action:EasyMDE.toggleBlockquote,title:k.toolbar_buttons?.blockquote}),s.includes("codeBlock")&&h.push({name:"code",action:EasyMDE.toggleCodeBlock,title:k.toolbar_buttons?.code_block}),s.includes("bulletList")&&h.push({name:"unordered-list",action:EasyMDE.toggleUnorderedList,title:k.toolbar_buttons?.bullet_list}),s.includes("orderedList")&&h.push({name:"ordered-list",action:EasyMDE.toggleOrderedList,title:k.toolbar_buttons?.ordered_list}),["blockquote","codeBlock","bulletList","orderedList"].some(S=>s.includes(S))&&["table","attachFiles"].some(S=>s.includes(S))&&h.push("|"),s.includes("table")&&h.push({name:"table",action:EasyMDE.drawTable,title:k.toolbar_buttons?.table}),s.includes("attachFiles")&&h.push({name:"upload-image",action:EasyMDE.drawUploadedImage,title:k.toolbar_buttons?.attach_files}),["table","attachFiles"].some(S=>s.includes(S))&&["undo","redo"].some(S=>s.includes(S))&&h.push("|"),s.includes("undo")&&h.push({name:"undo",action:EasyMDE.undo,title:k.toolbar_buttons?.undo}),s.includes("redo")&&h.push({name:"redo",action:EasyMDE.redo,title:k.toolbar_buttons?.redo}),h}}}export{Kd as default}; diff --git a/public/js/filament/forms/components/select.js b/public/js/filament/forms/components/select.js index d7bb7f75f..195088d47 100644 --- a/public/js/filament/forms/components/select.js +++ b/public/js/filament/forms/components/select.js @@ -1,4 +1,4 @@ -var lt=Object.create;var Ge=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ft=(se,ie)=>()=>(ie||se((ie={exports:{}}).exports,ie),ie.exports);var pt=(se,ie,X,me)=>{if(ie&&typeof ie=="object"||typeof ie=="function")for(let j of ut(ie))!dt.call(se,j)&&j!==X&&Ge(se,j,{get:()=>ie[j],enumerable:!(me=ct(ie,j))||me.enumerable});return se};var mt=(se,ie,X)=>(X=se!=null?lt(ht(se)):{},pt(ie||!se||!se.__esModule?Ge(X,"default",{value:se,enumerable:!0}):X,se));var $e=ft((Ae,Ye)=>{(function(ie,X){typeof Ae=="object"&&typeof Ye=="object"?Ye.exports=X():typeof define=="function"&&define.amd?define([],X):typeof Ae=="object"?Ae.Choices=X():ie.Choices=X()})(window,function(){return function(){"use strict";var se={282:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.clearChoices=i.activateChoices=i.filterChoices=i.addChoice=void 0;var _=b(883),h=function(c){var l=c.value,O=c.label,L=c.id,y=c.groupId,D=c.disabled,k=c.elementId,Q=c.customProperties,Z=c.placeholder,ne=c.keyCode;return{type:_.ACTION_TYPES.ADD_CHOICE,value:l,label:O,id:L,groupId:y,disabled:D,elementId:k,customProperties:Q,placeholder:Z,keyCode:ne}};i.addChoice=h;var d=function(c){return{type:_.ACTION_TYPES.FILTER_CHOICES,results:c}};i.filterChoices=d;var a=function(c){return c===void 0&&(c=!0),{type:_.ACTION_TYPES.ACTIVATE_CHOICES,active:c}};i.activateChoices=a;var r=function(){return{type:_.ACTION_TYPES.CLEAR_CHOICES}};i.clearChoices=r},783:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.addGroup=void 0;var _=b(883),h=function(d){var a=d.value,r=d.id,c=d.active,l=d.disabled;return{type:_.ACTION_TYPES.ADD_GROUP,value:a,id:r,active:c,disabled:l}};i.addGroup=h},464:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.highlightItem=i.removeItem=i.addItem=void 0;var _=b(883),h=function(r){var c=r.value,l=r.label,O=r.id,L=r.choiceId,y=r.groupId,D=r.customProperties,k=r.placeholder,Q=r.keyCode;return{type:_.ACTION_TYPES.ADD_ITEM,value:c,label:l,id:O,choiceId:L,groupId:y,customProperties:D,placeholder:k,keyCode:Q}};i.addItem=h;var d=function(r,c){return{type:_.ACTION_TYPES.REMOVE_ITEM,id:r,choiceId:c}};i.removeItem=d;var a=function(r,c){return{type:_.ACTION_TYPES.HIGHLIGHT_ITEM,id:r,highlighted:c}};i.highlightItem=a},137:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.setIsLoading=i.resetTo=i.clearAll=void 0;var _=b(883),h=function(){return{type:_.ACTION_TYPES.CLEAR_ALL}};i.clearAll=h;var d=function(r){return{type:_.ACTION_TYPES.RESET_TO,state:r}};i.resetTo=d;var a=function(r){return{type:_.ACTION_TYPES.SET_IS_LOADING,isLoading:r}};i.setIsLoading=a},373:function(j,i,b){var _=this&&this.__spreadArray||function(g,e,t){if(t||arguments.length===2)for(var n=0,s=e.length,v;n=0?this._store.getGroupById(v):null;return this._store.dispatch((0,l.highlightItem)(n,!0)),t&&this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:n,value:M,label:f,groupValue:u&&u.value?u.value:null}),this},g.prototype.unhighlightItem=function(e){if(!e||!e.id)return this;var t=e.id,n=e.groupId,s=n===void 0?-1:n,v=e.value,P=v===void 0?"":v,M=e.label,K=M===void 0?"":M,f=s>=0?this._store.getGroupById(s):null;return this._store.dispatch((0,l.highlightItem)(t,!1)),this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:t,value:P,label:K,groupValue:f&&f.value?f.value:null}),this},g.prototype.highlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.highlightItem(t)}),this},g.prototype.unhighlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.unhighlightItem(t)}),this},g.prototype.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter(function(n){return n.value===e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter(function(n){var s=n.id;return s!==e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeHighlightedItems=function(e){var t=this;return e===void 0&&(e=!1),this._store.highlightedActiveItems.forEach(function(n){t._removeItem(n),e&&t._triggerChange(n.value)}),this},g.prototype.showDropdown=function(e){var t=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(y.EVENTS.showDropdown,{})}),this)},g.prototype.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame(function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(y.EVENTS.hideDropdown,{})}),this):this},g.prototype.getValue=function(e){e===void 0&&(e=!1);var t=this._store.activeItems.reduce(function(n,s){var v=e?s.value:s;return n.push(v),n},[]);return this._isSelectOneElement?t[0]:t},g.prototype.setValue=function(e){var t=this;return this.initialised?(e.forEach(function(n){return t._setChoiceOrItem(n)}),this):this},g.prototype.setChoiceByValue=function(e){var t=this;if(!this.initialised||this._isTextElement)return this;var n=Array.isArray(e)?e:[e];return n.forEach(function(s){return t._findAndSelectChoiceByValue(s)}),this},g.prototype.setChoices=function(e,t,n,s){var v=this;if(e===void 0&&(e=[]),t===void 0&&(t="value"),n===void 0&&(n="label"),s===void 0&&(s=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof t!="string"||!t)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(s&&this.clearChoices(),typeof e=="function"){var P=e(this);if(typeof Promise=="function"&&P instanceof Promise)return new Promise(function(M){return requestAnimationFrame(M)}).then(function(){return v._handleLoadingState(!0)}).then(function(){return P}).then(function(M){return v.setChoices(M,t,n,s)}).catch(function(M){v.config.silent||console.error(M)}).then(function(){return v._handleLoadingState(!1)}).then(function(){return v});if(!Array.isArray(P))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof P));return this.setChoices(P,t,n,!1)}if(!Array.isArray(e))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach(function(M){if(M.choices)v._addGroup({id:M.id?parseInt("".concat(M.id),10):null,group:M,valueKey:t,labelKey:n});else{var K=M;v._addChoice({value:K[t],label:K[n],isSelected:!!K.selected,isDisabled:!!K.disabled,placeholder:!!K.placeholder,customProperties:K.customProperties})}}),this._stopLoading(),this},g.prototype.clearChoices=function(){return this._store.dispatch((0,r.clearChoices)()),this},g.prototype.clearStore=function(){return this._store.dispatch((0,O.clearAll)()),this},g.prototype.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))),this},g.prototype._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,n=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),n&&this._renderItems(),this._prevState=this._currentState)}},g.prototype._renderChoices=function(){var e=this,t=this._store,n=t.activeGroups,s=t.activeChoices,v=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return e.choiceList.scrollToTop()}),n.length>=1&&!this._isSearching){var P=s.filter(function(C){return C.placeholder===!0&&C.groupId===-1});P.length>=1&&(v=this._createChoicesFragment(P,v)),v=this._createGroupsFragment(n,s,v)}else s.length>=1&&(v=this._createChoicesFragment(s,v));if(v.childNodes&&v.childNodes.length>0){var M=this._store.activeItems,K=this._canAddItem(M,this.input.value);if(K.response)this.choiceList.append(v),this._highlightChoice();else{var f=this._getTemplate("notice",K.notice);this.choiceList.append(f)}}else{var u=void 0,f=void 0;this._isSearching?(f=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,u=this._getTemplate("notice",f,"no-results")):(f=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,u=this._getTemplate("notice",f,"no-choices")),this.choiceList.append(u)}},g.prototype._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},g.prototype._createGroupsFragment=function(e,t,n){var s=this;n===void 0&&(n=document.createDocumentFragment());var v=function(P){return t.filter(function(M){return s._isSelectOneElement?M.groupId===P.id:M.groupId===P.id&&(s.config.renderSelectedChoices==="always"||!M.selected)})};return this.config.shouldSort&&e.sort(this.config.sorter),e.forEach(function(P){var M=v(P);if(M.length>=1){var K=s._getTemplate("choiceGroup",P);n.appendChild(K),s._createChoicesFragment(M,n,!0)}}),n},g.prototype._createChoicesFragment=function(e,t,n){var s=this;t===void 0&&(t=document.createDocumentFragment()),n===void 0&&(n=!1);var v=this.config,P=v.renderSelectedChoices,M=v.searchResultLimit,K=v.renderChoiceLimit,f=this._isSearching?k.sortByScore:this.config.sorter,u=function(z){var ee=P==="auto"?s._isSelectOneElement||!z.selected:!0;if(ee){var ae=s._getTemplate("choice",z,s.config.itemSelectText);t.appendChild(ae)}},C=e;P==="auto"&&!this._isSelectOneElement&&(C=e.filter(function(z){return!z.selected}));var Y=C.reduce(function(z,ee){return ee.placeholder?z.placeholderChoices.push(ee):z.normalChoices.push(ee),z},{placeholderChoices:[],normalChoices:[]}),V=Y.placeholderChoices,U=Y.normalChoices;(this.config.shouldSort||this._isSearching)&&U.sort(f);var $=C.length,W=this._isSelectOneElement?_(_([],V,!0),U,!0):U;this._isSearching?$=M:K&&K>0&&!n&&($=K);for(var J=0;J<$;J+=1)W[J]&&u(W[J]);return t},g.prototype._createItemsFragment=function(e,t){var n=this;t===void 0&&(t=document.createDocumentFragment());var s=this.config,v=s.shouldSortItems,P=s.sorter,M=s.removeItemButton;v&&!this._isSelectOneElement&&e.sort(P),this._isTextElement?this.passedElement.value=e.map(function(f){var u=f.value;return u}).join(this.config.delimiter):this.passedElement.options=e;var K=function(f){var u=n._getTemplate("item",f,M);t.appendChild(u)};return e.forEach(K),t},g.prototype._triggerChange=function(e){e!=null&&this.passedElement.triggerEvent(y.EVENTS.change,{value:e})},g.prototype._selectPlaceholderChoice=function(e){this._addItem({value:e.value,label:e.label,choiceId:e.id,groupId:e.groupId,placeholder:e.placeholder}),this._triggerChange(e.value)},g.prototype._handleButtonAction=function(e,t){if(!(!e||!t||!this.config.removeItems||!this.config.removeItemButton)){var n=t.parentNode&&t.parentNode.dataset.id,s=n&&e.find(function(v){return v.id===parseInt(n,10)});s&&(this._removeItem(s),this._triggerChange(s.value),this._isSelectOneElement&&this._store.placeholderChoice&&this._selectPlaceholderChoice(this._store.placeholderChoice))}},g.prototype._handleItemAction=function(e,t,n){var s=this;if(n===void 0&&(n=!1),!(!e||!t||!this.config.removeItems||this._isSelectOneElement)){var v=t.dataset.id;e.forEach(function(P){P.id===parseInt("".concat(v),10)&&!P.highlighted?s.highlightItem(P):!n&&P.highlighted&&s.unhighlightItem(P)}),this.input.focus()}},g.prototype._handleChoiceAction=function(e,t){if(!(!e||!t)){var n=t.dataset.id,s=n&&this._store.getChoiceById(n);if(s){var v=e[0]&&e[0].keyCode?e[0].keyCode:void 0,P=this.dropdown.isActive;if(s.keyCode=v,this.passedElement.triggerEvent(y.EVENTS.choice,{choice:s}),!s.selected&&!s.disabled){var M=this._canAddItem(e,s.value);M.response&&(this._addItem({value:s.value,label:s.label,choiceId:s.id,groupId:s.groupId,customProperties:s.customProperties,placeholder:s.placeholder,keyCode:s.keyCode}),this._triggerChange(s.value))}this.clearInput(),P&&this._isSelectOneElement&&(this.hideDropdown(!0),this.containerOuter.focus())}}},g.prototype._handleBackspace=function(e){if(!(!this.config.removeItems||!e)){var t=e[e.length-1],n=e.some(function(s){return s.highlighted});this.config.editItems&&!n&&t?(this.input.value=t.value,this.input.setWidth(),this._removeItem(t),this._triggerChange(t.value)):(n||this.highlightItem(t,!1),this.removeHighlightedItems(!0))}},g.prototype._startLoading=function(){this._store.dispatch((0,O.setIsLoading)(!0))},g.prototype._stopLoading=function(){this._store.dispatch((0,O.setIsLoading)(!1))},g.prototype._handleLoadingState=function(e){e===void 0&&(e=!0);var t=this.itemList.getChild(".".concat(this.config.classNames.placeholder));e?(this.disable(),this.containerOuter.addLoadingState(),this._isSelectOneElement?t?t.innerHTML=this.config.loadingText:(t=this._getTemplate("placeholder",this.config.loadingText),t&&this.itemList.append(t)):this.input.placeholder=this.config.loadingText):(this.enable(),this.containerOuter.removeLoadingState(),this._isSelectOneElement?t&&(t.innerHTML=this._placeholderValue||""):this.input.placeholder=this._placeholderValue||"")},g.prototype._handleSearch=function(e){if(this.input.isFocussed){var t=this._store.choices,n=this.config,s=n.searchFloor,v=n.searchChoices,P=t.some(function(K){return!K.active});if(e!==null&&typeof e<"u"&&e.length>=s){var M=v?this._searchChoices(e):0;this.passedElement.triggerEvent(y.EVENTS.search,{value:e,resultCount:M})}else P&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0)))}},g.prototype._canAddItem=function(e,t){var n=!0,s=typeof this.config.addItemText=="function"?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var v=(0,k.existsInArray)(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(n=!1,s=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&v&&n&&(n=!1,s=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&n&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(t)&&(n=!1,s=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:n,notice:s}},g.prototype._searchChoices=function(e){var t=typeof e=="string"?e.trim():e,n=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(t.length<1&&t==="".concat(n," "))return 0;var s=this._store.searchableChoices,v=t,P=Object.assign(this.config.fuseOptions,{keys:_([],this.config.searchFields,!0),includeMatches:!0}),M=new a.default(s,P),K=M.search(v);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch((0,r.filterChoices)(K)),K.length},g.prototype._addEventListeners=function(){var e=document.documentElement;e.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("click",this._onClick,{passive:!0}),e.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},g.prototype._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("click",this._onClick),e.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},g.prototype._onKeyDown=function(e){var t=e.keyCode,n=this._store.activeItems,s=this.input.isFocussed,v=this.dropdown.isActive,P=this.itemList.hasChildren(),M=String.fromCharCode(t),K=/[^\x00-\x1F]/.test(M),f=y.KEY_CODES.BACK_KEY,u=y.KEY_CODES.DELETE_KEY,C=y.KEY_CODES.ENTER_KEY,Y=y.KEY_CODES.A_KEY,V=y.KEY_CODES.ESC_KEY,U=y.KEY_CODES.UP_KEY,$=y.KEY_CODES.DOWN_KEY,W=y.KEY_CODES.PAGE_UP_KEY,J=y.KEY_CODES.PAGE_DOWN_KEY;switch(!this._isTextElement&&!v&&K&&(this.showDropdown(),this.input.isFocussed||(this.input.value+=e.key.toLowerCase())),t){case Y:return this._onSelectKey(e,P);case C:return this._onEnterKey(e,n,v);case V:return this._onEscapeKey(v);case U:case W:case $:case J:return this._onDirectionKey(e,v);case u:case f:return this._onDeleteKey(e,n,s);default:}},g.prototype._onKeyUp=function(e){var t=e.target,n=e.keyCode,s=this.input.value,v=this._store.activeItems,P=this._canAddItem(v,s),M=y.KEY_CODES.BACK_KEY,K=y.KEY_CODES.DELETE_KEY;if(this._isTextElement){var f=P.notice&&s;if(f){var u=this._getTemplate("notice",P.notice);this.dropdown.element.innerHTML=u.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var C=n===M||n===K,Y=C&&t&&!t.value,V=!this._isTextElement&&this._isSearching,U=this._canSearch&&P.response;Y&&V?(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))):U&&this._handleSearch(this.input.rawValue)}this._canSearch=this.config.searchEnabled},g.prototype._onSelectKey=function(e,t){var n=e.ctrlKey,s=e.metaKey,v=n||s;if(v&&t){this._canSearch=!1;var P=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;P&&this.highlightAll()}},g.prototype._onEnterKey=function(e,t,n){var s=e.target,v=y.KEY_CODES.ENTER_KEY,P=s&&s.hasAttribute("data-button");if(this._isTextElement&&s&&s.value){var M=this.input.value,K=this._canAddItem(t,M);K.response&&(this.hideDropdown(!0),this._addItem({value:M}),this._triggerChange(M),this.clearInput())}if(P&&(this._handleButtonAction(t,s),e.preventDefault()),n){var f=this.dropdown.getChild(".".concat(this.config.classNames.highlightedState));f&&(t[0]&&(t[0].keyCode=v),this._handleChoiceAction(t,f)),e.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),e.preventDefault())},g.prototype._onEscapeKey=function(e){e&&(this.hideDropdown(!0),this.containerOuter.focus())},g.prototype._onDirectionKey=function(e,t){var n=e.keyCode,s=e.metaKey,v=y.KEY_CODES.DOWN_KEY,P=y.KEY_CODES.PAGE_UP_KEY,M=y.KEY_CODES.PAGE_DOWN_KEY;if(t||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var K=n===v||n===M?1:-1,f=s||n===M||n===P,u="[data-choice-selectable]",C=void 0;if(f)K>0?C=this.dropdown.element.querySelector("".concat(u,":last-of-type")):C=this.dropdown.element.querySelector(u);else{var Y=this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState));Y?C=(0,k.getAdjacentEl)(Y,u,K):C=this.dropdown.element.querySelector(u)}C&&((0,k.isScrolledIntoView)(C,this.choiceList.element,K)||this.choiceList.scrollToChildElement(C,K),this._highlightChoice(C)),e.preventDefault()}},g.prototype._onDeleteKey=function(e,t,n){var s=e.target;!this._isSelectOneElement&&!s.value&&n&&(this._handleBackspace(t),e.preventDefault())},g.prototype._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},g.prototype._onTouchEnd=function(e){var t=(e||e.touches[0]).target,n=this._wasTap&&this.containerOuter.element.contains(t);if(n){var s=t===this.containerOuter.element||t===this.containerInner.element;s&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation()}this._wasTap=!0},g.prototype._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(E&&this.choiceList.element.contains(t)){var n=this.choiceList.element.firstElementChild,s=this._direction==="ltr"?e.offsetX>=n.offsetWidth:e.offsetX0;s&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},g.prototype._onFocus=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v){var P=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&n.containerOuter.addFocusState()},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.addFocusState(),s===n.input.element&&n.showDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.showDropdown(!0),n.containerOuter.addFocusState())},t);P[this.passedElement.element.type]()}},g.prototype._onBlur=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v&&!this._isScrollingOnIe){var P=this._store.activeItems,M=P.some(function(f){return f.highlighted}),K=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),M&&n.unhighlightAll(),n.hideDropdown(!0))},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.removeFocusState(),(s===n.input.element||s===n.containerOuter.element&&!n._canSearch)&&n.hideDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),n.hideDropdown(!0),M&&n.unhighlightAll())},t);K[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},g.prototype._onFormReset=function(){this._store.dispatch((0,O.resetTo)(this._initialState))},g.prototype._highlightChoice=function(e){var t=this;e===void 0&&(e=null);var n=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(n.length){var s=e,v=Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState)));v.forEach(function(P){P.classList.remove(t.config.classNames.highlightedState),P.setAttribute("aria-selected","false")}),s?this._highlightPosition=n.indexOf(s):(n.length>this._highlightPosition?s=n[this._highlightPosition]:s=n[n.length-1],s||(s=n[0])),s.classList.add(this.config.classNames.highlightedState),s.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(y.EVENTS.highlightChoice,{el:s}),this.dropdown.isActive&&(this.input.setActiveDescendant(s.id),this.containerOuter.setActiveDescendant(s.id))}},g.prototype._addItem=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.choiceId,P=v===void 0?-1:v,M=e.groupId,K=M===void 0?-1:M,f=e.customProperties,u=f===void 0?{}:f,C=e.placeholder,Y=C===void 0?!1:C,V=e.keyCode,U=V===void 0?-1:V,$=typeof t=="string"?t.trim():t,W=this._store.items,J=s||$,z=P||-1,ee=K>=0?this._store.getGroupById(K):null,ae=W?W.length+1:1;this.config.prependValue&&($=this.config.prependValue+$.toString()),this.config.appendValue&&($+=this.config.appendValue.toString()),this._store.dispatch((0,l.addItem)({value:$,label:J,id:ae,choiceId:z,groupId:K,customProperties:u,placeholder:Y,keyCode:U})),this._isSelectOneElement&&this.removeActiveItems(ae),this.passedElement.triggerEvent(y.EVENTS.addItem,{id:ae,value:$,label:J,customProperties:u,groupValue:ee&&ee.value?ee.value:null,keyCode:U})},g.prototype._removeItem=function(e){var t=e.id,n=e.value,s=e.label,v=e.customProperties,P=e.choiceId,M=e.groupId,K=M&&M>=0?this._store.getGroupById(M):null;!t||!P||(this._store.dispatch((0,l.removeItem)(t,P)),this.passedElement.triggerEvent(y.EVENTS.removeItem,{id:t,value:n,label:s,customProperties:v,groupValue:K&&K.value?K.value:null}))},g.prototype._addChoice=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.isSelected,P=v===void 0?!1:v,M=e.isDisabled,K=M===void 0?!1:M,f=e.groupId,u=f===void 0?-1:f,C=e.customProperties,Y=C===void 0?{}:C,V=e.placeholder,U=V===void 0?!1:V,$=e.keyCode,W=$===void 0?-1:$;if(!(typeof t>"u"||t===null)){var J=this._store.choices,z=s||t,ee=J?J.length+1:1,ae="".concat(this._baseId,"-").concat(this._idNames.itemChoice,"-").concat(ee);this._store.dispatch((0,r.addChoice)({id:ee,groupId:u,elementId:ae,value:t,label:z,disabled:K,customProperties:Y,placeholder:U,keyCode:W})),P&&this._addItem({value:t,label:z,choiceId:ee,customProperties:Y,placeholder:U,keyCode:W})}},g.prototype._addGroup=function(e){var t=this,n=e.group,s=e.id,v=e.valueKey,P=v===void 0?"value":v,M=e.labelKey,K=M===void 0?"label":M,f=(0,k.isType)("Object",n)?n.choices:Array.from(n.getElementsByTagName("OPTION")),u=s||Math.floor(new Date().valueOf()*Math.random()),C=n.disabled?n.disabled:!1;if(f){this._store.dispatch((0,c.addGroup)({value:n.label,id:u,active:!0,disabled:C}));var Y=function(V){var U=V.disabled||V.parentNode&&V.parentNode.disabled;t._addChoice({value:V[P],label:(0,k.isType)("Object",V)?V[K]:V.innerHTML,isSelected:V.selected,isDisabled:U,groupId:u,customProperties:V.customProperties,placeholder:V.placeholder})};f.forEach(Y)}else this._store.dispatch((0,c.addGroup)({value:n.label,id:n.id,active:!1,disabled:n.disabled}))},g.prototype._getTemplate=function(e){for(var t,n=[],s=1;s0?this.element.scrollTop+y-O:a.offsetTop;requestAnimationFrame(function(){c._animateScroll(D,r)})}},d.prototype._scrollDown=function(a,r,c){var l=(c-a)/r,O=l>1?l:1;this.element.scrollTop=a+O},d.prototype._scrollUp=function(a,r,c){var l=(a-c)/r,O=l>1?l:1;this.element.scrollTop=a-O},d.prototype._animateScroll=function(a,r){var c=this,l=_.SCROLLING_SPEED,O=this.element.scrollTop,L=!1;r>0?(this._scrollDown(O,l,a),Oa&&(L=!0)),L&&requestAnimationFrame(function(){c._animateScroll(a,r)})},d}();i.default=h},730:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0});var _=b(799),h=function(){function d(a){var r=a.element,c=a.classNames;if(this.element=r,this.classNames=c,!(r instanceof HTMLInputElement)&&!(r instanceof HTMLSelectElement))throw new TypeError("Invalid element passed");this.isDisabled=!1}return Object.defineProperty(d.prototype,"isActive",{get:function(){return this.element.dataset.choice==="active"},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"dir",{get:function(){return this.element.dir},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"value",{get:function(){return this.element.value},set:function(a){this.element.value=a},enumerable:!1,configurable:!0}),d.prototype.conceal=function(){this.element.classList.add(this.classNames.input),this.element.hidden=!0,this.element.tabIndex=-1;var a=this.element.getAttribute("style");a&&this.element.setAttribute("data-choice-orig-style",a),this.element.setAttribute("data-choice","active")},d.prototype.reveal=function(){this.element.classList.remove(this.classNames.input),this.element.hidden=!1,this.element.removeAttribute("tabindex");var a=this.element.getAttribute("data-choice-orig-style");a?(this.element.removeAttribute("data-choice-orig-style"),this.element.setAttribute("style",a)):this.element.removeAttribute("style"),this.element.removeAttribute("data-choice"),this.element.value=this.element.value},d.prototype.enable=function(){this.element.removeAttribute("disabled"),this.element.disabled=!1,this.isDisabled=!1},d.prototype.disable=function(){this.element.setAttribute("disabled",""),this.element.disabled=!0,this.isDisabled=!0},d.prototype.triggerEvent=function(a,r){(0,_.dispatchEvent)(this.element,a,r)},d}();i.default=h},541:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.delimiter,D=r.call(this,{element:O,classNames:L})||this;return D.delimiter=y,D}return Object.defineProperty(c.prototype,"value",{get:function(){return this.element.value},set:function(l){this.element.setAttribute("value",l),this.element.value=l},enumerable:!1,configurable:!0}),c}(d.default);i.default=a},982:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.template,D=r.call(this,{element:O,classNames:L})||this;return D.template=y,D}return Object.defineProperty(c.prototype,"placeholderOption",{get:function(){return this.element.querySelector('option[value=""]')||this.element.querySelector("option[placeholder]")},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"optionGroups",{get:function(){return Array.from(this.element.getElementsByTagName("OPTGROUP"))},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"options",{get:function(){return Array.from(this.element.options)},set:function(l){var O=this,L=document.createDocumentFragment(),y=function(D){var k=O.template(D);L.appendChild(k)};l.forEach(function(D){return y(D)}),this.appendDocFragment(L)},enumerable:!1,configurable:!0}),c.prototype.appendDocFragment=function(l){this.element.innerHTML="",this.element.appendChild(l)},c}(d.default);i.default=a},883:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.SCROLLING_SPEED=i.SELECT_MULTIPLE_TYPE=i.SELECT_ONE_TYPE=i.TEXT_TYPE=i.KEY_CODES=i.ACTION_TYPES=i.EVENTS=void 0,i.EVENTS={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice",unhighlightItem:"unhighlightItem"},i.ACTION_TYPES={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL",RESET_TO:"RESET_TO",SET_IS_LOADING:"SET_IS_LOADING"},i.KEY_CODES={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},i.TEXT_TYPE="text",i.SELECT_ONE_TYPE="select-one",i.SELECT_MULTIPLE_TYPE="select-multiple",i.SCROLLING_SPEED=4},789:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CONFIG=i.DEFAULT_CLASSNAMES=void 0;var _=b(799);i.DEFAULT_CLASSNAMES={containerOuter:"choices",containerInner:"choices__inner",input:"choices__input",inputCloned:"choices__input--cloned",list:"choices__list",listItems:"choices__list--multiple",listSingle:"choices__list--single",listDropdown:"choices__list--dropdown",item:"choices__item",itemSelectable:"choices__item--selectable",itemDisabled:"choices__item--disabled",itemChoice:"choices__item--choice",placeholder:"choices__placeholder",group:"choices__group",groupHeading:"choices__heading",button:"choices__button",activeState:"is-active",focusState:"is-focused",openState:"is-open",disabledState:"is-disabled",highlightedState:"is-highlighted",selectedState:"is-selected",flippedState:"is-flipped",loadingState:"is-loading",noResults:"has-no-results",noChoices:"has-no-choices"},i.DEFAULT_CONFIG={items:[],choices:[],silent:!1,renderChoiceLimit:-1,maxItemCount:-1,addItems:!0,addItemFilter:null,removeItems:!0,removeItemButton:!1,editItems:!1,allowHTML:!0,duplicateItemsAllowed:!0,delimiter:",",paste:!0,searchEnabled:!0,searchChoices:!0,searchFloor:1,searchResultLimit:4,searchFields:["label","value"],position:"auto",resetScrollPosition:!0,shouldSort:!0,shouldSortItems:!1,sorter:_.sortByAlpha,placeholder:!0,placeholderValue:null,searchPlaceholderValue:null,prependValue:null,appendValue:null,renderSelectedChoices:"auto",loadingText:"Loading...",noResultsText:"No results found",noChoicesText:"No choices to choose from",itemSelectText:"Press to select",uniqueItemText:"Only unique values can be added",customAddItemText:"Only values matching specific conditions can be added",addItemText:function(h){return'Press Enter to add "'.concat((0,_.sanitise)(h),'"')},maxItemText:function(h){return"Only ".concat(h," values can be added")},valueComparer:function(h,d){return h===d},fuseOptions:{includeScore:!0},labelId:"",callbackOnInit:null,callbackOnCreateTemplates:null,classNames:i.DEFAULT_CLASSNAMES}},18:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},978:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},948:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},359:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},285:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},533:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},187:function(j,i,b){var _=this&&this.__createBinding||(Object.create?function(d,a,r,c){c===void 0&&(c=r);var l=Object.getOwnPropertyDescriptor(a,r);(!l||("get"in l?!a.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return a[r]}}),Object.defineProperty(d,c,l)}:function(d,a,r,c){c===void 0&&(c=r),d[c]=a[r]}),h=this&&this.__exportStar||function(d,a){for(var r in d)r!=="default"&&!Object.prototype.hasOwnProperty.call(a,r)&&_(a,d,r)};Object.defineProperty(i,"__esModule",{value:!0}),h(b(18),i),h(b(978),i),h(b(948),i),h(b(359),i),h(b(285),i),h(b(533),i),h(b(287),i),h(b(132),i),h(b(837),i),h(b(598),i),h(b(369),i),h(b(37),i),h(b(47),i),h(b(923),i),h(b(876),i)},287:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},132:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},837:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},598:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},37:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},369:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},47:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},923:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},876:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},799:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.parseCustomProperties=i.diff=i.cloneObject=i.existsInArray=i.dispatchEvent=i.sortByScore=i.sortByAlpha=i.strToEl=i.sanitise=i.isScrolledIntoView=i.getAdjacentEl=i.wrap=i.isType=i.getType=i.generateId=i.generateChars=i.getRandomNumber=void 0;var b=function(E,w){return Math.floor(Math.random()*(w-E)+E)};i.getRandomNumber=b;var _=function(E){return Array.from({length:E},function(){return(0,i.getRandomNumber)(0,36).toString(36)}).join("")};i.generateChars=_;var h=function(E,w){var N=E.id||E.name&&"".concat(E.name,"-").concat((0,i.generateChars)(2))||(0,i.generateChars)(4);return N=N.replace(/(:|\.|\[|\]|,)/g,""),N="".concat(w,"-").concat(N),N};i.generateId=h;var d=function(E){return Object.prototype.toString.call(E).slice(8,-1)};i.getType=d;var a=function(E,w){return w!=null&&(0,i.getType)(w)===E};i.isType=a;var r=function(E,w){return w===void 0&&(w=document.createElement("div")),E.parentNode&&(E.nextSibling?E.parentNode.insertBefore(w,E.nextSibling):E.parentNode.appendChild(w)),w.appendChild(E)};i.wrap=r;var c=function(E,w,N){N===void 0&&(N=1);for(var g="".concat(N>0?"next":"previous","ElementSibling"),e=E[g];e;){if(e.matches(w))return e;e=e[g]}return e};i.getAdjacentEl=c;var l=function(E,w,N){if(N===void 0&&(N=1),!E)return!1;var g;return N>0?g=w.scrollTop+w.offsetHeight>=E.offsetTop+E.offsetHeight:g=E.offsetTop>=w.scrollTop,g};i.isScrolledIntoView=l;var O=function(E){return typeof E!="string"?E:E.replace(/&/g,"&").replace(/>/g,">").replace(/-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(c.choiceId),10)&&(D.selected=!0),D}):h}case"REMOVE_ITEM":{var l=d;return l.choiceId&&l.choiceId>-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(l.choiceId),10)&&(D.selected=!1),D}):h}case"FILTER_CHOICES":{var O=d;return h.map(function(y){var D=y;return D.active=O.results.some(function(k){var Q=k.item,Z=k.score;return Q.id===D.id?(D.score=Z,!0):!1}),D})}case"ACTIVATE_CHOICES":{var L=d;return h.map(function(y){var D=y;return D.active=L.active,D})}case"CLEAR_CHOICES":return i.defaultState;default:return h}}i.default=_},871:function(j,i){var b=this&&this.__spreadArray||function(h,d,a){if(a||arguments.length===2)for(var r=0,c=d.length,l;r0?"treeitem":"option"),Object.assign(t.dataset,{choice:"",id:Q,value:Z,selectText:d}),N?(t.classList.add(D),t.dataset.choiceDisabled="",t.setAttribute("aria-disabled","true")):(t.classList.add(L),t.dataset.choiceSelectable=""),t},input:function(_,h){var d=_.classNames,a=d.input,r=d.inputCloned,c=Object.assign(document.createElement("input"),{type:"search",name:"search_terms",className:"".concat(a," ").concat(r),autocomplete:"off",autocapitalize:"off",spellcheck:!1});return c.setAttribute("role","textbox"),c.setAttribute("aria-autocomplete","list"),c.setAttribute("aria-label",h),c},dropdown:function(_){var h=_.classNames,d=h.list,a=h.listDropdown,r=document.createElement("div");return r.classList.add(d,a),r.setAttribute("aria-expanded","false"),r},notice:function(_,h,d){var a,r=_.allowHTML,c=_.classNames,l=c.item,O=c.itemChoice,L=c.noResults,y=c.noChoices;d===void 0&&(d="");var D=[l,O];return d==="no-choices"?D.push(y):d==="no-results"&&D.push(L),Object.assign(document.createElement("div"),(a={},a[r?"innerHTML":"innerText"]=h,a.className=D.join(" "),a))},option:function(_){var h=_.label,d=_.value,a=_.customProperties,r=_.active,c=_.disabled,l=new Option(h,d,!1,r);return a&&(l.dataset.customProperties="".concat(a)),l.disabled=!!c,l}};i.default=b},996:function(j){var i=function(w){return b(w)&&!_(w)};function b(E){return!!E&&typeof E=="object"}function _(E){var w=Object.prototype.toString.call(E);return w==="[object RegExp]"||w==="[object Date]"||a(E)}var h=typeof Symbol=="function"&&Symbol.for,d=h?Symbol.for("react.element"):60103;function a(E){return E.$$typeof===d}function r(E){return Array.isArray(E)?[]:{}}function c(E,w){return w.clone!==!1&&w.isMergeableObject(E)?Z(r(E),E,w):E}function l(E,w,N){return E.concat(w).map(function(g){return c(g,N)})}function O(E,w){if(!w.customMerge)return Z;var N=w.customMerge(E);return typeof N=="function"?N:Z}function L(E){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(E).filter(function(w){return E.propertyIsEnumerable(w)}):[]}function y(E){return Object.keys(E).concat(L(E))}function D(E,w){try{return w in E}catch{return!1}}function k(E,w){return D(E,w)&&!(Object.hasOwnProperty.call(E,w)&&Object.propertyIsEnumerable.call(E,w))}function Q(E,w,N){var g={};return N.isMergeableObject(E)&&y(E).forEach(function(e){g[e]=c(E[e],N)}),y(w).forEach(function(e){k(E,e)||(D(E,e)&&N.isMergeableObject(w[e])?g[e]=O(e,N)(E[e],w[e],N):g[e]=c(w[e],N))}),g}function Z(E,w,N){N=N||{},N.arrayMerge=N.arrayMerge||l,N.isMergeableObject=N.isMergeableObject||i,N.cloneUnlessOtherwiseSpecified=c;var g=Array.isArray(w),e=Array.isArray(E),t=g===e;return t?g?N.arrayMerge(E,w,N):Q(E,w,N):c(w,N)}Z.all=function(w,N){if(!Array.isArray(w))throw new Error("first argument should be an array");return w.reduce(function(g,e){return Z(g,e,N)},{})};var ne=Z;j.exports=ne},221:function(j,i,b){b.r(i),b.d(i,{default:function(){return Se}});function _(p){return Array.isArray?Array.isArray(p):k(p)==="[object Array]"}let h=1/0;function d(p){if(typeof p=="string")return p;let o=p+"";return o=="0"&&1/p==-h?"-0":o}function a(p){return p==null?"":d(p)}function r(p){return typeof p=="string"}function c(p){return typeof p=="number"}function l(p){return p===!0||p===!1||L(p)&&k(p)=="[object Boolean]"}function O(p){return typeof p=="object"}function L(p){return O(p)&&p!==null}function y(p){return p!=null}function D(p){return!p.trim().length}function k(p){return p==null?p===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(p)}let Q="Extended search is not available",Z="Incorrect 'index' type",ne=p=>`Invalid value for key ${p}`,E=p=>`Pattern length exceeds max of ${p}.`,w=p=>`Missing ${p} property in key`,N=p=>`Property 'weight' in key '${p}' must be a positive integer`,g=Object.prototype.hasOwnProperty;class e{constructor(o){this._keys=[],this._keyMap={};let m=0;o.forEach(S=>{let I=t(S);m+=I.weight,this._keys.push(I),this._keyMap[I.id]=I,m+=I.weight}),this._keys.forEach(S=>{S.weight/=m})}get(o){return this._keyMap[o]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function t(p){let o=null,m=null,S=null,I=1,T=null;if(r(p)||_(p))S=p,o=n(p),m=s(p);else{if(!g.call(p,"name"))throw new Error(w("name"));let A=p.name;if(S=A,g.call(p,"weight")&&(I=p.weight,I<=0))throw new Error(N(A));o=n(A),m=s(A),T=p.getFn}return{path:o,id:m,weight:I,src:S,getFn:T}}function n(p){return _(p)?p:p.split(".")}function s(p){return _(p)?p.join("."):p}function v(p,o){let m=[],S=!1,I=(T,A,R)=>{if(y(T))if(!A[R])m.push(T);else{let F=A[R],H=T[F];if(!y(H))return;if(R===A.length-1&&(r(H)||c(H)||l(H)))m.push(a(H));else if(_(H)){S=!0;for(let B=0,x=H.length;Bp.score===o.score?p.idx{this._keysMap[m.id]=S})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,r(this.docs[0])?this.docs.forEach((o,m)=>{this._addString(o,m)}):this.docs.forEach((o,m)=>{this._addObject(o,m)}),this.norm.clear())}add(o){let m=this.size();r(o)?this._addString(o,m):this._addObject(o,m)}removeAt(o){this.records.splice(o,1);for(let m=o,S=this.size();m{let A=I.getFn?I.getFn(o):this.getFn(o,I.path);if(y(A)){if(_(A)){let R=[],F=[{nestedArrIndex:-1,value:A}];for(;F.length;){let{nestedArrIndex:H,value:B}=F.pop();if(y(B))if(r(B)&&!D(B)){let x={v:B,i:H,n:this.norm.get(B)};R.push(x)}else _(B)&&B.forEach((x,G)=>{F.push({nestedArrIndex:G,value:x})})}S.$[T]=R}else if(r(A)&&!D(A)){let R={v:A,n:this.norm.get(A)};S.$[T]=R}}}),this.records.push(S)}toJSON(){return{keys:this.keys,records:this.records}}}function U(p,o,{getFn:m=u.getFn,fieldNormWeight:S=u.fieldNormWeight}={}){let I=new V({getFn:m,fieldNormWeight:S});return I.setKeys(p.map(t)),I.setSources(o),I.create(),I}function $(p,{getFn:o=u.getFn,fieldNormWeight:m=u.fieldNormWeight}={}){let{keys:S,records:I}=p,T=new V({getFn:o,fieldNormWeight:m});return T.setKeys(S),T.setIndexRecords(I),T}function W(p,{errors:o=0,currentLocation:m=0,expectedLocation:S=0,distance:I=u.distance,ignoreLocation:T=u.ignoreLocation}={}){let A=o/p.length;if(T)return A;let R=Math.abs(S-m);return I?A+R/I:R?1:A}function J(p=[],o=u.minMatchCharLength){let m=[],S=-1,I=-1,T=0;for(let A=p.length;T=o&&m.push([S,I]),S=-1)}return p[T-1]&&T-S>=o&&m.push([S,T-1]),m}let z=32;function ee(p,o,m,{location:S=u.location,distance:I=u.distance,threshold:T=u.threshold,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,includeMatches:F=u.includeMatches,ignoreLocation:H=u.ignoreLocation}={}){if(o.length>z)throw new Error(E(z));let B=o.length,x=p.length,G=Math.max(0,Math.min(S,x)),q=T,re=G,ue=R>1||F,Ee=ue?Array(x):[],ve;for(;(ve=p.indexOf(o,re))>-1;){let he=W(o,{currentLocation:ve,expectedLocation:G,distance:I,ignoreLocation:H});if(q=Math.min(he,q),re=ve+B,ue){let ge=0;for(;ge=Ue;fe-=1){let Le=fe-1,We=m[p.charAt(Le)];if(ue&&(Ee[Le]=+!!We),Oe[fe]=(Oe[fe+1]<<1|1)&We,he&&(Oe[fe]|=(Ie[fe+1]|Ie[fe])<<1|1|Ie[fe+1]),Oe[fe]&at&&(be=W(o,{errors:he,currentLocation:Le,expectedLocation:G,distance:I,ignoreLocation:H}),be<=q)){if(q=be,re=Le,re<=G)break;Ue=Math.max(1,2*G-re)}}if(W(o,{errors:he+1,currentLocation:G,expectedLocation:G,distance:I,ignoreLocation:H})>q)break;Ie=Oe}let Ke={isMatch:re>=0,score:Math.max(.001,be)};if(ue){let he=J(Ee,R);he.length?F&&(Ke.indices=he):Ke.isMatch=!1}return Ke}function ae(p){let o={};for(let m=0,S=p.length;m{this.chunks.push({pattern:G,alphabet:ae(G),startIndex:q})},x=this.pattern.length;if(x>z){let G=0,q=x%z,re=x-q;for(;G{let{isMatch:ve,score:Ie,indices:be}=ee(o,re,ue,{location:I+Ee,distance:T,threshold:A,findAllMatches:R,minMatchCharLength:F,includeMatches:S,ignoreLocation:H});ve&&(G=!0),x+=Ie,ve&&be&&(B=[...B,...be])});let q={isMatch:G,score:G?x/this.chunks.length:1};return G&&S&&(q.indices=B),q}}class le{constructor(o){this.pattern=o}static isMultiMatch(o){return _e(o,this.multiRegex)}static isSingleMatch(o){return _e(o,this.singleRegex)}search(){}}function _e(p,o){let m=p.match(o);return m?m[1]:null}class te extends le{constructor(o){super(o)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(o){let m=o===this.pattern;return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class de extends le{constructor(o){super(o)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(o){let S=o.indexOf(this.pattern)===-1;return{isMatch:S,score:S?0:1,indices:[0,o.length-1]}}}class pe extends le{constructor(o){super(o)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(o){let m=o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class oe extends le{constructor(o){super(o)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(o){let m=!o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class Te extends le{constructor(o){super(o)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(o){let m=o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[o.length-this.pattern.length,o.length-1]}}}class Pe extends le{constructor(o){super(o)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(o){let m=!o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class He extends le{constructor(o,{location:m=u.location,threshold:S=u.threshold,distance:I=u.distance,includeMatches:T=u.includeMatches,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,isCaseSensitive:F=u.isCaseSensitive,ignoreLocation:H=u.ignoreLocation}={}){super(o),this._bitapSearch=new ce(o,{location:m,threshold:S,distance:I,includeMatches:T,findAllMatches:A,minMatchCharLength:R,isCaseSensitive:F,ignoreLocation:H})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(o){return this._bitapSearch.searchIn(o)}}class Be extends le{constructor(o){super(o)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(o){let m=0,S,I=[],T=this.pattern.length;for(;(S=o.indexOf(this.pattern,m))>-1;)m=S+T,I.push([S,m-1]);let A=!!I.length;return{isMatch:A,score:A?0:1,indices:I}}}let Me=[te,Be,pe,oe,Pe,Te,de,He],Ve=Me.length,Xe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Je="|";function Qe(p,o={}){return p.split(Je).map(m=>{let S=m.trim().split(Xe).filter(T=>T&&!!T.trim()),I=[];for(let T=0,A=S.length;T!!(p[Ce.AND]||p[Ce.OR]),tt=p=>!!p[je.PATH],it=p=>!_(p)&&O(p)&&!Re(p),ke=p=>({[Ce.AND]:Object.keys(p).map(o=>({[o]:p[o]}))});function xe(p,o,{auto:m=!0}={}){let S=I=>{let T=Object.keys(I),A=tt(I);if(!A&&T.length>1&&!Re(I))return S(ke(I));if(it(I)){let F=A?I[je.PATH]:T[0],H=A?I[je.PATTERN]:I[F];if(!r(H))throw new Error(ne(F));let B={keyId:s(F),pattern:H};return m&&(B.searcher=Ne(H,o)),B}let R={children:[],operator:T[0]};return T.forEach(F=>{let H=I[F];_(H)&&H.forEach(B=>{R.children.push(S(B))})}),R};return Re(p)||(p=ke(p)),S(p)}function nt(p,{ignoreFieldNorm:o=u.ignoreFieldNorm}){p.forEach(m=>{let S=1;m.matches.forEach(({key:I,norm:T,score:A})=>{let R=I?I.weight:null;S*=Math.pow(A===0&&R?Number.EPSILON:A,(R||1)*(o?1:T))}),m.score=S})}function rt(p,o){let m=p.matches;o.matches=[],y(m)&&m.forEach(S=>{if(!y(S.indices)||!S.indices.length)return;let{indices:I,value:T}=S,A={indices:I,value:T};S.key&&(A.key=S.key.src),S.idx>-1&&(A.refIndex=S.idx),o.matches.push(A)})}function st(p,o){o.score=p.score}function ot(p,o,{includeMatches:m=u.includeMatches,includeScore:S=u.includeScore}={}){let I=[];return m&&I.push(rt),S&&I.push(st),p.map(T=>{let{idx:A}=T,R={item:o[A],refIndex:A};return I.length&&I.forEach(F=>{F(T,R)}),R})}class Se{constructor(o,m={},S){this.options={...u,...m},this.options.useExtendedSearch,this._keyStore=new e(this.options.keys),this.setCollection(o,S)}setCollection(o,m){if(this._docs=o,m&&!(m instanceof V))throw new Error(Z);this._myIndex=m||U(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(o){y(o)&&(this._docs.push(o),this._myIndex.add(o))}remove(o=()=>!1){let m=[];for(let S=0,I=this._docs.length;S-1&&(F=F.slice(0,m)),ot(F,this._docs,{includeMatches:S,includeScore:I})}_searchStringList(o){let m=Ne(o,this.options),{records:S}=this._myIndex,I=[];return S.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=m.searchIn(T);F&&I.push({item:T,idx:A,matches:[{score:H,value:T,norm:R,indices:B}]})}),I}_searchLogical(o){let m=xe(o,this.options),S=(R,F,H)=>{if(!R.children){let{keyId:x,searcher:G}=R,q=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(F,x),searcher:G});return q&&q.length?[{idx:H,item:F,matches:q}]:[]}let B=[];for(let x=0,G=R.children.length;x{if(y(R)){let H=S(m,R,F);H.length&&(T[F]||(T[F]={idx:F,item:R,matches:[]},A.push(T[F])),H.forEach(({matches:B})=>{T[F].matches.push(...B)}))}}),A}_searchObjectList(o){let m=Ne(o,this.options),{keys:S,records:I}=this._myIndex,T=[];return I.forEach(({$:A,i:R})=>{if(!y(A))return;let F=[];S.forEach((H,B)=>{F.push(...this._findMatches({key:H,value:A[B],searcher:m}))}),F.length&&T.push({idx:R,item:A,matches:F})}),T}_findMatches({key:o,value:m,searcher:S}){if(!y(m))return[];let I=[];if(_(m))m.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=S.searchIn(T);F&&I.push({score:H,key:o,value:T,idx:A,norm:R,indices:B})});else{let{v:T,n:A}=m,{isMatch:R,score:F,indices:H}=S.searchIn(T);R&&I.push({score:F,key:o,value:T,norm:A,indices:H})}return I}}Se.version="6.6.2",Se.createIndex=U,Se.parseIndex=$,Se.config=u,Se.parseQuery=xe,et(qe)},791:function(j,i,b){b.r(i),b.d(i,{__DO_NOT_USE__ActionTypes:function(){return y},applyMiddleware:function(){return M},bindActionCreators:function(){return v},combineReducers:function(){return n},compose:function(){return P},createStore:function(){return w},legacy_createStore:function(){return N}});function _(f){"@babel/helpers - typeof";return _=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},_(f)}function h(f,u){if(_(f)!=="object"||f===null)return f;var C=f[Symbol.toPrimitive];if(C!==void 0){var Y=C.call(f,u||"default");if(_(Y)!=="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(f)}function d(f){var u=h(f,"string");return _(u)==="symbol"?u:String(u)}function a(f,u,C){return u=d(u),u in f?Object.defineProperty(f,u,{value:C,enumerable:!0,configurable:!0,writable:!0}):f[u]=C,f}function r(f,u){var C=Object.keys(f);if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(f);u&&(Y=Y.filter(function(V){return Object.getOwnPropertyDescriptor(f,V).enumerable})),C.push.apply(C,Y)}return C}function c(f){for(var u=1;u"u"&&(C=u,u=void 0),typeof C<"u"){if(typeof C!="function")throw new Error(l(1));return C(w)(f,u)}if(typeof f!="function")throw new Error(l(2));var V=f,U=u,$=[],W=$,J=!1;function z(){W===$&&(W=$.slice())}function ee(){if(J)throw new Error(l(3));return U}function ae(te){if(typeof te!="function")throw new Error(l(4));if(J)throw new Error(l(5));var de=!0;return z(),W.push(te),function(){if(de){if(J)throw new Error(l(6));de=!1,z();var oe=W.indexOf(te);W.splice(oe,1),$=null}}}function ce(te){if(!D(te))throw new Error(l(7));if(typeof te.type>"u")throw new Error(l(8));if(J)throw new Error(l(9));try{J=!0,U=V(U,te)}finally{J=!1}for(var de=$=W,pe=0;pe0)return"Unexpected "+($.length>1?"keys":"key")+" "+('"'+$.join('", "')+'" found in '+U+". ")+"Expected to find one of the known reducer keys instead: "+('"'+V.join('", "')+'". Unexpected keys will be ignored.')}function t(f){Object.keys(f).forEach(function(u){var C=f[u],Y=C(void 0,{type:y.INIT});if(typeof Y>"u")throw new Error(l(12));if(typeof C(void 0,{type:y.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(l(13))})}function n(f){for(var u=Object.keys(f),C={},Y=0;Y"u"){var Te=ee&&ee.type;throw new Error(l(14))}le[te]=oe,ce=ce||oe!==pe}return ce=ce||U.length!==Object.keys(z).length,ce?le:z}}function s(f,u){return function(){return u(f.apply(this,arguments))}}function v(f,u){if(typeof f=="function")return s(f,u);if(typeof f!="object"||f===null)throw new Error(l(16));var C={};for(var Y in f){var V=f[Y];typeof V=="function"&&(C[Y]=s(V,u))}return C}function P(){for(var f=arguments.length,u=new Array(f),C=0;Cwindow.pluralize(O,e,{count:e}),noChoicesText:E,noResultsText:L,placeholderValue:k,position:Q??"auto",removeItemButton:se,renderChoiceLimit:D,searchEnabled:h,searchFields:w??["label"],searchPlaceholderValue:E,searchResultLimit:D,shouldSort:!1,searchFloor:a?0:1}),await this.refreshChoices({withInitialOptions:!0}),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)),this.refreshPlaceholder(),b&&this.select.showDropdown(),this.$refs.input.addEventListener("change",()=>{this.refreshPlaceholder(),!this.isStateBeingUpdated&&(this.isStateBeingUpdated=!0,this.state=this.select.getValue(!0)??null,this.$nextTick(()=>this.isStateBeingUpdated=!1))}),d&&this.$refs.input.addEventListener("showDropdown",async()=>{this.select.clearChoices(),await this.select.setChoices([{label:c,value:"",disabled:!0}]),await this.refreshChoices()}),a&&(this.$refs.input.addEventListener("search",async e=>{let t=e.detail.value?.trim();this.isSearching=!0,this.select.clearChoices(),await this.select.setChoices([{label:[null,void 0,""].includes(t)?c:ne,value:"",disabled:!0}])}),this.$refs.input.addEventListener("search",Alpine.debounce(async e=>{await this.refreshChoices({search:e.detail.value?.trim()}),this.isSearching=!1},Z))),_||window.addEventListener("filament-forms::select.refreshSelectedOptionLabel",async e=>{e.detail.livewireId===r&&e.detail.statePath===g&&await this.refreshChoices({withInitialOptions:!d})}),this.$watch("state",async()=>{this.select&&(this.refreshPlaceholder(),!this.isStateBeingUpdated&&await this.refreshChoices({withInitialOptions:!d}))})},destroy:function(){this.select.destroy(),this.select=null},refreshChoices:async function(e={}){let t=await this.getChoices(e);this.select.clearStore(),this.refreshPlaceholder(),this.setChoices(t),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state))},setChoices:function(e){this.select.setChoices(e,"value","label",!0)},getChoices:async function(e={}){let t=await this.getExistingOptions(e);return t.concat(await this.getMissingOptions(t))},getExistingOptions:async function({search:e,withInitialOptions:t}){if(t)return y;let n=[];return e!==""&&e!==null&&e!==void 0?n=await i(e):n=await j(),n.map(s=>s.choices?(s.choices=s.choices.map(v=>(v.selected=Array.isArray(this.state)?this.state.includes(v.value):this.state===v.value,v)),s):(s.selected=Array.isArray(this.state)?this.state.includes(s.value):this.state===s.value,s))},refreshPlaceholder:function(){_||(this.select._renderItems(),[null,void 0,""].includes(this.state)&&(this.$el.querySelector(".choices__list--single").innerHTML=`
${k??""}
`))},formatState:function(e){return _?(e??[]).map(t=>t?.toString()):e?.toString()},getMissingOptions:async function(e){let t=this.formatState(this.state);if([null,void 0,"",[],{}].includes(t))return{};let n=new Set;return e.forEach(s=>{if(s.choices){s.choices.forEach(v=>n.add(v.value));return}n.add(s.value)}),_?t.every(s=>n.has(s))?{}:(await me()).filter(s=>!n.has(s.value)).map(s=>(s.selected=!0,s)):n.has(t)?n:[{label:await X(),value:t,selected:!0}]}}}export{vt as default}; +var lt=Object.create;var Ge=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ft=(se,ie)=>()=>(ie||se((ie={exports:{}}).exports,ie),ie.exports);var pt=(se,ie,X,me)=>{if(ie&&typeof ie=="object"||typeof ie=="function")for(let j of ut(ie))!dt.call(se,j)&&j!==X&&Ge(se,j,{get:()=>ie[j],enumerable:!(me=ct(ie,j))||me.enumerable});return se};var mt=(se,ie,X)=>(X=se!=null?lt(ht(se)):{},pt(ie||!se||!se.__esModule?Ge(X,"default",{value:se,enumerable:!0}):X,se));var $e=ft((Ae,Ye)=>{(function(ie,X){typeof Ae=="object"&&typeof Ye=="object"?Ye.exports=X():typeof define=="function"&&define.amd?define([],X):typeof Ae=="object"?Ae.Choices=X():ie.Choices=X()})(window,function(){return function(){"use strict";var se={282:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.clearChoices=i.activateChoices=i.filterChoices=i.addChoice=void 0;var _=b(883),h=function(c){var l=c.value,O=c.label,L=c.id,y=c.groupId,D=c.disabled,k=c.elementId,Q=c.customProperties,Z=c.placeholder,ne=c.keyCode;return{type:_.ACTION_TYPES.ADD_CHOICE,value:l,label:O,id:L,groupId:y,disabled:D,elementId:k,customProperties:Q,placeholder:Z,keyCode:ne}};i.addChoice=h;var d=function(c){return{type:_.ACTION_TYPES.FILTER_CHOICES,results:c}};i.filterChoices=d;var a=function(c){return c===void 0&&(c=!0),{type:_.ACTION_TYPES.ACTIVATE_CHOICES,active:c}};i.activateChoices=a;var r=function(){return{type:_.ACTION_TYPES.CLEAR_CHOICES}};i.clearChoices=r},783:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.addGroup=void 0;var _=b(883),h=function(d){var a=d.value,r=d.id,c=d.active,l=d.disabled;return{type:_.ACTION_TYPES.ADD_GROUP,value:a,id:r,active:c,disabled:l}};i.addGroup=h},464:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.highlightItem=i.removeItem=i.addItem=void 0;var _=b(883),h=function(r){var c=r.value,l=r.label,O=r.id,L=r.choiceId,y=r.groupId,D=r.customProperties,k=r.placeholder,Q=r.keyCode;return{type:_.ACTION_TYPES.ADD_ITEM,value:c,label:l,id:O,choiceId:L,groupId:y,customProperties:D,placeholder:k,keyCode:Q}};i.addItem=h;var d=function(r,c){return{type:_.ACTION_TYPES.REMOVE_ITEM,id:r,choiceId:c}};i.removeItem=d;var a=function(r,c){return{type:_.ACTION_TYPES.HIGHLIGHT_ITEM,id:r,highlighted:c}};i.highlightItem=a},137:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.setIsLoading=i.resetTo=i.clearAll=void 0;var _=b(883),h=function(){return{type:_.ACTION_TYPES.CLEAR_ALL}};i.clearAll=h;var d=function(r){return{type:_.ACTION_TYPES.RESET_TO,state:r}};i.resetTo=d;var a=function(r){return{type:_.ACTION_TYPES.SET_IS_LOADING,isLoading:r}};i.setIsLoading=a},373:function(j,i,b){var _=this&&this.__spreadArray||function(g,e,t){if(t||arguments.length===2)for(var n=0,s=e.length,v;n=0?this._store.getGroupById(v):null;return this._store.dispatch((0,l.highlightItem)(n,!0)),t&&this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:n,value:M,label:f,groupValue:u&&u.value?u.value:null}),this},g.prototype.unhighlightItem=function(e){if(!e||!e.id)return this;var t=e.id,n=e.groupId,s=n===void 0?-1:n,v=e.value,P=v===void 0?"":v,M=e.label,K=M===void 0?"":M,f=s>=0?this._store.getGroupById(s):null;return this._store.dispatch((0,l.highlightItem)(t,!1)),this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:t,value:P,label:K,groupValue:f&&f.value?f.value:null}),this},g.prototype.highlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.highlightItem(t)}),this},g.prototype.unhighlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.unhighlightItem(t)}),this},g.prototype.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter(function(n){return n.value===e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter(function(n){var s=n.id;return s!==e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeHighlightedItems=function(e){var t=this;return e===void 0&&(e=!1),this._store.highlightedActiveItems.forEach(function(n){t._removeItem(n),e&&t._triggerChange(n.value)}),this},g.prototype.showDropdown=function(e){var t=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(y.EVENTS.showDropdown,{})}),this)},g.prototype.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame(function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(y.EVENTS.hideDropdown,{})}),this):this},g.prototype.getValue=function(e){e===void 0&&(e=!1);var t=this._store.activeItems.reduce(function(n,s){var v=e?s.value:s;return n.push(v),n},[]);return this._isSelectOneElement?t[0]:t},g.prototype.setValue=function(e){var t=this;return this.initialised?(e.forEach(function(n){return t._setChoiceOrItem(n)}),this):this},g.prototype.setChoiceByValue=function(e){var t=this;if(!this.initialised||this._isTextElement)return this;var n=Array.isArray(e)?e:[e];return n.forEach(function(s){return t._findAndSelectChoiceByValue(s)}),this},g.prototype.setChoices=function(e,t,n,s){var v=this;if(e===void 0&&(e=[]),t===void 0&&(t="value"),n===void 0&&(n="label"),s===void 0&&(s=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof t!="string"||!t)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(s&&this.clearChoices(),typeof e=="function"){var P=e(this);if(typeof Promise=="function"&&P instanceof Promise)return new Promise(function(M){return requestAnimationFrame(M)}).then(function(){return v._handleLoadingState(!0)}).then(function(){return P}).then(function(M){return v.setChoices(M,t,n,s)}).catch(function(M){v.config.silent||console.error(M)}).then(function(){return v._handleLoadingState(!1)}).then(function(){return v});if(!Array.isArray(P))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof P));return this.setChoices(P,t,n,!1)}if(!Array.isArray(e))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach(function(M){if(M.choices)v._addGroup({id:M.id?parseInt("".concat(M.id),10):null,group:M,valueKey:t,labelKey:n});else{var K=M;v._addChoice({value:K[t],label:K[n],isSelected:!!K.selected,isDisabled:!!K.disabled,placeholder:!!K.placeholder,customProperties:K.customProperties})}}),this._stopLoading(),this},g.prototype.clearChoices=function(){return this._store.dispatch((0,r.clearChoices)()),this},g.prototype.clearStore=function(){return this._store.dispatch((0,O.clearAll)()),this},g.prototype.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))),this},g.prototype._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,n=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),n&&this._renderItems(),this._prevState=this._currentState)}},g.prototype._renderChoices=function(){var e=this,t=this._store,n=t.activeGroups,s=t.activeChoices,v=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return e.choiceList.scrollToTop()}),n.length>=1&&!this._isSearching){var P=s.filter(function(C){return C.placeholder===!0&&C.groupId===-1});P.length>=1&&(v=this._createChoicesFragment(P,v)),v=this._createGroupsFragment(n,s,v)}else s.length>=1&&(v=this._createChoicesFragment(s,v));if(v.childNodes&&v.childNodes.length>0){var M=this._store.activeItems,K=this._canAddItem(M,this.input.value);if(K.response)this.choiceList.append(v),this._highlightChoice();else{var f=this._getTemplate("notice",K.notice);this.choiceList.append(f)}}else{var u=void 0,f=void 0;this._isSearching?(f=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,u=this._getTemplate("notice",f,"no-results")):(f=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,u=this._getTemplate("notice",f,"no-choices")),this.choiceList.append(u)}},g.prototype._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},g.prototype._createGroupsFragment=function(e,t,n){var s=this;n===void 0&&(n=document.createDocumentFragment());var v=function(P){return t.filter(function(M){return s._isSelectOneElement?M.groupId===P.id:M.groupId===P.id&&(s.config.renderSelectedChoices==="always"||!M.selected)})};return this.config.shouldSort&&e.sort(this.config.sorter),e.forEach(function(P){var M=v(P);if(M.length>=1){var K=s._getTemplate("choiceGroup",P);n.appendChild(K),s._createChoicesFragment(M,n,!0)}}),n},g.prototype._createChoicesFragment=function(e,t,n){var s=this;t===void 0&&(t=document.createDocumentFragment()),n===void 0&&(n=!1);var v=this.config,P=v.renderSelectedChoices,M=v.searchResultLimit,K=v.renderChoiceLimit,f=this._isSearching?k.sortByScore:this.config.sorter,u=function(z){var ee=P==="auto"?s._isSelectOneElement||!z.selected:!0;if(ee){var ae=s._getTemplate("choice",z,s.config.itemSelectText);t.appendChild(ae)}},C=e;P==="auto"&&!this._isSelectOneElement&&(C=e.filter(function(z){return!z.selected}));var Y=C.reduce(function(z,ee){return ee.placeholder?z.placeholderChoices.push(ee):z.normalChoices.push(ee),z},{placeholderChoices:[],normalChoices:[]}),V=Y.placeholderChoices,U=Y.normalChoices;(this.config.shouldSort||this._isSearching)&&U.sort(f);var $=C.length,W=this._isSelectOneElement?_(_([],V,!0),U,!0):U;this._isSearching?$=M:K&&K>0&&!n&&($=K);for(var J=0;J<$;J+=1)W[J]&&u(W[J]);return t},g.prototype._createItemsFragment=function(e,t){var n=this;t===void 0&&(t=document.createDocumentFragment());var s=this.config,v=s.shouldSortItems,P=s.sorter,M=s.removeItemButton;v&&!this._isSelectOneElement&&e.sort(P),this._isTextElement?this.passedElement.value=e.map(function(f){var u=f.value;return u}).join(this.config.delimiter):this.passedElement.options=e;var K=function(f){var u=n._getTemplate("item",f,M);t.appendChild(u)};return e.forEach(K),t},g.prototype._triggerChange=function(e){e!=null&&this.passedElement.triggerEvent(y.EVENTS.change,{value:e})},g.prototype._selectPlaceholderChoice=function(e){this._addItem({value:e.value,label:e.label,choiceId:e.id,groupId:e.groupId,placeholder:e.placeholder}),this._triggerChange(e.value)},g.prototype._handleButtonAction=function(e,t){if(!(!e||!t||!this.config.removeItems||!this.config.removeItemButton)){var n=t.parentNode&&t.parentNode.dataset.id,s=n&&e.find(function(v){return v.id===parseInt(n,10)});s&&(this._removeItem(s),this._triggerChange(s.value),this._isSelectOneElement&&this._store.placeholderChoice&&this._selectPlaceholderChoice(this._store.placeholderChoice))}},g.prototype._handleItemAction=function(e,t,n){var s=this;if(n===void 0&&(n=!1),!(!e||!t||!this.config.removeItems||this._isSelectOneElement)){var v=t.dataset.id;e.forEach(function(P){P.id===parseInt("".concat(v),10)&&!P.highlighted?s.highlightItem(P):!n&&P.highlighted&&s.unhighlightItem(P)}),this.input.focus()}},g.prototype._handleChoiceAction=function(e,t){if(!(!e||!t)){var n=t.dataset.id,s=n&&this._store.getChoiceById(n);if(s){var v=e[0]&&e[0].keyCode?e[0].keyCode:void 0,P=this.dropdown.isActive;if(s.keyCode=v,this.passedElement.triggerEvent(y.EVENTS.choice,{choice:s}),!s.selected&&!s.disabled){var M=this._canAddItem(e,s.value);M.response&&(this._addItem({value:s.value,label:s.label,choiceId:s.id,groupId:s.groupId,customProperties:s.customProperties,placeholder:s.placeholder,keyCode:s.keyCode}),this._triggerChange(s.value))}this.clearInput(),P&&this._isSelectOneElement&&(this.hideDropdown(!0),this.containerOuter.focus())}}},g.prototype._handleBackspace=function(e){if(!(!this.config.removeItems||!e)){var t=e[e.length-1],n=e.some(function(s){return s.highlighted});this.config.editItems&&!n&&t?(this.input.value=t.value,this.input.setWidth(),this._removeItem(t),this._triggerChange(t.value)):(n||this.highlightItem(t,!1),this.removeHighlightedItems(!0))}},g.prototype._startLoading=function(){this._store.dispatch((0,O.setIsLoading)(!0))},g.prototype._stopLoading=function(){this._store.dispatch((0,O.setIsLoading)(!1))},g.prototype._handleLoadingState=function(e){e===void 0&&(e=!0);var t=this.itemList.getChild(".".concat(this.config.classNames.placeholder));e?(this.disable(),this.containerOuter.addLoadingState(),this._isSelectOneElement?t?t.innerHTML=this.config.loadingText:(t=this._getTemplate("placeholder",this.config.loadingText),t&&this.itemList.append(t)):this.input.placeholder=this.config.loadingText):(this.enable(),this.containerOuter.removeLoadingState(),this._isSelectOneElement?t&&(t.innerHTML=this._placeholderValue||""):this.input.placeholder=this._placeholderValue||"")},g.prototype._handleSearch=function(e){if(this.input.isFocussed){var t=this._store.choices,n=this.config,s=n.searchFloor,v=n.searchChoices,P=t.some(function(K){return!K.active});if(e!==null&&typeof e<"u"&&e.length>=s){var M=v?this._searchChoices(e):0;this.passedElement.triggerEvent(y.EVENTS.search,{value:e,resultCount:M})}else P&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0)))}},g.prototype._canAddItem=function(e,t){var n=!0,s=typeof this.config.addItemText=="function"?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var v=(0,k.existsInArray)(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(n=!1,s=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&v&&n&&(n=!1,s=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&n&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(t)&&(n=!1,s=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:n,notice:s}},g.prototype._searchChoices=function(e){var t=typeof e=="string"?e.trim():e,n=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(t.length<1&&t==="".concat(n," "))return 0;var s=this._store.searchableChoices,v=t,P=Object.assign(this.config.fuseOptions,{keys:_([],this.config.searchFields,!0),includeMatches:!0}),M=new a.default(s,P),K=M.search(v);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch((0,r.filterChoices)(K)),K.length},g.prototype._addEventListeners=function(){var e=document.documentElement;e.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("click",this._onClick,{passive:!0}),e.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},g.prototype._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("click",this._onClick),e.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},g.prototype._onKeyDown=function(e){var t=e.keyCode,n=this._store.activeItems,s=this.input.isFocussed,v=this.dropdown.isActive,P=this.itemList.hasChildren(),M=String.fromCharCode(t),K=/[^\x00-\x1F]/.test(M),f=y.KEY_CODES.BACK_KEY,u=y.KEY_CODES.DELETE_KEY,C=y.KEY_CODES.ENTER_KEY,Y=y.KEY_CODES.A_KEY,V=y.KEY_CODES.ESC_KEY,U=y.KEY_CODES.UP_KEY,$=y.KEY_CODES.DOWN_KEY,W=y.KEY_CODES.PAGE_UP_KEY,J=y.KEY_CODES.PAGE_DOWN_KEY;switch(!this._isTextElement&&!v&&K&&(this.showDropdown(),this.input.isFocussed||(this.input.value+=e.key.toLowerCase())),t){case Y:return this._onSelectKey(e,P);case C:return this._onEnterKey(e,n,v);case V:return this._onEscapeKey(v);case U:case W:case $:case J:return this._onDirectionKey(e,v);case u:case f:return this._onDeleteKey(e,n,s);default:}},g.prototype._onKeyUp=function(e){var t=e.target,n=e.keyCode,s=this.input.value,v=this._store.activeItems,P=this._canAddItem(v,s),M=y.KEY_CODES.BACK_KEY,K=y.KEY_CODES.DELETE_KEY;if(this._isTextElement){var f=P.notice&&s;if(f){var u=this._getTemplate("notice",P.notice);this.dropdown.element.innerHTML=u.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var C=n===M||n===K,Y=C&&t&&!t.value,V=!this._isTextElement&&this._isSearching,U=this._canSearch&&P.response;Y&&V?(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))):U&&this._handleSearch(this.input.rawValue)}this._canSearch=this.config.searchEnabled},g.prototype._onSelectKey=function(e,t){var n=e.ctrlKey,s=e.metaKey,v=n||s;if(v&&t){this._canSearch=!1;var P=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;P&&this.highlightAll()}},g.prototype._onEnterKey=function(e,t,n){var s=e.target,v=y.KEY_CODES.ENTER_KEY,P=s&&s.hasAttribute("data-button");if(this._isTextElement&&s&&s.value){var M=this.input.value,K=this._canAddItem(t,M);K.response&&(this.hideDropdown(!0),this._addItem({value:M}),this._triggerChange(M),this.clearInput())}if(P&&(this._handleButtonAction(t,s),e.preventDefault()),n){var f=this.dropdown.getChild(".".concat(this.config.classNames.highlightedState));f&&(t[0]&&(t[0].keyCode=v),this._handleChoiceAction(t,f)),e.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),e.preventDefault())},g.prototype._onEscapeKey=function(e){e&&(this.hideDropdown(!0),this.containerOuter.focus())},g.prototype._onDirectionKey=function(e,t){var n=e.keyCode,s=e.metaKey,v=y.KEY_CODES.DOWN_KEY,P=y.KEY_CODES.PAGE_UP_KEY,M=y.KEY_CODES.PAGE_DOWN_KEY;if(t||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var K=n===v||n===M?1:-1,f=s||n===M||n===P,u="[data-choice-selectable]",C=void 0;if(f)K>0?C=this.dropdown.element.querySelector("".concat(u,":last-of-type")):C=this.dropdown.element.querySelector(u);else{var Y=this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState));Y?C=(0,k.getAdjacentEl)(Y,u,K):C=this.dropdown.element.querySelector(u)}C&&((0,k.isScrolledIntoView)(C,this.choiceList.element,K)||this.choiceList.scrollToChildElement(C,K),this._highlightChoice(C)),e.preventDefault()}},g.prototype._onDeleteKey=function(e,t,n){var s=e.target;!this._isSelectOneElement&&!s.value&&n&&(this._handleBackspace(t),e.preventDefault())},g.prototype._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},g.prototype._onTouchEnd=function(e){var t=(e||e.touches[0]).target,n=this._wasTap&&this.containerOuter.element.contains(t);if(n){var s=t===this.containerOuter.element||t===this.containerInner.element;s&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation()}this._wasTap=!0},g.prototype._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(E&&this.choiceList.element.contains(t)){var n=this.choiceList.element.firstElementChild,s=this._direction==="ltr"?e.offsetX>=n.offsetWidth:e.offsetX0;s&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},g.prototype._onFocus=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v){var P=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&n.containerOuter.addFocusState()},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.addFocusState(),s===n.input.element&&n.showDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.showDropdown(!0),n.containerOuter.addFocusState())},t);P[this.passedElement.element.type]()}},g.prototype._onBlur=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v&&!this._isScrollingOnIe){var P=this._store.activeItems,M=P.some(function(f){return f.highlighted}),K=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),M&&n.unhighlightAll(),n.hideDropdown(!0))},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.removeFocusState(),(s===n.input.element||s===n.containerOuter.element&&!n._canSearch)&&n.hideDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),n.hideDropdown(!0),M&&n.unhighlightAll())},t);K[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},g.prototype._onFormReset=function(){this._store.dispatch((0,O.resetTo)(this._initialState))},g.prototype._highlightChoice=function(e){var t=this;e===void 0&&(e=null);var n=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(n.length){var s=e,v=Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState)));v.forEach(function(P){P.classList.remove(t.config.classNames.highlightedState),P.setAttribute("aria-selected","false")}),s?this._highlightPosition=n.indexOf(s):(n.length>this._highlightPosition?s=n[this._highlightPosition]:s=n[n.length-1],s||(s=n[0])),s.classList.add(this.config.classNames.highlightedState),s.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(y.EVENTS.highlightChoice,{el:s}),this.dropdown.isActive&&(this.input.setActiveDescendant(s.id),this.containerOuter.setActiveDescendant(s.id))}},g.prototype._addItem=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.choiceId,P=v===void 0?-1:v,M=e.groupId,K=M===void 0?-1:M,f=e.customProperties,u=f===void 0?{}:f,C=e.placeholder,Y=C===void 0?!1:C,V=e.keyCode,U=V===void 0?-1:V,$=typeof t=="string"?t.trim():t,W=this._store.items,J=s||$,z=P||-1,ee=K>=0?this._store.getGroupById(K):null,ae=W?W.length+1:1;this.config.prependValue&&($=this.config.prependValue+$.toString()),this.config.appendValue&&($+=this.config.appendValue.toString()),this._store.dispatch((0,l.addItem)({value:$,label:J,id:ae,choiceId:z,groupId:K,customProperties:u,placeholder:Y,keyCode:U})),this._isSelectOneElement&&this.removeActiveItems(ae),this.passedElement.triggerEvent(y.EVENTS.addItem,{id:ae,value:$,label:J,customProperties:u,groupValue:ee&&ee.value?ee.value:null,keyCode:U})},g.prototype._removeItem=function(e){var t=e.id,n=e.value,s=e.label,v=e.customProperties,P=e.choiceId,M=e.groupId,K=M&&M>=0?this._store.getGroupById(M):null;!t||!P||(this._store.dispatch((0,l.removeItem)(t,P)),this.passedElement.triggerEvent(y.EVENTS.removeItem,{id:t,value:n,label:s,customProperties:v,groupValue:K&&K.value?K.value:null}))},g.prototype._addChoice=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.isSelected,P=v===void 0?!1:v,M=e.isDisabled,K=M===void 0?!1:M,f=e.groupId,u=f===void 0?-1:f,C=e.customProperties,Y=C===void 0?{}:C,V=e.placeholder,U=V===void 0?!1:V,$=e.keyCode,W=$===void 0?-1:$;if(!(typeof t>"u"||t===null)){var J=this._store.choices,z=s||t,ee=J?J.length+1:1,ae="".concat(this._baseId,"-").concat(this._idNames.itemChoice,"-").concat(ee);this._store.dispatch((0,r.addChoice)({id:ee,groupId:u,elementId:ae,value:t,label:z,disabled:K,customProperties:Y,placeholder:U,keyCode:W})),P&&this._addItem({value:t,label:z,choiceId:ee,customProperties:Y,placeholder:U,keyCode:W})}},g.prototype._addGroup=function(e){var t=this,n=e.group,s=e.id,v=e.valueKey,P=v===void 0?"value":v,M=e.labelKey,K=M===void 0?"label":M,f=(0,k.isType)("Object",n)?n.choices:Array.from(n.getElementsByTagName("OPTION")),u=s||Math.floor(new Date().valueOf()*Math.random()),C=n.disabled?n.disabled:!1;if(f){this._store.dispatch((0,c.addGroup)({value:n.label,id:u,active:!0,disabled:C}));var Y=function(V){var U=V.disabled||V.parentNode&&V.parentNode.disabled;t._addChoice({value:V[P],label:(0,k.isType)("Object",V)?V[K]:V.innerHTML,isSelected:V.selected,isDisabled:U,groupId:u,customProperties:V.customProperties,placeholder:V.placeholder})};f.forEach(Y)}else this._store.dispatch((0,c.addGroup)({value:n.label,id:n.id,active:!1,disabled:n.disabled}))},g.prototype._getTemplate=function(e){for(var t,n=[],s=1;s0?this.element.scrollTop+y-O:a.offsetTop;requestAnimationFrame(function(){c._animateScroll(D,r)})}},d.prototype._scrollDown=function(a,r,c){var l=(c-a)/r,O=l>1?l:1;this.element.scrollTop=a+O},d.prototype._scrollUp=function(a,r,c){var l=(a-c)/r,O=l>1?l:1;this.element.scrollTop=a-O},d.prototype._animateScroll=function(a,r){var c=this,l=_.SCROLLING_SPEED,O=this.element.scrollTop,L=!1;r>0?(this._scrollDown(O,l,a),Oa&&(L=!0)),L&&requestAnimationFrame(function(){c._animateScroll(a,r)})},d}();i.default=h},730:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0});var _=b(799),h=function(){function d(a){var r=a.element,c=a.classNames;if(this.element=r,this.classNames=c,!(r instanceof HTMLInputElement)&&!(r instanceof HTMLSelectElement))throw new TypeError("Invalid element passed");this.isDisabled=!1}return Object.defineProperty(d.prototype,"isActive",{get:function(){return this.element.dataset.choice==="active"},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"dir",{get:function(){return this.element.dir},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"value",{get:function(){return this.element.value},set:function(a){this.element.value=a},enumerable:!1,configurable:!0}),d.prototype.conceal=function(){this.element.classList.add(this.classNames.input),this.element.hidden=!0,this.element.tabIndex=-1;var a=this.element.getAttribute("style");a&&this.element.setAttribute("data-choice-orig-style",a),this.element.setAttribute("data-choice","active")},d.prototype.reveal=function(){this.element.classList.remove(this.classNames.input),this.element.hidden=!1,this.element.removeAttribute("tabindex");var a=this.element.getAttribute("data-choice-orig-style");a?(this.element.removeAttribute("data-choice-orig-style"),this.element.setAttribute("style",a)):this.element.removeAttribute("style"),this.element.removeAttribute("data-choice"),this.element.value=this.element.value},d.prototype.enable=function(){this.element.removeAttribute("disabled"),this.element.disabled=!1,this.isDisabled=!1},d.prototype.disable=function(){this.element.setAttribute("disabled",""),this.element.disabled=!0,this.isDisabled=!0},d.prototype.triggerEvent=function(a,r){(0,_.dispatchEvent)(this.element,a,r)},d}();i.default=h},541:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.delimiter,D=r.call(this,{element:O,classNames:L})||this;return D.delimiter=y,D}return Object.defineProperty(c.prototype,"value",{get:function(){return this.element.value},set:function(l){this.element.setAttribute("value",l),this.element.value=l},enumerable:!1,configurable:!0}),c}(d.default);i.default=a},982:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.template,D=r.call(this,{element:O,classNames:L})||this;return D.template=y,D}return Object.defineProperty(c.prototype,"placeholderOption",{get:function(){return this.element.querySelector('option[value=""]')||this.element.querySelector("option[placeholder]")},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"optionGroups",{get:function(){return Array.from(this.element.getElementsByTagName("OPTGROUP"))},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"options",{get:function(){return Array.from(this.element.options)},set:function(l){var O=this,L=document.createDocumentFragment(),y=function(D){var k=O.template(D);L.appendChild(k)};l.forEach(function(D){return y(D)}),this.appendDocFragment(L)},enumerable:!1,configurable:!0}),c.prototype.appendDocFragment=function(l){this.element.innerHTML="",this.element.appendChild(l)},c}(d.default);i.default=a},883:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.SCROLLING_SPEED=i.SELECT_MULTIPLE_TYPE=i.SELECT_ONE_TYPE=i.TEXT_TYPE=i.KEY_CODES=i.ACTION_TYPES=i.EVENTS=void 0,i.EVENTS={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice",unhighlightItem:"unhighlightItem"},i.ACTION_TYPES={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL",RESET_TO:"RESET_TO",SET_IS_LOADING:"SET_IS_LOADING"},i.KEY_CODES={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},i.TEXT_TYPE="text",i.SELECT_ONE_TYPE="select-one",i.SELECT_MULTIPLE_TYPE="select-multiple",i.SCROLLING_SPEED=4},789:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CONFIG=i.DEFAULT_CLASSNAMES=void 0;var _=b(799);i.DEFAULT_CLASSNAMES={containerOuter:"choices",containerInner:"choices__inner",input:"choices__input",inputCloned:"choices__input--cloned",list:"choices__list",listItems:"choices__list--multiple",listSingle:"choices__list--single",listDropdown:"choices__list--dropdown",item:"choices__item",itemSelectable:"choices__item--selectable",itemDisabled:"choices__item--disabled",itemChoice:"choices__item--choice",placeholder:"choices__placeholder",group:"choices__group",groupHeading:"choices__heading",button:"choices__button",activeState:"is-active",focusState:"is-focused",openState:"is-open",disabledState:"is-disabled",highlightedState:"is-highlighted",selectedState:"is-selected",flippedState:"is-flipped",loadingState:"is-loading",noResults:"has-no-results",noChoices:"has-no-choices"},i.DEFAULT_CONFIG={items:[],choices:[],silent:!1,renderChoiceLimit:-1,maxItemCount:-1,addItems:!0,addItemFilter:null,removeItems:!0,removeItemButton:!1,editItems:!1,allowHTML:!0,duplicateItemsAllowed:!0,delimiter:",",paste:!0,searchEnabled:!0,searchChoices:!0,searchFloor:1,searchResultLimit:4,searchFields:["label","value"],position:"auto",resetScrollPosition:!0,shouldSort:!0,shouldSortItems:!1,sorter:_.sortByAlpha,placeholder:!0,placeholderValue:null,searchPlaceholderValue:null,prependValue:null,appendValue:null,renderSelectedChoices:"auto",loadingText:"Loading...",noResultsText:"No results found",noChoicesText:"No choices to choose from",itemSelectText:"Press to select",uniqueItemText:"Only unique values can be added",customAddItemText:"Only values matching specific conditions can be added",addItemText:function(h){return'Press Enter to add "'.concat((0,_.sanitise)(h),'"')},maxItemText:function(h){return"Only ".concat(h," values can be added")},valueComparer:function(h,d){return h===d},fuseOptions:{includeScore:!0},labelId:"",callbackOnInit:null,callbackOnCreateTemplates:null,classNames:i.DEFAULT_CLASSNAMES}},18:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},978:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},948:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},359:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},285:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},533:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},187:function(j,i,b){var _=this&&this.__createBinding||(Object.create?function(d,a,r,c){c===void 0&&(c=r);var l=Object.getOwnPropertyDescriptor(a,r);(!l||("get"in l?!a.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return a[r]}}),Object.defineProperty(d,c,l)}:function(d,a,r,c){c===void 0&&(c=r),d[c]=a[r]}),h=this&&this.__exportStar||function(d,a){for(var r in d)r!=="default"&&!Object.prototype.hasOwnProperty.call(a,r)&&_(a,d,r)};Object.defineProperty(i,"__esModule",{value:!0}),h(b(18),i),h(b(978),i),h(b(948),i),h(b(359),i),h(b(285),i),h(b(533),i),h(b(287),i),h(b(132),i),h(b(837),i),h(b(598),i),h(b(369),i),h(b(37),i),h(b(47),i),h(b(923),i),h(b(876),i)},287:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},132:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},837:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},598:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},37:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},369:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},47:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},923:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},876:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},799:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.parseCustomProperties=i.diff=i.cloneObject=i.existsInArray=i.dispatchEvent=i.sortByScore=i.sortByAlpha=i.strToEl=i.sanitise=i.isScrolledIntoView=i.getAdjacentEl=i.wrap=i.isType=i.getType=i.generateId=i.generateChars=i.getRandomNumber=void 0;var b=function(E,w){return Math.floor(Math.random()*(w-E)+E)};i.getRandomNumber=b;var _=function(E){return Array.from({length:E},function(){return(0,i.getRandomNumber)(0,36).toString(36)}).join("")};i.generateChars=_;var h=function(E,w){var N=E.id||E.name&&"".concat(E.name,"-").concat((0,i.generateChars)(2))||(0,i.generateChars)(4);return N=N.replace(/(:|\.|\[|\]|,)/g,""),N="".concat(w,"-").concat(N),N};i.generateId=h;var d=function(E){return Object.prototype.toString.call(E).slice(8,-1)};i.getType=d;var a=function(E,w){return w!=null&&(0,i.getType)(w)===E};i.isType=a;var r=function(E,w){return w===void 0&&(w=document.createElement("div")),E.parentNode&&(E.nextSibling?E.parentNode.insertBefore(w,E.nextSibling):E.parentNode.appendChild(w)),w.appendChild(E)};i.wrap=r;var c=function(E,w,N){N===void 0&&(N=1);for(var g="".concat(N>0?"next":"previous","ElementSibling"),e=E[g];e;){if(e.matches(w))return e;e=e[g]}return e};i.getAdjacentEl=c;var l=function(E,w,N){if(N===void 0&&(N=1),!E)return!1;var g;return N>0?g=w.scrollTop+w.offsetHeight>=E.offsetTop+E.offsetHeight:g=E.offsetTop>=w.scrollTop,g};i.isScrolledIntoView=l;var O=function(E){return typeof E!="string"?E:E.replace(/&/g,"&").replace(/>/g,">").replace(/-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(c.choiceId),10)&&(D.selected=!0),D}):h}case"REMOVE_ITEM":{var l=d;return l.choiceId&&l.choiceId>-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(l.choiceId),10)&&(D.selected=!1),D}):h}case"FILTER_CHOICES":{var O=d;return h.map(function(y){var D=y;return D.active=O.results.some(function(k){var Q=k.item,Z=k.score;return Q.id===D.id?(D.score=Z,!0):!1}),D})}case"ACTIVATE_CHOICES":{var L=d;return h.map(function(y){var D=y;return D.active=L.active,D})}case"CLEAR_CHOICES":return i.defaultState;default:return h}}i.default=_},871:function(j,i){var b=this&&this.__spreadArray||function(h,d,a){if(a||arguments.length===2)for(var r=0,c=d.length,l;r0?"treeitem":"option"),Object.assign(t.dataset,{choice:"",id:Q,value:Z,selectText:d}),N?(t.classList.add(D),t.dataset.choiceDisabled="",t.setAttribute("aria-disabled","true")):(t.classList.add(L),t.dataset.choiceSelectable=""),t},input:function(_,h){var d=_.classNames,a=d.input,r=d.inputCloned,c=Object.assign(document.createElement("input"),{type:"search",name:"search_terms",className:"".concat(a," ").concat(r),autocomplete:"off",autocapitalize:"off",spellcheck:!1});return c.setAttribute("role","textbox"),c.setAttribute("aria-autocomplete","list"),c.setAttribute("aria-label",h),c},dropdown:function(_){var h=_.classNames,d=h.list,a=h.listDropdown,r=document.createElement("div");return r.classList.add(d,a),r.setAttribute("aria-expanded","false"),r},notice:function(_,h,d){var a,r=_.allowHTML,c=_.classNames,l=c.item,O=c.itemChoice,L=c.noResults,y=c.noChoices;d===void 0&&(d="");var D=[l,O];return d==="no-choices"?D.push(y):d==="no-results"&&D.push(L),Object.assign(document.createElement("div"),(a={},a[r?"innerHTML":"innerText"]=h,a.className=D.join(" "),a))},option:function(_){var h=_.label,d=_.value,a=_.customProperties,r=_.active,c=_.disabled,l=new Option(h,d,!1,r);return a&&(l.dataset.customProperties="".concat(a)),l.disabled=!!c,l}};i.default=b},996:function(j){var i=function(w){return b(w)&&!_(w)};function b(E){return!!E&&typeof E=="object"}function _(E){var w=Object.prototype.toString.call(E);return w==="[object RegExp]"||w==="[object Date]"||a(E)}var h=typeof Symbol=="function"&&Symbol.for,d=h?Symbol.for("react.element"):60103;function a(E){return E.$$typeof===d}function r(E){return Array.isArray(E)?[]:{}}function c(E,w){return w.clone!==!1&&w.isMergeableObject(E)?Z(r(E),E,w):E}function l(E,w,N){return E.concat(w).map(function(g){return c(g,N)})}function O(E,w){if(!w.customMerge)return Z;var N=w.customMerge(E);return typeof N=="function"?N:Z}function L(E){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(E).filter(function(w){return E.propertyIsEnumerable(w)}):[]}function y(E){return Object.keys(E).concat(L(E))}function D(E,w){try{return w in E}catch{return!1}}function k(E,w){return D(E,w)&&!(Object.hasOwnProperty.call(E,w)&&Object.propertyIsEnumerable.call(E,w))}function Q(E,w,N){var g={};return N.isMergeableObject(E)&&y(E).forEach(function(e){g[e]=c(E[e],N)}),y(w).forEach(function(e){k(E,e)||(D(E,e)&&N.isMergeableObject(w[e])?g[e]=O(e,N)(E[e],w[e],N):g[e]=c(w[e],N))}),g}function Z(E,w,N){N=N||{},N.arrayMerge=N.arrayMerge||l,N.isMergeableObject=N.isMergeableObject||i,N.cloneUnlessOtherwiseSpecified=c;var g=Array.isArray(w),e=Array.isArray(E),t=g===e;return t?g?N.arrayMerge(E,w,N):Q(E,w,N):c(w,N)}Z.all=function(w,N){if(!Array.isArray(w))throw new Error("first argument should be an array");return w.reduce(function(g,e){return Z(g,e,N)},{})};var ne=Z;j.exports=ne},221:function(j,i,b){b.r(i),b.d(i,{default:function(){return Se}});function _(p){return Array.isArray?Array.isArray(p):k(p)==="[object Array]"}let h=1/0;function d(p){if(typeof p=="string")return p;let o=p+"";return o=="0"&&1/p==-h?"-0":o}function a(p){return p==null?"":d(p)}function r(p){return typeof p=="string"}function c(p){return typeof p=="number"}function l(p){return p===!0||p===!1||L(p)&&k(p)=="[object Boolean]"}function O(p){return typeof p=="object"}function L(p){return O(p)&&p!==null}function y(p){return p!=null}function D(p){return!p.trim().length}function k(p){return p==null?p===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(p)}let Q="Extended search is not available",Z="Incorrect 'index' type",ne=p=>`Invalid value for key ${p}`,E=p=>`Pattern length exceeds max of ${p}.`,w=p=>`Missing ${p} property in key`,N=p=>`Property 'weight' in key '${p}' must be a positive integer`,g=Object.prototype.hasOwnProperty;class e{constructor(o){this._keys=[],this._keyMap={};let m=0;o.forEach(S=>{let I=t(S);m+=I.weight,this._keys.push(I),this._keyMap[I.id]=I,m+=I.weight}),this._keys.forEach(S=>{S.weight/=m})}get(o){return this._keyMap[o]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function t(p){let o=null,m=null,S=null,I=1,T=null;if(r(p)||_(p))S=p,o=n(p),m=s(p);else{if(!g.call(p,"name"))throw new Error(w("name"));let A=p.name;if(S=A,g.call(p,"weight")&&(I=p.weight,I<=0))throw new Error(N(A));o=n(A),m=s(A),T=p.getFn}return{path:o,id:m,weight:I,src:S,getFn:T}}function n(p){return _(p)?p:p.split(".")}function s(p){return _(p)?p.join("."):p}function v(p,o){let m=[],S=!1,I=(T,A,R)=>{if(y(T))if(!A[R])m.push(T);else{let F=A[R],H=T[F];if(!y(H))return;if(R===A.length-1&&(r(H)||c(H)||l(H)))m.push(a(H));else if(_(H)){S=!0;for(let B=0,x=H.length;Bp.score===o.score?p.idx{this._keysMap[m.id]=S})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,r(this.docs[0])?this.docs.forEach((o,m)=>{this._addString(o,m)}):this.docs.forEach((o,m)=>{this._addObject(o,m)}),this.norm.clear())}add(o){let m=this.size();r(o)?this._addString(o,m):this._addObject(o,m)}removeAt(o){this.records.splice(o,1);for(let m=o,S=this.size();m{let A=I.getFn?I.getFn(o):this.getFn(o,I.path);if(y(A)){if(_(A)){let R=[],F=[{nestedArrIndex:-1,value:A}];for(;F.length;){let{nestedArrIndex:H,value:B}=F.pop();if(y(B))if(r(B)&&!D(B)){let x={v:B,i:H,n:this.norm.get(B)};R.push(x)}else _(B)&&B.forEach((x,G)=>{F.push({nestedArrIndex:G,value:x})})}S.$[T]=R}else if(r(A)&&!D(A)){let R={v:A,n:this.norm.get(A)};S.$[T]=R}}}),this.records.push(S)}toJSON(){return{keys:this.keys,records:this.records}}}function U(p,o,{getFn:m=u.getFn,fieldNormWeight:S=u.fieldNormWeight}={}){let I=new V({getFn:m,fieldNormWeight:S});return I.setKeys(p.map(t)),I.setSources(o),I.create(),I}function $(p,{getFn:o=u.getFn,fieldNormWeight:m=u.fieldNormWeight}={}){let{keys:S,records:I}=p,T=new V({getFn:o,fieldNormWeight:m});return T.setKeys(S),T.setIndexRecords(I),T}function W(p,{errors:o=0,currentLocation:m=0,expectedLocation:S=0,distance:I=u.distance,ignoreLocation:T=u.ignoreLocation}={}){let A=o/p.length;if(T)return A;let R=Math.abs(S-m);return I?A+R/I:R?1:A}function J(p=[],o=u.minMatchCharLength){let m=[],S=-1,I=-1,T=0;for(let A=p.length;T=o&&m.push([S,I]),S=-1)}return p[T-1]&&T-S>=o&&m.push([S,T-1]),m}let z=32;function ee(p,o,m,{location:S=u.location,distance:I=u.distance,threshold:T=u.threshold,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,includeMatches:F=u.includeMatches,ignoreLocation:H=u.ignoreLocation}={}){if(o.length>z)throw new Error(E(z));let B=o.length,x=p.length,G=Math.max(0,Math.min(S,x)),q=T,re=G,ue=R>1||F,Ee=ue?Array(x):[],ve;for(;(ve=p.indexOf(o,re))>-1;){let he=W(o,{currentLocation:ve,expectedLocation:G,distance:I,ignoreLocation:H});if(q=Math.min(he,q),re=ve+B,ue){let ge=0;for(;ge=Ue;fe-=1){let Le=fe-1,We=m[p.charAt(Le)];if(ue&&(Ee[Le]=+!!We),Oe[fe]=(Oe[fe+1]<<1|1)&We,he&&(Oe[fe]|=(Ie[fe+1]|Ie[fe])<<1|1|Ie[fe+1]),Oe[fe]&at&&(be=W(o,{errors:he,currentLocation:Le,expectedLocation:G,distance:I,ignoreLocation:H}),be<=q)){if(q=be,re=Le,re<=G)break;Ue=Math.max(1,2*G-re)}}if(W(o,{errors:he+1,currentLocation:G,expectedLocation:G,distance:I,ignoreLocation:H})>q)break;Ie=Oe}let Ke={isMatch:re>=0,score:Math.max(.001,be)};if(ue){let he=J(Ee,R);he.length?F&&(Ke.indices=he):Ke.isMatch=!1}return Ke}function ae(p){let o={};for(let m=0,S=p.length;m{this.chunks.push({pattern:G,alphabet:ae(G),startIndex:q})},x=this.pattern.length;if(x>z){let G=0,q=x%z,re=x-q;for(;G{let{isMatch:ve,score:Ie,indices:be}=ee(o,re,ue,{location:I+Ee,distance:T,threshold:A,findAllMatches:R,minMatchCharLength:F,includeMatches:S,ignoreLocation:H});ve&&(G=!0),x+=Ie,ve&&be&&(B=[...B,...be])});let q={isMatch:G,score:G?x/this.chunks.length:1};return G&&S&&(q.indices=B),q}}class le{constructor(o){this.pattern=o}static isMultiMatch(o){return _e(o,this.multiRegex)}static isSingleMatch(o){return _e(o,this.singleRegex)}search(){}}function _e(p,o){let m=p.match(o);return m?m[1]:null}class te extends le{constructor(o){super(o)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(o){let m=o===this.pattern;return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class de extends le{constructor(o){super(o)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(o){let S=o.indexOf(this.pattern)===-1;return{isMatch:S,score:S?0:1,indices:[0,o.length-1]}}}class pe extends le{constructor(o){super(o)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(o){let m=o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class oe extends le{constructor(o){super(o)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(o){let m=!o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class Te extends le{constructor(o){super(o)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(o){let m=o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[o.length-this.pattern.length,o.length-1]}}}class Pe extends le{constructor(o){super(o)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(o){let m=!o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class He extends le{constructor(o,{location:m=u.location,threshold:S=u.threshold,distance:I=u.distance,includeMatches:T=u.includeMatches,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,isCaseSensitive:F=u.isCaseSensitive,ignoreLocation:H=u.ignoreLocation}={}){super(o),this._bitapSearch=new ce(o,{location:m,threshold:S,distance:I,includeMatches:T,findAllMatches:A,minMatchCharLength:R,isCaseSensitive:F,ignoreLocation:H})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(o){return this._bitapSearch.searchIn(o)}}class Be extends le{constructor(o){super(o)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(o){let m=0,S,I=[],T=this.pattern.length;for(;(S=o.indexOf(this.pattern,m))>-1;)m=S+T,I.push([S,m-1]);let A=!!I.length;return{isMatch:A,score:A?0:1,indices:I}}}let Me=[te,Be,pe,oe,Pe,Te,de,He],Ve=Me.length,Xe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Je="|";function Qe(p,o={}){return p.split(Je).map(m=>{let S=m.trim().split(Xe).filter(T=>T&&!!T.trim()),I=[];for(let T=0,A=S.length;T!!(p[Ce.AND]||p[Ce.OR]),tt=p=>!!p[je.PATH],it=p=>!_(p)&&O(p)&&!Re(p),ke=p=>({[Ce.AND]:Object.keys(p).map(o=>({[o]:p[o]}))});function xe(p,o,{auto:m=!0}={}){let S=I=>{let T=Object.keys(I),A=tt(I);if(!A&&T.length>1&&!Re(I))return S(ke(I));if(it(I)){let F=A?I[je.PATH]:T[0],H=A?I[je.PATTERN]:I[F];if(!r(H))throw new Error(ne(F));let B={keyId:s(F),pattern:H};return m&&(B.searcher=Ne(H,o)),B}let R={children:[],operator:T[0]};return T.forEach(F=>{let H=I[F];_(H)&&H.forEach(B=>{R.children.push(S(B))})}),R};return Re(p)||(p=ke(p)),S(p)}function nt(p,{ignoreFieldNorm:o=u.ignoreFieldNorm}){p.forEach(m=>{let S=1;m.matches.forEach(({key:I,norm:T,score:A})=>{let R=I?I.weight:null;S*=Math.pow(A===0&&R?Number.EPSILON:A,(R||1)*(o?1:T))}),m.score=S})}function rt(p,o){let m=p.matches;o.matches=[],y(m)&&m.forEach(S=>{if(!y(S.indices)||!S.indices.length)return;let{indices:I,value:T}=S,A={indices:I,value:T};S.key&&(A.key=S.key.src),S.idx>-1&&(A.refIndex=S.idx),o.matches.push(A)})}function st(p,o){o.score=p.score}function ot(p,o,{includeMatches:m=u.includeMatches,includeScore:S=u.includeScore}={}){let I=[];return m&&I.push(rt),S&&I.push(st),p.map(T=>{let{idx:A}=T,R={item:o[A],refIndex:A};return I.length&&I.forEach(F=>{F(T,R)}),R})}class Se{constructor(o,m={},S){this.options={...u,...m},this.options.useExtendedSearch,this._keyStore=new e(this.options.keys),this.setCollection(o,S)}setCollection(o,m){if(this._docs=o,m&&!(m instanceof V))throw new Error(Z);this._myIndex=m||U(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(o){y(o)&&(this._docs.push(o),this._myIndex.add(o))}remove(o=()=>!1){let m=[];for(let S=0,I=this._docs.length;S-1&&(F=F.slice(0,m)),ot(F,this._docs,{includeMatches:S,includeScore:I})}_searchStringList(o){let m=Ne(o,this.options),{records:S}=this._myIndex,I=[];return S.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=m.searchIn(T);F&&I.push({item:T,idx:A,matches:[{score:H,value:T,norm:R,indices:B}]})}),I}_searchLogical(o){let m=xe(o,this.options),S=(R,F,H)=>{if(!R.children){let{keyId:x,searcher:G}=R,q=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(F,x),searcher:G});return q&&q.length?[{idx:H,item:F,matches:q}]:[]}let B=[];for(let x=0,G=R.children.length;x{if(y(R)){let H=S(m,R,F);H.length&&(T[F]||(T[F]={idx:F,item:R,matches:[]},A.push(T[F])),H.forEach(({matches:B})=>{T[F].matches.push(...B)}))}}),A}_searchObjectList(o){let m=Ne(o,this.options),{keys:S,records:I}=this._myIndex,T=[];return I.forEach(({$:A,i:R})=>{if(!y(A))return;let F=[];S.forEach((H,B)=>{F.push(...this._findMatches({key:H,value:A[B],searcher:m}))}),F.length&&T.push({idx:R,item:A,matches:F})}),T}_findMatches({key:o,value:m,searcher:S}){if(!y(m))return[];let I=[];if(_(m))m.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=S.searchIn(T);F&&I.push({score:H,key:o,value:T,idx:A,norm:R,indices:B})});else{let{v:T,n:A}=m,{isMatch:R,score:F,indices:H}=S.searchIn(T);R&&I.push({score:F,key:o,value:T,norm:A,indices:H})}return I}}Se.version="6.6.2",Se.createIndex=U,Se.parseIndex=$,Se.config=u,Se.parseQuery=xe,et(qe)},791:function(j,i,b){b.r(i),b.d(i,{__DO_NOT_USE__ActionTypes:function(){return y},applyMiddleware:function(){return M},bindActionCreators:function(){return v},combineReducers:function(){return n},compose:function(){return P},createStore:function(){return w},legacy_createStore:function(){return N}});function _(f){"@babel/helpers - typeof";return _=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},_(f)}function h(f,u){if(_(f)!=="object"||f===null)return f;var C=f[Symbol.toPrimitive];if(C!==void 0){var Y=C.call(f,u||"default");if(_(Y)!=="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(f)}function d(f){var u=h(f,"string");return _(u)==="symbol"?u:String(u)}function a(f,u,C){return u=d(u),u in f?Object.defineProperty(f,u,{value:C,enumerable:!0,configurable:!0,writable:!0}):f[u]=C,f}function r(f,u){var C=Object.keys(f);if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(f);u&&(Y=Y.filter(function(V){return Object.getOwnPropertyDescriptor(f,V).enumerable})),C.push.apply(C,Y)}return C}function c(f){for(var u=1;u"u"&&(C=u,u=void 0),typeof C<"u"){if(typeof C!="function")throw new Error(l(1));return C(w)(f,u)}if(typeof f!="function")throw new Error(l(2));var V=f,U=u,$=[],W=$,J=!1;function z(){W===$&&(W=$.slice())}function ee(){if(J)throw new Error(l(3));return U}function ae(te){if(typeof te!="function")throw new Error(l(4));if(J)throw new Error(l(5));var de=!0;return z(),W.push(te),function(){if(de){if(J)throw new Error(l(6));de=!1,z();var oe=W.indexOf(te);W.splice(oe,1),$=null}}}function ce(te){if(!D(te))throw new Error(l(7));if(typeof te.type>"u")throw new Error(l(8));if(J)throw new Error(l(9));try{J=!0,U=V(U,te)}finally{J=!1}for(var de=$=W,pe=0;pe0)return"Unexpected "+($.length>1?"keys":"key")+" "+('"'+$.join('", "')+'" found in '+U+". ")+"Expected to find one of the known reducer keys instead: "+('"'+V.join('", "')+'". Unexpected keys will be ignored.')}function t(f){Object.keys(f).forEach(function(u){var C=f[u],Y=C(void 0,{type:y.INIT});if(typeof Y>"u")throw new Error(l(12));if(typeof C(void 0,{type:y.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(l(13))})}function n(f){for(var u=Object.keys(f),C={},Y=0;Y"u"){var Te=ee&&ee.type;throw new Error(l(14))}le[te]=oe,ce=ce||oe!==pe}return ce=ce||U.length!==Object.keys(z).length,ce?le:z}}function s(f,u){return function(){return u(f.apply(this,arguments))}}function v(f,u){if(typeof f=="function")return s(f,u);if(typeof f!="object"||f===null)throw new Error(l(16));var C={};for(var Y in f){var V=f[Y];typeof V=="function"&&(C[Y]=s(V,u))}return C}function P(){for(var f=arguments.length,u=new Array(f),C=0;Cwindow.pluralize(O,e,{count:e}),noChoicesText:E,noResultsText:L,placeholderValue:k,position:Q??"auto",removeItemButton:se,renderChoiceLimit:D,searchEnabled:h,searchFields:w??["label"],searchPlaceholderValue:E,searchResultLimit:D,shouldSort:!1,searchFloor:a?0:1}),await this.refreshChoices({withInitialOptions:!0}),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)),this.refreshPlaceholder(),b&&this.select.showDropdown(),this.$refs.input.addEventListener("change",()=>{this.refreshPlaceholder(),!this.isStateBeingUpdated&&(this.isStateBeingUpdated=!0,this.state=this.select.getValue(!0)??null,this.$nextTick(()=>this.isStateBeingUpdated=!1))}),d&&this.$refs.input.addEventListener("showDropdown",async()=>{this.select.clearChoices(),await this.select.setChoices([{label:c,value:"",disabled:!0}]),await this.refreshChoices()}),a&&(this.$refs.input.addEventListener("search",async e=>{let t=e.detail.value?.trim();this.isSearching=!0,this.select.clearChoices(),await this.select.setChoices([{label:[null,void 0,""].includes(t)?c:ne,value:"",disabled:!0}])}),this.$refs.input.addEventListener("search",Alpine.debounce(async e=>{await this.refreshChoices({search:e.detail.value?.trim()}),this.isSearching=!1},Z))),_||window.addEventListener("filament-forms::select.refreshSelectedOptionLabel",async e=>{e.detail.livewireId===r&&e.detail.statePath===g&&await this.refreshChoices({withInitialOptions:!d})}),this.$watch("state",async()=>{this.select&&(this.refreshPlaceholder(),!this.isStateBeingUpdated&&await this.refreshChoices({withInitialOptions:!d}))})},destroy:function(){this.select.destroy(),this.select=null},refreshChoices:async function(e={}){let t=await this.getChoices(e);this.select&&(this.select.clearStore(),this.refreshPlaceholder(),this.setChoices(t),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)))},setChoices:function(e){this.select.setChoices(e,"value","label",!0)},getChoices:async function(e={}){let t=await this.getExistingOptions(e);return t.concat(await this.getMissingOptions(t))},getExistingOptions:async function({search:e,withInitialOptions:t}){if(t)return y;let n=[];return e!==""&&e!==null&&e!==void 0?n=await i(e):n=await j(),n.map(s=>s.choices?(s.choices=s.choices.map(v=>(v.selected=Array.isArray(this.state)?this.state.includes(v.value):this.state===v.value,v)),s):(s.selected=Array.isArray(this.state)?this.state.includes(s.value):this.state===s.value,s))},refreshPlaceholder:function(){_||(this.select._renderItems(),[null,void 0,""].includes(this.state)&&(this.$el.querySelector(".choices__list--single").innerHTML=`
${k??""}
`))},formatState:function(e){return _?(e??[]).map(t=>t?.toString()):e?.toString()},getMissingOptions:async function(e){let t=this.formatState(this.state);if([null,void 0,"",[],{}].includes(t))return{};let n=new Set;return e.forEach(s=>{if(s.choices){s.choices.forEach(v=>n.add(v.value));return}n.add(s.value)}),_?t.every(s=>n.has(s))?{}:(await me()).filter(s=>!n.has(s.value)).map(s=>(s.selected=!0,s)):n.has(t)?n:[{label:await X(),value:t,selected:!0}]}}}export{vt as default}; /*! Bundled license information: choices.js/public/assets/scripts/choices.js: diff --git a/public/js/filament/support/async-alpine.js b/public/js/filament/support/async-alpine.js index f2e3c0e1c..048f75c05 100644 --- a/public/js/filament/support/async-alpine.js +++ b/public/js/filament/support/async-alpine.js @@ -1 +1 @@ -(()=>{var h=Object.defineProperty,m=t=>h(t,"__esModule",{value:!0}),f=(t,e)=>{m(t);for(var i in e)h(t,i,{get:e[i],enumerable:!0})},p={};f(p,{eager:()=>g,event:()=>w,idle:()=>y,media:()=>b,visible:()=>E});var c=()=>!0,g=c,v=({component:t,argument:e})=>new Promise(i=>{if(e)window.addEventListener(e,()=>i(),{once:!0});else{let n=a=>{a.detail.id===t.id&&(window.removeEventListener("async-alpine:load",n),i())};window.addEventListener("async-alpine:load",n)}}),w=v,x=()=>new Promise(t=>{"requestIdleCallback"in window?window.requestIdleCallback(t):setTimeout(t,200)}),y=x,A=({argument:t})=>new Promise(e=>{if(!t)return console.log("Async Alpine: media strategy requires a media query. Treating as 'eager'"),e();let i=window.matchMedia(`(${t})`);i.matches?e():i.addEventListener("change",e,{once:!0})}),b=A,$=({component:t,argument:e})=>new Promise(i=>{let n=e||"0px 0px 0px 0px",a=new IntersectionObserver(r=>{r[0].isIntersecting&&(a.disconnect(),i())},{rootMargin:n});a.observe(t.el)}),E=$;function P(t){let e=q(t),i=_(e);return i.type==="method"?{type:"expression",operator:"&&",parameters:[i]}:i}function q(t){let e=/\s*([()])\s*|\s*(\|\||&&|\|)\s*|\s*((?:[^()&|]+\([^()]+\))|[^()&|]+)\s*/g,i=[],n;for(;(n=e.exec(t))!==null;){let[,a,r,s]=n;if(a!==void 0)i.push({type:"parenthesis",value:a});else if(r!==void 0)i.push({type:"operator",value:r==="|"?"&&":r});else{let o={type:"method",method:s.trim()};s.includes("(")&&(o.method=s.substring(0,s.indexOf("(")).trim(),o.argument=s.substring(s.indexOf("(")+1,s.indexOf(")"))),s.method==="immediate"&&(s.method="eager"),i.push(o)}}return i}function _(t){let e=d(t);for(;t.length>0&&(t[0].value==="&&"||t[0].value==="|"||t[0].value==="||");){let i=t.shift().value,n=d(t);e.type==="expression"&&e.operator===i?e.parameters.push(n):e={type:"expression",operator:i,parameters:[e,n]}}return e}function d(t){if(t[0].value==="("){t.shift();let e=_(t);return t[0].value===")"&&t.shift(),e}else return t.shift()}var u="__internal_",l={Alpine:null,_options:{prefix:"ax-",alpinePrefix:"x-",root:"load",inline:"load-src",defaultStrategy:"eager"},_alias:!1,_data:{},_realIndex:0,get _index(){return this._realIndex++},init(t,e={}){return this.Alpine=t,this._options={...this._options,...e},this},start(){return this._processInline(),this._setupComponents(),this._mutations(),this},data(t,e=!1){return this._data[t]={loaded:!1,download:e},this},url(t,e){!t||!e||(this._data[t]||this.data(t),this._data[t].download=()=>import(this._parseUrl(e)))},alias(t){this._alias=t},_processInline(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.inline}]`);for(let e of t)this._inlineElement(e)},_inlineElement(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`),i=t.getAttribute(`${this._options.prefix}${this._options.inline}`);if(!e||!i)return;let n=this._parseName(e);this.url(n,i)},_setupComponents(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.root}]`);for(let e of t)this._setupComponent(e)},_setupComponent(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`);t.setAttribute(`${this._options.alpinePrefix}ignore`,"");let i=this._parseName(e),n=t.getAttribute(`${this._options.prefix}${this._options.root}`)||this._options.defaultStrategy;this._componentStrategy({name:i,strategy:n,el:t,id:t.id||this._index})},async _componentStrategy(t){let e=P(t.strategy);await this._generateRequirements(t,e),await this._download(t.name),this._activate(t)},_generateRequirements(t,e){if(e.type==="expression"){if(e.operator==="&&")return Promise.all(e.parameters.map(i=>this._generateRequirements(t,i)));if(e.operator==="||")return Promise.any(e.parameters.map(i=>this._generateRequirements(t,i)))}return p[e.method]?p[e.method]({component:t,argument:e.argument}):!1},async _download(t){if(t.startsWith(u)||(this._handleAlias(t),!this._data[t]||this._data[t].loaded))return;let e=await this._getModule(t);this.Alpine.data(t,e),this._data[t].loaded=!0},async _getModule(t){if(!this._data[t])return;let e=await this._data[t].download();return typeof e=="function"?e:e[t]||e.default||Object.values(e)[0]||!1},_activate(t){t.el.removeAttribute(`${this._options.alpinePrefix}ignore`),t.el._x_ignore=!1,this.Alpine.initTree(t.el)},_mutations(){new MutationObserver(t=>{for(let e of t)if(e.addedNodes)for(let i of e.addedNodes)i.nodeType===1&&(i.hasAttribute(`${this._options.prefix}${this._options.root}`)&&this._mutationEl(i),i.querySelectorAll(`[${this._options.prefix}${this._options.root}]`).forEach(n=>this._mutationEl(n)))}).observe(document,{attributes:!0,childList:!0,subtree:!0})},_mutationEl(t){t.hasAttribute(`${this._options.prefix}${this._options.inline}`)&&this._inlineElement(t),this._setupComponent(t)},_handleAlias(t){!this._alias||this._data[t]||this.url(t,this._alias.replace("[name]",t))},_parseName(t){return(t||"").split(/[({]/g)[0]||`${u}${this._index}`},_parseUrl(t){return new RegExp("^(?:[a-z+]+:)?//","i").test(t)?t:new URL(t,document.baseURI).href}};document.addEventListener("alpine:init",()=>{window.AsyncAlpine=l,l.init(Alpine,window.AsyncAlpineOptions||{}),document.dispatchEvent(new CustomEvent("async-alpine:init")),l.start()});})(); +(()=>{(()=>{var d=Object.defineProperty,m=t=>d(t,"__esModule",{value:!0}),f=(t,e)=>{m(t);for(var i in e)d(t,i,{get:e[i],enumerable:!0})},o={};f(o,{eager:()=>g,event:()=>w,idle:()=>y,media:()=>b,visible:()=>E});var c=()=>!0,g=c,v=({component:t,argument:e})=>new Promise(i=>{if(e)window.addEventListener(e,()=>i(),{once:!0});else{let n=a=>{a.detail.id===t.id&&(window.removeEventListener("async-alpine:load",n),i())};window.addEventListener("async-alpine:load",n)}}),w=v,x=()=>new Promise(t=>{"requestIdleCallback"in window?window.requestIdleCallback(t):setTimeout(t,200)}),y=x,A=({argument:t})=>new Promise(e=>{if(!t)return console.log("Async Alpine: media strategy requires a media query. Treating as 'eager'"),e();let i=window.matchMedia(`(${t})`);i.matches?e():i.addEventListener("change",e,{once:!0})}),b=A,$=({component:t,argument:e})=>new Promise(i=>{let n=e||"0px 0px 0px 0px",a=new IntersectionObserver(r=>{r[0].isIntersecting&&(a.disconnect(),i())},{rootMargin:n});a.observe(t.el)}),E=$;function P(t){let e=q(t),i=u(e);return i.type==="method"?{type:"expression",operator:"&&",parameters:[i]}:i}function q(t){let e=/\s*([()])\s*|\s*(\|\||&&|\|)\s*|\s*((?:[^()&|]+\([^()]+\))|[^()&|]+)\s*/g,i=[],n;for(;(n=e.exec(t))!==null;){let[,a,r,s]=n;if(a!==void 0)i.push({type:"parenthesis",value:a});else if(r!==void 0)i.push({type:"operator",value:r==="|"?"&&":r});else{let p={type:"method",method:s.trim()};s.includes("(")&&(p.method=s.substring(0,s.indexOf("(")).trim(),p.argument=s.substring(s.indexOf("(")+1,s.indexOf(")"))),s.method==="immediate"&&(s.method="eager"),i.push(p)}}return i}function u(t){let e=h(t);for(;t.length>0&&(t[0].value==="&&"||t[0].value==="|"||t[0].value==="||");){let i=t.shift().value,n=h(t);e.type==="expression"&&e.operator===i?e.parameters.push(n):e={type:"expression",operator:i,parameters:[e,n]}}return e}function h(t){if(t[0].value==="("){t.shift();let e=u(t);return t[0].value===")"&&t.shift(),e}else return t.shift()}var _="__internal_",l={Alpine:null,_options:{prefix:"ax-",alpinePrefix:"x-",root:"load",inline:"load-src",defaultStrategy:"eager"},_alias:!1,_data:{},_realIndex:0,get _index(){return this._realIndex++},init(t,e={}){return this.Alpine=t,this._options={...this._options,...e},this},start(){return this._processInline(),this._setupComponents(),this._mutations(),this},data(t,e=!1){return this._data[t]={loaded:!1,download:e},this},url(t,e){!t||!e||(this._data[t]||this.data(t),this._data[t].download=()=>import(this._parseUrl(e)))},alias(t){this._alias=t},_processInline(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.inline}]`);for(let e of t)this._inlineElement(e)},_inlineElement(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`),i=t.getAttribute(`${this._options.prefix}${this._options.inline}`);if(!e||!i)return;let n=this._parseName(e);this.url(n,i)},_setupComponents(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.root}]`);for(let e of t)this._setupComponent(e)},_setupComponent(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`);t.setAttribute(`${this._options.alpinePrefix}ignore`,"");let i=this._parseName(e),n=t.getAttribute(`${this._options.prefix}${this._options.root}`)||this._options.defaultStrategy;this._componentStrategy({name:i,strategy:n,el:t,id:t.id||this._index})},async _componentStrategy(t){let e=P(t.strategy);await this._generateRequirements(t,e),await this._download(t.name),this._activate(t)},_generateRequirements(t,e){if(e.type==="expression"){if(e.operator==="&&")return Promise.all(e.parameters.map(i=>this._generateRequirements(t,i)));if(e.operator==="||")return Promise.any(e.parameters.map(i=>this._generateRequirements(t,i)))}return o[e.method]?o[e.method]({component:t,argument:e.argument}):!1},async _download(t){if(t.startsWith(_)||(this._handleAlias(t),!this._data[t]||this._data[t].loaded))return;let e=await this._getModule(t);this.Alpine.data(t,e),this._data[t].loaded=!0},async _getModule(t){if(!this._data[t])return;let e=await this._data[t].download(t);return typeof e=="function"?e:e[t]||e.default||Object.values(e)[0]||!1},_activate(t){this.Alpine.destroyTree(t.el),t.el.removeAttribute(`${this._options.alpinePrefix}ignore`),t.el._x_ignore=!1,this.Alpine.initTree(t.el)},_mutations(){new MutationObserver(t=>{for(let e of t)if(e.addedNodes)for(let i of e.addedNodes)i.nodeType===1&&(i.hasAttribute(`${this._options.prefix}${this._options.root}`)&&this._mutationEl(i),i.querySelectorAll(`[${this._options.prefix}${this._options.root}]`).forEach(n=>this._mutationEl(n)))}).observe(document,{attributes:!0,childList:!0,subtree:!0})},_mutationEl(t){t.hasAttribute(`${this._options.prefix}${this._options.inline}`)&&this._inlineElement(t),this._setupComponent(t)},_handleAlias(t){if(!(!this._alias||this._data[t])){if(typeof this._alias=="function"){this.data(t,this._alias);return}this.url(t,this._alias.replaceAll("[name]",t))}},_parseName(t){return(t||"").split(/[({]/g)[0]||`${_}${this._index}`},_parseUrl(t){return new RegExp("^(?:[a-z+]+:)?//","i").test(t)?t:new URL(t,document.baseURI).href}};document.addEventListener("alpine:init",()=>{window.AsyncAlpine=l,l.init(Alpine,window.AsyncAlpineOptions||{}),document.dispatchEvent(new CustomEvent("async-alpine:init")),l.start()})})();})(); diff --git a/public/js/filament/support/support.js b/public/js/filament/support/support.js index 396ce74db..efddd58db 100644 --- a/public/js/filament/support/support.js +++ b/public/js/filament/support/support.js @@ -1,33 +1,44 @@ -(()=>{function wt(e){return e.split("-")[0]}function ln(e){return e.split("-")[1]}function xn(e){return["top","bottom"].includes(wt(e))?"x":"y"}function Yr(e){return e==="y"?"height":"width"}function xo(e,t,n){let{reference:r,floating:o}=e,i=r.x+r.width/2-o.width/2,s=r.y+r.height/2-o.height/2,c=xn(t),u=Yr(c),h=r[u]/2-o[u]/2,m=wt(t),g=c==="x",b;switch(m){case"top":b={x:i,y:r.y-o.height};break;case"bottom":b={x:i,y:r.y+r.height};break;case"right":b={x:r.x+r.width,y:s};break;case"left":b={x:r.x-o.width,y:s};break;default:b={x:r.x,y:r.y}}switch(ln(t)){case"start":b[c]-=h*(n&&g?-1:1);break;case"end":b[c]+=h*(n&&g?-1:1);break}return b}var Ci=async(e,t,n)=>{let{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:s}=n,c=await(s.isRTL==null?void 0:s.isRTL(t));if(s==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),i.filter(S=>{let{name:T}=S;return T==="autoPlacement"||T==="flip"}).length>1)throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let u=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:h,y:m}=xo(u,r,c),g=r,b={},O=0;for(let S=0;S100)throw new Error(["Floating UI: The middleware lifecycle appears to be","running in an infinite loop. This is usually caused by a `reset`","continually being returned without a break condition."].join(" "));let{name:T,fn:F}=i[S],{x:B,y:L,data:K,reset:W}=await F({x:h,y:m,initialPlacement:r,placement:g,strategy:o,middlewareData:b,rects:u,platform:s,elements:{reference:e,floating:t}});if(h=B??h,m=L??m,b={...b,[T]:{...b[T],...K}},W){typeof W=="object"&&(W.placement&&(g=W.placement),W.rects&&(u=W.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:o}):W.rects),{x:h,y:m}=xo(u,g,c)),S=-1;continue}}return{x:h,y:m,placement:g,strategy:o,middlewareData:b}};function Ai(e){return{top:0,right:0,bottom:0,left:0,...e}}function qr(e){return typeof e!="number"?Ai(e):{top:e,right:e,bottom:e,left:e}}function Bn(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function En(e,t){var n;t===void 0&&(t={});let{x:r,y:o,platform:i,rects:s,elements:c,strategy:u}=e,{boundary:h="clippingAncestors",rootBoundary:m="viewport",elementContext:g="floating",altBoundary:b=!1,padding:O=0}=t,S=qr(O),F=c[b?g==="floating"?"reference":"floating":g],B=Bn(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(F)))==null||n?F:F.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(c.floating)),boundary:h,rootBoundary:m,strategy:u})),L=Bn(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:g==="floating"?{...s.floating,x:r,y:o}:s.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(c.floating)),strategy:u}):s[g]);return{top:B.top-L.top+S.top,bottom:L.bottom-B.bottom+S.bottom,left:B.left-L.left+S.left,right:L.right-B.right+S.right}}var Io=Math.min,qt=Math.max;function Ur(e,t,n){return qt(e,Io(t,n))}var Lo=e=>({name:"arrow",options:e,async fn(t){let{element:n,padding:r=0}=e??{},{x:o,y:i,placement:s,rects:c,platform:u}=t;if(n==null)return console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};let h=qr(r),m={x:o,y:i},g=xn(s),b=Yr(g),O=await u.getDimensions(n),S=g==="y"?"top":"left",T=g==="y"?"bottom":"right",F=c.reference[b]+c.reference[g]-m[g]-c.floating[b],B=m[g]-c.reference[g],L=await(u.getOffsetParent==null?void 0:u.getOffsetParent(n)),K=L?g==="y"?L.clientHeight||0:L.clientWidth||0:0,W=F/2-B/2,he=h[S],ee=K-O[b]-h[T],Z=K/2-O[b]/2+W,de=Ur(he,Z,ee);return{data:{[g]:de,centerOffset:Z-de}}}}),Di={left:"right",right:"left",bottom:"top",top:"bottom"};function lr(e){return e.replace(/left|right|bottom|top/g,t=>Di[t])}function No(e,t,n){n===void 0&&(n=!1);let r=ln(e),o=xn(e),i=Yr(o),s=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=lr(s)),{main:s,cross:lr(s)}}var Ti={start:"end",end:"start"};function Xr(e){return e.replace(/start|end/g,t=>Ti[t])}var ko=["top","right","bottom","left"],_i=ko.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function Pi(e,t,n){return(e?[...n.filter(o=>ln(o)===e),...n.filter(o=>ln(o)!==e)]:n.filter(o=>wt(o)===o)).filter(o=>e?ln(o)===e||(t?Xr(o)!==o:!1):!0)}var Gr=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o,i,s;let{x:c,y:u,rects:h,middlewareData:m,placement:g,platform:b,elements:O}=t,{alignment:S=null,allowedPlacements:T=_i,autoAlignment:F=!0,...B}=e,L=Pi(S,F,T),K=await En(t,B),W=(n=(r=m.autoPlacement)==null?void 0:r.index)!=null?n:0,he=L[W];if(he==null)return{};let{main:ee,cross:Z}=No(he,h,await(b.isRTL==null?void 0:b.isRTL(O.floating)));if(g!==he)return{x:c,y:u,reset:{placement:L[0]}};let de=[K[wt(he)],K[ee],K[Z]],N=[...(o=(i=m.autoPlacement)==null?void 0:i.overflows)!=null?o:[],{placement:he,overflows:de}],ae=L[W+1];if(ae)return{data:{index:W+1,overflows:N},reset:{placement:ae}};let ue=N.slice().sort((ve,We)=>ve.overflows[0]-We.overflows[0]),Ce=(s=ue.find(ve=>{let{overflows:We}=ve;return We.every(Le=>Le<=0)}))==null?void 0:s.placement,pe=Ce??ue[0].placement;return pe!==g?{data:{index:W+1,overflows:N},reset:{placement:pe}}:{}}}};function Mi(e){let t=lr(e);return[Xr(e),t,Xr(t)]}var jo=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;let{placement:r,middlewareData:o,rects:i,initialPlacement:s,platform:c,elements:u}=t,{mainAxis:h=!0,crossAxis:m=!0,fallbackPlacements:g,fallbackStrategy:b="bestFit",flipAlignment:O=!0,...S}=e,T=wt(r),B=g||(T===s||!O?[lr(s)]:Mi(s)),L=[s,...B],K=await En(t,S),W=[],he=((n=o.flip)==null?void 0:n.overflows)||[];if(h&&W.push(K[T]),m){let{main:N,cross:ae}=No(r,i,await(c.isRTL==null?void 0:c.isRTL(u.floating)));W.push(K[N],K[ae])}if(he=[...he,{placement:r,overflows:W}],!W.every(N=>N<=0)){var ee,Z;let N=((ee=(Z=o.flip)==null?void 0:Z.index)!=null?ee:0)+1,ae=L[N];if(ae)return{data:{index:N,overflows:he},reset:{placement:ae}};let ue="bottom";switch(b){case"bestFit":{var de;let Ce=(de=he.map(pe=>[pe,pe.overflows.filter(ve=>ve>0).reduce((ve,We)=>ve+We,0)]).sort((pe,ve)=>pe[1]-ve[1])[0])==null?void 0:de[0].placement;Ce&&(ue=Ce);break}case"initialPlacement":ue=s;break}if(r!==ue)return{reset:{placement:ue}}}return{}}}};function Oo(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function So(e){return ko.some(t=>e[t]>=0)}var Fo=function(e){let{strategy:t="referenceHidden",...n}=e===void 0?{}:e;return{name:"hide",async fn(r){let{rects:o}=r;switch(t){case"referenceHidden":{let i=await En(r,{...n,elementContext:"reference"}),s=Oo(i,o.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:So(s)}}}case"escaped":{let i=await En(r,{...n,altBoundary:!0}),s=Oo(i,o.floating);return{data:{escapedOffsets:s,escaped:So(s)}}}default:return{}}}}};function Ri(e,t,n,r){r===void 0&&(r=!1);let o=wt(e),i=ln(e),s=xn(e)==="x",c=["left","top"].includes(o)?-1:1,u=r&&s?-1:1,h=typeof n=="function"?n({...t,placement:e}):n,{mainAxis:m,crossAxis:g,alignmentAxis:b}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...h};return i&&typeof b=="number"&&(g=i==="end"?b*-1:b),s?{x:g*u,y:m*c}:{x:m*c,y:g*u}}var Bo=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:n,y:r,placement:o,rects:i,platform:s,elements:c}=t,u=Ri(o,i,e,await(s.isRTL==null?void 0:s.isRTL(c.floating)));return{x:n+u.x,y:r+u.y,data:u}}}};function Ii(e){return e==="x"?"y":"x"}var Ho=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:c={fn:F=>{let{x:B,y:L}=F;return{x:B,y:L}}},...u}=e,h={x:n,y:r},m=await En(t,u),g=xn(wt(o)),b=Ii(g),O=h[g],S=h[b];if(i){let F=g==="y"?"top":"left",B=g==="y"?"bottom":"right",L=O+m[F],K=O-m[B];O=Ur(L,O,K)}if(s){let F=b==="y"?"top":"left",B=b==="y"?"bottom":"right",L=S+m[F],K=S-m[B];S=Ur(L,S,K)}let T=c.fn({...t,[g]:O,[b]:S});return{...T,data:{x:T.x-n,y:T.y-r}}}}},$o=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:n,rects:r,platform:o,elements:i}=t,{apply:s,...c}=e,u=await En(t,c),h=wt(n),m=ln(n),g,b;h==="top"||h==="bottom"?(g=h,b=m===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(b=h,g=m==="end"?"top":"bottom");let O=qt(u.left,0),S=qt(u.right,0),T=qt(u.top,0),F=qt(u.bottom,0),B={height:r.floating.height-(["left","right"].includes(n)?2*(T!==0||F!==0?T+F:qt(u.top,u.bottom)):u[g]),width:r.floating.width-(["top","bottom"].includes(n)?2*(O!==0||S!==0?O+S:qt(u.left,u.right)):u[b])},L=await o.getDimensions(i.floating);s?.({...B,...r});let K=await o.getDimensions(i.floating);return L.width!==K.width||L.height!==K.height?{reset:{rects:!0}}:{}}}},Wo=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(t){var n;let{placement:r,elements:o,rects:i,platform:s,strategy:c}=t,{padding:u=2,x:h,y:m}=e,g=Bn(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({rect:i.reference,offsetParent:await(s.getOffsetParent==null?void 0:s.getOffsetParent(o.floating)),strategy:c}):i.reference),b=(n=await(s.getClientRects==null?void 0:s.getClientRects(o.reference)))!=null?n:[],O=qr(u);function S(){if(b.length===2&&b[0].left>b[1].right&&h!=null&&m!=null){var F;return(F=b.find(B=>h>B.left-O.left&&hB.top-O.top&&m=2){if(xn(r)==="x"){let ue=b[0],Ce=b[b.length-1],pe=wt(r)==="top",ve=ue.top,We=Ce.bottom,Le=pe?ue.left:Ce.left,Te=pe?ue.right:Ce.right,tt=Te-Le,Nt=We-ve;return{top:ve,bottom:We,left:Le,right:Te,width:tt,height:Nt,x:Le,y:ve}}let B=wt(r)==="left",L=qt(...b.map(ue=>ue.right)),K=Io(...b.map(ue=>ue.left)),W=b.filter(ue=>B?ue.left===K:ue.right===L),he=W[0].top,ee=W[W.length-1].bottom,Z=K,de=L,N=de-Z,ae=ee-he;return{top:he,bottom:ee,left:Z,right:de,width:N,height:ae,x:Z,y:he}}return g}let T=await s.getElementRects({reference:{getBoundingClientRect:S},floating:o.floating,strategy:c});return i.reference.x!==T.reference.x||i.reference.y!==T.reference.y||i.reference.width!==T.reference.width||i.reference.height!==T.reference.height?{reset:{rects:T}}:{}}}};function Vo(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Mt(e){if(e==null)return window;if(!Vo(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function Hn(e){return Mt(e).getComputedStyle(e)}function _t(e){return Vo(e)?"":e?(e.nodeName||"").toLowerCase():""}function Et(e){return e instanceof Mt(e).HTMLElement}function Gt(e){return e instanceof Mt(e).Element}function Li(e){return e instanceof Mt(e).Node}function Kr(e){if(typeof ShadowRoot>"u")return!1;let t=Mt(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function fr(e){let{overflow:t,overflowX:n,overflowY:r}=Hn(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function Ni(e){return["table","td","th"].includes(_t(e))}function Uo(e){let t=navigator.userAgent.toLowerCase().includes("firefox"),n=Hn(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)}function Xo(){return!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}var Co=Math.min,jn=Math.max,cr=Math.round;function Pt(e,t,n){var r,o,i,s;t===void 0&&(t=!1),n===void 0&&(n=!1);let c=e.getBoundingClientRect(),u=1,h=1;t&&Et(e)&&(u=e.offsetWidth>0&&cr(c.width)/e.offsetWidth||1,h=e.offsetHeight>0&&cr(c.height)/e.offsetHeight||1);let m=Gt(e)?Mt(e):window,g=!Xo()&&n,b=(c.left+(g&&(r=(o=m.visualViewport)==null?void 0:o.offsetLeft)!=null?r:0))/u,O=(c.top+(g&&(i=(s=m.visualViewport)==null?void 0:s.offsetTop)!=null?i:0))/h,S=c.width/u,T=c.height/h;return{width:S,height:T,top:O,right:b+S,bottom:O+T,left:b,x:b,y:O}}function Kt(e){return((Li(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return Gt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function zo(e){return Pt(Kt(e)).left+dr(e).scrollLeft}function ki(e){let t=Pt(e);return cr(t.width)!==e.offsetWidth||cr(t.height)!==e.offsetHeight}function ji(e,t,n){let r=Et(t),o=Kt(t),i=Pt(e,r&&ki(t),n==="fixed"),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if(r||!r&&n!=="fixed")if((_t(t)!=="body"||fr(o))&&(s=dr(t)),Et(t)){let u=Pt(t,!0);c.x=u.x+t.clientLeft,c.y=u.y+t.clientTop}else o&&(c.x=zo(o));return{x:i.left+s.scrollLeft-c.x,y:i.top+s.scrollTop-c.y,width:i.width,height:i.height}}function Yo(e){return _t(e)==="html"?e:e.assignedSlot||e.parentNode||(Kr(e)?e.host:null)||Kt(e)}function Ao(e){return!Et(e)||getComputedStyle(e).position==="fixed"?null:e.offsetParent}function Fi(e){let t=Yo(e);for(Kr(t)&&(t=t.host);Et(t)&&!["html","body"].includes(_t(t));){if(Uo(t))return t;t=t.parentNode}return null}function zr(e){let t=Mt(e),n=Ao(e);for(;n&&Ni(n)&&getComputedStyle(n).position==="static";)n=Ao(n);return n&&(_t(n)==="html"||_t(n)==="body"&&getComputedStyle(n).position==="static"&&!Uo(n))?t:n||Fi(e)||t}function Do(e){if(Et(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=Pt(e);return{width:t.width,height:t.height}}function Bi(e){let{rect:t,offsetParent:n,strategy:r}=e,o=Et(n),i=Kt(n);if(n===i)return t;let s={scrollLeft:0,scrollTop:0},c={x:0,y:0};if((o||!o&&r!=="fixed")&&((_t(n)!=="body"||fr(i))&&(s=dr(n)),Et(n))){let u=Pt(n,!0);c.x=u.x+n.clientLeft,c.y=u.y+n.clientTop}return{...t,x:t.x-s.scrollLeft+c.x,y:t.y-s.scrollTop+c.y}}function Hi(e,t){let n=Mt(e),r=Kt(e),o=n.visualViewport,i=r.clientWidth,s=r.clientHeight,c=0,u=0;if(o){i=o.width,s=o.height;let h=Xo();(h||!h&&t==="fixed")&&(c=o.offsetLeft,u=o.offsetTop)}return{width:i,height:s,x:c,y:u}}function $i(e){var t;let n=Kt(e),r=dr(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=jn(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=jn(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),c=-r.scrollLeft+zo(e),u=-r.scrollTop;return Hn(o||n).direction==="rtl"&&(c+=jn(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:c,y:u}}function qo(e){let t=Yo(e);return["html","body","#document"].includes(_t(t))?e.ownerDocument.body:Et(t)&&fr(t)?t:qo(t)}function ur(e,t){var n;t===void 0&&(t=[]);let r=qo(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=Mt(r),s=o?[i].concat(i.visualViewport||[],fr(r)?r:[]):r,c=t.concat(s);return o?c:c.concat(ur(s))}function Wi(e,t){let n=t==null||t.getRootNode==null?void 0:t.getRootNode();if(e!=null&&e.contains(t))return!0;if(n&&Kr(n)){let r=t;do{if(r&&e===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function Vi(e,t){let n=Pt(e,!1,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft;return{top:r,left:o,x:o,y:r,right:o+e.clientWidth,bottom:r+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function To(e,t,n){return t==="viewport"?Bn(Hi(e,n)):Gt(t)?Vi(t,n):Bn($i(Kt(e)))}function Ui(e){let t=ur(e),r=["absolute","fixed"].includes(Hn(e).position)&&Et(e)?zr(e):e;return Gt(r)?t.filter(o=>Gt(o)&&Wi(o,r)&&_t(o)!=="body"):[]}function Xi(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,s=[...n==="clippingAncestors"?Ui(t):[].concat(n),r],c=s[0],u=s.reduce((h,m)=>{let g=To(t,m,o);return h.top=jn(g.top,h.top),h.right=Co(g.right,h.right),h.bottom=Co(g.bottom,h.bottom),h.left=jn(g.left,h.left),h},To(t,c,o));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}var zi={getClippingRect:Xi,convertOffsetParentRelativeRectToViewportRelativeRect:Bi,isElement:Gt,getDimensions:Do,getOffsetParent:zr,getDocumentElement:Kt,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:ji(t,zr(n),r),floating:{...Do(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Hn(e).direction==="rtl"};function _o(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:s=!0,animationFrame:c=!1}=r,u=!1,h=o&&!c,m=i&&!c,g=s&&!c,b=h||m?[...Gt(e)?ur(e):[],...ur(t)]:[];b.forEach(B=>{h&&B.addEventListener("scroll",n,{passive:!0}),m&&B.addEventListener("resize",n)});let O=null;g&&(O=new ResizeObserver(n),Gt(e)&&O.observe(e),O.observe(t));let S,T=c?Pt(e):null;c&&F();function F(){if(u)return;let B=Pt(e);T&&(B.x!==T.x||B.y!==T.y||B.width!==T.width||B.height!==T.height)&&n(),T=B,S=requestAnimationFrame(F)}return()=>{var B;u=!0,b.forEach(L=>{h&&L.removeEventListener("scroll",n),m&&L.removeEventListener("resize",n)}),(B=O)==null||B.disconnect(),O=null,c&&cancelAnimationFrame(S)}}var Po=(e,t,n)=>Ci(e,t,{platform:zi,...n}),Yi=e=>{let t={placement:"bottom",middleware:[]},n=Object.keys(e),r=o=>e[o];return n.includes("offset")&&t.middleware.push(Bo(r("offset"))),n.includes("placement")&&(t.placement=r("placement")),n.includes("autoPlacement")&&!n.includes("flip")&&t.middleware.push(Gr(r("autoPlacement"))),n.includes("flip")&&t.middleware.push(jo(r("flip"))),n.includes("shift")&&t.middleware.push(Ho(r("shift"))),n.includes("inline")&&t.middleware.push(Wo(r("inline"))),n.includes("arrow")&&t.middleware.push(Lo(r("arrow"))),n.includes("hide")&&t.middleware.push(Fo(r("hide"))),n.includes("size")&&t.middleware.push($o(r("size"))),t},qi=(e,t)=>{let n={component:{trap:!1},float:{placement:"bottom",strategy:"absolute",middleware:[]}},r=o=>e[e.indexOf(o)+1];return e.includes("trap")&&(n.component.trap=!0),e.includes("teleport")&&(n.float.strategy="fixed"),e.includes("offset")&&n.float.middleware.push(Bo(t.offset||10)),e.includes("placement")&&(n.float.placement=r("placement")),e.includes("autoPlacement")&&!e.includes("flip")&&n.float.middleware.push(Gr(t.autoPlacement)),e.includes("flip")&&n.float.middleware.push(jo(t.flip)),e.includes("shift")&&n.float.middleware.push(Ho(t.shift)),e.includes("inline")&&n.float.middleware.push(Wo(t.inline)),e.includes("arrow")&&n.float.middleware.push(Lo(t.arrow)),e.includes("hide")&&n.float.middleware.push(Fo(t.hide)),e.includes("size")&&n.float.middleware.push($o(t.size)),n},Gi=e=>{var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".split(""),n="";e||(e=Math.floor(Math.random()*t.length));for(var r=0;r{(t===void 0||t.includes(n))&&(r.forEach(o=>o()),delete e._x_attributeCleanups[n])})}var Jr=new MutationObserver(Go),Qr=!1;function ea(){Jr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),Qr=!0}function ta(){na(),Jr.disconnect(),Qr=!1}var Fn=[],Vr=!1;function na(){Fn=Fn.concat(Jr.takeRecords()),Fn.length&&!Vr&&(Vr=!0,queueMicrotask(()=>{ra(),Vr=!1}))}function ra(){Go(Fn),Fn.length=0}function Mo(e){if(!Qr)return e();ta();let t=e();return ea(),t}var oa=!1,Ro=[];function Go(e){if(oa){Ro=Ro.concat(e);return}let t=[],n=[],r=new Map,o=new Map;for(let i=0;is.nodeType===1&&t.push(s)),e[i].removedNodes.forEach(s=>s.nodeType===1&&n.push(s))),e[i].type==="attributes")){let s=e[i].target,c=e[i].attributeName,u=e[i].oldValue,h=()=>{r.has(s)||r.set(s,[]),r.get(s).push({name:c,value:s.getAttribute(c)})},m=()=>{o.has(s)||o.set(s,[]),o.get(s).push(c)};s.hasAttribute(c)&&u===null?h():s.hasAttribute(c)?(m(),h()):m()}o.forEach((i,s)=>{Zi(s,i)}),r.forEach((i,s)=>{Ki.forEach(c=>c(s,i))});for(let i of n)if(!t.includes(i)&&(Ji.forEach(s=>s(i)),i._x_cleanups))for(;i._x_cleanups.length;)i._x_cleanups.pop()();t.forEach(i=>{i._x_ignoreSelf=!0,i._x_ignore=!0});for(let i of t)n.includes(i)||i.isConnected&&(delete i._x_ignoreSelf,delete i._x_ignore,Qi.forEach(s=>s(i)),i._x_ignore=!0,i._x_ignoreSelf=!0);t.forEach(i=>{delete i._x_ignoreSelf,delete i._x_ignore}),t=null,n=null,r=null,o=null}function ia(e,t=()=>{}){let n=!1;return function(){n?t.apply(this,arguments):(n=!0,e.apply(this,arguments))}}function aa(e){let t={dismissable:!0,trap:!1};function n(i,s,c=null){if(s){if(s.hasAttribute("aria-expanded")||s.setAttribute("aria-expanded",!1),c.hasAttribute("id"))s.setAttribute("aria-controls",c.getAttribute("id"));else{let u=`panel-${Gi(8)}`;s.setAttribute("aria-controls",u),c.setAttribute("id",u)}c.setAttribute("aria-modal",!0),c.setAttribute("role","dialog")}}let r=document.querySelectorAll('[\\@click^="$float"]'),o=document.querySelectorAll('[x-on\\:click^="$float"]');[...r,...o].forEach(i=>{let s=i.parentElement.closest("[x-data]"),c=s.querySelector('[x-ref="panel"]');n(s,i,c)}),e.magic("float",i=>(s={},c={})=>{let u={...t,...c},h=Object.keys(s).length>0?Yi(s):{middleware:[Gr()]},m=i,g=i.parentElement.closest("[x-data]"),b=g.querySelector('[x-ref="panel"]');function O(){return b.style.display=="block"}function S(){b.style.display="",m.setAttribute("aria-expanded",!1),u.trap&&b.setAttribute("x-trap",!1),_o(i,b,B)}function T(){b.style.display="block",m.setAttribute("aria-expanded",!0),u.trap&&b.setAttribute("x-trap",!0),B()}function F(){O()?S():T()}async function B(){return await Po(i,b,h).then(({middlewareData:L,placement:K,x:W,y:he})=>{if(L.arrow){let ee=L.arrow?.x,Z=L.arrow?.y,de=h.middleware.filter(ae=>ae.name=="arrow")[0].options.element,N={top:"bottom",right:"left",bottom:"top",left:"right"}[K.split("-")[0]];Object.assign(de.style,{left:ee!=null?`${ee}px`:"",top:Z!=null?`${Z}px`:"",right:"",bottom:"",[N]:"-4px"})}if(L.hide){let{referenceHidden:ee}=L.hide;Object.assign(b.style,{visibility:ee?"hidden":"visible"})}Object.assign(b.style,{left:`${W}px`,top:`${he}px`})})}u.dismissable&&(window.addEventListener("click",L=>{!g.contains(L.target)&&O()&&F()}),window.addEventListener("keydown",L=>{L.key==="Escape"&&O()&&F()},!0)),F()}),e.directive("float",(i,{modifiers:s,expression:c},{evaluate:u,effect:h})=>{let m=c?u(c):{},g=s.length>0?qi(s,m):{},b=null;g.float.strategy=="fixed"&&(i.style.position="fixed");let O=N=>i.parentElement&&!i.parentElement.closest("[x-data]").contains(N.target)?i.close():null,S=N=>N.key==="Escape"?i.close():null,T=i.getAttribute("x-ref"),F=i.parentElement.closest("[x-data]"),B=F.querySelectorAll(`[\\@click^="$refs.${T}"]`),L=F.querySelectorAll(`[x-on\\:click^="$refs.${T}"]`);i.style.setProperty("display","none"),n(F,[...B,...L][0],i),i._x_isShown=!1,i.trigger=null,i._x_doHide||(i._x_doHide=()=>{Mo(()=>{i.style.setProperty("display","none",s.includes("important")?"important":void 0)})}),i._x_doShow||(i._x_doShow=()=>{Mo(()=>{i.style.setProperty("display","block",s.includes("important")?"important":void 0)})});let K=()=>{i._x_doHide(),i._x_isShown=!1},W=()=>{i._x_doShow(),i._x_isShown=!0},he=()=>setTimeout(W),ee=ia(N=>N?W():K(),N=>{typeof i._x_toggleAndCascadeWithTransitions=="function"?i._x_toggleAndCascadeWithTransitions(i,N,W,K):N?he():K()}),Z,de=!0;h(()=>u(N=>{!de&&N===Z||(s.includes("immediate")&&(N?he():K()),ee(N),Z=N,de=!1)})),i.open=async function(N){i.trigger=N.currentTarget?N.currentTarget:N,ee(!0),i.trigger.setAttribute("aria-expanded",!0),g.component.trap&&i.setAttribute("x-trap",!0),b=_o(i.trigger,i,()=>{Po(i.trigger,i,g.float).then(({middlewareData:ae,placement:ue,x:Ce,y:pe})=>{if(ae.arrow){let ve=ae.arrow?.x,We=ae.arrow?.y,Le=g.float.middleware.filter(tt=>tt.name=="arrow")[0].options.element,Te={top:"bottom",right:"left",bottom:"top",left:"right"}[ue.split("-")[0]];Object.assign(Le.style,{left:ve!=null?`${ve}px`:"",top:We!=null?`${We}px`:"",right:"",bottom:"",[Te]:"-4px"})}if(ae.hide){let{referenceHidden:ve}=ae.hide;Object.assign(i.style,{visibility:ve?"hidden":"visible"})}Object.assign(i.style,{left:`${Ce}px`,top:`${pe}px`})})}),window.addEventListener("click",O),window.addEventListener("keydown",S,!0)},i.close=function(){ee(!1),i.trigger.setAttribute("aria-expanded",!1),g.component.trap&&i.setAttribute("x-trap",!1),b(),window.removeEventListener("click",O),window.removeEventListener("keydown",S,!1)},i.toggle=function(N){i._x_isShown?i.close():i.open(N)}})}var Ko=aa;function sa(e){e.store("lazyLoadedAssets",{loaded:new Set,check(o){return Array.isArray(o)?o.every(i=>this.loaded.has(i)):this.loaded.has(o)},markLoaded(o){Array.isArray(o)?o.forEach(i=>this.loaded.add(i)):this.loaded.add(o)}});function t(o){return new CustomEvent(o,{bubbles:!0,composed:!0,cancelable:!0})}async function n(o,i){if(document.querySelector(`link[href="${o}"]`)||e.store("lazyLoadedAssets").check(o))return;let s=document.createElement("link");s.type="text/css",s.rel="stylesheet",s.href=o,i&&(s.media=i),document.head.append(s),await new Promise((c,u)=>{s.onload=()=>{e.store("lazyLoadedAssets").markLoaded(o),c()},s.onerror=()=>{u(new Error(`Failed to load CSS: ${o}`))}})}async function r(o,i){if(document.querySelector(`script[src="${o}"]`)||e.store("lazyLoadedAssets").check(o))return;let s=document.createElement("script");s.src=o,i.has("body-start")?document.body.prepend(s):document[i.has("body-end")?"body":"head"].append(s),await new Promise((c,u)=>{s.onload=()=>{e.store("lazyLoadedAssets").markLoaded(o),c()},s.onerror=()=>{u(new Error(`Failed to load JS: ${o}`))}})}e.directive("load-css",(o,{expression:i},{evaluate:s})=>{let c=s(i),u=o.media,h=o.getAttribute("data-dispatch");Promise.all(c.map(m=>n(m,u))).then(()=>{h&&window.dispatchEvent(t(h+"-css"))}).catch(m=>{console.error(m)})}),e.directive("load-js",(o,{expression:i,modifiers:s},{evaluate:c})=>{let u=c(i),h=new Set(s),m=o.getAttribute("data-dispatch");Promise.all(u.map(g=>r(g,h))).then(()=>{m&&window.dispatchEvent(t(m+"-js"))}).catch(g=>{console.error(g)})})}var Jo=sa;function Qo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function St(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function ua(e,t){if(e==null)return{};var n=ca(e,t),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var fa="1.15.0";function Rt(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var Lt=Rt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Gn=Rt(/Edge/i),Zo=Rt(/firefox/i),Un=Rt(/safari/i)&&!Rt(/chrome/i)&&!Rt(/android/i),si=Rt(/iP(ad|od|hone)/i),li=Rt(/chrome/i)&&Rt(/android/i),ci={capture:!1,passive:!1};function we(e,t,n){e.addEventListener(t,n,!Lt&&ci)}function me(e,t,n){e.removeEventListener(t,n,!Lt&&ci)}function xr(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function da(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function xt(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&xr(e,t):xr(e,t))||r&&e===n)return e;if(e===n)break}while(e=da(e))}return null}var ei=/\s+/g;function it(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(ei," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(ei," ")}}function Y(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function Dn(e,t){var n="";if(typeof e=="string")n=e;else do{var r=Y(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function ui(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,i=r.length;if(n)for(;o=i:s=o<=i,!s)return r;if(r===Ot())break;r=Zt(r,!1)}return!1}function Tn(e,t,n,r){for(var o=0,i=0,s=e.children;i2&&arguments[2]!==void 0?arguments[2]:{},o=r.evt,i=ua(r,wa);Kn.pluginEvent.bind(q)(t,n,St({dragEl:D,parentEl:$e,ghostEl:oe,rootEl:Ie,nextEl:fn,lastDownEl:br,cloneEl:Be,cloneHidden:Qt,dragStarted:$n,putSortable:Ge,activeSortable:q.active,originalEvent:o,oldIndex:An,oldDraggableIndex:zn,newIndex:at,newDraggableIndex:Jt,hideGhostForTarget:mi,unhideGhostForTarget:bi,cloneNowHidden:function(){Qt=!0},cloneNowShown:function(){Qt=!1},dispatchSortableEvent:function(c){et({sortable:n,name:c,originalEvent:o})}},i))};function et(e){ya(St({putSortable:Ge,cloneEl:Be,targetEl:D,rootEl:Ie,oldIndex:An,oldDraggableIndex:zn,newIndex:at,newDraggableIndex:Jt},e))}var D,$e,oe,Ie,fn,br,Be,Qt,An,at,zn,Jt,pr,Ge,Cn=!1,Or=!1,Sr=[],cn,vt,to,no,ri,oi,$n,Sn,Yn,qn=!1,hr=!1,yr,Qe,ro=[],lo=!1,Cr=[],Dr=typeof document<"u",vr=si,ii=Gn||Lt?"cssFloat":"float",Ea=Dr&&!li&&!si&&"draggable"in document.createElement("div"),hi=function(){if(Dr){if(Lt)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),vi=function(t,n){var r=Y(t),o=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),i=Tn(t,0,n),s=Tn(t,1,n),c=i&&Y(i),u=s&&Y(s),h=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+qe(i).width,m=u&&parseInt(u.marginLeft)+parseInt(u.marginRight)+qe(s).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&c.float&&c.float!=="none"){var g=c.float==="left"?"left":"right";return s&&(u.clear==="both"||u.clear===g)?"vertical":"horizontal"}return i&&(c.display==="block"||c.display==="flex"||c.display==="table"||c.display==="grid"||h>=o&&r[ii]==="none"||s&&r[ii]==="none"&&h+m>o)?"vertical":"horizontal"},xa=function(t,n,r){var o=r?t.left:t.top,i=r?t.right:t.bottom,s=r?t.width:t.height,c=r?n.left:n.top,u=r?n.right:n.bottom,h=r?n.width:n.height;return o===c||i===u||o+s/2===c+h/2},Oa=function(t,n){var r;return Sr.some(function(o){var i=o[st].options.emptyInsertThreshold;if(!(!i||po(o))){var s=qe(o),c=t>=s.left-i&&t<=s.right+i,u=n>=s.top-i&&n<=s.bottom+i;if(c&&u)return r=o}}),r},gi=function(t){function n(i,s){return function(c,u,h,m){var g=c.options.group.name&&u.options.group.name&&c.options.group.name===u.options.group.name;if(i==null&&(s||g))return!0;if(i==null||i===!1)return!1;if(s&&i==="clone")return i;if(typeof i=="function")return n(i(c,u,h,m),s)(c,u,h,m);var b=(s?c:u).options.group.name;return i===!0||typeof i=="string"&&i===b||i.join&&i.indexOf(b)>-1}}var r={},o=t.group;(!o||mr(o)!="object")&&(o={name:o}),r.name=o.name,r.checkPull=n(o.pull,!0),r.checkPut=n(o.put),r.revertClone=o.revertClone,t.group=r},mi=function(){!hi&&oe&&Y(oe,"display","none")},bi=function(){!hi&&oe&&Y(oe,"display","")};Dr&&!li&&document.addEventListener("click",function(e){if(Or)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Or=!1,!1},!0);var un=function(t){if(D){t=t.touches?t.touches[0]:t;var n=Oa(t.clientX,t.clientY);if(n){var r={};for(var o in t)t.hasOwnProperty(o)&&(r[o]=t[o]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[st]._onDragOver(r)}}},Sa=function(t){D&&D.parentNode[st]._isOutsideThisEl(t.target)};function q(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=It({},t),e[st]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return vi(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,c){s.setData("Text",c.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:q.supportPointer!==!1&&"PointerEvent"in window&&!Un,emptyInsertThreshold:5};Kn.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);gi(t);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=t.forceFallback?!1:Ea,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?we(e,"pointerdown",this._onTapStart):(we(e,"mousedown",this._onTapStart),we(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(we(e,"dragover",this),we(e,"dragenter",this)),Sr.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),It(this,ga())}q.prototype={constructor:q,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(Sn=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,D):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,r=this.el,o=this.options,i=o.preventOnFilter,s=t.type,c=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,u=(c||t).target,h=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||u,m=o.filter;if(Ra(r),!D&&!(/mousedown|pointerdown/.test(s)&&t.button!==0||o.disabled)&&!h.isContentEditable&&!(!this.nativeDraggable&&Un&&u&&u.tagName.toUpperCase()==="SELECT")&&(u=xt(u,o.draggable,r,!1),!(u&&u.animated)&&br!==u)){if(An=ct(u),zn=ct(u,o.draggable),typeof m=="function"){if(m.call(this,t,u,this)){et({sortable:n,rootEl:h,name:"filter",targetEl:u,toEl:r,fromEl:r}),rt("filter",n,{evt:t}),i&&t.cancelable&&t.preventDefault();return}}else if(m&&(m=m.split(",").some(function(g){if(g=xt(h,g.trim(),r,!1),g)return et({sortable:n,rootEl:g,name:"filter",targetEl:u,fromEl:r,toEl:r}),rt("filter",n,{evt:t}),!0}),m)){i&&t.cancelable&&t.preventDefault();return}o.handle&&!xt(h,o.handle,r,!1)||this._prepareDragStart(t,c,u)}}},_prepareDragStart:function(t,n,r){var o=this,i=o.el,s=o.options,c=i.ownerDocument,u;if(r&&!D&&r.parentNode===i){var h=qe(r);if(Ie=i,D=r,$e=D.parentNode,fn=D.nextSibling,br=r,pr=s.group,q.dragged=D,cn={target:D,clientX:(n||t).clientX,clientY:(n||t).clientY},ri=cn.clientX-h.left,oi=cn.clientY-h.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,D.style["will-change"]="all",u=function(){if(rt("delayEnded",o,{evt:t}),q.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!Zo&&o.nativeDraggable&&(D.draggable=!0),o._triggerDragStart(t,n),et({sortable:o,name:"choose",originalEvent:t}),it(D,s.chosenClass,!0)},s.ignore.split(",").forEach(function(m){ui(D,m.trim(),oo)}),we(c,"dragover",un),we(c,"mousemove",un),we(c,"touchmove",un),we(c,"mouseup",o._onDrop),we(c,"touchend",o._onDrop),we(c,"touchcancel",o._onDrop),Zo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,D.draggable=!0),rt("delayStart",this,{evt:t}),s.delay&&(!s.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Gn||Lt))){if(q.eventCanceled){this._onDrop();return}we(c,"mouseup",o._disableDelayedDrag),we(c,"touchend",o._disableDelayedDrag),we(c,"touchcancel",o._disableDelayedDrag),we(c,"mousemove",o._delayedDragTouchMoveHandler),we(c,"touchmove",o._delayedDragTouchMoveHandler),s.supportPointer&&we(c,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(u,s.delay)}else u()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){D&&oo(D),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;me(t,"mouseup",this._disableDelayedDrag),me(t,"touchend",this._disableDelayedDrag),me(t,"touchcancel",this._disableDelayedDrag),me(t,"mousemove",this._delayedDragTouchMoveHandler),me(t,"touchmove",this._delayedDragTouchMoveHandler),me(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?we(document,"pointermove",this._onTouchMove):n?we(document,"touchmove",this._onTouchMove):we(document,"mousemove",this._onTouchMove):(we(D,"dragend",this),we(Ie,"dragstart",this._onDragStart));try{document.selection?wr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(Cn=!1,Ie&&D){rt("dragStarted",this,{evt:n}),this.nativeDraggable&&we(document,"dragover",Sa);var r=this.options;!t&&it(D,r.dragClass,!1),it(D,r.ghostClass,!0),q.active=this,t&&this._appendGhost(),et({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(vt){this._lastX=vt.clientX,this._lastY=vt.clientY,mi();for(var t=document.elementFromPoint(vt.clientX,vt.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(vt.clientX,vt.clientY),t!==n);)n=t;if(D.parentNode[st]._isOutsideThisEl(t),n)do{if(n[st]){var r=void 0;if(r=n[st]._onDragOver({clientX:vt.clientX,clientY:vt.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);bi()}},_onTouchMove:function(t){if(cn){var n=this.options,r=n.fallbackTolerance,o=n.fallbackOffset,i=t.touches?t.touches[0]:t,s=oe&&Dn(oe,!0),c=oe&&s&&s.a,u=oe&&s&&s.d,h=vr&&Qe&&ni(Qe),m=(i.clientX-cn.clientX+o.x)/(c||1)+(h?h[0]-ro[0]:0)/(c||1),g=(i.clientY-cn.clientY+o.y)/(u||1)+(h?h[1]-ro[1]:0)/(u||1);if(!q.active&&!Cn){if(r&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(et({rootEl:$e,name:"add",toEl:$e,fromEl:Ie,originalEvent:t}),et({sortable:this,name:"remove",toEl:$e,originalEvent:t}),et({rootEl:$e,name:"sort",toEl:$e,fromEl:Ie,originalEvent:t}),et({sortable:this,name:"sort",toEl:$e,originalEvent:t})),Ge&&Ge.save()):at!==An&&at>=0&&(et({sortable:this,name:"update",toEl:$e,originalEvent:t}),et({sortable:this,name:"sort",toEl:$e,originalEvent:t})),q.active&&((at==null||at===-1)&&(at=An,Jt=zn),et({sortable:this,name:"end",toEl:$e,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){rt("nulling",this),Ie=D=$e=oe=fn=Be=br=Qt=cn=vt=$n=at=Jt=An=zn=Sn=Yn=Ge=pr=q.dragged=q.ghost=q.clone=q.active=null,Cr.forEach(function(t){t.checked=!0}),Cr.length=to=no=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":D&&(this._onDragOver(t),Ca(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,r=this.el.children,o=0,i=r.length,s=this.options;or.right+o||e.clientX<=r.right&&e.clientY>r.bottom&&e.clientX>=r.left:e.clientX>r.right&&e.clientY>r.top||e.clientX<=r.right&&e.clientY>r.bottom+o}function _a(e,t,n,r,o,i,s,c){var u=r?e.clientY:e.clientX,h=r?n.height:n.width,m=r?n.top:n.left,g=r?n.bottom:n.right,b=!1;if(!s){if(c&&yrm+h*i/2:ug-yr)return-Yn}else if(u>m+h*(1-o)/2&&ug-h*i/2)?u>m+h/2?1:-1:0}function Pa(e){return ct(D){e.directive("sortable",t=>{let n=parseInt(t.dataset?.sortableAnimationDuration);n!==0&&!n&&(n=300),t.sortable=go.create(t,{draggable:"[x-sortable-item]",handle:"[x-sortable-handle]",dataIdAttr:"x-sortable-item",animation:n,ghostClass:"fi-sortable-ghost"})})};var La=Object.create,yo=Object.defineProperty,Na=Object.getPrototypeOf,ka=Object.prototype.hasOwnProperty,ja=Object.getOwnPropertyNames,Fa=Object.getOwnPropertyDescriptor,Ba=e=>yo(e,"__esModule",{value:!0}),Ei=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),Ha=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ja(t))!ka.call(e,r)&&r!=="default"&&yo(e,r,{get:()=>t[r],enumerable:!(n=Fa(t,r))||n.enumerable});return e},xi=e=>Ha(Ba(yo(e!=null?La(Na(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),$a=Ei(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(l){var a=l.getBoundingClientRect();return{width:a.width,height:a.height,top:a.top,right:a.right,bottom:a.bottom,left:a.left,x:a.left,y:a.top}}function n(l){if(l==null)return window;if(l.toString()!=="[object Window]"){var a=l.ownerDocument;return a&&a.defaultView||window}return l}function r(l){var a=n(l),d=a.pageXOffset,E=a.pageYOffset;return{scrollLeft:d,scrollTop:E}}function o(l){var a=n(l).Element;return l instanceof a||l instanceof Element}function i(l){var a=n(l).HTMLElement;return l instanceof a||l instanceof HTMLElement}function s(l){if(typeof ShadowRoot>"u")return!1;var a=n(l).ShadowRoot;return l instanceof a||l instanceof ShadowRoot}function c(l){return{scrollLeft:l.scrollLeft,scrollTop:l.scrollTop}}function u(l){return l===n(l)||!i(l)?r(l):c(l)}function h(l){return l?(l.nodeName||"").toLowerCase():null}function m(l){return((o(l)?l.ownerDocument:l.document)||window.document).documentElement}function g(l){return t(m(l)).left+r(l).scrollLeft}function b(l){return n(l).getComputedStyle(l)}function O(l){var a=b(l),d=a.overflow,E=a.overflowX,x=a.overflowY;return/auto|scroll|overlay|hidden/.test(d+x+E)}function S(l,a,d){d===void 0&&(d=!1);var E=m(a),x=t(l),A=i(a),R={scrollLeft:0,scrollTop:0},P={x:0,y:0};return(A||!A&&!d)&&((h(a)!=="body"||O(E))&&(R=u(a)),i(a)?(P=t(a),P.x+=a.clientLeft,P.y+=a.clientTop):E&&(P.x=g(E))),{x:x.left+R.scrollLeft-P.x,y:x.top+R.scrollTop-P.y,width:x.width,height:x.height}}function T(l){var a=t(l),d=l.offsetWidth,E=l.offsetHeight;return Math.abs(a.width-d)<=1&&(d=a.width),Math.abs(a.height-E)<=1&&(E=a.height),{x:l.offsetLeft,y:l.offsetTop,width:d,height:E}}function F(l){return h(l)==="html"?l:l.assignedSlot||l.parentNode||(s(l)?l.host:null)||m(l)}function B(l){return["html","body","#document"].indexOf(h(l))>=0?l.ownerDocument.body:i(l)&&O(l)?l:B(F(l))}function L(l,a){var d;a===void 0&&(a=[]);var E=B(l),x=E===((d=l.ownerDocument)==null?void 0:d.body),A=n(E),R=x?[A].concat(A.visualViewport||[],O(E)?E:[]):E,P=a.concat(R);return x?P:P.concat(L(F(R)))}function K(l){return["table","td","th"].indexOf(h(l))>=0}function W(l){return!i(l)||b(l).position==="fixed"?null:l.offsetParent}function he(l){var a=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,d=navigator.userAgent.indexOf("Trident")!==-1;if(d&&i(l)){var E=b(l);if(E.position==="fixed")return null}for(var x=F(l);i(x)&&["html","body"].indexOf(h(x))<0;){var A=b(x);if(A.transform!=="none"||A.perspective!=="none"||A.contain==="paint"||["transform","perspective"].indexOf(A.willChange)!==-1||a&&A.willChange==="filter"||a&&A.filter&&A.filter!=="none")return x;x=x.parentNode}return null}function ee(l){for(var a=n(l),d=W(l);d&&K(d)&&b(d).position==="static";)d=W(d);return d&&(h(d)==="html"||h(d)==="body"&&b(d).position==="static")?a:d||he(l)||a}var Z="top",de="bottom",N="right",ae="left",ue="auto",Ce=[Z,de,N,ae],pe="start",ve="end",We="clippingParents",Le="viewport",Te="popper",tt="reference",Nt=Ce.reduce(function(l,a){return l.concat([a+"-"+pe,a+"-"+ve])},[]),dn=[].concat(Ce,[ue]).reduce(function(l,a){return l.concat([a,a+"-"+pe,a+"-"+ve])},[]),pn="beforeRead",_n="read",Tr="afterRead",_r="beforeMain",Pr="main",kt="afterMain",Jn="beforeWrite",Mr="write",Qn="afterWrite",Ct=[pn,_n,Tr,_r,Pr,kt,Jn,Mr,Qn];function Rr(l){var a=new Map,d=new Set,E=[];l.forEach(function(A){a.set(A.name,A)});function x(A){d.add(A.name);var R=[].concat(A.requires||[],A.requiresIfExists||[]);R.forEach(function(P){if(!d.has(P)){var j=a.get(P);j&&x(j)}}),E.push(A)}return l.forEach(function(A){d.has(A.name)||x(A)}),E}function ut(l){var a=Rr(l);return Ct.reduce(function(d,E){return d.concat(a.filter(function(x){return x.phase===E}))},[])}function jt(l){var a;return function(){return a||(a=new Promise(function(d){Promise.resolve().then(function(){a=void 0,d(l())})})),a}}function gt(l){for(var a=arguments.length,d=new Array(a>1?a-1:0),E=1;E=0,E=d&&i(l)?ee(l):l;return o(E)?a.filter(function(x){return o(x)&&Pn(x,E)&&h(x)!=="body"}):[]}function vn(l,a,d){var E=a==="clippingParents"?hn(l):[].concat(a),x=[].concat(E,[d]),A=x[0],R=x.reduce(function(P,j){var z=nr(l,j);return P.top=ft(z.top,P.top),P.right=en(z.right,P.right),P.bottom=en(z.bottom,P.bottom),P.left=ft(z.left,P.left),P},nr(l,A));return R.width=R.right-R.left,R.height=R.bottom-R.top,R.x=R.left,R.y=R.top,R}function tn(l){return l.split("-")[1]}function lt(l){return["top","bottom"].indexOf(l)>=0?"x":"y"}function rr(l){var a=l.reference,d=l.element,E=l.placement,x=E?nt(E):null,A=E?tn(E):null,R=a.x+a.width/2-d.width/2,P=a.y+a.height/2-d.height/2,j;switch(x){case Z:j={x:R,y:a.y-d.height};break;case de:j={x:R,y:a.y+a.height};break;case N:j={x:a.x+a.width,y:P};break;case ae:j={x:a.x-d.width,y:P};break;default:j={x:a.x,y:a.y}}var z=x?lt(x):null;if(z!=null){var I=z==="y"?"height":"width";switch(A){case pe:j[z]=j[z]-(a[I]/2-d[I]/2);break;case ve:j[z]=j[z]+(a[I]/2-d[I]/2);break}}return j}function or(){return{top:0,right:0,bottom:0,left:0}}function ir(l){return Object.assign({},or(),l)}function ar(l,a){return a.reduce(function(d,E){return d[E]=l,d},{})}function Ht(l,a){a===void 0&&(a={});var d=a,E=d.placement,x=E===void 0?l.placement:E,A=d.boundary,R=A===void 0?We:A,P=d.rootBoundary,j=P===void 0?Le:P,z=d.elementContext,I=z===void 0?Te:z,Ee=d.altBoundary,Me=Ee===void 0?!1:Ee,ye=d.padding,fe=ye===void 0?0:ye,Ae=ir(typeof fe!="number"?fe:ar(fe,Ce)),ge=I===Te?tt:Te,ke=l.elements.reference,De=l.rects.popper,je=l.elements[Me?ge:I],J=vn(o(je)?je:je.contextElement||m(l.elements.popper),R,j),Se=t(ke),xe=rr({reference:Se,element:De,strategy:"absolute",placement:x}),Re=Bt(Object.assign({},De,xe)),Pe=I===Te?Re:Se,Ve={top:J.top-Pe.top+Ae.top,bottom:Pe.bottom-J.bottom+Ae.bottom,left:J.left-Pe.left+Ae.left,right:Pe.right-J.right+Ae.right},Fe=l.modifiersData.offset;if(I===Te&&Fe){var He=Fe[x];Object.keys(Ve).forEach(function(ht){var Je=[N,de].indexOf(ht)>=0?1:-1,Dt=[Z,de].indexOf(ht)>=0?"y":"x";Ve[ht]+=He[Dt]*Je})}return Ve}var sr="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",jr="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",gn={placement:"bottom",modifiers:[],strategy:"absolute"};function nn(){for(var l=arguments.length,a=new Array(l),d=0;d100){console.error(jr);break}if(I.reset===!0){I.reset=!1,Se=-1;continue}var xe=I.orderedModifiers[Se],Re=xe.fn,Pe=xe.options,Ve=Pe===void 0?{}:Pe,Fe=xe.name;typeof Re=="function"&&(I=Re({state:I,options:Ve,name:Fe,instance:ye})||I)}}},update:jt(function(){return new Promise(function(ge){ye.forceUpdate(),ge(I)})}),destroy:function(){Ae(),Me=!0}};if(!nn(P,j))return console.error(sr),ye;ye.setOptions(z).then(function(ge){!Me&&z.onFirstUpdate&&z.onFirstUpdate(ge)});function fe(){I.orderedModifiers.forEach(function(ge){var ke=ge.name,De=ge.options,je=De===void 0?{}:De,J=ge.effect;if(typeof J=="function"){var Se=J({state:I,name:ke,instance:ye,options:je}),xe=function(){};Ee.push(Se||xe)}})}function Ae(){Ee.forEach(function(ge){return ge()}),Ee=[]}return ye}}var bn={passive:!0};function Fr(l){var a=l.state,d=l.instance,E=l.options,x=E.scroll,A=x===void 0?!0:x,R=E.resize,P=R===void 0?!0:R,j=n(a.elements.popper),z=[].concat(a.scrollParents.reference,a.scrollParents.popper);return A&&z.forEach(function(I){I.addEventListener("scroll",d.update,bn)}),P&&j.addEventListener("resize",d.update,bn),function(){A&&z.forEach(function(I){I.removeEventListener("scroll",d.update,bn)}),P&&j.removeEventListener("resize",d.update,bn)}}var Mn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Fr,data:{}};function Br(l){var a=l.state,d=l.name;a.modifiersData[d]=rr({reference:a.rects.reference,element:a.rects.popper,strategy:"absolute",placement:a.placement})}var Rn={name:"popperOffsets",enabled:!0,phase:"read",fn:Br,data:{}},Hr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function $r(l){var a=l.x,d=l.y,E=window,x=E.devicePixelRatio||1;return{x:Ft(Ft(a*x)/x)||0,y:Ft(Ft(d*x)/x)||0}}function In(l){var a,d=l.popper,E=l.popperRect,x=l.placement,A=l.offsets,R=l.position,P=l.gpuAcceleration,j=l.adaptive,z=l.roundOffsets,I=z===!0?$r(A):typeof z=="function"?z(A):A,Ee=I.x,Me=Ee===void 0?0:Ee,ye=I.y,fe=ye===void 0?0:ye,Ae=A.hasOwnProperty("x"),ge=A.hasOwnProperty("y"),ke=ae,De=Z,je=window;if(j){var J=ee(d),Se="clientHeight",xe="clientWidth";J===n(d)&&(J=m(d),b(J).position!=="static"&&(Se="scrollHeight",xe="scrollWidth")),J=J,x===Z&&(De=de,fe-=J[Se]-E.height,fe*=P?1:-1),x===ae&&(ke=N,Me-=J[xe]-E.width,Me*=P?1:-1)}var Re=Object.assign({position:R},j&&Hr);if(P){var Pe;return Object.assign({},Re,(Pe={},Pe[De]=ge?"0":"",Pe[ke]=Ae?"0":"",Pe.transform=(je.devicePixelRatio||1)<2?"translate("+Me+"px, "+fe+"px)":"translate3d("+Me+"px, "+fe+"px, 0)",Pe))}return Object.assign({},Re,(a={},a[De]=ge?fe+"px":"",a[ke]=Ae?Me+"px":"",a.transform="",a))}function f(l){var a=l.state,d=l.options,E=d.gpuAcceleration,x=E===void 0?!0:E,A=d.adaptive,R=A===void 0?!0:A,P=d.roundOffsets,j=P===void 0?!0:P,z=b(a.elements.popper).transitionProperty||"";R&&["transform","top","right","bottom","left"].some(function(Ee){return z.indexOf(Ee)>=0})&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',` +(()=>{var Io=Object.create;var Oi=Object.defineProperty;var Fo=Object.getOwnPropertyDescriptor;var No=Object.getOwnPropertyNames;var Lo=Object.getPrototypeOf,ko=Object.prototype.hasOwnProperty;var Ur=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var jo=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of No(t))!ko.call(e,o)&&o!==n&&Oi(e,o,{get:()=>t[o],enumerable:!(r=Fo(t,o))||r.enumerable});return e};var Bo=(e,t,n)=>(n=e!=null?Io(Lo(e)):{},jo(t||!e||!e.__esModule?Oi(n,"default",{value:e,enumerable:!0}):n,e));var eo=Ur(()=>{});var to=Ur(()=>{});var no=Ur((hs,pr)=>{(function(){"use strict";var e="input is invalid type",t="finalize already called",n=typeof window=="object",r=n?window:{};r.JS_MD5_NO_WINDOW&&(n=!1);var o=!n&&typeof self=="object",i=!r.JS_MD5_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;i?r=global:o&&(r=self);var s=!r.JS_MD5_NO_COMMON_JS&&typeof pr=="object"&&pr.exports,u=typeof define=="function"&&define.amd,h=!r.JS_MD5_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",p="0123456789abcdef".split(""),x=[128,32768,8388608,-2147483648],b=[0,8,16,24],E=["hex","array","digest","buffer","arrayBuffer","base64"],_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),C=[],M;if(h){var U=new ArrayBuffer(68);M=new Uint8Array(U),C=new Uint32Array(U)}var V=Array.isArray;(r.JS_MD5_NO_NODE_JS||!V)&&(V=function(l){return Object.prototype.toString.call(l)==="[object Array]"});var B=ArrayBuffer.isView;h&&(r.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW||!B)&&(B=function(l){return typeof l=="object"&&l.buffer&&l.buffer.constructor===ArrayBuffer});var Q=function(l){var d=typeof l;if(d==="string")return[l,!0];if(d!=="object"||l===null)throw new Error(e);if(h&&l.constructor===ArrayBuffer)return[new Uint8Array(l),!1];if(!V(l)&&!B(l))throw new Error(e);return[l,!1]},q=function(l){return function(d){return new R(!0).update(d)[l]()}},xe=function(){var l=q("hex");i&&(l=se(l)),l.create=function(){return new R},l.update=function(c){return l.create().update(c)};for(var d=0;d>>6,ze[T++]=128|c&63):c<55296||c>=57344?(ze[T++]=224|c>>>12,ze[T++]=128|c>>>6&63,ze[T++]=128|c&63):(c=65536+((c&1023)<<10|l.charCodeAt(++H)&1023),ze[T++]=240|c>>>18,ze[T++]=128|c>>>12&63,ze[T++]=128|c>>>6&63,ze[T++]=128|c&63);else for(T=this.start;H>>2]|=c<>>2]|=(192|c>>>6)<>>2]|=(128|c&63)<=57344?(G[T>>>2]|=(224|c>>>12)<>>2]|=(128|c>>>6&63)<>>2]|=(128|c&63)<>>2]|=(240|c>>>18)<>>2]|=(128|c>>>12&63)<>>2]|=(128|c>>>6&63)<>>2]|=(128|c&63)<>>2]|=l[H]<=64?(this.start=T-64,this.hash(),this.hashed=!0):this.start=T}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},R.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var l=this.blocks,d=this.lastByteIndex;l[d>>>2]|=x[d&3],d>=56&&(this.hashed||this.hash(),l[0]=l[16],l[16]=l[1]=l[2]=l[3]=l[4]=l[5]=l[6]=l[7]=l[8]=l[9]=l[10]=l[11]=l[12]=l[13]=l[14]=l[15]=0),l[14]=this.bytes<<3,l[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},R.prototype.hash=function(){var l,d,v,c,H,T,P=this.blocks;this.first?(l=P[0]-680876937,l=(l<<7|l>>>25)-271733879<<0,c=(-1732584194^l&2004318071)+P[1]-117830708,c=(c<<12|c>>>20)+l<<0,v=(-271733879^c&(l^-271733879))+P[2]-1126478375,v=(v<<17|v>>>15)+c<<0,d=(l^v&(c^l))+P[3]-1316259209,d=(d<<22|d>>>10)+v<<0):(l=this.h0,d=this.h1,v=this.h2,c=this.h3,l+=(c^d&(v^c))+P[0]-680876936,l=(l<<7|l>>>25)+d<<0,c+=(v^l&(d^v))+P[1]-389564586,c=(c<<12|c>>>20)+l<<0,v+=(d^c&(l^d))+P[2]+606105819,v=(v<<17|v>>>15)+c<<0,d+=(l^v&(c^l))+P[3]-1044525330,d=(d<<22|d>>>10)+v<<0),l+=(c^d&(v^c))+P[4]-176418897,l=(l<<7|l>>>25)+d<<0,c+=(v^l&(d^v))+P[5]+1200080426,c=(c<<12|c>>>20)+l<<0,v+=(d^c&(l^d))+P[6]-1473231341,v=(v<<17|v>>>15)+c<<0,d+=(l^v&(c^l))+P[7]-45705983,d=(d<<22|d>>>10)+v<<0,l+=(c^d&(v^c))+P[8]+1770035416,l=(l<<7|l>>>25)+d<<0,c+=(v^l&(d^v))+P[9]-1958414417,c=(c<<12|c>>>20)+l<<0,v+=(d^c&(l^d))+P[10]-42063,v=(v<<17|v>>>15)+c<<0,d+=(l^v&(c^l))+P[11]-1990404162,d=(d<<22|d>>>10)+v<<0,l+=(c^d&(v^c))+P[12]+1804603682,l=(l<<7|l>>>25)+d<<0,c+=(v^l&(d^v))+P[13]-40341101,c=(c<<12|c>>>20)+l<<0,v+=(d^c&(l^d))+P[14]-1502002290,v=(v<<17|v>>>15)+c<<0,d+=(l^v&(c^l))+P[15]+1236535329,d=(d<<22|d>>>10)+v<<0,l+=(v^c&(d^v))+P[1]-165796510,l=(l<<5|l>>>27)+d<<0,c+=(d^v&(l^d))+P[6]-1069501632,c=(c<<9|c>>>23)+l<<0,v+=(l^d&(c^l))+P[11]+643717713,v=(v<<14|v>>>18)+c<<0,d+=(c^l&(v^c))+P[0]-373897302,d=(d<<20|d>>>12)+v<<0,l+=(v^c&(d^v))+P[5]-701558691,l=(l<<5|l>>>27)+d<<0,c+=(d^v&(l^d))+P[10]+38016083,c=(c<<9|c>>>23)+l<<0,v+=(l^d&(c^l))+P[15]-660478335,v=(v<<14|v>>>18)+c<<0,d+=(c^l&(v^c))+P[4]-405537848,d=(d<<20|d>>>12)+v<<0,l+=(v^c&(d^v))+P[9]+568446438,l=(l<<5|l>>>27)+d<<0,c+=(d^v&(l^d))+P[14]-1019803690,c=(c<<9|c>>>23)+l<<0,v+=(l^d&(c^l))+P[3]-187363961,v=(v<<14|v>>>18)+c<<0,d+=(c^l&(v^c))+P[8]+1163531501,d=(d<<20|d>>>12)+v<<0,l+=(v^c&(d^v))+P[13]-1444681467,l=(l<<5|l>>>27)+d<<0,c+=(d^v&(l^d))+P[2]-51403784,c=(c<<9|c>>>23)+l<<0,v+=(l^d&(c^l))+P[7]+1735328473,v=(v<<14|v>>>18)+c<<0,d+=(c^l&(v^c))+P[12]-1926607734,d=(d<<20|d>>>12)+v<<0,H=d^v,l+=(H^c)+P[5]-378558,l=(l<<4|l>>>28)+d<<0,c+=(H^l)+P[8]-2022574463,c=(c<<11|c>>>21)+l<<0,T=c^l,v+=(T^d)+P[11]+1839030562,v=(v<<16|v>>>16)+c<<0,d+=(T^v)+P[14]-35309556,d=(d<<23|d>>>9)+v<<0,H=d^v,l+=(H^c)+P[1]-1530992060,l=(l<<4|l>>>28)+d<<0,c+=(H^l)+P[4]+1272893353,c=(c<<11|c>>>21)+l<<0,T=c^l,v+=(T^d)+P[7]-155497632,v=(v<<16|v>>>16)+c<<0,d+=(T^v)+P[10]-1094730640,d=(d<<23|d>>>9)+v<<0,H=d^v,l+=(H^c)+P[13]+681279174,l=(l<<4|l>>>28)+d<<0,c+=(H^l)+P[0]-358537222,c=(c<<11|c>>>21)+l<<0,T=c^l,v+=(T^d)+P[3]-722521979,v=(v<<16|v>>>16)+c<<0,d+=(T^v)+P[6]+76029189,d=(d<<23|d>>>9)+v<<0,H=d^v,l+=(H^c)+P[9]-640364487,l=(l<<4|l>>>28)+d<<0,c+=(H^l)+P[12]-421815835,c=(c<<11|c>>>21)+l<<0,T=c^l,v+=(T^d)+P[15]+530742520,v=(v<<16|v>>>16)+c<<0,d+=(T^v)+P[2]-995338651,d=(d<<23|d>>>9)+v<<0,l+=(v^(d|~c))+P[0]-198630844,l=(l<<6|l>>>26)+d<<0,c+=(d^(l|~v))+P[7]+1126891415,c=(c<<10|c>>>22)+l<<0,v+=(l^(c|~d))+P[14]-1416354905,v=(v<<15|v>>>17)+c<<0,d+=(c^(v|~l))+P[5]-57434055,d=(d<<21|d>>>11)+v<<0,l+=(v^(d|~c))+P[12]+1700485571,l=(l<<6|l>>>26)+d<<0,c+=(d^(l|~v))+P[3]-1894986606,c=(c<<10|c>>>22)+l<<0,v+=(l^(c|~d))+P[10]-1051523,v=(v<<15|v>>>17)+c<<0,d+=(c^(v|~l))+P[1]-2054922799,d=(d<<21|d>>>11)+v<<0,l+=(v^(d|~c))+P[8]+1873313359,l=(l<<6|l>>>26)+d<<0,c+=(d^(l|~v))+P[15]-30611744,c=(c<<10|c>>>22)+l<<0,v+=(l^(c|~d))+P[6]-1560198380,v=(v<<15|v>>>17)+c<<0,d+=(c^(v|~l))+P[13]+1309151649,d=(d<<21|d>>>11)+v<<0,l+=(v^(d|~c))+P[4]-145523070,l=(l<<6|l>>>26)+d<<0,c+=(d^(l|~v))+P[11]-1120210379,c=(c<<10|c>>>22)+l<<0,v+=(l^(c|~d))+P[2]+718787259,v=(v<<15|v>>>17)+c<<0,d+=(c^(v|~l))+P[9]-343485551,d=(d<<21|d>>>11)+v<<0,this.first?(this.h0=l+1732584193<<0,this.h1=d-271733879<<0,this.h2=v-1732584194<<0,this.h3=c+271733878<<0,this.first=!1):(this.h0=this.h0+l<<0,this.h1=this.h1+d<<0,this.h2=this.h2+v<<0,this.h3=this.h3+c<<0)},R.prototype.hex=function(){this.finalize();var l=this.h0,d=this.h1,v=this.h2,c=this.h3;return p[l>>>4&15]+p[l&15]+p[l>>>12&15]+p[l>>>8&15]+p[l>>>20&15]+p[l>>>16&15]+p[l>>>28&15]+p[l>>>24&15]+p[d>>>4&15]+p[d&15]+p[d>>>12&15]+p[d>>>8&15]+p[d>>>20&15]+p[d>>>16&15]+p[d>>>28&15]+p[d>>>24&15]+p[v>>>4&15]+p[v&15]+p[v>>>12&15]+p[v>>>8&15]+p[v>>>20&15]+p[v>>>16&15]+p[v>>>28&15]+p[v>>>24&15]+p[c>>>4&15]+p[c&15]+p[c>>>12&15]+p[c>>>8&15]+p[c>>>20&15]+p[c>>>16&15]+p[c>>>28&15]+p[c>>>24&15]},R.prototype.toString=R.prototype.hex,R.prototype.digest=function(){this.finalize();var l=this.h0,d=this.h1,v=this.h2,c=this.h3;return[l&255,l>>>8&255,l>>>16&255,l>>>24&255,d&255,d>>>8&255,d>>>16&255,d>>>24&255,v&255,v>>>8&255,v>>>16&255,v>>>24&255,c&255,c>>>8&255,c>>>16&255,c>>>24&255]},R.prototype.array=R.prototype.digest,R.prototype.arrayBuffer=function(){this.finalize();var l=new ArrayBuffer(16),d=new Uint32Array(l);return d[0]=this.h0,d[1]=this.h1,d[2]=this.h2,d[3]=this.h3,l},R.prototype.buffer=R.prototype.arrayBuffer,R.prototype.base64=function(){for(var l,d,v,c="",H=this.array(),T=0;T<15;)l=H[T++],d=H[T++],v=H[T++],c+=_[l>>>2]+_[(l<<4|d>>>4)&63]+_[(d<<2|v>>>6)&63]+_[v&63];return l=H[T],c+=_[l>>>2]+_[l<<4&63]+"==",c};function fe(l,d){var v,c=Q(l);if(l=c[0],c[1]){var H=[],T=l.length,P=0,G;for(v=0;v>>6,H[P++]=128|G&63):G<55296||G>=57344?(H[P++]=224|G>>>12,H[P++]=128|G>>>6&63,H[P++]=128|G&63):(G=65536+((G&1023)<<10|l.charCodeAt(++v)&1023),H[P++]=240|G>>>18,H[P++]=128|G>>>12&63,H[P++]=128|G>>>6&63,H[P++]=128|G&63);l=H}l.length>64&&(l=new R(!0).update(l).array());var ze=[],Dt=[];for(v=0;v<64;++v){var jt=l[v]||0;ze[v]=92^jt,Dt[v]=54^jt}R.call(this,d),this.update(Dt),this.oKeyPad=ze,this.inner=!0,this.sharedMemory=d}fe.prototype=new R,fe.prototype.finalize=function(){if(R.prototype.finalize.call(this),this.inner){this.inner=!1;var l=this.array();R.call(this,this.sharedMemory),this.update(this.oKeyPad),this.update(l),R.prototype.finalize.call(this)}};var ce=xe();ce.md5=ce,ce.md5.hmac=be(),s?pr.exports=ce:(r.md5=ce,u&&define(function(){return ce}))})()});function Ot(e){return e.split("-")[0]}function cn(e){return e.split("-")[1]}function On(e){return["top","bottom"].includes(Ot(e))?"x":"y"}function Gr(e){return e==="y"?"height":"width"}function Si(e,t,n){let{reference:r,floating:o}=e,i=r.x+r.width/2-o.width/2,s=r.y+r.height/2-o.height/2,u=On(t),h=Gr(u),p=r[h]/2-o[h]/2,x=Ot(t),b=u==="x",E;switch(x){case"top":E={x:i,y:r.y-o.height};break;case"bottom":E={x:i,y:r.y+r.height};break;case"right":E={x:r.x+r.width,y:s};break;case"left":E={x:r.x-o.width,y:s};break;default:E={x:r.x,y:r.y}}switch(cn(t)){case"start":E[u]-=p*(n&&b?-1:1);break;case"end":E[u]+=p*(n&&b?-1:1);break}return E}var Ho=async(e,t,n)=>{let{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:s}=n,u=await(s.isRTL==null?void 0:s.isRTL(t));if(s==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),i.filter(C=>{let{name:M}=C;return M==="autoPlacement"||M==="flip"}).length>1)throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let h=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:p,y:x}=Si(h,r,u),b=r,E={},_=0;for(let C=0;C100)throw new Error(["Floating UI: The middleware lifecycle appears to be","running in an infinite loop. This is usually caused by a `reset`","continually being returned without a break condition."].join(" "));let{name:M,fn:U}=i[C],{x:V,y:B,data:Q,reset:q}=await U({x:p,y:x,initialPlacement:r,placement:b,strategy:o,middlewareData:E,rects:h,platform:s,elements:{reference:e,floating:t}});if(p=V??p,x=B??x,E={...E,[M]:{...E[M],...Q}},q){typeof q=="object"&&(q.placement&&(b=q.placement),q.rects&&(h=q.rects===!0?await s.getElementRects({reference:e,floating:t,strategy:o}):q.rects),{x:p,y:x}=Si(h,b,u)),C=-1;continue}}return{x:p,y:x,placement:b,strategy:o,middlewareData:E}};function $o(e){return{top:0,right:0,bottom:0,left:0,...e}}function Kr(e){return typeof e!="number"?$o(e):{top:e,right:e,bottom:e,left:e}}function Bn(e){return{...e,top:e.y,left:e.x,right:e.x+e.width,bottom:e.y+e.height}}async function En(e,t){var n;t===void 0&&(t={});let{x:r,y:o,platform:i,rects:s,elements:u,strategy:h}=e,{boundary:p="clippingAncestors",rootBoundary:x="viewport",elementContext:b="floating",altBoundary:E=!1,padding:_=0}=t,C=Kr(_),U=u[E?b==="floating"?"reference":"floating":b],V=Bn(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(U)))==null||n?U:U.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(u.floating)),boundary:p,rootBoundary:x,strategy:h})),B=Bn(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({rect:b==="floating"?{...s.floating,x:r,y:o}:s.reference,offsetParent:await(i.getOffsetParent==null?void 0:i.getOffsetParent(u.floating)),strategy:h}):s[b]);return{top:V.top-B.top+C.top,bottom:B.bottom-V.bottom+C.bottom,left:V.left-B.left+C.left,right:B.right-V.right+C.right}}var Ni=Math.min,Jt=Math.max;function Yr(e,t,n){return Jt(e,Ni(t,n))}var Li=e=>({name:"arrow",options:e,async fn(t){let{element:n,padding:r=0}=e??{},{x:o,y:i,placement:s,rects:u,platform:h}=t;if(n==null)return console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};let p=Kr(r),x={x:o,y:i},b=On(s),E=Gr(b),_=await h.getDimensions(n),C=b==="y"?"top":"left",M=b==="y"?"bottom":"right",U=u.reference[E]+u.reference[b]-x[b]-u.floating[E],V=x[b]-u.reference[b],B=await(h.getOffsetParent==null?void 0:h.getOffsetParent(n)),Q=B?b==="y"?B.clientHeight||0:B.clientWidth||0:0,q=U/2-V/2,xe=p[C],se=Q-_[E]-p[M],ie=Q/2-_[E]/2+q,be=Yr(xe,ie,se);return{data:{[b]:be,centerOffset:ie-be}}}}),Wo={left:"right",right:"left",bottom:"top",top:"bottom"};function lr(e){return e.replace(/left|right|bottom|top/g,t=>Wo[t])}function ki(e,t,n){n===void 0&&(n=!1);let r=cn(e),o=On(e),i=Gr(o),s=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(s=lr(s)),{main:s,cross:lr(s)}}var Vo={start:"end",end:"start"};function Xr(e){return e.replace(/start|end/g,t=>Vo[t])}var ji=["top","right","bottom","left"],Uo=ji.reduce((e,t)=>e.concat(t,t+"-start",t+"-end"),[]);function zo(e,t,n){return(e?[...n.filter(o=>cn(o)===e),...n.filter(o=>cn(o)!==e)]:n.filter(o=>Ot(o)===o)).filter(o=>e?cn(o)===e||(t?Xr(o)!==o:!1):!0)}var Jr=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o,i,s;let{x:u,y:h,rects:p,middlewareData:x,placement:b,platform:E,elements:_}=t,{alignment:C=null,allowedPlacements:M=Uo,autoAlignment:U=!0,...V}=e,B=zo(C,U,M),Q=await En(t,V),q=(n=(r=x.autoPlacement)==null?void 0:r.index)!=null?n:0,xe=B[q];if(xe==null)return{};let{main:se,cross:ie}=ki(xe,p,await(E.isRTL==null?void 0:E.isRTL(_.floating)));if(b!==xe)return{x:u,y:h,reset:{placement:B[0]}};let be=[Q[Ot(xe)],Q[se],Q[ie]],R=[...(o=(i=x.autoPlacement)==null?void 0:i.overflows)!=null?o:[],{placement:xe,overflows:be}],fe=B[q+1];if(fe)return{data:{index:q+1,overflows:R},reset:{placement:fe}};let ce=R.slice().sort((v,c)=>v.overflows[0]-c.overflows[0]),l=(s=ce.find(v=>{let{overflows:c}=v;return c.every(H=>H<=0)}))==null?void 0:s.placement,d=l??ce[0].placement;return d!==b?{data:{index:q+1,overflows:R},reset:{placement:d}}:{}}}};function Yo(e){let t=lr(e);return[Xr(e),t,Xr(t)]}var Bi=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n;let{placement:r,middlewareData:o,rects:i,initialPlacement:s,platform:u,elements:h}=t,{mainAxis:p=!0,crossAxis:x=!0,fallbackPlacements:b,fallbackStrategy:E="bestFit",flipAlignment:_=!0,...C}=e,M=Ot(r),V=b||(M===s||!_?[lr(s)]:Yo(s)),B=[s,...V],Q=await En(t,C),q=[],xe=((n=o.flip)==null?void 0:n.overflows)||[];if(p&&q.push(Q[M]),x){let{main:R,cross:fe}=ki(r,i,await(u.isRTL==null?void 0:u.isRTL(h.floating)));q.push(Q[R],Q[fe])}if(xe=[...xe,{placement:r,overflows:q}],!q.every(R=>R<=0)){var se,ie;let R=((se=(ie=o.flip)==null?void 0:ie.index)!=null?se:0)+1,fe=B[R];if(fe)return{data:{index:R,overflows:xe},reset:{placement:fe}};let ce="bottom";switch(E){case"bestFit":{var be;let l=(be=xe.map(d=>[d,d.overflows.filter(v=>v>0).reduce((v,c)=>v+c,0)]).sort((d,v)=>d[1]-v[1])[0])==null?void 0:be[0].placement;l&&(ce=l);break}case"initialPlacement":ce=s;break}if(r!==ce)return{reset:{placement:ce}}}return{}}}};function Ai(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Ci(e){return ji.some(t=>e[t]>=0)}var Hi=function(e){let{strategy:t="referenceHidden",...n}=e===void 0?{}:e;return{name:"hide",async fn(r){let{rects:o}=r;switch(t){case"referenceHidden":{let i=await En(r,{...n,elementContext:"reference"}),s=Ai(i,o.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ci(s)}}}case"escaped":{let i=await En(r,{...n,altBoundary:!0}),s=Ai(i,o.floating);return{data:{escapedOffsets:s,escaped:Ci(s)}}}default:return{}}}}};function Xo(e,t,n,r){r===void 0&&(r=!1);let o=Ot(e),i=cn(e),s=On(e)==="x",u=["left","top"].includes(o)?-1:1,h=r&&s?-1:1,p=typeof n=="function"?n({...t,placement:e}):n,{mainAxis:x,crossAxis:b,alignmentAxis:E}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...p};return i&&typeof E=="number"&&(b=i==="end"?E*-1:E),s?{x:b*h,y:x*u}:{x:x*u,y:b*h}}var $i=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){let{x:n,y:r,placement:o,rects:i,platform:s,elements:u}=t,h=Xo(o,i,e,await(s.isRTL==null?void 0:s.isRTL(u.floating)));return{x:n+h.x,y:r+h.y,data:h}}}};function qo(e){return e==="x"?"y":"x"}var Wi=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:s=!1,limiter:u={fn:U=>{let{x:V,y:B}=U;return{x:V,y:B}}},...h}=e,p={x:n,y:r},x=await En(t,h),b=On(Ot(o)),E=qo(b),_=p[b],C=p[E];if(i){let U=b==="y"?"top":"left",V=b==="y"?"bottom":"right",B=_+x[U],Q=_-x[V];_=Yr(B,_,Q)}if(s){let U=E==="y"?"top":"left",V=E==="y"?"bottom":"right",B=C+x[U],Q=C-x[V];C=Yr(B,C,Q)}let M=u.fn({...t,[b]:_,[E]:C});return{...M,data:{x:M.x-n,y:M.y-r}}}}},Vi=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){let{placement:n,rects:r,platform:o,elements:i}=t,{apply:s,...u}=e,h=await En(t,u),p=Ot(n),x=cn(n),b,E;p==="top"||p==="bottom"?(b=p,E=x===(await(o.isRTL==null?void 0:o.isRTL(i.floating))?"start":"end")?"left":"right"):(E=p,b=x==="end"?"top":"bottom");let _=Jt(h.left,0),C=Jt(h.right,0),M=Jt(h.top,0),U=Jt(h.bottom,0),V={height:r.floating.height-(["left","right"].includes(n)?2*(M!==0||U!==0?M+U:Jt(h.top,h.bottom)):h[b]),width:r.floating.width-(["top","bottom"].includes(n)?2*(_!==0||C!==0?_+C:Jt(h.left,h.right)):h[E])},B=await o.getDimensions(i.floating);s?.({...V,...r});let Q=await o.getDimensions(i.floating);return B.width!==Q.width||B.height!==Q.height?{reset:{rects:!0}}:{}}}},Ui=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(t){var n;let{placement:r,elements:o,rects:i,platform:s,strategy:u}=t,{padding:h=2,x:p,y:x}=e,b=Bn(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({rect:i.reference,offsetParent:await(s.getOffsetParent==null?void 0:s.getOffsetParent(o.floating)),strategy:u}):i.reference),E=(n=await(s.getClientRects==null?void 0:s.getClientRects(o.reference)))!=null?n:[],_=Kr(h);function C(){if(E.length===2&&E[0].left>E[1].right&&p!=null&&x!=null){var U;return(U=E.find(V=>p>V.left-_.left&&pV.top-_.top&&x=2){if(On(r)==="x"){let ce=E[0],l=E[E.length-1],d=Ot(r)==="top",v=ce.top,c=l.bottom,H=d?ce.left:l.left,T=d?ce.right:l.right,P=T-H,G=c-v;return{top:v,bottom:c,left:H,right:T,width:P,height:G,x:H,y:v}}let V=Ot(r)==="left",B=Jt(...E.map(ce=>ce.right)),Q=Ni(...E.map(ce=>ce.left)),q=E.filter(ce=>V?ce.left===Q:ce.right===B),xe=q[0].top,se=q[q.length-1].bottom,ie=Q,be=B,R=be-ie,fe=se-xe;return{top:xe,bottom:se,left:ie,right:be,width:R,height:fe,x:ie,y:xe}}return b}let M=await s.getElementRects({reference:{getBoundingClientRect:C},floating:o.floating,strategy:u});return i.reference.x!==M.reference.x||i.reference.y!==M.reference.y||i.reference.width!==M.reference.width||i.reference.height!==M.reference.height?{reset:{rects:M}}:{}}}};function zi(e){return e&&e.document&&e.location&&e.alert&&e.setInterval}function Ft(e){if(e==null)return window;if(!zi(e)){let t=e.ownerDocument;return t&&t.defaultView||window}return e}function Hn(e){return Ft(e).getComputedStyle(e)}function Rt(e){return zi(e)?"":e?(e.nodeName||"").toLowerCase():""}function St(e){return e instanceof Ft(e).HTMLElement}function Qt(e){return e instanceof Ft(e).Element}function Go(e){return e instanceof Ft(e).Node}function Qr(e){if(typeof ShadowRoot>"u")return!1;let t=Ft(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function cr(e){let{overflow:t,overflowX:n,overflowY:r}=Hn(e);return/auto|scroll|overlay|hidden/.test(t+r+n)}function Ko(e){return["table","td","th"].includes(Rt(e))}function Yi(e){let t=navigator.userAgent.toLowerCase().includes("firefox"),n=Hn(e);return n.transform!=="none"||n.perspective!=="none"||n.contain==="paint"||["transform","perspective"].includes(n.willChange)||t&&n.willChange==="filter"||t&&(n.filter?n.filter!=="none":!1)}function Xi(){return!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}var Di=Math.min,kn=Math.max,fr=Math.round;function It(e,t,n){var r,o,i,s;t===void 0&&(t=!1),n===void 0&&(n=!1);let u=e.getBoundingClientRect(),h=1,p=1;t&&St(e)&&(h=e.offsetWidth>0&&fr(u.width)/e.offsetWidth||1,p=e.offsetHeight>0&&fr(u.height)/e.offsetHeight||1);let x=Qt(e)?Ft(e):window,b=!Xi()&&n,E=(u.left+(b&&(r=(o=x.visualViewport)==null?void 0:o.offsetLeft)!=null?r:0))/h,_=(u.top+(b&&(i=(s=x.visualViewport)==null?void 0:s.offsetTop)!=null?i:0))/p,C=u.width/h,M=u.height/p;return{width:C,height:M,top:_,right:E+C,bottom:_+M,left:E,x:E,y:_}}function Zt(e){return((Go(e)?e.ownerDocument:e.document)||window.document).documentElement}function dr(e){return Qt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function qi(e){return It(Zt(e)).left+dr(e).scrollLeft}function Jo(e){let t=It(e);return fr(t.width)!==e.offsetWidth||fr(t.height)!==e.offsetHeight}function Qo(e,t,n){let r=St(t),o=Zt(t),i=It(e,r&&Jo(t),n==="fixed"),s={scrollLeft:0,scrollTop:0},u={x:0,y:0};if(r||!r&&n!=="fixed")if((Rt(t)!=="body"||cr(o))&&(s=dr(t)),St(t)){let h=It(t,!0);u.x=h.x+t.clientLeft,u.y=h.y+t.clientTop}else o&&(u.x=qi(o));return{x:i.left+s.scrollLeft-u.x,y:i.top+s.scrollTop-u.y,width:i.width,height:i.height}}function Gi(e){return Rt(e)==="html"?e:e.assignedSlot||e.parentNode||(Qr(e)?e.host:null)||Zt(e)}function _i(e){return!St(e)||getComputedStyle(e).position==="fixed"?null:e.offsetParent}function Zo(e){let t=Gi(e);for(Qr(t)&&(t=t.host);St(t)&&!["html","body"].includes(Rt(t));){if(Yi(t))return t;t=t.parentNode}return null}function qr(e){let t=Ft(e),n=_i(e);for(;n&&Ko(n)&&getComputedStyle(n).position==="static";)n=_i(n);return n&&(Rt(n)==="html"||Rt(n)==="body"&&getComputedStyle(n).position==="static"&&!Yi(n))?t:n||Zo(e)||t}function Ti(e){if(St(e))return{width:e.offsetWidth,height:e.offsetHeight};let t=It(e);return{width:t.width,height:t.height}}function ea(e){let{rect:t,offsetParent:n,strategy:r}=e,o=St(n),i=Zt(n);if(n===i)return t;let s={scrollLeft:0,scrollTop:0},u={x:0,y:0};if((o||!o&&r!=="fixed")&&((Rt(n)!=="body"||cr(i))&&(s=dr(n)),St(n))){let h=It(n,!0);u.x=h.x+n.clientLeft,u.y=h.y+n.clientTop}return{...t,x:t.x-s.scrollLeft+u.x,y:t.y-s.scrollTop+u.y}}function ta(e,t){let n=Ft(e),r=Zt(e),o=n.visualViewport,i=r.clientWidth,s=r.clientHeight,u=0,h=0;if(o){i=o.width,s=o.height;let p=Xi();(p||!p&&t==="fixed")&&(u=o.offsetLeft,h=o.offsetTop)}return{width:i,height:s,x:u,y:h}}function na(e){var t;let n=Zt(e),r=dr(e),o=(t=e.ownerDocument)==null?void 0:t.body,i=kn(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=kn(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),u=-r.scrollLeft+qi(e),h=-r.scrollTop;return Hn(o||n).direction==="rtl"&&(u+=kn(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:u,y:h}}function Ki(e){let t=Gi(e);return["html","body","#document"].includes(Rt(t))?e.ownerDocument.body:St(t)&&cr(t)?t:Ki(t)}function ur(e,t){var n;t===void 0&&(t=[]);let r=Ki(e),o=r===((n=e.ownerDocument)==null?void 0:n.body),i=Ft(r),s=o?[i].concat(i.visualViewport||[],cr(r)?r:[]):r,u=t.concat(s);return o?u:u.concat(ur(s))}function ra(e,t){let n=t==null||t.getRootNode==null?void 0:t.getRootNode();if(e!=null&&e.contains(t))return!0;if(n&&Qr(n)){let r=t;do{if(r&&e===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function ia(e,t){let n=It(e,!1,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft;return{top:r,left:o,x:o,y:r,right:o+e.clientWidth,bottom:r+e.clientHeight,width:e.clientWidth,height:e.clientHeight}}function Pi(e,t,n){return t==="viewport"?Bn(ta(e,n)):Qt(t)?ia(t,n):Bn(na(Zt(e)))}function oa(e){let t=ur(e),r=["absolute","fixed"].includes(Hn(e).position)&&St(e)?qr(e):e;return Qt(r)?t.filter(o=>Qt(o)&&ra(o,r)&&Rt(o)!=="body"):[]}function aa(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e,s=[...n==="clippingAncestors"?oa(t):[].concat(n),r],u=s[0],h=s.reduce((p,x)=>{let b=Pi(t,x,o);return p.top=kn(b.top,p.top),p.right=Di(b.right,p.right),p.bottom=Di(b.bottom,p.bottom),p.left=kn(b.left,p.left),p},Pi(t,u,o));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}}var sa={getClippingRect:aa,convertOffsetParentRelativeRectToViewportRelativeRect:ea,isElement:Qt,getDimensions:Ti,getOffsetParent:qr,getDocumentElement:Zt,getElementRects:e=>{let{reference:t,floating:n,strategy:r}=e;return{reference:Qo(t,qr(n),r),floating:{...Ti(n),x:0,y:0}}},getClientRects:e=>Array.from(e.getClientRects()),isRTL:e=>Hn(e).direction==="rtl"};function Mi(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:s=!0,animationFrame:u=!1}=r,h=!1,p=o&&!u,x=i&&!u,b=s&&!u,E=p||x?[...Qt(e)?ur(e):[],...ur(t)]:[];E.forEach(V=>{p&&V.addEventListener("scroll",n,{passive:!0}),x&&V.addEventListener("resize",n)});let _=null;b&&(_=new ResizeObserver(n),Qt(e)&&_.observe(e),_.observe(t));let C,M=u?It(e):null;u&&U();function U(){if(h)return;let V=It(e);M&&(V.x!==M.x||V.y!==M.y||V.width!==M.width||V.height!==M.height)&&n(),M=V,C=requestAnimationFrame(U)}return()=>{var V;h=!0,E.forEach(B=>{p&&B.removeEventListener("scroll",n),x&&B.removeEventListener("resize",n)}),(V=_)==null||V.disconnect(),_=null,u&&cancelAnimationFrame(C)}}var Ri=(e,t,n)=>Ho(e,t,{platform:sa,...n}),la=e=>{let t={placement:"bottom",middleware:[]},n=Object.keys(e),r=o=>e[o];return n.includes("offset")&&t.middleware.push($i(r("offset"))),n.includes("placement")&&(t.placement=r("placement")),n.includes("autoPlacement")&&!n.includes("flip")&&t.middleware.push(Jr(r("autoPlacement"))),n.includes("flip")&&t.middleware.push(Bi(r("flip"))),n.includes("shift")&&t.middleware.push(Wi(r("shift"))),n.includes("inline")&&t.middleware.push(Ui(r("inline"))),n.includes("arrow")&&t.middleware.push(Li(r("arrow"))),n.includes("hide")&&t.middleware.push(Hi(r("hide"))),n.includes("size")&&t.middleware.push(Vi(r("size"))),t},fa=(e,t)=>{let n={component:{trap:!1},float:{placement:"bottom",strategy:"absolute",middleware:[]}},r=o=>e[e.indexOf(o)+1];return e.includes("trap")&&(n.component.trap=!0),e.includes("teleport")&&(n.float.strategy="fixed"),e.includes("offset")&&n.float.middleware.push($i(t.offset||10)),e.includes("placement")&&(n.float.placement=r("placement")),e.includes("autoPlacement")&&!e.includes("flip")&&n.float.middleware.push(Jr(t.autoPlacement)),e.includes("flip")&&n.float.middleware.push(Bi(t.flip)),e.includes("shift")&&n.float.middleware.push(Wi(t.shift)),e.includes("inline")&&n.float.middleware.push(Ui(t.inline)),e.includes("arrow")&&n.float.middleware.push(Li(t.arrow)),e.includes("hide")&&n.float.middleware.push(Hi(t.hide)),e.includes("size")&&n.float.middleware.push(Vi(t.size)),n},ua=e=>{var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".split(""),n="";e||(e=Math.floor(Math.random()*t.length));for(var r=0;r{(t===void 0||t.includes(n))&&(r.forEach(o=>o()),delete e._x_attributeCleanups[n])})}var Zr=new MutationObserver(Ji),ei=!1;function va(){Zr.observe(document,{subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0}),ei=!0}function ga(){ma(),Zr.disconnect(),ei=!1}var jn=[],zr=!1;function ma(){jn=jn.concat(Zr.takeRecords()),jn.length&&!zr&&(zr=!0,queueMicrotask(()=>{ba(),zr=!1}))}function ba(){Ji(jn),jn.length=0}function Ii(e){if(!ei)return e();ga();let t=e();return va(),t}var ya=!1,Fi=[];function Ji(e){if(ya){Fi=Fi.concat(e);return}let t=[],n=[],r=new Map,o=new Map;for(let i=0;is.nodeType===1&&t.push(s)),e[i].removedNodes.forEach(s=>s.nodeType===1&&n.push(s))),e[i].type==="attributes")){let s=e[i].target,u=e[i].attributeName,h=e[i].oldValue,p=()=>{r.has(s)||r.set(s,[]),r.get(s).push({name:u,value:s.getAttribute(u)})},x=()=>{o.has(s)||o.set(s,[]),o.get(s).push(u)};s.hasAttribute(u)&&h===null?p():s.hasAttribute(u)?(x(),p()):x()}o.forEach((i,s)=>{ha(s,i)}),r.forEach((i,s)=>{ca.forEach(u=>u(s,i))});for(let i of n)if(!t.includes(i)&&(da.forEach(s=>s(i)),i._x_cleanups))for(;i._x_cleanups.length;)i._x_cleanups.pop()();t.forEach(i=>{i._x_ignoreSelf=!0,i._x_ignore=!0});for(let i of t)n.includes(i)||i.isConnected&&(delete i._x_ignoreSelf,delete i._x_ignore,pa.forEach(s=>s(i)),i._x_ignore=!0,i._x_ignoreSelf=!0);t.forEach(i=>{delete i._x_ignoreSelf,delete i._x_ignore}),t=null,n=null,r=null,o=null}function wa(e,t=()=>{}){let n=!1;return function(){n?t.apply(this,arguments):(n=!0,e.apply(this,arguments))}}function xa(e){let t={dismissable:!0,trap:!1};function n(i,s,u=null){if(s){if(s.hasAttribute("aria-expanded")||s.setAttribute("aria-expanded",!1),u.hasAttribute("id"))s.setAttribute("aria-controls",u.getAttribute("id"));else{let h=`panel-${ua(8)}`;s.setAttribute("aria-controls",h),u.setAttribute("id",h)}u.setAttribute("aria-modal",!0),u.setAttribute("role","dialog")}}let r=document.querySelectorAll('[\\@click^="$float"]'),o=document.querySelectorAll('[x-on\\:click^="$float"]');[...r,...o].forEach(i=>{let s=i.parentElement.closest("[x-data]"),u=s.querySelector('[x-ref="panel"]');n(s,i,u)}),e.magic("float",i=>(s={},u={})=>{let h={...t,...u},p=Object.keys(s).length>0?la(s):{middleware:[Jr()]},x=i,b=i.parentElement.closest("[x-data]"),E=b.querySelector('[x-ref="panel"]');function _(){return E.style.display=="block"}function C(){E.style.display="",x.setAttribute("aria-expanded",!1),h.trap&&E.setAttribute("x-trap",!1),Mi(i,E,V)}function M(){E.style.display="block",x.setAttribute("aria-expanded",!0),h.trap&&E.setAttribute("x-trap",!0),V()}function U(){_()?C():M()}async function V(){return await Ri(i,E,p).then(({middlewareData:B,placement:Q,x:q,y:xe})=>{if(B.arrow){let se=B.arrow?.x,ie=B.arrow?.y,be=p.middleware.filter(fe=>fe.name=="arrow")[0].options.element,R={top:"bottom",right:"left",bottom:"top",left:"right"}[Q.split("-")[0]];Object.assign(be.style,{left:se!=null?`${se}px`:"",top:ie!=null?`${ie}px`:"",right:"",bottom:"",[R]:"-4px"})}if(B.hide){let{referenceHidden:se}=B.hide;Object.assign(E.style,{visibility:se?"hidden":"visible"})}Object.assign(E.style,{left:`${q}px`,top:`${xe}px`})})}h.dismissable&&(window.addEventListener("click",B=>{!b.contains(B.target)&&_()&&U()}),window.addEventListener("keydown",B=>{B.key==="Escape"&&_()&&U()},!0)),U()}),e.directive("float",(i,{modifiers:s,expression:u},{evaluate:h,effect:p})=>{let x=u?h(u):{},b=s.length>0?fa(s,x):{},E=null;b.float.strategy=="fixed"&&(i.style.position="fixed");let _=R=>i.parentElement&&!i.parentElement.closest("[x-data]").contains(R.target)?i.close():null,C=R=>R.key==="Escape"?i.close():null,M=i.getAttribute("x-ref"),U=i.parentElement.closest("[x-data]"),V=U.querySelectorAll(`[\\@click^="$refs.${M}"]`),B=U.querySelectorAll(`[x-on\\:click^="$refs.${M}"]`);i.style.setProperty("display","none"),n(U,[...V,...B][0],i),i._x_isShown=!1,i.trigger=null,i._x_doHide||(i._x_doHide=()=>{Ii(()=>{i.style.setProperty("display","none",s.includes("important")?"important":void 0)})}),i._x_doShow||(i._x_doShow=()=>{Ii(()=>{i.style.setProperty("display","block",s.includes("important")?"important":void 0)})});let Q=()=>{i._x_doHide(),i._x_isShown=!1},q=()=>{i._x_doShow(),i._x_isShown=!0},xe=()=>setTimeout(q),se=wa(R=>R?q():Q(),R=>{typeof i._x_toggleAndCascadeWithTransitions=="function"?i._x_toggleAndCascadeWithTransitions(i,R,q,Q):R?xe():Q()}),ie,be=!0;p(()=>h(R=>{!be&&R===ie||(s.includes("immediate")&&(R?xe():Q()),se(R),ie=R,be=!1)})),i.open=async function(R){i.trigger=R.currentTarget?R.currentTarget:R,se(!0),i.trigger.setAttribute("aria-expanded",!0),b.component.trap&&i.setAttribute("x-trap",!0),E=Mi(i.trigger,i,()=>{Ri(i.trigger,i,b.float).then(({middlewareData:fe,placement:ce,x:l,y:d})=>{if(fe.arrow){let v=fe.arrow?.x,c=fe.arrow?.y,H=b.float.middleware.filter(P=>P.name=="arrow")[0].options.element,T={top:"bottom",right:"left",bottom:"top",left:"right"}[ce.split("-")[0]];Object.assign(H.style,{left:v!=null?`${v}px`:"",top:c!=null?`${c}px`:"",right:"",bottom:"",[T]:"-4px"})}if(fe.hide){let{referenceHidden:v}=fe.hide;Object.assign(i.style,{visibility:v?"hidden":"visible"})}Object.assign(i.style,{left:`${l}px`,top:`${d}px`})})}),window.addEventListener("click",_),window.addEventListener("keydown",C,!0)},i.close=function(){se(!1),i.trigger.setAttribute("aria-expanded",!1),b.component.trap&&i.setAttribute("x-trap",!1),E(),window.removeEventListener("click",_),window.removeEventListener("keydown",C,!1)},i.toggle=function(R){i._x_isShown?i.close():i.open(R)}})}var Qi=xa;function Ea(e){e.store("lazyLoadedAssets",{loaded:new Set,check(s){return Array.isArray(s)?s.every(u=>this.loaded.has(u)):this.loaded.has(s)},markLoaded(s){Array.isArray(s)?s.forEach(u=>this.loaded.add(u)):this.loaded.add(s)}});function t(s){return new CustomEvent(s,{bubbles:!0,composed:!0,cancelable:!0})}function n(s,u={},h,p){let x=document.createElement(s);for(let[b,E]of Object.entries(u))x[b]=E;return h&&(p?h.insertBefore(x,p):h.appendChild(x)),x}function r(s,u,h={},p=null,x=null){let b=s==="link"?`link[href="${u}"]`:`script[src="${u}"]`;if(document.querySelector(b)||e.store("lazyLoadedAssets").check(u))return Promise.resolve();let E=s==="link"?{...h,href:u}:{...h,src:u},_=n(s,E,p,x);return new Promise((C,M)=>{_.onload=()=>{e.store("lazyLoadedAssets").markLoaded(u),C()},_.onerror=()=>{M(new Error(`Failed to load ${s}: ${u}`))}})}async function o(s,u,h=null,p=null){let x={type:"text/css",rel:"stylesheet"};u&&(x.media=u);let b=document.head,E=null;if(h&&p){let _=document.querySelector(`link[href*="${p}"]`);_?(b=_.parentNode,E=h==="before"?_:_.nextSibling):console.warn(`Target (${p}) not found for ${s}. Appending to head.`)}await r("link",s,x,b,E)}async function i(s,u,h=null,p=null){let x,b;h&&p&&(x=document.querySelector(`script[src*="${p}"]`),x?b=h==="before"?x:x.nextSibling:console.warn(`Target (${p}) not found for ${s}. Appending to body.`));let E=u.has("body-start")?"prepend":"append";await r("script",s,{},x||document[u.has("body-end")?"body":"head"],b)}e.directive("load-css",(s,{expression:u},{evaluate:h})=>{let p=h(u),x=s.media,b=s.getAttribute("data-dispatch"),E=s.getAttribute("data-css-before")?"before":s.getAttribute("data-css-after")?"after":null,_=s.getAttribute("data-css-before")||s.getAttribute("data-css-after")||null;Promise.all(p.map(C=>o(C,x,E,_))).then(()=>{b&&window.dispatchEvent(t(b+"-css"))}).catch(C=>{console.error(C)})}),e.directive("load-js",(s,{expression:u,modifiers:h},{evaluate:p})=>{let x=p(u),b=new Set(h),E=s.getAttribute("data-js-before")?"before":s.getAttribute("data-js-after")?"after":null,_=s.getAttribute("data-js-before")||s.getAttribute("data-js-after")||null,C=s.getAttribute("data-dispatch");Promise.all(x.map(M=>i(M,b,E,_))).then(()=>{C&&window.dispatchEvent(t(C+"-js"))}).catch(M=>{console.error(M)})})}var Zi=Ea;var Ro=Bo(no(),1);function ro(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ct(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}function Aa(e,t){if(e==null)return{};var n=Sa(e,t),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var Ca="1.15.2";function Nt(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var kt=Nt(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Gn=Nt(/Edge/i),io=Nt(/firefox/i),Un=Nt(/safari/i)&&!Nt(/chrome/i)&&!Nt(/android/i),po=Nt(/iP(ad|od|hone)/i),ho=Nt(/chrome/i)&&Nt(/android/i),vo={capture:!1,passive:!1};function Ce(e,t,n){e.addEventListener(t,n,!kt&&vo)}function Oe(e,t,n){e.removeEventListener(t,n,!kt&&vo)}function Or(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function Da(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function bt(e,t,n,r){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Or(e,t):Or(e,t))||r&&e===n)return e;if(e===n)break}while(e=Da(e))}return null}var oo=/\s+/g;function st(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var r=(" "+e.className+" ").replace(oo," ").replace(" "+t+" "," ");e.className=(r+(n?" "+t:"")).replace(oo," ")}}function ne(e,t,n){var r=e&&e.style;if(r){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in r)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),r[t]=n+(typeof n=="string"?"":"px")}}function _n(e,t){var n="";if(typeof e=="string")n=e;else do{var r=ne(e,"transform");r&&r!=="none"&&(n=r+" "+n)}while(!t&&(e=e.parentNode));var o=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return o&&new o(n)}function go(e,t,n){if(e){var r=e.getElementsByTagName(t),o=0,i=r.length;if(n)for(;o=i:s=o<=i,!s)return r;if(r===At())break;r=nn(r,!1)}return!1}function Tn(e,t,n,r){for(var o=0,i=0,s=e.children;i2&&arguments[2]!==void 0?arguments[2]:{},o=r.evt,i=Aa(r,Na);Kn.pluginEvent.bind(re)(t,n,Ct({dragEl:N,parentEl:Ue,ghostEl:ue,rootEl:ke,nextEl:hn,lastDownEl:yr,cloneEl:We,cloneHidden:tn,dragStarted:$n,putSortable:Qe,activeSortable:re.active,originalEvent:o,oldIndex:Dn,oldDraggableIndex:Yn,newIndex:lt,newDraggableIndex:en,hideGhostForTarget:So,unhideGhostForTarget:Ao,cloneNowHidden:function(){tn=!0},cloneNowShown:function(){tn=!1},dispatchSortableEvent:function(u){rt({sortable:n,name:u,originalEvent:o})}},i))};function rt(e){Fa(Ct({putSortable:Qe,cloneEl:We,targetEl:N,rootEl:ke,oldIndex:Dn,oldDraggableIndex:Yn,newIndex:lt,newDraggableIndex:en},e))}var N,Ue,ue,ke,hn,yr,We,tn,Dn,lt,Yn,en,hr,Qe,Cn=!1,Sr=!1,Ar=[],dn,mt,ri,ii,lo,fo,$n,An,Xn,qn=!1,vr=!1,wr,tt,oi=[],ui=!1,Cr=[],_r=typeof document<"u",gr=po,uo=Gn||kt?"cssFloat":"float",La=_r&&!ho&&!po&&"draggable"in document.createElement("div"),xo=function(){if(_r){if(kt)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),Eo=function(t,n){var r=ne(t),o=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),i=Tn(t,0,n),s=Tn(t,1,n),u=i&&ne(i),h=s&&ne(s),p=u&&parseInt(u.marginLeft)+parseInt(u.marginRight)+qe(i).width,x=h&&parseInt(h.marginLeft)+parseInt(h.marginRight)+qe(s).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&u.float&&u.float!=="none"){var b=u.float==="left"?"left":"right";return s&&(h.clear==="both"||h.clear===b)?"vertical":"horizontal"}return i&&(u.display==="block"||u.display==="flex"||u.display==="table"||u.display==="grid"||p>=o&&r[uo]==="none"||s&&r[uo]==="none"&&p+x>o)?"vertical":"horizontal"},ka=function(t,n,r){var o=r?t.left:t.top,i=r?t.right:t.bottom,s=r?t.width:t.height,u=r?n.left:n.top,h=r?n.right:n.bottom,p=r?n.width:n.height;return o===u||i===h||o+s/2===u+p/2},ja=function(t,n){var r;return Ar.some(function(o){var i=o[ft].options.emptyInsertThreshold;if(!(!i||hi(o))){var s=qe(o),u=t>=s.left-i&&t<=s.right+i,h=n>=s.top-i&&n<=s.bottom+i;if(u&&h)return r=o}}),r},Oo=function(t){function n(i,s){return function(u,h,p,x){var b=u.options.group.name&&h.options.group.name&&u.options.group.name===h.options.group.name;if(i==null&&(s||b))return!0;if(i==null||i===!1)return!1;if(s&&i==="clone")return i;if(typeof i=="function")return n(i(u,h,p,x),s)(u,h,p,x);var E=(s?u:h).options.group.name;return i===!0||typeof i=="string"&&i===E||i.join&&i.indexOf(E)>-1}}var r={},o=t.group;(!o||br(o)!="object")&&(o={name:o}),r.name=o.name,r.checkPull=n(o.pull,!0),r.checkPut=n(o.put),r.revertClone=o.revertClone,t.group=r},So=function(){!xo&&ue&&ne(ue,"display","none")},Ao=function(){!xo&&ue&&ne(ue,"display","")};_r&&!ho&&document.addEventListener("click",function(e){if(Sr)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Sr=!1,!1},!0);var pn=function(t){if(N){t=t.touches?t.touches[0]:t;var n=ja(t.clientX,t.clientY);if(n){var r={};for(var o in t)t.hasOwnProperty(o)&&(r[o]=t[o]);r.target=r.rootEl=n,r.preventDefault=void 0,r.stopPropagation=void 0,n[ft]._onDragOver(r)}}},Ba=function(t){N&&N.parentNode[ft]._isOutsideThisEl(t.target)};function re(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=Lt({},t),e[ft]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Eo(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,u){s.setData("Text",u.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:re.supportPointer!==!1&&"PointerEvent"in window&&!Un,emptyInsertThreshold:5};Kn.initializePlugins(this,e,n);for(var r in n)!(r in t)&&(t[r]=n[r]);Oo(t);for(var o in this)o.charAt(0)==="_"&&typeof this[o]=="function"&&(this[o]=this[o].bind(this));this.nativeDraggable=t.forceFallback?!1:La,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?Ce(e,"pointerdown",this._onTapStart):(Ce(e,"mousedown",this._onTapStart),Ce(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(Ce(e,"dragover",this),Ce(e,"dragenter",this)),Ar.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),Lt(this,Ma())}re.prototype={constructor:re,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(An=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,N):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,r=this.el,o=this.options,i=o.preventOnFilter,s=t.type,u=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,h=(u||t).target,p=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||h,x=o.filter;if(Xa(r),!N&&!(/mousedown|pointerdown/.test(s)&&t.button!==0||o.disabled)&&!p.isContentEditable&&!(!this.nativeDraggable&&Un&&h&&h.tagName.toUpperCase()==="SELECT")&&(h=bt(h,o.draggable,r,!1),!(h&&h.animated)&&yr!==h)){if(Dn=ct(h),Yn=ct(h,o.draggable),typeof x=="function"){if(x.call(this,t,h,this)){rt({sortable:n,rootEl:p,name:"filter",targetEl:h,toEl:r,fromEl:r}),ot("filter",n,{evt:t}),i&&t.cancelable&&t.preventDefault();return}}else if(x&&(x=x.split(",").some(function(b){if(b=bt(p,b.trim(),r,!1),b)return rt({sortable:n,rootEl:b,name:"filter",targetEl:h,fromEl:r,toEl:r}),ot("filter",n,{evt:t}),!0}),x)){i&&t.cancelable&&t.preventDefault();return}o.handle&&!bt(p,o.handle,r,!1)||this._prepareDragStart(t,u,h)}}},_prepareDragStart:function(t,n,r){var o=this,i=o.el,s=o.options,u=i.ownerDocument,h;if(r&&!N&&r.parentNode===i){var p=qe(r);if(ke=i,N=r,Ue=N.parentNode,hn=N.nextSibling,yr=r,hr=s.group,re.dragged=N,dn={target:N,clientX:(n||t).clientX,clientY:(n||t).clientY},lo=dn.clientX-p.left,fo=dn.clientY-p.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,N.style["will-change"]="all",h=function(){if(ot("delayEnded",o,{evt:t}),re.eventCanceled){o._onDrop();return}o._disableDelayedDragEvents(),!io&&o.nativeDraggable&&(N.draggable=!0),o._triggerDragStart(t,n),rt({sortable:o,name:"choose",originalEvent:t}),st(N,s.chosenClass,!0)},s.ignore.split(",").forEach(function(x){go(N,x.trim(),ai)}),Ce(u,"dragover",pn),Ce(u,"mousemove",pn),Ce(u,"touchmove",pn),Ce(u,"mouseup",o._onDrop),Ce(u,"touchend",o._onDrop),Ce(u,"touchcancel",o._onDrop),io&&this.nativeDraggable&&(this.options.touchStartThreshold=4,N.draggable=!0),ot("delayStart",this,{evt:t}),s.delay&&(!s.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Gn||kt))){if(re.eventCanceled){this._onDrop();return}Ce(u,"mouseup",o._disableDelayedDrag),Ce(u,"touchend",o._disableDelayedDrag),Ce(u,"touchcancel",o._disableDelayedDrag),Ce(u,"mousemove",o._delayedDragTouchMoveHandler),Ce(u,"touchmove",o._delayedDragTouchMoveHandler),s.supportPointer&&Ce(u,"pointermove",o._delayedDragTouchMoveHandler),o._dragStartTimer=setTimeout(h,s.delay)}else h()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){N&&ai(N),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;Oe(t,"mouseup",this._disableDelayedDrag),Oe(t,"touchend",this._disableDelayedDrag),Oe(t,"touchcancel",this._disableDelayedDrag),Oe(t,"mousemove",this._delayedDragTouchMoveHandler),Oe(t,"touchmove",this._delayedDragTouchMoveHandler),Oe(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?Ce(document,"pointermove",this._onTouchMove):n?Ce(document,"touchmove",this._onTouchMove):Ce(document,"mousemove",this._onTouchMove):(Ce(N,"dragend",this),Ce(ke,"dragstart",this._onDragStart));try{document.selection?xr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(Cn=!1,ke&&N){ot("dragStarted",this,{evt:n}),this.nativeDraggable&&Ce(document,"dragover",Ba);var r=this.options;!t&&st(N,r.dragClass,!1),st(N,r.ghostClass,!0),re.active=this,t&&this._appendGhost(),rt({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(mt){this._lastX=mt.clientX,this._lastY=mt.clientY,So();for(var t=document.elementFromPoint(mt.clientX,mt.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(mt.clientX,mt.clientY),t!==n);)n=t;if(N.parentNode[ft]._isOutsideThisEl(t),n)do{if(n[ft]){var r=void 0;if(r=n[ft]._onDragOver({clientX:mt.clientX,clientY:mt.clientY,target:t,rootEl:n}),r&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);Ao()}},_onTouchMove:function(t){if(dn){var n=this.options,r=n.fallbackTolerance,o=n.fallbackOffset,i=t.touches?t.touches[0]:t,s=ue&&_n(ue,!0),u=ue&&s&&s.a,h=ue&&s&&s.d,p=gr&&tt&&so(tt),x=(i.clientX-dn.clientX+o.x)/(u||1)+(p?p[0]-oi[0]:0)/(u||1),b=(i.clientY-dn.clientY+o.y)/(h||1)+(p?p[1]-oi[1]:0)/(h||1);if(!re.active&&!Cn){if(r&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))=0&&(rt({rootEl:Ue,name:"add",toEl:Ue,fromEl:ke,originalEvent:t}),rt({sortable:this,name:"remove",toEl:Ue,originalEvent:t}),rt({rootEl:Ue,name:"sort",toEl:Ue,fromEl:ke,originalEvent:t}),rt({sortable:this,name:"sort",toEl:Ue,originalEvent:t})),Qe&&Qe.save()):lt!==Dn&<>=0&&(rt({sortable:this,name:"update",toEl:Ue,originalEvent:t}),rt({sortable:this,name:"sort",toEl:Ue,originalEvent:t})),re.active&&((lt==null||lt===-1)&&(lt=Dn,en=Yn),rt({sortable:this,name:"end",toEl:Ue,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){ot("nulling",this),ke=N=Ue=ue=hn=We=yr=tn=dn=mt=$n=lt=en=Dn=Yn=An=Xn=Qe=hr=re.dragged=re.ghost=re.clone=re.active=null,Cr.forEach(function(t){t.checked=!0}),Cr.length=ri=ii=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":N&&(this._onDragOver(t),Ha(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,r=this.el.children,o=0,i=r.length,s=this.options;oo.right+i||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>o.bottom+i||e.clientX>r.right&&e.clientY>r.top}function Ua(e,t,n,r,o,i,s,u){var h=r?e.clientY:e.clientX,p=r?n.height:n.width,x=r?n.top:n.left,b=r?n.bottom:n.right,E=!1;if(!s){if(u&&wrx+p*i/2:hb-wr)return-Xn}else if(h>x+p*(1-o)/2&&hb-p*i/2)?h>x+p/2?1:-1:0}function za(e){return ct(N){e.directive("sortable",t=>{let n=parseInt(t.dataset?.sortableAnimationDuration);n!==0&&!n&&(n=300),t.sortable=mi.create(t,{draggable:"[x-sortable-item]",handle:"[x-sortable-handle]",dataIdAttr:"x-sortable-item",animation:n,ghostClass:"fi-sortable-ghost"})})};var Ga=Object.create,wi=Object.defineProperty,Ka=Object.getPrototypeOf,Ja=Object.prototype.hasOwnProperty,Qa=Object.getOwnPropertyNames,Za=Object.getOwnPropertyDescriptor,es=e=>wi(e,"__esModule",{value:!0}),_o=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),ts=(e,t,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Qa(t))!Ja.call(e,r)&&r!=="default"&&wi(e,r,{get:()=>t[r],enumerable:!(n=Za(t,r))||n.enumerable});return e},To=e=>ts(es(wi(e!=null?Ga(Ka(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),ns=_o(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(f){var a=f.getBoundingClientRect();return{width:a.width,height:a.height,top:a.top,right:a.right,bottom:a.bottom,left:a.left,x:a.left,y:a.top}}function n(f){if(f==null)return window;if(f.toString()!=="[object Window]"){var a=f.ownerDocument;return a&&a.defaultView||window}return f}function r(f){var a=n(f),m=a.pageXOffset,A=a.pageYOffset;return{scrollLeft:m,scrollTop:A}}function o(f){var a=n(f).Element;return f instanceof a||f instanceof Element}function i(f){var a=n(f).HTMLElement;return f instanceof a||f instanceof HTMLElement}function s(f){if(typeof ShadowRoot>"u")return!1;var a=n(f).ShadowRoot;return f instanceof a||f instanceof ShadowRoot}function u(f){return{scrollLeft:f.scrollLeft,scrollTop:f.scrollTop}}function h(f){return f===n(f)||!i(f)?r(f):u(f)}function p(f){return f?(f.nodeName||"").toLowerCase():null}function x(f){return((o(f)?f.ownerDocument:f.document)||window.document).documentElement}function b(f){return t(x(f)).left+r(f).scrollLeft}function E(f){return n(f).getComputedStyle(f)}function _(f){var a=E(f),m=a.overflow,A=a.overflowX,D=a.overflowY;return/auto|scroll|overlay|hidden/.test(m+D+A)}function C(f,a,m){m===void 0&&(m=!1);var A=x(a),D=t(f),F=i(a),$={scrollLeft:0,scrollTop:0},k={x:0,y:0};return(F||!F&&!m)&&((p(a)!=="body"||_(A))&&($=h(a)),i(a)?(k=t(a),k.x+=a.clientLeft,k.y+=a.clientTop):A&&(k.x=b(A))),{x:D.left+$.scrollLeft-k.x,y:D.top+$.scrollTop-k.y,width:D.width,height:D.height}}function M(f){var a=t(f),m=f.offsetWidth,A=f.offsetHeight;return Math.abs(a.width-m)<=1&&(m=a.width),Math.abs(a.height-A)<=1&&(A=a.height),{x:f.offsetLeft,y:f.offsetTop,width:m,height:A}}function U(f){return p(f)==="html"?f:f.assignedSlot||f.parentNode||(s(f)?f.host:null)||x(f)}function V(f){return["html","body","#document"].indexOf(p(f))>=0?f.ownerDocument.body:i(f)&&_(f)?f:V(U(f))}function B(f,a){var m;a===void 0&&(a=[]);var A=V(f),D=A===((m=f.ownerDocument)==null?void 0:m.body),F=n(A),$=D?[F].concat(F.visualViewport||[],_(A)?A:[]):A,k=a.concat($);return D?k:k.concat(B(U($)))}function Q(f){return["table","td","th"].indexOf(p(f))>=0}function q(f){return!i(f)||E(f).position==="fixed"?null:f.offsetParent}function xe(f){var a=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,m=navigator.userAgent.indexOf("Trident")!==-1;if(m&&i(f)){var A=E(f);if(A.position==="fixed")return null}for(var D=U(f);i(D)&&["html","body"].indexOf(p(D))<0;){var F=E(D);if(F.transform!=="none"||F.perspective!=="none"||F.contain==="paint"||["transform","perspective"].indexOf(F.willChange)!==-1||a&&F.willChange==="filter"||a&&F.filter&&F.filter!=="none")return D;D=D.parentNode}return null}function se(f){for(var a=n(f),m=q(f);m&&Q(m)&&E(m).position==="static";)m=q(m);return m&&(p(m)==="html"||p(m)==="body"&&E(m).position==="static")?a:m||xe(f)||a}var ie="top",be="bottom",R="right",fe="left",ce="auto",l=[ie,be,R,fe],d="start",v="end",c="clippingParents",H="viewport",T="popper",P="reference",G=l.reduce(function(f,a){return f.concat([a+"-"+d,a+"-"+v])},[]),ze=[].concat(l,[ce]).reduce(function(f,a){return f.concat([a,a+"-"+d,a+"-"+v])},[]),Dt="beforeRead",jt="read",Tr="afterRead",Pr="beforeMain",Mr="main",Bt="afterMain",Jn="beforeWrite",Rr="write",Qn="afterWrite",_t=[Dt,jt,Tr,Pr,Mr,Bt,Jn,Rr,Qn];function Ir(f){var a=new Map,m=new Set,A=[];f.forEach(function(F){a.set(F.name,F)});function D(F){m.add(F.name);var $=[].concat(F.requires||[],F.requiresIfExists||[]);$.forEach(function(k){if(!m.has(k)){var Y=a.get(k);Y&&D(Y)}}),A.push(F)}return f.forEach(function(F){m.has(F.name)||D(F)}),A}function dt(f){var a=Ir(f);return _t.reduce(function(m,A){return m.concat(a.filter(function(D){return D.phase===A}))},[])}function Ht(f){var a;return function(){return a||(a=new Promise(function(m){Promise.resolve().then(function(){a=void 0,m(f())})})),a}}function yt(f){for(var a=arguments.length,m=new Array(a>1?a-1:0),A=1;A=0,A=m&&i(f)?se(f):f;return o(A)?a.filter(function(D){return o(D)&&Pn(D,A)&&p(D)!=="body"}):[]}function gn(f,a,m){var A=a==="clippingParents"?vn(f):[].concat(a),D=[].concat(A,[m]),F=D[0],$=D.reduce(function(k,Y){var te=nr(f,Y);return k.top=pt(te.top,k.top),k.right=rn(te.right,k.right),k.bottom=rn(te.bottom,k.bottom),k.left=pt(te.left,k.left),k},nr(f,F));return $.width=$.right-$.left,$.height=$.bottom-$.top,$.x=$.left,$.y=$.top,$}function on(f){return f.split("-")[1]}function ut(f){return["top","bottom"].indexOf(f)>=0?"x":"y"}function rr(f){var a=f.reference,m=f.element,A=f.placement,D=A?it(A):null,F=A?on(A):null,$=a.x+a.width/2-m.width/2,k=a.y+a.height/2-m.height/2,Y;switch(D){case ie:Y={x:$,y:a.y-m.height};break;case be:Y={x:$,y:a.y+a.height};break;case R:Y={x:a.x+a.width,y:k};break;case fe:Y={x:a.x-m.width,y:k};break;default:Y={x:a.x,y:a.y}}var te=D?ut(D):null;if(te!=null){var W=te==="y"?"height":"width";switch(F){case d:Y[te]=Y[te]-(a[W]/2-m[W]/2);break;case v:Y[te]=Y[te]+(a[W]/2-m[W]/2);break}}return Y}function ir(){return{top:0,right:0,bottom:0,left:0}}function or(f){return Object.assign({},ir(),f)}function ar(f,a){return a.reduce(function(m,A){return m[A]=f,m},{})}function Vt(f,a){a===void 0&&(a={});var m=a,A=m.placement,D=A===void 0?f.placement:A,F=m.boundary,$=F===void 0?c:F,k=m.rootBoundary,Y=k===void 0?H:k,te=m.elementContext,W=te===void 0?T:te,De=m.altBoundary,Ne=De===void 0?!1:De,Ae=m.padding,we=Ae===void 0?0:Ae,Me=or(typeof we!="number"?we:ar(we,l)),Ee=W===T?P:T,Be=f.elements.reference,Re=f.rects.popper,He=f.elements[Ne?Ee:W],ae=gn(o(He)?He:He.contextElement||x(f.elements.popper),$,Y),Pe=t(Be),_e=rr({reference:Pe,element:Re,strategy:"absolute",placement:D}),Le=Wt(Object.assign({},Re,_e)),Fe=W===T?Le:Pe,Ye={top:ae.top-Fe.top+Me.top,bottom:Fe.bottom-ae.bottom+Me.bottom,left:ae.left-Fe.left+Me.left,right:Fe.right-ae.right+Me.right},$e=f.modifiersData.offset;if(W===T&&$e){var Ve=$e[D];Object.keys(Ye).forEach(function(gt){var et=[R,be].indexOf(gt)>=0?1:-1,Pt=[ie,be].indexOf(gt)>=0?"y":"x";Ye[gt]+=Ve[Pt]*et})}return Ye}var sr="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",jr="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",mn={placement:"bottom",modifiers:[],strategy:"absolute"};function an(){for(var f=arguments.length,a=new Array(f),m=0;m100){console.error(jr);break}if(W.reset===!0){W.reset=!1,Pe=-1;continue}var _e=W.orderedModifiers[Pe],Le=_e.fn,Fe=_e.options,Ye=Fe===void 0?{}:Fe,$e=_e.name;typeof Le=="function"&&(W=Le({state:W,options:Ye,name:$e,instance:Ae})||W)}}},update:Ht(function(){return new Promise(function(Ee){Ae.forceUpdate(),Ee(W)})}),destroy:function(){Me(),Ne=!0}};if(!an(k,Y))return console.error(sr),Ae;Ae.setOptions(te).then(function(Ee){!Ne&&te.onFirstUpdate&&te.onFirstUpdate(Ee)});function we(){W.orderedModifiers.forEach(function(Ee){var Be=Ee.name,Re=Ee.options,He=Re===void 0?{}:Re,ae=Ee.effect;if(typeof ae=="function"){var Pe=ae({state:W,name:Be,instance:Ae,options:He}),_e=function(){};De.push(Pe||_e)}})}function Me(){De.forEach(function(Ee){return Ee()}),De=[]}return Ae}}var yn={passive:!0};function Br(f){var a=f.state,m=f.instance,A=f.options,D=A.scroll,F=D===void 0?!0:D,$=A.resize,k=$===void 0?!0:$,Y=n(a.elements.popper),te=[].concat(a.scrollParents.reference,a.scrollParents.popper);return F&&te.forEach(function(W){W.addEventListener("scroll",m.update,yn)}),k&&Y.addEventListener("resize",m.update,yn),function(){F&&te.forEach(function(W){W.removeEventListener("scroll",m.update,yn)}),k&&Y.removeEventListener("resize",m.update,yn)}}var Mn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Br,data:{}};function Hr(f){var a=f.state,m=f.name;a.modifiersData[m]=rr({reference:a.rects.reference,element:a.rects.popper,strategy:"absolute",placement:a.placement})}var Rn={name:"popperOffsets",enabled:!0,phase:"read",fn:Hr,data:{}},$r={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Wr(f){var a=f.x,m=f.y,A=window,D=A.devicePixelRatio||1;return{x:$t($t(a*D)/D)||0,y:$t($t(m*D)/D)||0}}function In(f){var a,m=f.popper,A=f.popperRect,D=f.placement,F=f.offsets,$=f.position,k=f.gpuAcceleration,Y=f.adaptive,te=f.roundOffsets,W=te===!0?Wr(F):typeof te=="function"?te(F):F,De=W.x,Ne=De===void 0?0:De,Ae=W.y,we=Ae===void 0?0:Ae,Me=F.hasOwnProperty("x"),Ee=F.hasOwnProperty("y"),Be=fe,Re=ie,He=window;if(Y){var ae=se(m),Pe="clientHeight",_e="clientWidth";ae===n(m)&&(ae=x(m),E(ae).position!=="static"&&(Pe="scrollHeight",_e="scrollWidth")),ae=ae,D===ie&&(Re=be,we-=ae[Pe]-A.height,we*=k?1:-1),D===fe&&(Be=R,Ne-=ae[_e]-A.width,Ne*=k?1:-1)}var Le=Object.assign({position:$},Y&&$r);if(k){var Fe;return Object.assign({},Le,(Fe={},Fe[Re]=Ee?"0":"",Fe[Be]=Me?"0":"",Fe.transform=(He.devicePixelRatio||1)<2?"translate("+Ne+"px, "+we+"px)":"translate3d("+Ne+"px, "+we+"px, 0)",Fe))}return Object.assign({},Le,(a={},a[Re]=Ee?we+"px":"",a[Be]=Me?Ne+"px":"",a.transform="",a))}function g(f){var a=f.state,m=f.options,A=m.gpuAcceleration,D=A===void 0?!0:A,F=m.adaptive,$=F===void 0?!0:F,k=m.roundOffsets,Y=k===void 0?!0:k,te=E(a.elements.popper).transitionProperty||"";$&&["transform","top","right","bottom","left"].some(function(De){return te.indexOf(De)>=0})&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',` `,'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.",` -`,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "));var I={placement:nt(a.placement),popper:a.elements.popper,popperRect:a.rects.popper,gpuAcceleration:x};a.modifiersData.popperOffsets!=null&&(a.styles.popper=Object.assign({},a.styles.popper,In(Object.assign({},I,{offsets:a.modifiersData.popperOffsets,position:a.options.strategy,adaptive:R,roundOffsets:j})))),a.modifiersData.arrow!=null&&(a.styles.arrow=Object.assign({},a.styles.arrow,In(Object.assign({},I,{offsets:a.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:j})))),a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-placement":a.placement})}var p={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:f,data:{}};function y(l){var a=l.state;Object.keys(a.elements).forEach(function(d){var E=a.styles[d]||{},x=a.attributes[d]||{},A=a.elements[d];!i(A)||!h(A)||(Object.assign(A.style,E),Object.keys(x).forEach(function(R){var P=x[R];P===!1?A.removeAttribute(R):A.setAttribute(R,P===!0?"":P)}))})}function C(l){var a=l.state,d={popper:{position:a.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(a.elements.popper.style,d.popper),a.styles=d,a.elements.arrow&&Object.assign(a.elements.arrow.style,d.arrow),function(){Object.keys(a.elements).forEach(function(E){var x=a.elements[E],A=a.attributes[E]||{},R=Object.keys(a.styles.hasOwnProperty(E)?a.styles[E]:d[E]),P=R.reduce(function(j,z){return j[z]="",j},{});!i(x)||!h(x)||(Object.assign(x.style,P),Object.keys(A).forEach(function(j){x.removeAttribute(j)}))})}}var k={name:"applyStyles",enabled:!0,phase:"write",fn:y,effect:C,requires:["computeStyles"]};function M(l,a,d){var E=nt(l),x=[ae,Z].indexOf(E)>=0?-1:1,A=typeof d=="function"?d(Object.assign({},a,{placement:l})):d,R=A[0],P=A[1];return R=R||0,P=(P||0)*x,[ae,N].indexOf(E)>=0?{x:P,y:R}:{x:R,y:P}}function _(l){var a=l.state,d=l.options,E=l.name,x=d.offset,A=x===void 0?[0,0]:x,R=dn.reduce(function(I,Ee){return I[Ee]=M(Ee,a.rects,A),I},{}),P=R[a.placement],j=P.x,z=P.y;a.modifiersData.popperOffsets!=null&&(a.modifiersData.popperOffsets.x+=j,a.modifiersData.popperOffsets.y+=z),a.modifiersData[E]=R}var se={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:_},G={left:"right",right:"left",bottom:"top",top:"bottom"};function te(l){return l.replace(/left|right|bottom|top/g,function(a){return G[a]})}var le={start:"end",end:"start"};function Oe(l){return l.replace(/start|end/g,function(a){return le[a]})}function Ne(l,a){a===void 0&&(a={});var d=a,E=d.placement,x=d.boundary,A=d.rootBoundary,R=d.padding,P=d.flipVariations,j=d.allowedAutoPlacements,z=j===void 0?dn:j,I=tn(E),Ee=I?P?Nt:Nt.filter(function(fe){return tn(fe)===I}):Ce,Me=Ee.filter(function(fe){return z.indexOf(fe)>=0});Me.length===0&&(Me=Ee,console.error(["Popper: The `allowedAutoPlacements` option did not allow any","placements. Ensure the `placement` option matches the variation","of the allowed placements.",'For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(" ")));var ye=Me.reduce(function(fe,Ae){return fe[Ae]=Ht(l,{placement:Ae,boundary:x,rootBoundary:A,padding:R})[nt(Ae)],fe},{});return Object.keys(ye).sort(function(fe,Ae){return ye[fe]-ye[Ae]})}function be(l){if(nt(l)===ue)return[];var a=te(l);return[Oe(l),a,Oe(a)]}function _e(l){var a=l.state,d=l.options,E=l.name;if(!a.modifiersData[E]._skip){for(var x=d.mainAxis,A=x===void 0?!0:x,R=d.altAxis,P=R===void 0?!0:R,j=d.fallbackPlacements,z=d.padding,I=d.boundary,Ee=d.rootBoundary,Me=d.altBoundary,ye=d.flipVariations,fe=ye===void 0?!0:ye,Ae=d.allowedAutoPlacements,ge=a.options.placement,ke=nt(ge),De=ke===ge,je=j||(De||!fe?[te(ge)]:be(ge)),J=[ge].concat(je).reduce(function(V,ie){return V.concat(nt(ie)===ue?Ne(a,{placement:ie,boundary:I,rootBoundary:Ee,padding:z,flipVariations:fe,allowedAutoPlacements:Ae}):ie)},[]),Se=a.rects.reference,xe=a.rects.popper,Re=new Map,Pe=!0,Ve=J[0],Fe=0;Fe=0,on=Dt?"width":"height",Ut=Ht(a,{placement:He,boundary:I,rootBoundary:Ee,altBoundary:Me,padding:z}),Tt=Dt?Je?N:ae:Je?de:Z;Se[on]>xe[on]&&(Tt=te(Tt));var Ln=te(Tt),Xt=[];if(A&&Xt.push(Ut[ht]<=0),P&&Xt.push(Ut[Tt]<=0,Ut[Ln]<=0),Xt.every(function(V){return V})){Ve=He,Pe=!1;break}Re.set(He,Xt)}if(Pe)for(var yn=fe?3:1,Nn=function(ie){var ce=J.find(function(ze){var Ye=Re.get(ze);if(Ye)return Ye.slice(0,ie).every(function(bt){return bt})});if(ce)return Ve=ce,"break"},w=yn;w>0;w--){var H=Nn(w);if(H==="break")break}a.placement!==Ve&&(a.modifiersData[E]._skip=!0,a.placement=Ve,a.reset=!0)}}var U={name:"flip",enabled:!0,phase:"main",fn:_e,requiresIfExists:["offset"],data:{_skip:!1}};function ne(l){return l==="x"?"y":"x"}function re(l,a,d){return ft(l,en(a,d))}function $(l){var a=l.state,d=l.options,E=l.name,x=d.mainAxis,A=x===void 0?!0:x,R=d.altAxis,P=R===void 0?!1:R,j=d.boundary,z=d.rootBoundary,I=d.altBoundary,Ee=d.padding,Me=d.tether,ye=Me===void 0?!0:Me,fe=d.tetherOffset,Ae=fe===void 0?0:fe,ge=Ht(a,{boundary:j,rootBoundary:z,padding:Ee,altBoundary:I}),ke=nt(a.placement),De=tn(a.placement),je=!De,J=lt(ke),Se=ne(J),xe=a.modifiersData.popperOffsets,Re=a.rects.reference,Pe=a.rects.popper,Ve=typeof Ae=="function"?Ae(Object.assign({},a.rects,{placement:a.placement})):Ae,Fe={x:0,y:0};if(xe){if(A||P){var He=J==="y"?Z:ae,ht=J==="y"?de:N,Je=J==="y"?"height":"width",Dt=xe[J],on=xe[J]+ge[He],Ut=xe[J]-ge[ht],Tt=ye?-Pe[Je]/2:0,Ln=De===pe?Re[Je]:Pe[Je],Xt=De===pe?-Pe[Je]:-Re[Je],yn=a.elements.arrow,Nn=ye&&yn?T(yn):{width:0,height:0},w=a.modifiersData["arrow#persistent"]?a.modifiersData["arrow#persistent"].padding:or(),H=w[He],V=w[ht],ie=re(0,Re[Je],Nn[Je]),ce=je?Re[Je]/2-Tt-ie-H-Ve:Ln-ie-H-Ve,ze=je?-Re[Je]/2+Tt+ie+V+Ve:Xt+ie+V+Ve,Ye=a.elements.arrow&&ee(a.elements.arrow),bt=Ye?J==="y"?Ye.clientTop||0:Ye.clientLeft||0:0,kn=a.modifiersData.offset?a.modifiersData.offset[a.placement][J]:0,yt=xe[J]+ce-kn-bt,wn=xe[J]+ze-kn;if(A){var an=re(ye?en(on,yt):on,Dt,ye?ft(Ut,wn):Ut);xe[J]=an,Fe[J]=an-Dt}if(P){var zt=J==="x"?Z:ae,Wr=J==="x"?de:N,Yt=xe[Se],sn=Yt+ge[zt],wo=Yt-ge[Wr],Eo=re(ye?en(sn,yt):sn,Yt,ye?ft(wo,wn):wo);xe[Se]=Eo,Fe[Se]=Eo-Yt}}a.modifiersData[E]=Fe}}var X={name:"preventOverflow",enabled:!0,phase:"main",fn:$,requiresIfExists:["offset"]},v=function(a,d){return a=typeof a=="function"?a(Object.assign({},d.rects,{placement:d.placement})):a,ir(typeof a!="number"?a:ar(a,Ce))};function Xe(l){var a,d=l.state,E=l.name,x=l.options,A=d.elements.arrow,R=d.modifiersData.popperOffsets,P=nt(d.placement),j=lt(P),z=[ae,N].indexOf(P)>=0,I=z?"height":"width";if(!(!A||!R)){var Ee=v(x.padding,d),Me=T(A),ye=j==="y"?Z:ae,fe=j==="y"?de:N,Ae=d.rects.reference[I]+d.rects.reference[j]-R[j]-d.rects.popper[I],ge=R[j]-d.rects.reference[j],ke=ee(A),De=ke?j==="y"?ke.clientHeight||0:ke.clientWidth||0:0,je=Ae/2-ge/2,J=Ee[ye],Se=De-Me[I]-Ee[fe],xe=De/2-Me[I]/2+je,Re=re(J,xe,Se),Pe=j;d.modifiersData[E]=(a={},a[Pe]=Re,a.centerOffset=Re-xe,a)}}function Q(l){var a=l.state,d=l.options,E=d.element,x=E===void 0?"[data-popper-arrow]":E;if(x!=null&&!(typeof x=="string"&&(x=a.elements.popper.querySelector(x),!x))){if(i(x)||console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).',"To use an SVG arrow, wrap it in an HTMLElement that will be used as","the arrow."].join(" ")),!Pn(a.elements.popper,x)){console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper',"element."].join(" "));return}a.elements.arrow=x}}var At={name:"arrow",enabled:!0,phase:"main",fn:Xe,effect:Q,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function dt(l,a,d){return d===void 0&&(d={x:0,y:0}),{top:l.top-a.height-d.y,right:l.right-a.width+d.x,bottom:l.bottom-a.height+d.y,left:l.left-a.width-d.x}}function $t(l){return[Z,N,de,ae].some(function(a){return l[a]>=0})}function Wt(l){var a=l.state,d=l.name,E=a.rects.reference,x=a.rects.popper,A=a.modifiersData.preventOverflow,R=Ht(a,{elementContext:"reference"}),P=Ht(a,{altBoundary:!0}),j=dt(R,E),z=dt(P,x,A),I=$t(j),Ee=$t(z);a.modifiersData[d]={referenceClippingOffsets:j,popperEscapeOffsets:z,isReferenceHidden:I,hasPopperEscaped:Ee},a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-reference-hidden":I,"data-popper-escaped":Ee})}var Vt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Wt},Ze=[Mn,Rn,p,k],ot=mn({defaultModifiers:Ze}),pt=[Mn,Rn,p,k,se,U,X,At,Vt],rn=mn({defaultModifiers:pt});e.applyStyles=k,e.arrow=At,e.computeStyles=p,e.createPopper=rn,e.createPopperLite=ot,e.defaultModifiers=pt,e.detectOverflow=Ht,e.eventListeners=Mn,e.flip=U,e.hide=Vt,e.offset=se,e.popperGenerator=mn,e.popperOffsets=Rn,e.preventOverflow=X}),Oi=Ei(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=$a(),n='',r="tippy-box",o="tippy-content",i="tippy-backdrop",s="tippy-arrow",c="tippy-svg-arrow",u={passive:!0,capture:!0};function h(f,p){return{}.hasOwnProperty.call(f,p)}function m(f,p,y){if(Array.isArray(f)){var C=f[p];return C??(Array.isArray(y)?y[p]:y)}return f}function g(f,p){var y={}.toString.call(f);return y.indexOf("[object")===0&&y.indexOf(p+"]")>-1}function b(f,p){return typeof f=="function"?f.apply(void 0,p):f}function O(f,p){if(p===0)return f;var y;return function(C){clearTimeout(y),y=setTimeout(function(){f(C)},p)}}function S(f,p){var y=Object.assign({},f);return p.forEach(function(C){delete y[C]}),y}function T(f){return f.split(/\s+/).filter(Boolean)}function F(f){return[].concat(f)}function B(f,p){f.indexOf(p)===-1&&f.push(p)}function L(f){return f.filter(function(p,y){return f.indexOf(p)===y})}function K(f){return f.split("-")[0]}function W(f){return[].slice.call(f)}function he(f){return Object.keys(f).reduce(function(p,y){return f[y]!==void 0&&(p[y]=f[y]),p},{})}function ee(){return document.createElement("div")}function Z(f){return["Element","Fragment"].some(function(p){return g(f,p)})}function de(f){return g(f,"NodeList")}function N(f){return g(f,"MouseEvent")}function ae(f){return!!(f&&f._tippy&&f._tippy.reference===f)}function ue(f){return Z(f)?[f]:de(f)?W(f):Array.isArray(f)?f:W(document.querySelectorAll(f))}function Ce(f,p){f.forEach(function(y){y&&(y.style.transitionDuration=p+"ms")})}function pe(f,p){f.forEach(function(y){y&&y.setAttribute("data-state",p)})}function ve(f){var p,y=F(f),C=y[0];return!(C==null||(p=C.ownerDocument)==null)&&p.body?C.ownerDocument:document}function We(f,p){var y=p.clientX,C=p.clientY;return f.every(function(k){var M=k.popperRect,_=k.popperState,se=k.props,G=se.interactiveBorder,te=K(_.placement),le=_.modifiersData.offset;if(!le)return!0;var Oe=te==="bottom"?le.top.y:0,Ne=te==="top"?le.bottom.y:0,be=te==="right"?le.left.x:0,_e=te==="left"?le.right.x:0,U=M.top-C+Oe>G,ne=C-M.bottom-Ne>G,re=M.left-y+be>G,$=y-M.right-_e>G;return U||ne||re||$})}function Le(f,p,y){var C=p+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(k){f[C](k,y)})}var Te={isTouch:!1},tt=0;function Nt(){Te.isTouch||(Te.isTouch=!0,window.performance&&document.addEventListener("mousemove",dn))}function dn(){var f=performance.now();f-tt<20&&(Te.isTouch=!1,document.removeEventListener("mousemove",dn)),tt=f}function pn(){var f=document.activeElement;if(ae(f)){var p=f._tippy;f.blur&&!p.state.isVisible&&f.blur()}}function _n(){document.addEventListener("touchstart",Nt,u),window.addEventListener("blur",pn)}var Tr=typeof window<"u"&&typeof document<"u",_r=Tr?navigator.userAgent:"",Pr=/MSIE |Trident\//.test(_r);function kt(f){var p=f==="destroy"?"n already-":" ";return[f+"() was called on a"+p+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function Jn(f){var p=/[ \t]{2,}/g,y=/^[ \t]*/gm;return f.replace(p," ").replace(y,"").trim()}function Mr(f){return Jn(` +`,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "));var W={placement:it(a.placement),popper:a.elements.popper,popperRect:a.rects.popper,gpuAcceleration:D};a.modifiersData.popperOffsets!=null&&(a.styles.popper=Object.assign({},a.styles.popper,In(Object.assign({},W,{offsets:a.modifiersData.popperOffsets,position:a.options.strategy,adaptive:$,roundOffsets:Y})))),a.modifiersData.arrow!=null&&(a.styles.arrow=Object.assign({},a.styles.arrow,In(Object.assign({},W,{offsets:a.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:Y})))),a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-placement":a.placement})}var y={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g,data:{}};function O(f){var a=f.state;Object.keys(a.elements).forEach(function(m){var A=a.styles[m]||{},D=a.attributes[m]||{},F=a.elements[m];!i(F)||!p(F)||(Object.assign(F.style,A),Object.keys(D).forEach(function($){var k=D[$];k===!1?F.removeAttribute($):F.setAttribute($,k===!0?"":k)}))})}function I(f){var a=f.state,m={popper:{position:a.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(a.elements.popper.style,m.popper),a.styles=m,a.elements.arrow&&Object.assign(a.elements.arrow.style,m.arrow),function(){Object.keys(a.elements).forEach(function(A){var D=a.elements[A],F=a.attributes[A]||{},$=Object.keys(a.styles.hasOwnProperty(A)?a.styles[A]:m[A]),k=$.reduce(function(Y,te){return Y[te]="",Y},{});!i(D)||!p(D)||(Object.assign(D.style,k),Object.keys(F).forEach(function(Y){D.removeAttribute(Y)}))})}}var z={name:"applyStyles",enabled:!0,phase:"write",fn:O,effect:I,requires:["computeStyles"]};function j(f,a,m){var A=it(f),D=[fe,ie].indexOf(A)>=0?-1:1,F=typeof m=="function"?m(Object.assign({},a,{placement:f})):m,$=F[0],k=F[1];return $=$||0,k=(k||0)*D,[fe,R].indexOf(A)>=0?{x:k,y:$}:{x:$,y:k}}function L(f){var a=f.state,m=f.options,A=f.name,D=m.offset,F=D===void 0?[0,0]:D,$=ze.reduce(function(W,De){return W[De]=j(De,a.rects,F),W},{}),k=$[a.placement],Y=k.x,te=k.y;a.modifiersData.popperOffsets!=null&&(a.modifiersData.popperOffsets.x+=Y,a.modifiersData.popperOffsets.y+=te),a.modifiersData[A]=$}var ge={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:L},oe={left:"right",right:"left",bottom:"top",top:"bottom"};function de(f){return f.replace(/left|right|bottom|top/g,function(a){return oe[a]})}var me={start:"end",end:"start"};function Te(f){return f.replace(/start|end/g,function(a){return me[a]})}function je(f,a){a===void 0&&(a={});var m=a,A=m.placement,D=m.boundary,F=m.rootBoundary,$=m.padding,k=m.flipVariations,Y=m.allowedAutoPlacements,te=Y===void 0?ze:Y,W=on(A),De=W?k?G:G.filter(function(we){return on(we)===W}):l,Ne=De.filter(function(we){return te.indexOf(we)>=0});Ne.length===0&&(Ne=De,console.error(["Popper: The `allowedAutoPlacements` option did not allow any","placements. Ensure the `placement` option matches the variation","of the allowed placements.",'For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(" ")));var Ae=Ne.reduce(function(we,Me){return we[Me]=Vt(f,{placement:Me,boundary:D,rootBoundary:F,padding:$})[it(Me)],we},{});return Object.keys(Ae).sort(function(we,Me){return Ae[we]-Ae[Me]})}function Se(f){if(it(f)===ce)return[];var a=de(f);return[Te(f),a,Te(a)]}function Ie(f){var a=f.state,m=f.options,A=f.name;if(!a.modifiersData[A]._skip){for(var D=m.mainAxis,F=D===void 0?!0:D,$=m.altAxis,k=$===void 0?!0:$,Y=m.fallbackPlacements,te=m.padding,W=m.boundary,De=m.rootBoundary,Ne=m.altBoundary,Ae=m.flipVariations,we=Ae===void 0?!0:Ae,Me=m.allowedAutoPlacements,Ee=a.options.placement,Be=it(Ee),Re=Be===Ee,He=Y||(Re||!we?[de(Ee)]:Se(Ee)),ae=[Ee].concat(He).reduce(function(J,ve){return J.concat(it(ve)===ce?je(a,{placement:ve,boundary:W,rootBoundary:De,padding:te,flipVariations:we,allowedAutoPlacements:Me}):ve)},[]),Pe=a.rects.reference,_e=a.rects.popper,Le=new Map,Fe=!0,Ye=ae[0],$e=0;$e=0,ln=Pt?"width":"height",Xt=Vt(a,{placement:Ve,boundary:W,rootBoundary:De,altBoundary:Ne,padding:te}),Mt=Pt?et?R:fe:et?be:ie;Pe[ln]>_e[ln]&&(Mt=de(Mt));var Fn=de(Mt),qt=[];if(F&&qt.push(Xt[gt]<=0),k&&qt.push(Xt[Mt]<=0,Xt[Fn]<=0),qt.every(function(J){return J})){Ye=Ve,Fe=!1;break}Le.set(Ve,qt)}if(Fe)for(var wn=we?3:1,Nn=function(ve){var ye=ae.find(function(Ke){var Je=Le.get(Ke);if(Je)return Je.slice(0,ve).every(function(xt){return xt})});if(ye)return Ye=ye,"break"},S=wn;S>0;S--){var X=Nn(S);if(X==="break")break}a.placement!==Ye&&(a.modifiersData[A]._skip=!0,a.placement=Ye,a.reset=!0)}}var Z={name:"flip",enabled:!0,phase:"main",fn:Ie,requiresIfExists:["offset"],data:{_skip:!1}};function pe(f){return f==="x"?"y":"x"}function he(f,a,m){return pt(f,rn(a,m))}function K(f){var a=f.state,m=f.options,A=f.name,D=m.mainAxis,F=D===void 0?!0:D,$=m.altAxis,k=$===void 0?!1:$,Y=m.boundary,te=m.rootBoundary,W=m.altBoundary,De=m.padding,Ne=m.tether,Ae=Ne===void 0?!0:Ne,we=m.tetherOffset,Me=we===void 0?0:we,Ee=Vt(a,{boundary:Y,rootBoundary:te,padding:De,altBoundary:W}),Be=it(a.placement),Re=on(a.placement),He=!Re,ae=ut(Be),Pe=pe(ae),_e=a.modifiersData.popperOffsets,Le=a.rects.reference,Fe=a.rects.popper,Ye=typeof Me=="function"?Me(Object.assign({},a.rects,{placement:a.placement})):Me,$e={x:0,y:0};if(_e){if(F||k){var Ve=ae==="y"?ie:fe,gt=ae==="y"?be:R,et=ae==="y"?"height":"width",Pt=_e[ae],ln=_e[ae]+Ee[Ve],Xt=_e[ae]-Ee[gt],Mt=Ae?-Fe[et]/2:0,Fn=Re===d?Le[et]:Fe[et],qt=Re===d?-Fe[et]:-Le[et],wn=a.elements.arrow,Nn=Ae&&wn?M(wn):{width:0,height:0},S=a.modifiersData["arrow#persistent"]?a.modifiersData["arrow#persistent"].padding:ir(),X=S[Ve],J=S[gt],ve=he(0,Le[et],Nn[et]),ye=He?Le[et]/2-Mt-ve-X-Ye:Fn-ve-X-Ye,Ke=He?-Le[et]/2+Mt+ve+J+Ye:qt+ve+J+Ye,Je=a.elements.arrow&&se(a.elements.arrow),xt=Je?ae==="y"?Je.clientTop||0:Je.clientLeft||0:0,Ln=a.modifiersData.offset?a.modifiersData.offset[a.placement][ae]:0,Et=_e[ae]+ye-Ln-xt,xn=_e[ae]+Ke-Ln;if(F){var fn=he(Ae?rn(ln,Et):ln,Pt,Ae?pt(Xt,xn):Xt);_e[ae]=fn,$e[ae]=fn-Pt}if(k){var Gt=ae==="x"?ie:fe,Vr=ae==="x"?be:R,Kt=_e[Pe],un=Kt+Ee[Gt],xi=Kt-Ee[Vr],Ei=he(Ae?rn(un,Et):un,Kt,Ae?pt(xi,xn):xi);_e[Pe]=Ei,$e[Pe]=Ei-Kt}}a.modifiersData[A]=$e}}var ee={name:"preventOverflow",enabled:!0,phase:"main",fn:K,requiresIfExists:["offset"]},w=function(a,m){return a=typeof a=="function"?a(Object.assign({},m.rects,{placement:m.placement})):a,or(typeof a!="number"?a:ar(a,l))};function Ge(f){var a,m=f.state,A=f.name,D=f.options,F=m.elements.arrow,$=m.modifiersData.popperOffsets,k=it(m.placement),Y=ut(k),te=[fe,R].indexOf(k)>=0,W=te?"height":"width";if(!(!F||!$)){var De=w(D.padding,m),Ne=M(F),Ae=Y==="y"?ie:fe,we=Y==="y"?be:R,Me=m.rects.reference[W]+m.rects.reference[Y]-$[Y]-m.rects.popper[W],Ee=$[Y]-m.rects.reference[Y],Be=se(F),Re=Be?Y==="y"?Be.clientHeight||0:Be.clientWidth||0:0,He=Me/2-Ee/2,ae=De[Ae],Pe=Re-Ne[W]-De[we],_e=Re/2-Ne[W]/2+He,Le=he(ae,_e,Pe),Fe=Y;m.modifiersData[A]=(a={},a[Fe]=Le,a.centerOffset=Le-_e,a)}}function le(f){var a=f.state,m=f.options,A=m.element,D=A===void 0?"[data-popper-arrow]":A;if(D!=null&&!(typeof D=="string"&&(D=a.elements.popper.querySelector(D),!D))){if(i(D)||console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).',"To use an SVG arrow, wrap it in an HTMLElement that will be used as","the arrow."].join(" ")),!Pn(a.elements.popper,D)){console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper',"element."].join(" "));return}a.elements.arrow=D}}var Tt={name:"arrow",enabled:!0,phase:"main",fn:Ge,effect:le,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ht(f,a,m){return m===void 0&&(m={x:0,y:0}),{top:f.top-a.height-m.y,right:f.right-a.width+m.x,bottom:f.bottom-a.height+m.y,left:f.left-a.width-m.x}}function Ut(f){return[ie,R,be,fe].some(function(a){return f[a]>=0})}function zt(f){var a=f.state,m=f.name,A=a.rects.reference,D=a.rects.popper,F=a.modifiersData.preventOverflow,$=Vt(a,{elementContext:"reference"}),k=Vt(a,{altBoundary:!0}),Y=ht($,A),te=ht(k,D,F),W=Ut(Y),De=Ut(te);a.modifiersData[m]={referenceClippingOffsets:Y,popperEscapeOffsets:te,isReferenceHidden:W,hasPopperEscaped:De},a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-reference-hidden":W,"data-popper-escaped":De})}var Yt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:zt},nt=[Mn,Rn,y,z],at=bn({defaultModifiers:nt}),vt=[Mn,Rn,y,z,ge,Z,ee,Tt,Yt],sn=bn({defaultModifiers:vt});e.applyStyles=z,e.arrow=Tt,e.computeStyles=y,e.createPopper=sn,e.createPopperLite=at,e.defaultModifiers=vt,e.detectOverflow=Vt,e.eventListeners=Mn,e.flip=Z,e.hide=Yt,e.offset=ge,e.popperGenerator=bn,e.popperOffsets=Rn,e.preventOverflow=ee}),Po=_o(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var t=ns(),n='',r="tippy-box",o="tippy-content",i="tippy-backdrop",s="tippy-arrow",u="tippy-svg-arrow",h={passive:!0,capture:!0};function p(g,y){return{}.hasOwnProperty.call(g,y)}function x(g,y,O){if(Array.isArray(g)){var I=g[y];return I??(Array.isArray(O)?O[y]:O)}return g}function b(g,y){var O={}.toString.call(g);return O.indexOf("[object")===0&&O.indexOf(y+"]")>-1}function E(g,y){return typeof g=="function"?g.apply(void 0,y):g}function _(g,y){if(y===0)return g;var O;return function(I){clearTimeout(O),O=setTimeout(function(){g(I)},y)}}function C(g,y){var O=Object.assign({},g);return y.forEach(function(I){delete O[I]}),O}function M(g){return g.split(/\s+/).filter(Boolean)}function U(g){return[].concat(g)}function V(g,y){g.indexOf(y)===-1&&g.push(y)}function B(g){return g.filter(function(y,O){return g.indexOf(y)===O})}function Q(g){return g.split("-")[0]}function q(g){return[].slice.call(g)}function xe(g){return Object.keys(g).reduce(function(y,O){return g[O]!==void 0&&(y[O]=g[O]),y},{})}function se(){return document.createElement("div")}function ie(g){return["Element","Fragment"].some(function(y){return b(g,y)})}function be(g){return b(g,"NodeList")}function R(g){return b(g,"MouseEvent")}function fe(g){return!!(g&&g._tippy&&g._tippy.reference===g)}function ce(g){return ie(g)?[g]:be(g)?q(g):Array.isArray(g)?g:q(document.querySelectorAll(g))}function l(g,y){g.forEach(function(O){O&&(O.style.transitionDuration=y+"ms")})}function d(g,y){g.forEach(function(O){O&&O.setAttribute("data-state",y)})}function v(g){var y,O=U(g),I=O[0];return!(I==null||(y=I.ownerDocument)==null)&&y.body?I.ownerDocument:document}function c(g,y){var O=y.clientX,I=y.clientY;return g.every(function(z){var j=z.popperRect,L=z.popperState,ge=z.props,oe=ge.interactiveBorder,de=Q(L.placement),me=L.modifiersData.offset;if(!me)return!0;var Te=de==="bottom"?me.top.y:0,je=de==="top"?me.bottom.y:0,Se=de==="right"?me.left.x:0,Ie=de==="left"?me.right.x:0,Z=j.top-I+Te>oe,pe=I-j.bottom-je>oe,he=j.left-O+Se>oe,K=O-j.right-Ie>oe;return Z||pe||he||K})}function H(g,y,O){var I=y+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(z){g[I](z,O)})}var T={isTouch:!1},P=0;function G(){T.isTouch||(T.isTouch=!0,window.performance&&document.addEventListener("mousemove",ze))}function ze(){var g=performance.now();g-P<20&&(T.isTouch=!1,document.removeEventListener("mousemove",ze)),P=g}function Dt(){var g=document.activeElement;if(fe(g)){var y=g._tippy;g.blur&&!y.state.isVisible&&g.blur()}}function jt(){document.addEventListener("touchstart",G,h),window.addEventListener("blur",Dt)}var Tr=typeof window<"u"&&typeof document<"u",Pr=Tr?navigator.userAgent:"",Mr=/MSIE |Trident\//.test(Pr);function Bt(g){var y=g==="destroy"?"n already-":" ";return[g+"() was called on a"+y+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function Jn(g){var y=/[ \t]{2,}/g,O=/^[ \t]*/gm;return g.replace(y," ").replace(O,"").trim()}function Rr(g){return Jn(` %ctippy.js - %c`+Jn(f)+` + %c`+Jn(g)+` %c\u{1F477}\u200D This is a development-only message. It will be removed in production. - `)}function Qn(f){return[Mr(f),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}var Ct;Rr();function Rr(){Ct=new Set}function ut(f,p){if(f&&!Ct.has(p)){var y;Ct.add(p),(y=console).warn.apply(y,Qn(p))}}function jt(f,p){if(f&&!Ct.has(p)){var y;Ct.add(p),(y=console).error.apply(y,Qn(p))}}function gt(f){var p=!f,y=Object.prototype.toString.call(f)==="[object Object]"&&!f.addEventListener;jt(p,["tippy() was passed","`"+String(f)+"`","as its targets (first) argument. Valid types are: String, Element,","Element[], or NodeList."].join(" ")),jt(y,["tippy() was passed a plain object which is not supported as an argument","for virtual positioning. Use props.getReferenceClientRect instead."].join(" "))}var mt={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Ir={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ke=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},mt,{},Ir),Lr=Object.keys(Ke),Nr=function(p){ft(p,[]);var y=Object.keys(p);y.forEach(function(C){Ke[C]=p[C]})};function nt(f){var p=f.plugins||[],y=p.reduce(function(C,k){var M=k.name,_=k.defaultValue;return M&&(C[M]=f[M]!==void 0?f[M]:_),C},{});return Object.assign({},f,{},y)}function kr(f,p){var y=p?Object.keys(nt(Object.assign({},Ke,{plugins:p}))):Lr,C=y.reduce(function(k,M){var _=(f.getAttribute("data-tippy-"+M)||"").trim();if(!_)return k;if(M==="content")k[M]=_;else try{k[M]=JSON.parse(_)}catch{k[M]=_}return k},{});return C}function Zn(f,p){var y=Object.assign({},p,{content:b(p.content,[f])},p.ignoreAttributes?{}:kr(f,p.plugins));return y.aria=Object.assign({},Ke.aria,{},y.aria),y.aria={expanded:y.aria.expanded==="auto"?p.interactive:y.aria.expanded,content:y.aria.content==="auto"?p.interactive?null:"describedby":y.aria.content},y}function ft(f,p){f===void 0&&(f={}),p===void 0&&(p=[]);var y=Object.keys(f);y.forEach(function(C){var k=S(Ke,Object.keys(mt)),M=!h(k,C);M&&(M=p.filter(function(_){return _.name===C}).length===0),ut(M,["`"+C+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.",` + `)}function Qn(g){return[Rr(g),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}var _t;Ir();function Ir(){_t=new Set}function dt(g,y){if(g&&!_t.has(y)){var O;_t.add(y),(O=console).warn.apply(O,Qn(y))}}function Ht(g,y){if(g&&!_t.has(y)){var O;_t.add(y),(O=console).error.apply(O,Qn(y))}}function yt(g){var y=!g,O=Object.prototype.toString.call(g)==="[object Object]"&&!g.addEventListener;Ht(y,["tippy() was passed","`"+String(g)+"`","as its targets (first) argument. Valid types are: String, Element,","Element[], or NodeList."].join(" ")),Ht(O,["tippy() was passed a plain object which is not supported as an argument","for virtual positioning. Use props.getReferenceClientRect instead."].join(" "))}var wt={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Fr={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Ze=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},wt,{},Fr),Nr=Object.keys(Ze),Lr=function(y){pt(y,[]);var O=Object.keys(y);O.forEach(function(I){Ze[I]=y[I]})};function it(g){var y=g.plugins||[],O=y.reduce(function(I,z){var j=z.name,L=z.defaultValue;return j&&(I[j]=g[j]!==void 0?g[j]:L),I},{});return Object.assign({},g,{},O)}function kr(g,y){var O=y?Object.keys(it(Object.assign({},Ze,{plugins:y}))):Nr,I=O.reduce(function(z,j){var L=(g.getAttribute("data-tippy-"+j)||"").trim();if(!L)return z;if(j==="content")z[j]=L;else try{z[j]=JSON.parse(L)}catch{z[j]=L}return z},{});return I}function Zn(g,y){var O=Object.assign({},y,{content:E(y.content,[g])},y.ignoreAttributes?{}:kr(g,y.plugins));return O.aria=Object.assign({},Ze.aria,{},O.aria),O.aria={expanded:O.aria.expanded==="auto"?y.interactive:O.aria.expanded,content:O.aria.content==="auto"?y.interactive?null:"describedby":O.aria.content},O}function pt(g,y){g===void 0&&(g={}),y===void 0&&(y=[]);var O=Object.keys(g);O.forEach(function(I){var z=C(Ze,Object.keys(wt)),j=!p(z,I);j&&(j=y.filter(function(L){return L.name===I}).length===0),dt(j,["`"+I+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.",` `,`All props: https://atomiks.github.io/tippyjs/v6/all-props/ -`,"Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "))})}var en=function(){return"innerHTML"};function Ft(f,p){f[en()]=p}function er(f){var p=ee();return f===!0?p.className=s:(p.className=c,Z(f)?p.appendChild(f):Ft(p,f)),p}function Pn(f,p){Z(p.content)?(Ft(f,""),f.appendChild(p.content)):typeof p.content!="function"&&(p.allowHTML?Ft(f,p.content):f.textContent=p.content)}function Bt(f){var p=f.firstElementChild,y=W(p.children);return{box:p,content:y.find(function(C){return C.classList.contains(o)}),arrow:y.find(function(C){return C.classList.contains(s)||C.classList.contains(c)}),backdrop:y.find(function(C){return C.classList.contains(i)})}}function tr(f){var p=ee(),y=ee();y.className=r,y.setAttribute("data-state","hidden"),y.setAttribute("tabindex","-1");var C=ee();C.className=o,C.setAttribute("data-state","hidden"),Pn(C,f.props),p.appendChild(y),y.appendChild(C),k(f.props,f.props);function k(M,_){var se=Bt(p),G=se.box,te=se.content,le=se.arrow;_.theme?G.setAttribute("data-theme",_.theme):G.removeAttribute("data-theme"),typeof _.animation=="string"?G.setAttribute("data-animation",_.animation):G.removeAttribute("data-animation"),_.inertia?G.setAttribute("data-inertia",""):G.removeAttribute("data-inertia"),G.style.maxWidth=typeof _.maxWidth=="number"?_.maxWidth+"px":_.maxWidth,_.role?G.setAttribute("role",_.role):G.removeAttribute("role"),(M.content!==_.content||M.allowHTML!==_.allowHTML)&&Pn(te,f.props),_.arrow?le?M.arrow!==_.arrow&&(G.removeChild(le),G.appendChild(er(_.arrow))):G.appendChild(er(_.arrow)):le&&G.removeChild(le)}return{popper:p,onUpdate:k}}tr.$$tippy=!0;var nr=1,hn=[],vn=[];function tn(f,p){var y=Zn(f,Object.assign({},Ke,{},nt(he(p)))),C,k,M,_=!1,se=!1,G=!1,te=!1,le,Oe,Ne,be=[],_e=O(De,y.interactiveDebounce),U,ne=nr++,re=null,$=L(y.plugins),X={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},v={id:ne,reference:f,popper:ee(),popperInstance:re,props:y,state:X,plugins:$,clearDelayTimeouts:Dt,setProps:on,setContent:Ut,show:Tt,hide:Ln,hideWithInteractivity:Xt,enable:ht,disable:Je,unmount:yn,destroy:Nn};if(!y.render)return jt(!0,"render() function has not been supplied."),v;var Xe=y.render(v),Q=Xe.popper,At=Xe.onUpdate;Q.setAttribute("data-tippy-root",""),Q.id="tippy-"+v.id,v.popper=Q,f._tippy=v,Q._tippy=v;var dt=$.map(function(w){return w.fn(v)}),$t=f.hasAttribute("aria-expanded");return Ae(),x(),a(),d("onCreate",[v]),y.showOnCreate&&Fe(),Q.addEventListener("mouseenter",function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()}),Q.addEventListener("mouseleave",function(w){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&(pt().addEventListener("mousemove",_e),_e(w))}),v;function Wt(){var w=v.props.touch;return Array.isArray(w)?w:[w,0]}function Vt(){return Wt()[0]==="hold"}function Ze(){var w;return!!((w=v.props.render)!=null&&w.$$tippy)}function ot(){return U||f}function pt(){var w=ot().parentNode;return w?ve(w):document}function rn(){return Bt(Q)}function l(w){return v.state.isMounted&&!v.state.isVisible||Te.isTouch||le&&le.type==="focus"?0:m(v.props.delay,w?0:1,Ke.delay)}function a(){Q.style.pointerEvents=v.props.interactive&&v.state.isVisible?"":"none",Q.style.zIndex=""+v.props.zIndex}function d(w,H,V){if(V===void 0&&(V=!0),dt.forEach(function(ce){ce[w]&&ce[w].apply(void 0,H)}),V){var ie;(ie=v.props)[w].apply(ie,H)}}function E(){var w=v.props.aria;if(w.content){var H="aria-"+w.content,V=Q.id,ie=F(v.props.triggerTarget||f);ie.forEach(function(ce){var ze=ce.getAttribute(H);if(v.state.isVisible)ce.setAttribute(H,ze?ze+" "+V:V);else{var Ye=ze&&ze.replace(V,"").trim();Ye?ce.setAttribute(H,Ye):ce.removeAttribute(H)}})}}function x(){if(!($t||!v.props.aria.expanded)){var w=F(v.props.triggerTarget||f);w.forEach(function(H){v.props.interactive?H.setAttribute("aria-expanded",v.state.isVisible&&H===ot()?"true":"false"):H.removeAttribute("aria-expanded")})}}function A(){pt().removeEventListener("mousemove",_e),hn=hn.filter(function(w){return w!==_e})}function R(w){if(!(Te.isTouch&&(G||w.type==="mousedown"))&&!(v.props.interactive&&Q.contains(w.target))){if(ot().contains(w.target)){if(Te.isTouch||v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else d("onClickOutside",[v,w]);v.props.hideOnClick===!0&&(v.clearDelayTimeouts(),v.hide(),se=!0,setTimeout(function(){se=!1}),v.state.isMounted||I())}}function P(){G=!0}function j(){G=!1}function z(){var w=pt();w.addEventListener("mousedown",R,!0),w.addEventListener("touchend",R,u),w.addEventListener("touchstart",j,u),w.addEventListener("touchmove",P,u)}function I(){var w=pt();w.removeEventListener("mousedown",R,!0),w.removeEventListener("touchend",R,u),w.removeEventListener("touchstart",j,u),w.removeEventListener("touchmove",P,u)}function Ee(w,H){ye(w,function(){!v.state.isVisible&&Q.parentNode&&Q.parentNode.contains(Q)&&H()})}function Me(w,H){ye(w,H)}function ye(w,H){var V=rn().box;function ie(ce){ce.target===V&&(Le(V,"remove",ie),H())}if(w===0)return H();Le(V,"remove",Oe),Le(V,"add",ie),Oe=ie}function fe(w,H,V){V===void 0&&(V=!1);var ie=F(v.props.triggerTarget||f);ie.forEach(function(ce){ce.addEventListener(w,H,V),be.push({node:ce,eventType:w,handler:H,options:V})})}function Ae(){Vt()&&(fe("touchstart",ke,{passive:!0}),fe("touchend",je,{passive:!0})),T(v.props.trigger).forEach(function(w){if(w!=="manual")switch(fe(w,ke),w){case"mouseenter":fe("mouseleave",je);break;case"focus":fe(Pr?"focusout":"blur",J);break;case"focusin":fe("focusout",J);break}})}function ge(){be.forEach(function(w){var H=w.node,V=w.eventType,ie=w.handler,ce=w.options;H.removeEventListener(V,ie,ce)}),be=[]}function ke(w){var H,V=!1;if(!(!v.state.isEnabled||Se(w)||se)){var ie=((H=le)==null?void 0:H.type)==="focus";le=w,U=w.currentTarget,x(),!v.state.isVisible&&N(w)&&hn.forEach(function(ce){return ce(w)}),w.type==="click"&&(v.props.trigger.indexOf("mouseenter")<0||_)&&v.props.hideOnClick!==!1&&v.state.isVisible?V=!0:Fe(w),w.type==="click"&&(_=!V),V&&!ie&&He(w)}}function De(w){var H=w.target,V=ot().contains(H)||Q.contains(H);if(!(w.type==="mousemove"&&V)){var ie=Ve().concat(Q).map(function(ce){var ze,Ye=ce._tippy,bt=(ze=Ye.popperInstance)==null?void 0:ze.state;return bt?{popperRect:ce.getBoundingClientRect(),popperState:bt,props:y}:null}).filter(Boolean);We(ie,w)&&(A(),He(w))}}function je(w){var H=Se(w)||v.props.trigger.indexOf("click")>=0&&_;if(!H){if(v.props.interactive){v.hideWithInteractivity(w);return}He(w)}}function J(w){v.props.trigger.indexOf("focusin")<0&&w.target!==ot()||v.props.interactive&&w.relatedTarget&&Q.contains(w.relatedTarget)||He(w)}function Se(w){return Te.isTouch?Vt()!==w.type.indexOf("touch")>=0:!1}function xe(){Re();var w=v.props,H=w.popperOptions,V=w.placement,ie=w.offset,ce=w.getReferenceClientRect,ze=w.moveTransition,Ye=Ze()?Bt(Q).arrow:null,bt=ce?{getBoundingClientRect:ce,contextElement:ce.contextElement||ot()}:f,kn={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(an){var zt=an.state;if(Ze()){var Wr=rn(),Yt=Wr.box;["placement","reference-hidden","escaped"].forEach(function(sn){sn==="placement"?Yt.setAttribute("data-placement",zt.placement):zt.attributes.popper["data-popper-"+sn]?Yt.setAttribute("data-"+sn,""):Yt.removeAttribute("data-"+sn)}),zt.attributes.popper={}}}},yt=[{name:"offset",options:{offset:ie}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!ze}},kn];Ze()&&Ye&&yt.push({name:"arrow",options:{element:Ye,padding:3}}),yt.push.apply(yt,H?.modifiers||[]),v.popperInstance=t.createPopper(bt,Q,Object.assign({},H,{placement:V,onFirstUpdate:Ne,modifiers:yt}))}function Re(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function Pe(){var w=v.props.appendTo,H,V=ot();v.props.interactive&&w===Ke.appendTo||w==="parent"?H=V.parentNode:H=b(w,[V]),H.contains(Q)||H.appendChild(Q),xe(),ut(v.props.interactive&&w===Ke.appendTo&&V.nextElementSibling!==Q,["Interactive tippy element may not be accessible via keyboard","navigation because it is not directly after the reference element","in the DOM source order.",` +`,"Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "))})}var rn=function(){return"innerHTML"};function $t(g,y){g[rn()]=y}function er(g){var y=se();return g===!0?y.className=s:(y.className=u,ie(g)?y.appendChild(g):$t(y,g)),y}function Pn(g,y){ie(y.content)?($t(g,""),g.appendChild(y.content)):typeof y.content!="function"&&(y.allowHTML?$t(g,y.content):g.textContent=y.content)}function Wt(g){var y=g.firstElementChild,O=q(y.children);return{box:y,content:O.find(function(I){return I.classList.contains(o)}),arrow:O.find(function(I){return I.classList.contains(s)||I.classList.contains(u)}),backdrop:O.find(function(I){return I.classList.contains(i)})}}function tr(g){var y=se(),O=se();O.className=r,O.setAttribute("data-state","hidden"),O.setAttribute("tabindex","-1");var I=se();I.className=o,I.setAttribute("data-state","hidden"),Pn(I,g.props),y.appendChild(O),O.appendChild(I),z(g.props,g.props);function z(j,L){var ge=Wt(y),oe=ge.box,de=ge.content,me=ge.arrow;L.theme?oe.setAttribute("data-theme",L.theme):oe.removeAttribute("data-theme"),typeof L.animation=="string"?oe.setAttribute("data-animation",L.animation):oe.removeAttribute("data-animation"),L.inertia?oe.setAttribute("data-inertia",""):oe.removeAttribute("data-inertia"),oe.style.maxWidth=typeof L.maxWidth=="number"?L.maxWidth+"px":L.maxWidth,L.role?oe.setAttribute("role",L.role):oe.removeAttribute("role"),(j.content!==L.content||j.allowHTML!==L.allowHTML)&&Pn(de,g.props),L.arrow?me?j.arrow!==L.arrow&&(oe.removeChild(me),oe.appendChild(er(L.arrow))):oe.appendChild(er(L.arrow)):me&&oe.removeChild(me)}return{popper:y,onUpdate:z}}tr.$$tippy=!0;var nr=1,vn=[],gn=[];function on(g,y){var O=Zn(g,Object.assign({},Ze,{},it(xe(y)))),I,z,j,L=!1,ge=!1,oe=!1,de=!1,me,Te,je,Se=[],Ie=_(Re,O.interactiveDebounce),Z,pe=nr++,he=null,K=B(O.plugins),ee={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},w={id:pe,reference:g,popper:se(),popperInstance:he,props:O,state:ee,plugins:K,clearDelayTimeouts:Pt,setProps:ln,setContent:Xt,show:Mt,hide:Fn,hideWithInteractivity:qt,enable:gt,disable:et,unmount:wn,destroy:Nn};if(!O.render)return Ht(!0,"render() function has not been supplied."),w;var Ge=O.render(w),le=Ge.popper,Tt=Ge.onUpdate;le.setAttribute("data-tippy-root",""),le.id="tippy-"+w.id,w.popper=le,g._tippy=w,le._tippy=w;var ht=K.map(function(S){return S.fn(w)}),Ut=g.hasAttribute("aria-expanded");return Me(),D(),a(),m("onCreate",[w]),O.showOnCreate&&$e(),le.addEventListener("mouseenter",function(){w.props.interactive&&w.state.isVisible&&w.clearDelayTimeouts()}),le.addEventListener("mouseleave",function(S){w.props.interactive&&w.props.trigger.indexOf("mouseenter")>=0&&(vt().addEventListener("mousemove",Ie),Ie(S))}),w;function zt(){var S=w.props.touch;return Array.isArray(S)?S:[S,0]}function Yt(){return zt()[0]==="hold"}function nt(){var S;return!!((S=w.props.render)!=null&&S.$$tippy)}function at(){return Z||g}function vt(){var S=at().parentNode;return S?v(S):document}function sn(){return Wt(le)}function f(S){return w.state.isMounted&&!w.state.isVisible||T.isTouch||me&&me.type==="focus"?0:x(w.props.delay,S?0:1,Ze.delay)}function a(){le.style.pointerEvents=w.props.interactive&&w.state.isVisible?"":"none",le.style.zIndex=""+w.props.zIndex}function m(S,X,J){if(J===void 0&&(J=!0),ht.forEach(function(ye){ye[S]&&ye[S].apply(void 0,X)}),J){var ve;(ve=w.props)[S].apply(ve,X)}}function A(){var S=w.props.aria;if(S.content){var X="aria-"+S.content,J=le.id,ve=U(w.props.triggerTarget||g);ve.forEach(function(ye){var Ke=ye.getAttribute(X);if(w.state.isVisible)ye.setAttribute(X,Ke?Ke+" "+J:J);else{var Je=Ke&&Ke.replace(J,"").trim();Je?ye.setAttribute(X,Je):ye.removeAttribute(X)}})}}function D(){if(!(Ut||!w.props.aria.expanded)){var S=U(w.props.triggerTarget||g);S.forEach(function(X){w.props.interactive?X.setAttribute("aria-expanded",w.state.isVisible&&X===at()?"true":"false"):X.removeAttribute("aria-expanded")})}}function F(){vt().removeEventListener("mousemove",Ie),vn=vn.filter(function(S){return S!==Ie})}function $(S){if(!(T.isTouch&&(oe||S.type==="mousedown"))&&!(w.props.interactive&&le.contains(S.target))){if(at().contains(S.target)){if(T.isTouch||w.state.isVisible&&w.props.trigger.indexOf("click")>=0)return}else m("onClickOutside",[w,S]);w.props.hideOnClick===!0&&(w.clearDelayTimeouts(),w.hide(),ge=!0,setTimeout(function(){ge=!1}),w.state.isMounted||W())}}function k(){oe=!0}function Y(){oe=!1}function te(){var S=vt();S.addEventListener("mousedown",$,!0),S.addEventListener("touchend",$,h),S.addEventListener("touchstart",Y,h),S.addEventListener("touchmove",k,h)}function W(){var S=vt();S.removeEventListener("mousedown",$,!0),S.removeEventListener("touchend",$,h),S.removeEventListener("touchstart",Y,h),S.removeEventListener("touchmove",k,h)}function De(S,X){Ae(S,function(){!w.state.isVisible&&le.parentNode&&le.parentNode.contains(le)&&X()})}function Ne(S,X){Ae(S,X)}function Ae(S,X){var J=sn().box;function ve(ye){ye.target===J&&(H(J,"remove",ve),X())}if(S===0)return X();H(J,"remove",Te),H(J,"add",ve),Te=ve}function we(S,X,J){J===void 0&&(J=!1);var ve=U(w.props.triggerTarget||g);ve.forEach(function(ye){ye.addEventListener(S,X,J),Se.push({node:ye,eventType:S,handler:X,options:J})})}function Me(){Yt()&&(we("touchstart",Be,{passive:!0}),we("touchend",He,{passive:!0})),M(w.props.trigger).forEach(function(S){if(S!=="manual")switch(we(S,Be),S){case"mouseenter":we("mouseleave",He);break;case"focus":we(Mr?"focusout":"blur",ae);break;case"focusin":we("focusout",ae);break}})}function Ee(){Se.forEach(function(S){var X=S.node,J=S.eventType,ve=S.handler,ye=S.options;X.removeEventListener(J,ve,ye)}),Se=[]}function Be(S){var X,J=!1;if(!(!w.state.isEnabled||Pe(S)||ge)){var ve=((X=me)==null?void 0:X.type)==="focus";me=S,Z=S.currentTarget,D(),!w.state.isVisible&&R(S)&&vn.forEach(function(ye){return ye(S)}),S.type==="click"&&(w.props.trigger.indexOf("mouseenter")<0||L)&&w.props.hideOnClick!==!1&&w.state.isVisible?J=!0:$e(S),S.type==="click"&&(L=!J),J&&!ve&&Ve(S)}}function Re(S){var X=S.target,J=at().contains(X)||le.contains(X);if(!(S.type==="mousemove"&&J)){var ve=Ye().concat(le).map(function(ye){var Ke,Je=ye._tippy,xt=(Ke=Je.popperInstance)==null?void 0:Ke.state;return xt?{popperRect:ye.getBoundingClientRect(),popperState:xt,props:O}:null}).filter(Boolean);c(ve,S)&&(F(),Ve(S))}}function He(S){var X=Pe(S)||w.props.trigger.indexOf("click")>=0&&L;if(!X){if(w.props.interactive){w.hideWithInteractivity(S);return}Ve(S)}}function ae(S){w.props.trigger.indexOf("focusin")<0&&S.target!==at()||w.props.interactive&&S.relatedTarget&&le.contains(S.relatedTarget)||Ve(S)}function Pe(S){return T.isTouch?Yt()!==S.type.indexOf("touch")>=0:!1}function _e(){Le();var S=w.props,X=S.popperOptions,J=S.placement,ve=S.offset,ye=S.getReferenceClientRect,Ke=S.moveTransition,Je=nt()?Wt(le).arrow:null,xt=ye?{getBoundingClientRect:ye,contextElement:ye.contextElement||at()}:g,Ln={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(fn){var Gt=fn.state;if(nt()){var Vr=sn(),Kt=Vr.box;["placement","reference-hidden","escaped"].forEach(function(un){un==="placement"?Kt.setAttribute("data-placement",Gt.placement):Gt.attributes.popper["data-popper-"+un]?Kt.setAttribute("data-"+un,""):Kt.removeAttribute("data-"+un)}),Gt.attributes.popper={}}}},Et=[{name:"offset",options:{offset:ve}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Ke}},Ln];nt()&&Je&&Et.push({name:"arrow",options:{element:Je,padding:3}}),Et.push.apply(Et,X?.modifiers||[]),w.popperInstance=t.createPopper(xt,le,Object.assign({},X,{placement:J,onFirstUpdate:je,modifiers:Et}))}function Le(){w.popperInstance&&(w.popperInstance.destroy(),w.popperInstance=null)}function Fe(){var S=w.props.appendTo,X,J=at();w.props.interactive&&S===Ze.appendTo||S==="parent"?X=J.parentNode:X=E(S,[J]),X.contains(le)||X.appendChild(le),_e(),dt(w.props.interactive&&S===Ze.appendTo&&J.nextElementSibling!==le,["Interactive tippy element may not be accessible via keyboard","navigation because it is not directly after the reference element","in the DOM source order.",` `,"Using a wrapper
or tag around the reference element","solves this by creating a new parentNode context.",` `,"Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle","keyboard navigation.",` -`,"See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "))}function Ve(){return W(Q.querySelectorAll("[data-tippy-root]"))}function Fe(w){v.clearDelayTimeouts(),w&&d("onTrigger",[v,w]),z();var H=l(!0),V=Wt(),ie=V[0],ce=V[1];Te.isTouch&&ie==="hold"&&ce&&(H=ce),H?C=setTimeout(function(){v.show()},H):v.show()}function He(w){if(v.clearDelayTimeouts(),d("onUntrigger",[v,w]),!v.state.isVisible){I();return}if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(w.type)>=0&&_)){var H=l(!1);H?k=setTimeout(function(){v.state.isVisible&&v.hide()},H):M=requestAnimationFrame(function(){v.hide()})}}function ht(){v.state.isEnabled=!0}function Je(){v.hide(),v.state.isEnabled=!1}function Dt(){clearTimeout(C),clearTimeout(k),cancelAnimationFrame(M)}function on(w){if(ut(v.state.isDestroyed,kt("setProps")),!v.state.isDestroyed){d("onBeforeUpdate",[v,w]),ge();var H=v.props,V=Zn(f,Object.assign({},v.props,{},w,{ignoreAttributes:!0}));v.props=V,Ae(),H.interactiveDebounce!==V.interactiveDebounce&&(A(),_e=O(De,V.interactiveDebounce)),H.triggerTarget&&!V.triggerTarget?F(H.triggerTarget).forEach(function(ie){ie.removeAttribute("aria-expanded")}):V.triggerTarget&&f.removeAttribute("aria-expanded"),x(),a(),At&&At(H,V),v.popperInstance&&(xe(),Ve().forEach(function(ie){requestAnimationFrame(ie._tippy.popperInstance.forceUpdate)})),d("onAfterUpdate",[v,w])}}function Ut(w){v.setProps({content:w})}function Tt(){ut(v.state.isDestroyed,kt("show"));var w=v.state.isVisible,H=v.state.isDestroyed,V=!v.state.isEnabled,ie=Te.isTouch&&!v.props.touch,ce=m(v.props.duration,0,Ke.duration);if(!(w||H||V||ie)&&!ot().hasAttribute("disabled")&&(d("onShow",[v],!1),v.props.onShow(v)!==!1)){if(v.state.isVisible=!0,Ze()&&(Q.style.visibility="visible"),a(),z(),v.state.isMounted||(Q.style.transition="none"),Ze()){var ze=rn(),Ye=ze.box,bt=ze.content;Ce([Ye,bt],0)}Ne=function(){var yt;if(!(!v.state.isVisible||te)){if(te=!0,Q.offsetHeight,Q.style.transition=v.props.moveTransition,Ze()&&v.props.animation){var wn=rn(),an=wn.box,zt=wn.content;Ce([an,zt],ce),pe([an,zt],"visible")}E(),x(),B(vn,v),(yt=v.popperInstance)==null||yt.forceUpdate(),v.state.isMounted=!0,d("onMount",[v]),v.props.animation&&Ze()&&Me(ce,function(){v.state.isShown=!0,d("onShown",[v])})}},Pe()}}function Ln(){ut(v.state.isDestroyed,kt("hide"));var w=!v.state.isVisible,H=v.state.isDestroyed,V=!v.state.isEnabled,ie=m(v.props.duration,1,Ke.duration);if(!(w||H||V)&&(d("onHide",[v],!1),v.props.onHide(v)!==!1)){if(v.state.isVisible=!1,v.state.isShown=!1,te=!1,_=!1,Ze()&&(Q.style.visibility="hidden"),A(),I(),a(),Ze()){var ce=rn(),ze=ce.box,Ye=ce.content;v.props.animation&&(Ce([ze,Ye],ie),pe([ze,Ye],"hidden"))}E(),x(),v.props.animation?Ze()&&Ee(ie,v.unmount):v.unmount()}}function Xt(w){ut(v.state.isDestroyed,kt("hideWithInteractivity")),pt().addEventListener("mousemove",_e),B(hn,_e),_e(w)}function yn(){ut(v.state.isDestroyed,kt("unmount")),v.state.isVisible&&v.hide(),v.state.isMounted&&(Re(),Ve().forEach(function(w){w._tippy.unmount()}),Q.parentNode&&Q.parentNode.removeChild(Q),vn=vn.filter(function(w){return w!==v}),v.state.isMounted=!1,d("onHidden",[v]))}function Nn(){ut(v.state.isDestroyed,kt("destroy")),!v.state.isDestroyed&&(v.clearDelayTimeouts(),v.unmount(),ge(),delete f._tippy,v.state.isDestroyed=!0,d("onDestroy",[v]))}}function lt(f,p){p===void 0&&(p={});var y=Ke.plugins.concat(p.plugins||[]);gt(f),ft(p,y),_n();var C=Object.assign({},p,{plugins:y}),k=ue(f),M=Z(C.content),_=k.length>1;ut(M&&_,["tippy() was passed an Element as the `content` prop, but more than","one tippy instance was created by this invocation. This means the","content element will only be appended to the last tippy instance.",` +`,"See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "))}function Ye(){return q(le.querySelectorAll("[data-tippy-root]"))}function $e(S){w.clearDelayTimeouts(),S&&m("onTrigger",[w,S]),te();var X=f(!0),J=zt(),ve=J[0],ye=J[1];T.isTouch&&ve==="hold"&&ye&&(X=ye),X?I=setTimeout(function(){w.show()},X):w.show()}function Ve(S){if(w.clearDelayTimeouts(),m("onUntrigger",[w,S]),!w.state.isVisible){W();return}if(!(w.props.trigger.indexOf("mouseenter")>=0&&w.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(S.type)>=0&&L)){var X=f(!1);X?z=setTimeout(function(){w.state.isVisible&&w.hide()},X):j=requestAnimationFrame(function(){w.hide()})}}function gt(){w.state.isEnabled=!0}function et(){w.hide(),w.state.isEnabled=!1}function Pt(){clearTimeout(I),clearTimeout(z),cancelAnimationFrame(j)}function ln(S){if(dt(w.state.isDestroyed,Bt("setProps")),!w.state.isDestroyed){m("onBeforeUpdate",[w,S]),Ee();var X=w.props,J=Zn(g,Object.assign({},w.props,{},S,{ignoreAttributes:!0}));w.props=J,Me(),X.interactiveDebounce!==J.interactiveDebounce&&(F(),Ie=_(Re,J.interactiveDebounce)),X.triggerTarget&&!J.triggerTarget?U(X.triggerTarget).forEach(function(ve){ve.removeAttribute("aria-expanded")}):J.triggerTarget&&g.removeAttribute("aria-expanded"),D(),a(),Tt&&Tt(X,J),w.popperInstance&&(_e(),Ye().forEach(function(ve){requestAnimationFrame(ve._tippy.popperInstance.forceUpdate)})),m("onAfterUpdate",[w,S])}}function Xt(S){w.setProps({content:S})}function Mt(){dt(w.state.isDestroyed,Bt("show"));var S=w.state.isVisible,X=w.state.isDestroyed,J=!w.state.isEnabled,ve=T.isTouch&&!w.props.touch,ye=x(w.props.duration,0,Ze.duration);if(!(S||X||J||ve)&&!at().hasAttribute("disabled")&&(m("onShow",[w],!1),w.props.onShow(w)!==!1)){if(w.state.isVisible=!0,nt()&&(le.style.visibility="visible"),a(),te(),w.state.isMounted||(le.style.transition="none"),nt()){var Ke=sn(),Je=Ke.box,xt=Ke.content;l([Je,xt],0)}je=function(){var Et;if(!(!w.state.isVisible||de)){if(de=!0,le.offsetHeight,le.style.transition=w.props.moveTransition,nt()&&w.props.animation){var xn=sn(),fn=xn.box,Gt=xn.content;l([fn,Gt],ye),d([fn,Gt],"visible")}A(),D(),V(gn,w),(Et=w.popperInstance)==null||Et.forceUpdate(),w.state.isMounted=!0,m("onMount",[w]),w.props.animation&&nt()&&Ne(ye,function(){w.state.isShown=!0,m("onShown",[w])})}},Fe()}}function Fn(){dt(w.state.isDestroyed,Bt("hide"));var S=!w.state.isVisible,X=w.state.isDestroyed,J=!w.state.isEnabled,ve=x(w.props.duration,1,Ze.duration);if(!(S||X||J)&&(m("onHide",[w],!1),w.props.onHide(w)!==!1)){if(w.state.isVisible=!1,w.state.isShown=!1,de=!1,L=!1,nt()&&(le.style.visibility="hidden"),F(),W(),a(),nt()){var ye=sn(),Ke=ye.box,Je=ye.content;w.props.animation&&(l([Ke,Je],ve),d([Ke,Je],"hidden"))}A(),D(),w.props.animation?nt()&&De(ve,w.unmount):w.unmount()}}function qt(S){dt(w.state.isDestroyed,Bt("hideWithInteractivity")),vt().addEventListener("mousemove",Ie),V(vn,Ie),Ie(S)}function wn(){dt(w.state.isDestroyed,Bt("unmount")),w.state.isVisible&&w.hide(),w.state.isMounted&&(Le(),Ye().forEach(function(S){S._tippy.unmount()}),le.parentNode&&le.parentNode.removeChild(le),gn=gn.filter(function(S){return S!==w}),w.state.isMounted=!1,m("onHidden",[w]))}function Nn(){dt(w.state.isDestroyed,Bt("destroy")),!w.state.isDestroyed&&(w.clearDelayTimeouts(),w.unmount(),Ee(),delete g._tippy,w.state.isDestroyed=!0,m("onDestroy",[w]))}}function ut(g,y){y===void 0&&(y={});var O=Ze.plugins.concat(y.plugins||[]);yt(g),pt(y,O),jt();var I=Object.assign({},y,{plugins:O}),z=ce(g),j=ie(I.content),L=z.length>1;dt(j&&L,["tippy() was passed an Element as the `content` prop, but more than","one tippy instance was created by this invocation. This means the","content element will only be appended to the last tippy instance.",` `,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",` `,`1) content: element.innerHTML -`,"2) content: () => element.cloneNode(true)"].join(" "));var se=k.reduce(function(G,te){var le=te&&tn(te,C);return le&&G.push(le),G},[]);return Z(f)?se[0]:se}lt.defaultProps=Ke,lt.setDefaultProps=Nr,lt.currentInput=Te;var rr=function(p){var y=p===void 0?{}:p,C=y.exclude,k=y.duration;vn.forEach(function(M){var _=!1;if(C&&(_=ae(C)?M.reference===C:M.popper===C.popper),!_){var se=M.props.duration;M.setProps({duration:k}),M.hide(),M.state.isDestroyed||M.setProps({duration:se})}})},or=Object.assign({},t.applyStyles,{effect:function(p){var y=p.state,C={popper:{position:y.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(y.elements.popper.style,C.popper),y.styles=C,y.elements.arrow&&Object.assign(y.elements.arrow.style,C.arrow)}}),ir=function(p,y){var C;y===void 0&&(y={}),jt(!Array.isArray(p),["The first argument passed to createSingleton() must be an array of","tippy instances. The passed value was",String(p)].join(" "));var k=p,M=[],_,se=y.overrides,G=[],te=!1;function le(){M=k.map(function($){return $.reference})}function Oe($){k.forEach(function(X){$?X.enable():X.disable()})}function Ne($){return k.map(function(X){var v=X.setProps;return X.setProps=function(Xe){v(Xe),X.reference===_&&$.setProps(Xe)},function(){X.setProps=v}})}function be($,X){var v=M.indexOf(X);if(X!==_){_=X;var Xe=(se||[]).concat("content").reduce(function(Q,At){return Q[At]=k[v].props[At],Q},{});$.setProps(Object.assign({},Xe,{getReferenceClientRect:typeof Xe.getReferenceClientRect=="function"?Xe.getReferenceClientRect:function(){return X.getBoundingClientRect()}}))}}Oe(!1),le();var _e={fn:function(){return{onDestroy:function(){Oe(!0)},onHidden:function(){_=null},onClickOutside:function(v){v.props.showOnCreate&&!te&&(te=!0,_=null)},onShow:function(v){v.props.showOnCreate&&!te&&(te=!0,be(v,M[0]))},onTrigger:function(v,Xe){be(v,Xe.currentTarget)}}}},U=lt(ee(),Object.assign({},S(y,["overrides"]),{plugins:[_e].concat(y.plugins||[]),triggerTarget:M,popperOptions:Object.assign({},y.popperOptions,{modifiers:[].concat(((C=y.popperOptions)==null?void 0:C.modifiers)||[],[or])})})),ne=U.show;U.show=function($){if(ne(),!_&&$==null)return be(U,M[0]);if(!(_&&$==null)){if(typeof $=="number")return M[$]&&be(U,M[$]);if(k.includes($)){var X=$.reference;return be(U,X)}if(M.includes($))return be(U,$)}},U.showNext=function(){var $=M[0];if(!_)return U.show(0);var X=M.indexOf(_);U.show(M[X+1]||$)},U.showPrevious=function(){var $=M[M.length-1];if(!_)return U.show($);var X=M.indexOf(_),v=M[X-1]||$;U.show(v)};var re=U.setProps;return U.setProps=function($){se=$.overrides||se,re($)},U.setInstances=function($){Oe(!0),G.forEach(function(X){return X()}),k=$,Oe(!1),le(),Ne(U),U.setProps({triggerTarget:M})},G=Ne(U),U},ar={mouseover:"mouseenter",focusin:"focus",click:"click"};function Ht(f,p){jt(!(p&&p.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" "));var y=[],C=[],k=!1,M=p.target,_=S(p,["target"]),se=Object.assign({},_,{trigger:"manual",touch:!1}),G=Object.assign({},_,{showOnCreate:!0}),te=lt(f,se),le=F(te);function Oe(ne){if(!(!ne.target||k)){var re=ne.target.closest(M);if(re){var $=re.getAttribute("data-tippy-trigger")||p.trigger||Ke.trigger;if(!re._tippy&&!(ne.type==="touchstart"&&typeof G.touch=="boolean")&&!(ne.type!=="touchstart"&&$.indexOf(ar[ne.type])<0)){var X=lt(re,G);X&&(C=C.concat(X))}}}}function Ne(ne,re,$,X){X===void 0&&(X=!1),ne.addEventListener(re,$,X),y.push({node:ne,eventType:re,handler:$,options:X})}function be(ne){var re=ne.reference;Ne(re,"touchstart",Oe,u),Ne(re,"mouseover",Oe),Ne(re,"focusin",Oe),Ne(re,"click",Oe)}function _e(){y.forEach(function(ne){var re=ne.node,$=ne.eventType,X=ne.handler,v=ne.options;re.removeEventListener($,X,v)}),y=[]}function U(ne){var re=ne.destroy,$=ne.enable,X=ne.disable;ne.destroy=function(v){v===void 0&&(v=!0),v&&C.forEach(function(Xe){Xe.destroy()}),C=[],_e(),re()},ne.enable=function(){$(),C.forEach(function(v){return v.enable()}),k=!1},ne.disable=function(){X(),C.forEach(function(v){return v.disable()}),k=!0},be(ne)}return le.forEach(U),te}var sr={name:"animateFill",defaultValue:!1,fn:function(p){var y;if(!((y=p.props.render)!=null&&y.$$tippy))return jt(p.props.animateFill,"The `animateFill` plugin requires the default render function."),{};var C=Bt(p.popper),k=C.box,M=C.content,_=p.props.animateFill?jr():null;return{onCreate:function(){_&&(k.insertBefore(_,k.firstElementChild),k.setAttribute("data-animatefill",""),k.style.overflow="hidden",p.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(_){var G=k.style.transitionDuration,te=Number(G.replace("ms",""));M.style.transitionDelay=Math.round(te/10)+"ms",_.style.transitionDuration=G,pe([_],"visible")}},onShow:function(){_&&(_.style.transitionDuration="0ms")},onHide:function(){_&&pe([_],"hidden")}}}};function jr(){var f=ee();return f.className=i,pe([f],"hidden"),f}var gn={clientX:0,clientY:0},nn=[];function mn(f){var p=f.clientX,y=f.clientY;gn={clientX:p,clientY:y}}function bn(f){f.addEventListener("mousemove",mn)}function Fr(f){f.removeEventListener("mousemove",mn)}var Mn={name:"followCursor",defaultValue:!1,fn:function(p){var y=p.reference,C=ve(p.props.triggerTarget||y),k=!1,M=!1,_=!0,se=p.props;function G(){return p.props.followCursor==="initial"&&p.state.isVisible}function te(){C.addEventListener("mousemove",Ne)}function le(){C.removeEventListener("mousemove",Ne)}function Oe(){k=!0,p.setProps({getReferenceClientRect:null}),k=!1}function Ne(U){var ne=U.target?y.contains(U.target):!0,re=p.props.followCursor,$=U.clientX,X=U.clientY,v=y.getBoundingClientRect(),Xe=$-v.left,Q=X-v.top;(ne||!p.props.interactive)&&p.setProps({getReferenceClientRect:function(){var dt=y.getBoundingClientRect(),$t=$,Wt=X;re==="initial"&&($t=dt.left+Xe,Wt=dt.top+Q);var Vt=re==="horizontal"?dt.top:Wt,Ze=re==="vertical"?dt.right:$t,ot=re==="horizontal"?dt.bottom:Wt,pt=re==="vertical"?dt.left:$t;return{width:Ze-pt,height:ot-Vt,top:Vt,right:Ze,bottom:ot,left:pt}}})}function be(){p.props.followCursor&&(nn.push({instance:p,doc:C}),bn(C))}function _e(){nn=nn.filter(function(U){return U.instance!==p}),nn.filter(function(U){return U.doc===C}).length===0&&Fr(C)}return{onCreate:be,onDestroy:_e,onBeforeUpdate:function(){se=p.props},onAfterUpdate:function(ne,re){var $=re.followCursor;k||$!==void 0&&se.followCursor!==$&&(_e(),$?(be(),p.state.isMounted&&!M&&!G()&&te()):(le(),Oe()))},onMount:function(){p.props.followCursor&&!M&&(_&&(Ne(gn),_=!1),G()||te())},onTrigger:function(ne,re){N(re)&&(gn={clientX:re.clientX,clientY:re.clientY}),M=re.type==="focus"},onHidden:function(){p.props.followCursor&&(Oe(),le(),_=!0)}}}};function Br(f,p){var y;return{popperOptions:Object.assign({},f.popperOptions,{modifiers:[].concat((((y=f.popperOptions)==null?void 0:y.modifiers)||[]).filter(function(C){var k=C.name;return k!==p.name}),[p])})}}var Rn={name:"inlinePositioning",defaultValue:!1,fn:function(p){var y=p.reference;function C(){return!!p.props.inlinePositioning}var k,M=-1,_=!1,se={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(Ne){var be=Ne.state;C()&&(k!==be.placement&&p.setProps({getReferenceClientRect:function(){return G(be.placement)}}),k=be.placement)}};function G(Oe){return Hr(K(Oe),y.getBoundingClientRect(),W(y.getClientRects()),M)}function te(Oe){_=!0,p.setProps(Oe),_=!1}function le(){_||te(Br(p.props,se))}return{onCreate:le,onAfterUpdate:le,onTrigger:function(Ne,be){if(N(be)){var _e=W(p.reference.getClientRects()),U=_e.find(function(ne){return ne.left-2<=be.clientX&&ne.right+2>=be.clientX&&ne.top-2<=be.clientY&&ne.bottom+2>=be.clientY});M=_e.indexOf(U)}},onUntrigger:function(){M=-1}}}};function Hr(f,p,y,C){if(y.length<2||f===null)return p;if(y.length===2&&C>=0&&y[0].left>y[1].right)return y[C]||p;switch(f){case"top":case"bottom":{var k=y[0],M=y[y.length-1],_=f==="top",se=k.top,G=M.bottom,te=_?k.left:M.left,le=_?k.right:M.right,Oe=le-te,Ne=G-se;return{top:se,bottom:G,left:te,right:le,width:Oe,height:Ne}}case"left":case"right":{var be=Math.min.apply(Math,y.map(function(Q){return Q.left})),_e=Math.max.apply(Math,y.map(function(Q){return Q.right})),U=y.filter(function(Q){return f==="left"?Q.left===be:Q.right===_e}),ne=U[0].top,re=U[U.length-1].bottom,$=be,X=_e,v=X-$,Xe=re-ne;return{top:ne,bottom:re,left:$,right:X,width:v,height:Xe}}default:return p}}var $r={name:"sticky",defaultValue:!1,fn:function(p){var y=p.reference,C=p.popper;function k(){return p.popperInstance?p.popperInstance.state.elements.reference:y}function M(te){return p.props.sticky===!0||p.props.sticky===te}var _=null,se=null;function G(){var te=M("reference")?k().getBoundingClientRect():null,le=M("popper")?C.getBoundingClientRect():null;(te&&In(_,te)||le&&In(se,le))&&p.popperInstance&&p.popperInstance.update(),_=te,se=le,p.state.isMounted&&requestAnimationFrame(G)}return{onMount:function(){p.props.sticky&&G()}}}};function In(f,p){return f&&p?f.top!==p.top||f.right!==p.right||f.bottom!==p.bottom||f.left!==p.left:!0}lt.setDefaultProps({render:tr}),e.animateFill=sr,e.createSingleton=ir,e.default=lt,e.delegate=Ht,e.followCursor=Mn,e.hideAll=rr,e.inlinePositioning=Rn,e.roundArrow=n,e.sticky=$r}),mo=xi(Oi()),Wa=xi(Oi()),Va=e=>{let t={plugins:[]},n=r=>e[e.indexOf(r)+1];if(e.includes("animation")&&(t.animation=n("animation")),e.includes("duration")&&(t.duration=parseInt(n("duration"))),e.includes("delay")){let r=n("delay");t.delay=r.includes("-")?r.split("-").map(o=>parseInt(o)):parseInt(r)}if(e.includes("cursor")){t.plugins.push(Wa.followCursor);let r=n("cursor");["x","initial"].includes(r)?t.followCursor=r==="x"?"horizontal":"initial":t.followCursor=!0}return e.includes("on")&&(t.trigger=n("on")),e.includes("arrowless")&&(t.arrow=!1),e.includes("html")&&(t.allowHTML=!0),e.includes("interactive")&&(t.interactive=!0),e.includes("border")&&t.interactive&&(t.interactiveBorder=parseInt(n("border"))),e.includes("debounce")&&t.interactive&&(t.interactiveDebounce=parseInt(n("debounce"))),e.includes("max-width")&&(t.maxWidth=parseInt(n("max-width"))),e.includes("theme")&&(t.theme=n("theme")),e.includes("placement")&&(t.placement=n("placement")),t};function bo(e){e.magic("tooltip",t=>(n,r={})=>{let o=(0,mo.default)(t,{content:n,trigger:"manual",...r});o.show(),setTimeout(()=>{o.hide(),setTimeout(()=>o.destroy(),r.duration||300)},r.timeout||2e3)}),e.directive("tooltip",(t,{modifiers:n,expression:r},{evaluateLater:o,effect:i})=>{let s=n.length>0?Va(n):{};t.__x_tippy||(t.__x_tippy=(0,mo.default)(t,s));let c=()=>t.__x_tippy.enable(),u=()=>t.__x_tippy.disable(),h=m=>{m?(c(),t.__x_tippy.setContent(m)):u()};if(n.includes("raw"))h(r);else{let m=o(r);i(()=>{m(g=>{typeof g=="object"?(t.__x_tippy.setProps(g),c()):h(g)})})}})}bo.defaultProps=e=>(mo.default.setDefaultProps(e),bo);var Ua=bo,Si=Ua;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(Ko),window.Alpine.plugin(Jo),window.Alpine.plugin(wi),window.Alpine.plugin(Si)});var Xa=function(e,t,n){function r(m,g){for(let b of m){let O=o(b,g);if(O!==null)return O}}function o(m,g){let b=m.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s);if(b===null||b.length!==3)return null;let O=b[1],S=b[2];if(O.includes(",")){let[T,F]=O.split(",",2);if(F==="*"&&g>=T)return S;if(T==="*"&&g<=F)return S;if(g>=T&&g<=F)return S}return O==g?S:null}function i(m){return m.toString().charAt(0).toUpperCase()+m.toString().slice(1)}function s(m,g){if(g.length===0)return m;let b={};for(let[O,S]of Object.entries(g))b[":"+i(O??"")]=i(S??""),b[":"+O.toUpperCase()]=S.toString().toUpperCase(),b[":"+O]=S;return Object.entries(b).forEach(([O,S])=>{m=m.replaceAll(O,S)}),m}function c(m){return m.map(g=>g.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}let u=e.split("|"),h=r(u,t);return h!=null?s(h.trim(),n):(u=c(u),s(u.length>1&&t>1?u[1]:u[0],n))};window.pluralize=Xa;})(); +`,"2) content: () => element.cloneNode(true)"].join(" "));var ge=z.reduce(function(oe,de){var me=de&&on(de,I);return me&&oe.push(me),oe},[]);return ie(g)?ge[0]:ge}ut.defaultProps=Ze,ut.setDefaultProps=Lr,ut.currentInput=T;var rr=function(y){var O=y===void 0?{}:y,I=O.exclude,z=O.duration;gn.forEach(function(j){var L=!1;if(I&&(L=fe(I)?j.reference===I:j.popper===I.popper),!L){var ge=j.props.duration;j.setProps({duration:z}),j.hide(),j.state.isDestroyed||j.setProps({duration:ge})}})},ir=Object.assign({},t.applyStyles,{effect:function(y){var O=y.state,I={popper:{position:O.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(O.elements.popper.style,I.popper),O.styles=I,O.elements.arrow&&Object.assign(O.elements.arrow.style,I.arrow)}}),or=function(y,O){var I;O===void 0&&(O={}),Ht(!Array.isArray(y),["The first argument passed to createSingleton() must be an array of","tippy instances. The passed value was",String(y)].join(" "));var z=y,j=[],L,ge=O.overrides,oe=[],de=!1;function me(){j=z.map(function(K){return K.reference})}function Te(K){z.forEach(function(ee){K?ee.enable():ee.disable()})}function je(K){return z.map(function(ee){var w=ee.setProps;return ee.setProps=function(Ge){w(Ge),ee.reference===L&&K.setProps(Ge)},function(){ee.setProps=w}})}function Se(K,ee){var w=j.indexOf(ee);if(ee!==L){L=ee;var Ge=(ge||[]).concat("content").reduce(function(le,Tt){return le[Tt]=z[w].props[Tt],le},{});K.setProps(Object.assign({},Ge,{getReferenceClientRect:typeof Ge.getReferenceClientRect=="function"?Ge.getReferenceClientRect:function(){return ee.getBoundingClientRect()}}))}}Te(!1),me();var Ie={fn:function(){return{onDestroy:function(){Te(!0)},onHidden:function(){L=null},onClickOutside:function(w){w.props.showOnCreate&&!de&&(de=!0,L=null)},onShow:function(w){w.props.showOnCreate&&!de&&(de=!0,Se(w,j[0]))},onTrigger:function(w,Ge){Se(w,Ge.currentTarget)}}}},Z=ut(se(),Object.assign({},C(O,["overrides"]),{plugins:[Ie].concat(O.plugins||[]),triggerTarget:j,popperOptions:Object.assign({},O.popperOptions,{modifiers:[].concat(((I=O.popperOptions)==null?void 0:I.modifiers)||[],[ir])})})),pe=Z.show;Z.show=function(K){if(pe(),!L&&K==null)return Se(Z,j[0]);if(!(L&&K==null)){if(typeof K=="number")return j[K]&&Se(Z,j[K]);if(z.includes(K)){var ee=K.reference;return Se(Z,ee)}if(j.includes(K))return Se(Z,K)}},Z.showNext=function(){var K=j[0];if(!L)return Z.show(0);var ee=j.indexOf(L);Z.show(j[ee+1]||K)},Z.showPrevious=function(){var K=j[j.length-1];if(!L)return Z.show(K);var ee=j.indexOf(L),w=j[ee-1]||K;Z.show(w)};var he=Z.setProps;return Z.setProps=function(K){ge=K.overrides||ge,he(K)},Z.setInstances=function(K){Te(!0),oe.forEach(function(ee){return ee()}),z=K,Te(!1),me(),je(Z),Z.setProps({triggerTarget:j})},oe=je(Z),Z},ar={mouseover:"mouseenter",focusin:"focus",click:"click"};function Vt(g,y){Ht(!(y&&y.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" "));var O=[],I=[],z=!1,j=y.target,L=C(y,["target"]),ge=Object.assign({},L,{trigger:"manual",touch:!1}),oe=Object.assign({},L,{showOnCreate:!0}),de=ut(g,ge),me=U(de);function Te(pe){if(!(!pe.target||z)){var he=pe.target.closest(j);if(he){var K=he.getAttribute("data-tippy-trigger")||y.trigger||Ze.trigger;if(!he._tippy&&!(pe.type==="touchstart"&&typeof oe.touch=="boolean")&&!(pe.type!=="touchstart"&&K.indexOf(ar[pe.type])<0)){var ee=ut(he,oe);ee&&(I=I.concat(ee))}}}}function je(pe,he,K,ee){ee===void 0&&(ee=!1),pe.addEventListener(he,K,ee),O.push({node:pe,eventType:he,handler:K,options:ee})}function Se(pe){var he=pe.reference;je(he,"touchstart",Te,h),je(he,"mouseover",Te),je(he,"focusin",Te),je(he,"click",Te)}function Ie(){O.forEach(function(pe){var he=pe.node,K=pe.eventType,ee=pe.handler,w=pe.options;he.removeEventListener(K,ee,w)}),O=[]}function Z(pe){var he=pe.destroy,K=pe.enable,ee=pe.disable;pe.destroy=function(w){w===void 0&&(w=!0),w&&I.forEach(function(Ge){Ge.destroy()}),I=[],Ie(),he()},pe.enable=function(){K(),I.forEach(function(w){return w.enable()}),z=!1},pe.disable=function(){ee(),I.forEach(function(w){return w.disable()}),z=!0},Se(pe)}return me.forEach(Z),de}var sr={name:"animateFill",defaultValue:!1,fn:function(y){var O;if(!((O=y.props.render)!=null&&O.$$tippy))return Ht(y.props.animateFill,"The `animateFill` plugin requires the default render function."),{};var I=Wt(y.popper),z=I.box,j=I.content,L=y.props.animateFill?jr():null;return{onCreate:function(){L&&(z.insertBefore(L,z.firstElementChild),z.setAttribute("data-animatefill",""),z.style.overflow="hidden",y.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(L){var oe=z.style.transitionDuration,de=Number(oe.replace("ms",""));j.style.transitionDelay=Math.round(de/10)+"ms",L.style.transitionDuration=oe,d([L],"visible")}},onShow:function(){L&&(L.style.transitionDuration="0ms")},onHide:function(){L&&d([L],"hidden")}}}};function jr(){var g=se();return g.className=i,d([g],"hidden"),g}var mn={clientX:0,clientY:0},an=[];function bn(g){var y=g.clientX,O=g.clientY;mn={clientX:y,clientY:O}}function yn(g){g.addEventListener("mousemove",bn)}function Br(g){g.removeEventListener("mousemove",bn)}var Mn={name:"followCursor",defaultValue:!1,fn:function(y){var O=y.reference,I=v(y.props.triggerTarget||O),z=!1,j=!1,L=!0,ge=y.props;function oe(){return y.props.followCursor==="initial"&&y.state.isVisible}function de(){I.addEventListener("mousemove",je)}function me(){I.removeEventListener("mousemove",je)}function Te(){z=!0,y.setProps({getReferenceClientRect:null}),z=!1}function je(Z){var pe=Z.target?O.contains(Z.target):!0,he=y.props.followCursor,K=Z.clientX,ee=Z.clientY,w=O.getBoundingClientRect(),Ge=K-w.left,le=ee-w.top;(pe||!y.props.interactive)&&y.setProps({getReferenceClientRect:function(){var ht=O.getBoundingClientRect(),Ut=K,zt=ee;he==="initial"&&(Ut=ht.left+Ge,zt=ht.top+le);var Yt=he==="horizontal"?ht.top:zt,nt=he==="vertical"?ht.right:Ut,at=he==="horizontal"?ht.bottom:zt,vt=he==="vertical"?ht.left:Ut;return{width:nt-vt,height:at-Yt,top:Yt,right:nt,bottom:at,left:vt}}})}function Se(){y.props.followCursor&&(an.push({instance:y,doc:I}),yn(I))}function Ie(){an=an.filter(function(Z){return Z.instance!==y}),an.filter(function(Z){return Z.doc===I}).length===0&&Br(I)}return{onCreate:Se,onDestroy:Ie,onBeforeUpdate:function(){ge=y.props},onAfterUpdate:function(pe,he){var K=he.followCursor;z||K!==void 0&&ge.followCursor!==K&&(Ie(),K?(Se(),y.state.isMounted&&!j&&!oe()&&de()):(me(),Te()))},onMount:function(){y.props.followCursor&&!j&&(L&&(je(mn),L=!1),oe()||de())},onTrigger:function(pe,he){R(he)&&(mn={clientX:he.clientX,clientY:he.clientY}),j=he.type==="focus"},onHidden:function(){y.props.followCursor&&(Te(),me(),L=!0)}}}};function Hr(g,y){var O;return{popperOptions:Object.assign({},g.popperOptions,{modifiers:[].concat((((O=g.popperOptions)==null?void 0:O.modifiers)||[]).filter(function(I){var z=I.name;return z!==y.name}),[y])})}}var Rn={name:"inlinePositioning",defaultValue:!1,fn:function(y){var O=y.reference;function I(){return!!y.props.inlinePositioning}var z,j=-1,L=!1,ge={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(je){var Se=je.state;I()&&(z!==Se.placement&&y.setProps({getReferenceClientRect:function(){return oe(Se.placement)}}),z=Se.placement)}};function oe(Te){return $r(Q(Te),O.getBoundingClientRect(),q(O.getClientRects()),j)}function de(Te){L=!0,y.setProps(Te),L=!1}function me(){L||de(Hr(y.props,ge))}return{onCreate:me,onAfterUpdate:me,onTrigger:function(je,Se){if(R(Se)){var Ie=q(y.reference.getClientRects()),Z=Ie.find(function(pe){return pe.left-2<=Se.clientX&&pe.right+2>=Se.clientX&&pe.top-2<=Se.clientY&&pe.bottom+2>=Se.clientY});j=Ie.indexOf(Z)}},onUntrigger:function(){j=-1}}}};function $r(g,y,O,I){if(O.length<2||g===null)return y;if(O.length===2&&I>=0&&O[0].left>O[1].right)return O[I]||y;switch(g){case"top":case"bottom":{var z=O[0],j=O[O.length-1],L=g==="top",ge=z.top,oe=j.bottom,de=L?z.left:j.left,me=L?z.right:j.right,Te=me-de,je=oe-ge;return{top:ge,bottom:oe,left:de,right:me,width:Te,height:je}}case"left":case"right":{var Se=Math.min.apply(Math,O.map(function(le){return le.left})),Ie=Math.max.apply(Math,O.map(function(le){return le.right})),Z=O.filter(function(le){return g==="left"?le.left===Se:le.right===Ie}),pe=Z[0].top,he=Z[Z.length-1].bottom,K=Se,ee=Ie,w=ee-K,Ge=he-pe;return{top:pe,bottom:he,left:K,right:ee,width:w,height:Ge}}default:return y}}var Wr={name:"sticky",defaultValue:!1,fn:function(y){var O=y.reference,I=y.popper;function z(){return y.popperInstance?y.popperInstance.state.elements.reference:O}function j(de){return y.props.sticky===!0||y.props.sticky===de}var L=null,ge=null;function oe(){var de=j("reference")?z().getBoundingClientRect():null,me=j("popper")?I.getBoundingClientRect():null;(de&&In(L,de)||me&&In(ge,me))&&y.popperInstance&&y.popperInstance.update(),L=de,ge=me,y.state.isMounted&&requestAnimationFrame(oe)}return{onMount:function(){y.props.sticky&&oe()}}}};function In(g,y){return g&&y?g.top!==y.top||g.right!==y.right||g.bottom!==y.bottom||g.left!==y.left:!0}ut.setDefaultProps({render:tr}),e.animateFill=sr,e.createSingleton=or,e.default=ut,e.delegate=Vt,e.followCursor=Mn,e.hideAll=rr,e.inlinePositioning=Rn,e.roundArrow=n,e.sticky=Wr}),bi=To(Po()),rs=To(Po()),is=e=>{let t={plugins:[]},n=o=>e[e.indexOf(o)+1];if(e.includes("animation")&&(t.animation=n("animation")),e.includes("duration")&&(t.duration=parseInt(n("duration"))),e.includes("delay")){let o=n("delay");t.delay=o.includes("-")?o.split("-").map(i=>parseInt(i)):parseInt(o)}if(e.includes("cursor")){t.plugins.push(rs.followCursor);let o=n("cursor");["x","initial"].includes(o)?t.followCursor=o==="x"?"horizontal":"initial":t.followCursor=!0}e.includes("on")&&(t.trigger=n("on")),e.includes("arrowless")&&(t.arrow=!1),e.includes("html")&&(t.allowHTML=!0),e.includes("interactive")&&(t.interactive=!0),e.includes("border")&&t.interactive&&(t.interactiveBorder=parseInt(n("border"))),e.includes("debounce")&&t.interactive&&(t.interactiveDebounce=parseInt(n("debounce"))),e.includes("max-width")&&(t.maxWidth=parseInt(n("max-width"))),e.includes("theme")&&(t.theme=n("theme")),e.includes("placement")&&(t.placement=n("placement"));let r={};return e.includes("no-flip")&&(r.modifiers||(r.modifiers=[]),r.modifiers.push({name:"flip",enabled:!1})),t.popperOptions=r,t};function yi(e){e.magic("tooltip",t=>(n,r={})=>{let o=r.timeout;delete r.timeout;let i=(0,bi.default)(t,{content:n,trigger:"manual",...r});i.show(),setTimeout(()=>{i.hide(),setTimeout(()=>i.destroy(),r.duration||300)},o||2e3)}),e.directive("tooltip",(t,{modifiers:n,expression:r},{evaluateLater:o,effect:i})=>{let s=n.length>0?is(n):{};t.__x_tippy||(t.__x_tippy=(0,bi.default)(t,s));let u=()=>t.__x_tippy.enable(),h=()=>t.__x_tippy.disable(),p=x=>{x?(u(),t.__x_tippy.setContent(x)):h()};if(n.includes("raw"))p(r);else{let x=o(r);i(()=>{x(b=>{typeof b=="object"?(t.__x_tippy.setProps(b),u()):p(b)})})}})}yi.defaultProps=e=>(bi.default.setDefaultProps(e),yi);var os=yi,Mo=os;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(Qi),window.Alpine.plugin(Zi),window.Alpine.plugin(Do),window.Alpine.plugin(Mo)});var as=function(e,t,n){function r(x,b){for(let E of x){let _=o(E,b);if(_!==null)return _}}function o(x,b){let E=x.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s);if(E===null||E.length!==3)return null;let _=E[1],C=E[2];if(_.includes(",")){let[M,U]=_.split(",",2);if(U==="*"&&b>=M)return C;if(M==="*"&&b<=U)return C;if(b>=M&&b<=U)return C}return _==b?C:null}function i(x){return x.toString().charAt(0).toUpperCase()+x.toString().slice(1)}function s(x,b){if(b.length===0)return x;let E={};for(let[_,C]of Object.entries(b))E[":"+i(_??"")]=i(C??""),E[":"+_.toUpperCase()]=C.toString().toUpperCase(),E[":"+_]=C;return Object.entries(E).forEach(([_,C])=>{x=x.replaceAll(_,C)}),x}function u(x){return x.map(b=>b.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}let h=e.split("|"),p=r(h,t);return p!=null?s(p.trim(),n):(h=u(h),s(h.length>1&&t>1?h[1]:h[0],n))};window.jsMd5=Ro.md5;window.pluralize=as;})(); /*! Bundled license information: +js-md5/src/md5.js: + (** + * [js-md5]{@link https://github.com/emn178/js-md5} + * + * @namespace md5 + * @version 0.8.3 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2023 + * @license MIT + *) + sortablejs/modular/sortable.esm.js: (**! - * Sortable 1.15.0 + * Sortable 1.15.2 * @author RubaXa * @author owenm * @license MIT diff --git a/public/js/filament/tables/components/table.js b/public/js/filament/tables/components/table.js index c27c97235..1c72d1353 100644 --- a/public/js/filament/tables/components/table.js +++ b/public/js/filament/tables/components/table.js @@ -1 +1 @@ -function c(){return{collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,init:function(){this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1})},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){if(this.isLoading=!0,this.areRecordsSelected(this.getRecordsInGroupOnPage(e))){this.deselectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e));return}this.selectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e)),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let s=[];for(let t of this.$root.getElementsByClassName("fi-ta-record-checkbox"))t.dataset.group===e&&s.push(t.value);return s},getRecordsOnPage:function(){let e=[];for(let s of this.$root.getElementsByClassName("fi-ta-record-checkbox"))e.push(s.value);return e},selectRecords:function(e){for(let s of e)this.isRecordSelected(s)||this.selectedRecords.push(s)},deselectRecords:function(e){for(let s of e){let t=this.selectedRecords.indexOf(s);t!==-1&&this.selectedRecords.splice(t,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(s=>this.isRecordSelected(s))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]}}}export{c as default}; +function c(){return{collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,init:function(){this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1})},mountAction:function(e,s=null){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableAction(e,s)},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){if(this.isLoading=!0,this.areRecordsSelected(this.getRecordsInGroupOnPage(e))){this.deselectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e));return}this.selectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e)),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let s=[];for(let t of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])t.dataset.group===e&&s.push(t.value);return s},getRecordsOnPage:function(){let e=[];for(let s of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])e.push(s.value);return e},selectRecords:function(e){for(let s of e)this.isRecordSelected(s)||this.selectedRecords.push(s)},deselectRecords:function(e){for(let s of e){let t=this.selectedRecords.indexOf(s);t!==-1&&this.selectedRecords.splice(t,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(s=>this.isRecordSelected(s))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]}}}export{c as default}; diff --git a/public/vendor/horizon/app.js b/public/vendor/horizon/app.js index e765b2076..8bb4173dc 100644 --- a/public/vendor/horizon/app.js +++ b/public/vendor/horizon/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var t,e={981:(t,e,o)=>{"use strict";var p=Object.freeze({}),b=Array.isArray;function n(t){return null==t}function M(t){return null!=t}function z(t){return!0===t}function c(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function r(t){return"function"==typeof t}function i(t){return null!==t&&"object"==typeof t}var a=Object.prototype.toString;function O(t){return"[object Object]"===a.call(t)}function s(t){return"[object RegExp]"===a.call(t)}function l(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return M(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function A(t){return null==t?"":Array.isArray(t)||O(t)&&t.toString===a?JSON.stringify(t,null,2):String(t)}function u(t){var e=parseFloat(t);return isNaN(e)?t:e}function f(t,e){for(var o=Object.create(null),p=t.split(","),b=0;b-1)return t.splice(p,1)}}var m=Object.prototype.hasOwnProperty;function g(t,e){return m.call(t,e)}function v(t){var e=Object.create(null);return function(o){return e[o]||(e[o]=t(o))}}var R=/-(\w)/g,y=v((function(t){return t.replace(R,(function(t,e){return e?e.toUpperCase():""}))})),B=v((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),L=/\B([A-Z])/g,X=v((function(t){return t.replace(L,"-$1").toLowerCase()}));var _=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function o(o){var p=arguments.length;return p?p>1?t.apply(e,arguments):t.call(e,o):t.call(e)}return o._length=t.length,o};function N(t,e){e=e||0;for(var o=t.length-e,p=new Array(o);o--;)p[o]=t[o+e];return p}function w(t,e){for(var o in e)t[o]=e[o];return t}function x(t){for(var e={},o=0;o0,et=Q&&Q.indexOf("edge/")>0;Q&&Q.indexOf("android");var ot=Q&&/iphone|ipad|ipod|ios/.test(Q);Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q);var pt,bt=Q&&Q.match(/firefox\/(\d+)/),nt={}.watch,Mt=!1;if(K)try{var zt={};Object.defineProperty(zt,"passive",{get:function(){Mt=!0}}),window.addEventListener("test-passive",null,zt)}catch(t){}var ct=function(){return void 0===pt&&(pt=!K&&void 0!==o.g&&(o.g.process&&"server"===o.g.process.env.VUE_ENV)),pt},rt=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return"function"==typeof t&&/native code/.test(t.toString())}var at,Ot="undefined"!=typeof Symbol&&it(Symbol)&&"undefined"!=typeof Reflect&&it(Reflect.ownKeys);at="undefined"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var st=null;function lt(t){void 0===t&&(t=null),t||st&&st._scope.off(),st=t,t&&t._scope.on()}var dt=function(){function t(t,e,o,p,b,n,M,z){this.tag=t,this.data=e,this.children=o,this.text=p,this.elm=b,this.ns=void 0,this.context=n,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=M,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=z,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),At=function(t){void 0===t&&(t="");var e=new dt;return e.text=t,e.isComment=!0,e};function ut(t){return new dt(void 0,void 0,void 0,String(t))}function ft(t){var e=new dt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var qt=0,ht=[],Wt=function(){function t(){this._pending=!1,this.id=qt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,ht.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var o=0,p=e.length;o0&&(Jt((p=Kt(p,"".concat(e||"","_").concat(o)))[0])&&Jt(i)&&(a[r]=ut(i.text+p[0].text),p.shift()),a.push.apply(a,p)):c(p)?Jt(i)?a[r]=ut(i.text+p):""!==p&&a.push(ut(p)):Jt(p)&&Jt(i)?a[r]=ut(i.text+p.text):(z(t._isVList)&&M(p.tag)&&n(p.key)&&M(e)&&(p.key="__vlist".concat(e,"_").concat(o,"__")),a.push(p)));return a}function Qt(t,e,o,p,n,a){return(b(o)||c(o))&&(n=p,p=o,o=void 0),z(a)&&(n=2),function(t,e,o,p,n){if(M(o)&&M(o.__ob__))return At();M(o)&&M(o.is)&&(e=o.is);if(!e)return At();0;b(p)&&r(p[0])&&((o=o||{}).scopedSlots={default:p[0]},p.length=0);2===n?p=Gt(p):1===n&&(p=function(t){for(var e=0;e0,z=e?!!e.$stable:!M,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(z&&b&&b!==p&&c===b.$key&&!M&&!b.$hasNormal)return b;for(var r in n={},e)e[r]&&"$"!==r[0]&&(n[r]=qe(t,o,r,e[r]))}else n={};for(var i in o)i in n||(n[i]=he(o,i));return e&&Object.isExtensible(e)&&(e._normalized=n),Y(n,"$stable",z),Y(n,"$key",c),Y(n,"$hasNormal",M),n}function qe(t,e,o,p){var n=function(){var e=st;lt(t);var o=arguments.length?p.apply(null,arguments):p({}),n=(o=o&&"object"==typeof o&&!b(o)?[o]:Gt(o))&&o[0];return lt(e),o&&(!n||1===o.length&&n.isComment&&!ue(n))?void 0:o};return p.proxy&&Object.defineProperty(e,o,{get:n,enumerable:!0,configurable:!0}),n}function he(t,e){return function(){return t[e]}}function We(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};Y(e,"_v_attr_proxy",!0),me(e,t.$attrs,p,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||me(t._listenersProxy={},t.$listeners,p,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||ve(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:_(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(o){return Ft(t,e,o)}))}}}function me(t,e,o,p,b){var n=!1;for(var M in e)M in t?e[M]!==o[M]&&(n=!0):(n=!0,ge(t,M,p,b));for(var M in t)M in e||(n=!0,delete t[M]);return n}function ge(t,e,o,p){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return o[p][e]}})}function ve(t,e){for(var o in e)t[o]=e[o];for(var o in t)o in e||delete t[o]}var Re,ye=null;function Be(t,e){return(t.__esModule||Ot&&"Module"===t[Symbol.toStringTag])&&(t=t.default),i(t)?e.extend(t):t}function Le(t){if(b(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(Ve=function(){return $e.now()})}var Ye=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function Ge(){var t,e;for(Ue=Ve(),Fe=!0,De.sort(Ye),He=0;HeHe&&De[o].id>t.id;)o--;De.splice(o+1,0,t)}else De.push(t);Ie||(Ie=!0,lo(Ge))}}var Ke="watcher";"".concat(Ke," callback"),"".concat(Ke," getter"),"".concat(Ke," cleanup");var Qe;var Ze=function(){function t(t){void 0===t&&(t=!1),this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=Qe,!t&&Qe&&(this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1)}return t.prototype.run=function(t){if(this.active){var e=Qe;try{return Qe=this,t()}finally{Qe=e}}else 0},t.prototype.on=function(){Qe=this},t.prototype.off=function(){Qe=this.parent},t.prototype.stop=function(t){if(this.active){var e=void 0,o=void 0;for(e=0,o=this.effects.length;e-1)if(n&&!g(b,"default"))M=!1;else if(""===M||M===X(t)){var c=tp(String,b.type);(c<0||z-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!s(t)&&t.test(e)}function np(t,e){var o=t.cache,p=t.keys,b=t._vnode;for(var n in o){var M=o[n];if(M){var z=M.name;z&&!e(z)&&Mp(o,n,p,b)}}}function Mp(t,e,o,p){var b=t[e];!b||p&&b.tag===p.tag||b.componentInstance.$destroy(),t[e]=null,W(o,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=No++,e._isVue=!0,e.__v_skip=!0,e._scope=new Ze(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var o=t.$options=Object.create(t.constructor.options),p=e._parentVnode;o.parent=e.parent,o._parentVnode=p;var b=p.componentOptions;o.propsData=b.propsData,o._parentListeners=b.listeners,o._renderChildren=b.children,o._componentTag=b.tag,e.render&&(o.render=e.render,o.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Yo(wo(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,o=e.parent;if(o&&!e.abstract){for(;o.$options.abstract&&o.$parent;)o=o.$parent;o.$children.push(t)}t.$parent=o,t.$root=o?o.$root:t,t.$children=[],t.$refs={},t._provided=o?o._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&we(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,o=t.$vnode=e._parentVnode,b=o&&o.context;t.$slots=de(e._renderChildren,b),t.$scopedSlots=o?fe(t.$parent,o.data.scopedSlots,t.$slots):p,t._c=function(e,o,p,b){return Qt(t,e,o,p,b,!1)},t.$createElement=function(e,o,p,b){return Qt(t,e,o,p,b,!0)};var n=o&&o.data;Et(t,"$attrs",n&&n.attrs||p,null,!0),Et(t,"$listeners",e._parentListeners||p,null,!0)}(e),Ee(e,"beforeCreate",void 0,!1),function(t){var e=_o(t.$options.inject,t);e&&(Tt(!1),Object.keys(e).forEach((function(o){Et(t,o,e[o])})),Tt(!0))}(e),vo(e),function(t){var e=t.$options.provide;if(e){var o=r(e)?e.call(t):e;if(!i(o))return;for(var p=to(t),b=Ot?Reflect.ownKeys(o):Object.keys(o),n=0;n1?N(o):o;for(var p=N(arguments,1),b='event handler for "'.concat(t,'"'),n=0,M=o.length;nparseInt(this.max)&&Mp(e,o[0],o,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Mp(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){np(t,(function(t){return bp(e,t)}))})),this.$watch("exclude",(function(e){np(t,(function(t){return!bp(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Le(t),o=e&&e.componentOptions;if(o){var p=pp(o),b=this.include,n=this.exclude;if(b&&(!p||!bp(b,p))||n&&p&&bp(n,p))return e;var M=this.cache,z=this.keys,c=null==e.key?o.Ctor.cid+(o.tag?"::".concat(o.tag):""):e.key;M[c]?(e.componentInstance=M[c].componentInstance,W(z,c),z.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}},rp={KeepAlive:cp};!function(t){var e={get:function(){return H}};Object.defineProperty(t,"config",e),t.util={warn:jo,extend:w,mergeOptions:Yo,defineReactive:Et},t.set=Dt,t.delete=Pt,t.nextTick=lo,t.observable=function(t){return kt(t),t},t.options=Object.create(null),I.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,w(t.options.components,rp),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var o=N(arguments,1);return o.unshift(this),r(t.install)?t.install.apply(t,o):r(t)&&t.apply(null,o),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Yo(this.options,t),this}}(t),op(t),function(t){I.forEach((function(e){t[e]=function(t,o){return o?("component"===e&&O(o)&&(o.name=o.name||t,o=this.options._base.extend(o)),"directive"===e&&r(o)&&(o={bind:o,update:o}),this.options[e+"s"][t]=o,o):this.options[e+"s"][t]}}))}(t)}(ep),Object.defineProperty(ep.prototype,"$isServer",{get:ct}),Object.defineProperty(ep.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(ep,"FunctionalRenderContext",{value:xo}),ep.version="2.7.13";var ip=f("style,class"),ap=f("input,textarea,option,select,progress"),Op=function(t,e,o){return"value"===o&&ap(t)&&"button"!==e||"selected"===o&&"option"===t||"checked"===o&&"input"===t||"muted"===o&&"video"===t},sp=f("contenteditable,draggable,spellcheck"),lp=f("events,caret,typing,plaintext-only"),dp=f("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Ap="http://www.w3.org/1999/xlink",up=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},fp=function(t){return up(t)?t.slice(6,t.length):""},qp=function(t){return null==t||!1===t};function hp(t){for(var e=t.data,o=t,p=t;M(p.componentInstance);)(p=p.componentInstance._vnode)&&p.data&&(e=Wp(p.data,e));for(;M(o=o.parent);)o&&o.data&&(e=Wp(e,o.data));return function(t,e){if(M(t)||M(e))return mp(t,gp(e));return""}(e.staticClass,e.class)}function Wp(t,e){return{staticClass:mp(t.staticClass,e.staticClass),class:M(t.class)?[t.class,e.class]:e.class}}function mp(t,e){return t?e?t+" "+e:t:e||""}function gp(t){return Array.isArray(t)?function(t){for(var e,o="",p=0,b=t.length;p-1?Gp(t,e,o):dp(e)?qp(o)?t.removeAttribute(e):(o="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,o)):sp(e)?t.setAttribute(e,function(t,e){return qp(e)||"false"===e?"false":"contenteditable"===t&&lp(e)?e:"true"}(e,o)):up(e)?qp(o)?t.removeAttributeNS(Ap,fp(e)):t.setAttributeNS(Ap,e,o):Gp(t,e,o)}function Gp(t,e,o){if(qp(o))t.removeAttribute(e);else{if(Z&&!tt&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==o&&!t.__ieph){var p=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",p)};t.addEventListener("input",p),t.__ieph=!0}t.setAttribute(e,o)}}var Jp={create:$p,update:$p};function Kp(t,e){var o=e.elm,p=e.data,b=t.data;if(!(n(p.staticClass)&&n(p.class)&&(n(b)||n(b.staticClass)&&n(b.class)))){var z=hp(e),c=o._transitionClasses;M(c)&&(z=mp(z,gp(c))),z!==o._prevClass&&(o.setAttribute("class",z),o._prevClass=z)}}var Qp,Zp,tb,eb,ob,pb,bb={create:Kp,update:Kp},nb=/[\w).+\-_$\]]/;function Mb(t){var e,o,p,b,n,M=!1,z=!1,c=!1,r=!1,i=0,a=0,O=0,s=0;for(p=0;p=0&&" "===(d=t.charAt(l));l--);d&&nb.test(d)||(r=!0)}}else void 0===b?(s=p+1,b=t.slice(0,p).trim()):A();function A(){(n||(n=[])).push(t.slice(s,p).trim()),s=p+1}if(void 0===b?b=t.slice(0,p).trim():0!==s&&A(),n)for(p=0;p-1?{exp:t.slice(0,eb),key:'"'+t.slice(eb+1)+'"'}:{exp:t,key:null};Zp=t,eb=ob=pb=0;for(;!gb();)vb(tb=mb())?yb(tb):91===tb&&Rb(tb);return{exp:t.slice(0,ob),key:t.slice(ob+1,pb)}}(t);return null===o.key?"".concat(t,"=").concat(e):"$set(".concat(o.exp,", ").concat(o.key,", ").concat(e,")")}function mb(){return Zp.charCodeAt(++eb)}function gb(){return eb>=Qp}function vb(t){return 34===t||39===t}function Rb(t){var e=1;for(ob=eb;!gb();)if(vb(t=mb()))yb(t);else if(91===t&&e++,93===t&&e--,0===e){pb=eb;break}}function yb(t){for(var e=t;!gb()&&(t=mb())!==e;);}var Bb,Lb="__r";function Xb(t,e,o){var p=Bb;return function b(){var n=e.apply(null,arguments);null!==n&&wb(t,b,o,p)}}var _b=Mo&&!(bt&&Number(bt[1])<=53);function Nb(t,e,o,p){if(_b){var b=Ue,n=e;e=n._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=b||t.timeStamp<=0||t.target.ownerDocument!==document)return n.apply(this,arguments)}}Bb.addEventListener(t,e,Mt?{capture:o,passive:p}:o)}function wb(t,e,o,p){(p||Bb).removeEventListener(t,e._wrapper||e,o)}function xb(t,e){if(!n(t.data.on)||!n(e.data.on)){var o=e.data.on||{},p=t.data.on||{};Bb=e.elm||t.elm,function(t){if(M(t.__r)){var e=Z?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}M(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(o),Vt(o,p,Nb,wb,Xb,e.context),Bb=void 0}}var Tb,Cb={create:xb,update:xb,destroy:function(t){return xb(t,Sp)}};function Sb(t,e){if(!n(t.data.domProps)||!n(e.data.domProps)){var o,p,b=e.elm,c=t.data.domProps||{},r=e.data.domProps||{};for(o in(M(r.__ob__)||z(r._v_attr_proxy))&&(r=e.data.domProps=w({},r)),c)o in r||(b[o]="");for(o in r){if(p=r[o],"textContent"===o||"innerHTML"===o){if(e.children&&(e.children.length=0),p===c[o])continue;1===b.childNodes.length&&b.removeChild(b.childNodes[0])}if("value"===o&&"PROGRESS"!==b.tagName){b._value=p;var i=n(p)?"":String(p);kb(b,i)&&(b.value=i)}else if("innerHTML"===o&&yp(b.tagName)&&n(b.innerHTML)){(Tb=Tb||document.createElement("div")).innerHTML="".concat(p,"");for(var a=Tb.firstChild;b.firstChild;)b.removeChild(b.firstChild);for(;a.firstChild;)b.appendChild(a.firstChild)}else if(p!==c[o])try{b[o]=p}catch(t){}}}}function kb(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var o=!0;try{o=document.activeElement!==t}catch(t){}return o&&t.value!==e}(t,e)||function(t,e){var o=t.value,p=t._vModifiers;if(M(p)){if(p.number)return u(o)!==u(e);if(p.trim)return o.trim()!==e.trim()}return o!==e}(t,e))}var Eb={create:Sb,update:Sb},Db=v((function(t){var e={},o=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var p=t.split(o);p.length>1&&(e[p[0].trim()]=p[1].trim())}})),e}));function Pb(t){var e=jb(t.style);return t.staticStyle?w(t.staticStyle,e):e}function jb(t){return Array.isArray(t)?x(t):"string"==typeof t?Db(t):t}var Ib,Fb=/^--/,Hb=/\s*!important$/,Ub=function(t,e,o){if(Fb.test(e))t.style.setProperty(e,o);else if(Hb.test(o))t.style.setProperty(X(e),o.replace(Hb,""),"important");else{var p=$b(e);if(Array.isArray(o))for(var b=0,n=o.length;b-1?e.split(Jb).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var o=" ".concat(t.getAttribute("class")||""," ");o.indexOf(" "+e+" ")<0&&t.setAttribute("class",(o+e).trim())}}function Qb(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Jb).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var o=" ".concat(t.getAttribute("class")||""," "),p=" "+e+" ";o.indexOf(p)>=0;)o=o.replace(p," ");(o=o.trim())?t.setAttribute("class",o):t.removeAttribute("class")}}function Zb(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&w(e,tn(t.name||"v")),w(e,t),e}return"string"==typeof t?tn(t):void 0}}var tn=v((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),en=K&&!tt,on="transition",pn="animation",bn="transition",nn="transitionend",Mn="animation",zn="animationend";en&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(bn="WebkitTransition",nn="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Mn="WebkitAnimation",zn="webkitAnimationEnd"));var cn=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function rn(t){cn((function(){cn(t)}))}function an(t,e){var o=t._transitionClasses||(t._transitionClasses=[]);o.indexOf(e)<0&&(o.push(e),Kb(t,e))}function On(t,e){t._transitionClasses&&W(t._transitionClasses,e),Qb(t,e)}function sn(t,e,o){var p=dn(t,e),b=p.type,n=p.timeout,M=p.propCount;if(!b)return o();var z=b===on?nn:zn,c=0,r=function(){t.removeEventListener(z,i),o()},i=function(e){e.target===t&&++c>=M&&r()};setTimeout((function(){c0&&(o=on,i=M,a=n.length):e===pn?r>0&&(o=pn,i=r,a=c.length):a=(o=(i=Math.max(M,r))>0?M>r?on:pn:null)?o===on?n.length:c.length:0,{type:o,timeout:i,propCount:a,hasTransform:o===on&&ln.test(p[bn+"Property"])}}function An(t,e){for(;t.length1}function mn(t,e){!0!==e.data.show&&fn(e)}var gn=function(t){var e,o,p={},r=t.modules,i=t.nodeOps;for(e=0;el?h(t,n(o[u+1])?null:o[u+1].elm,o,s,u,p):s>u&&m(e,a,l)}(a,d,u,o,r):M(u)?(M(t.text)&&i.setTextContent(a,""),h(a,null,u,0,u.length-1,o)):M(d)?m(d,0,d.length-1):M(t.text)&&i.setTextContent(a,""):t.text!==e.text&&i.setTextContent(a,e.text),M(l)&&M(s=l.hook)&&M(s=s.postpatch)&&s(t,e)}}}function y(t,e,o){if(z(o)&&M(t.parent))t.parent.data.pendingInsert=e;else for(var p=0;p-1,M.selected!==n&&(M.selected=n);else if(k(Ln(M),p))return void(t.selectedIndex!==z&&(t.selectedIndex=z));b||(t.selectedIndex=-1)}}function Bn(t,e){return e.every((function(e){return!k(e,t)}))}function Ln(t){return"_value"in t?t._value:t.value}function Xn(t){t.target.composing=!0}function _n(t){t.target.composing&&(t.target.composing=!1,Nn(t.target,"input"))}function Nn(t,e){var o=document.createEvent("HTMLEvents");o.initEvent(e,!0,!0),t.dispatchEvent(o)}function wn(t){return!t.componentInstance||t.data&&t.data.transition?t:wn(t.componentInstance._vnode)}var xn={bind:function(t,e,o){var p=e.value,b=(o=wn(o)).data&&o.data.transition,n=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;p&&b?(o.data.show=!0,fn(o,(function(){t.style.display=n}))):t.style.display=p?n:"none"},update:function(t,e,o){var p=e.value;!p!=!e.oldValue&&((o=wn(o)).data&&o.data.transition?(o.data.show=!0,p?fn(o,(function(){t.style.display=t.__vOriginalDisplay})):qn(o,(function(){t.style.display="none"}))):t.style.display=p?t.__vOriginalDisplay:"none")},unbind:function(t,e,o,p,b){b||(t.style.display=t.__vOriginalDisplay)}},Tn={model:vn,show:xn},Cn={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Sn(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Sn(Le(e.children)):t}function kn(t){var e={},o=t.$options;for(var p in o.propsData)e[p]=t[p];var b=o._parentListeners;for(var p in b)e[y(p)]=b[p];return e}function En(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Dn=function(t){return t.tag||ue(t)},Pn=function(t){return"show"===t.name},jn={name:"transition",props:Cn,abstract:!0,render:function(t){var e=this,o=this.$slots.default;if(o&&(o=o.filter(Dn)).length){0;var p=this.mode;0;var b=o[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return b;var n=Sn(b);if(!n)return b;if(this._leaving)return En(t,b);var M="__transition-".concat(this._uid,"-");n.key=null==n.key?n.isComment?M+"comment":M+n.tag:c(n.key)?0===String(n.key).indexOf(M)?n.key:M+n.key:n.key;var z=(n.data||(n.data={})).transition=kn(this),r=this._vnode,i=Sn(r);if(n.data.directives&&n.data.directives.some(Pn)&&(n.data.show=!0),i&&i.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(n,i)&&!ue(i)&&(!i.componentInstance||!i.componentInstance._vnode.isComment)){var a=i.data.transition=w({},z);if("out-in"===p)return this._leaving=!0,$t(a,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),En(t,b);if("in-out"===p){if(ue(n))return r;var O,s=function(){O()};$t(z,"afterEnter",s),$t(z,"enterCancelled",s),$t(a,"delayLeave",(function(t){O=t}))}}return b}}},In=w({tag:String,moveClass:String},Cn);delete In.mode;var Fn={props:In,beforeMount:function(){var t=this,e=this._update;this._update=function(o,p){var b=Te(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,b(),e.call(t,o,p)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",o=Object.create(null),p=this.prevChildren=this.children,b=this.$slots.default||[],n=this.children=[],M=kn(this),z=0;z-1?Xp[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Xp[t]=/HTMLUnknownElement/.test(e.toString())},w(ep.options.directives,Tn),w(ep.options.components,$n),ep.prototype.__patch__=K?gn:T,ep.prototype.$mount=function(t,e){return function(t,e,o){var p;t.$el=e,t.$options.render||(t.$options.render=At),Ee(t,"beforeMount"),p=function(){t._update(t._render(),o)},new Wo(t,p,T,{before:function(){t._isMounted&&!t._isDestroyed&&Ee(t,"beforeUpdate")}},!0),o=!1;var b=t._preWatchers;if(b)for(var n=0;n\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,nM=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,MM="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(U.source,"]*"),zM="((?:".concat(MM,"\\:)?").concat(MM,")"),cM=new RegExp("^<".concat(zM)),rM=/^\s*(\/?)>/,iM=new RegExp("^<\\/".concat(zM,"[^>]*>")),aM=/^]+>/i,OM=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},uM=/&(?:lt|gt|quot|amp|#39);/g,fM=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,qM=f("pre,textarea",!0),hM=function(t,e){return t&&qM(t)&&"\n"===e[0]};function WM(t,e){var o=e?fM:uM;return t.replace(o,(function(t){return AM[t]}))}function mM(t,e){for(var o,p,b=[],n=e.expectHTML,M=e.isUnaryTag||C,z=e.canBeLeftOpenTag||C,c=0,r=function(){if(o=t,p&&lM(p)){var r=0,O=p.toLowerCase(),s=dM[O]||(dM[O]=new RegExp("([\\s\\S]*?)(]*>)","i"));m=t.replace(s,(function(t,o,p){return r=p.length,lM(O)||"noscript"===O||(o=o.replace(//g,"$1").replace(//g,"$1")),hM(O,o)&&(o=o.slice(1)),e.chars&&e.chars(o),""}));c+=t.length-m.length,t=m,a(O,c-r,c)}else{var l=t.indexOf("<");if(0===l){if(OM.test(t)){var d=t.indexOf("--\x3e");if(d>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,d),c,c+d+3),i(d+3),"continue"}if(sM.test(t)){var A=t.indexOf("]>");if(A>=0)return i(A+2),"continue"}var u=t.match(aM);if(u)return i(u[0].length),"continue";var f=t.match(iM);if(f){var q=c;return i(f[0].length),a(f[1],q,c),"continue"}var h=function(){var e=t.match(cM);if(e){var o={tagName:e[1],attrs:[],start:c};i(e[0].length);for(var p=void 0,b=void 0;!(p=t.match(rM))&&(b=t.match(nM)||t.match(bM));)b.start=c,i(b[0].length),b.end=c,o.attrs.push(b);if(p)return o.unarySlash=p[1],i(p[0].length),o.end=c,o}}();if(h)return function(t){var o=t.tagName,c=t.unarySlash;n&&("p"===p&&pM(o)&&a(p),z(o)&&p===o&&a(o));for(var r=M(o)||!!c,i=t.attrs.length,O=new Array(i),s=0;s=0){for(m=t.slice(l);!(iM.test(m)||cM.test(m)||OM.test(m)||sM.test(m)||(g=m.indexOf("<",1))<0);)l+=g,m=t.slice(l);W=t.substring(0,l)}l<0&&(W=t),W&&i(W.length),e.chars&&W&&e.chars(W,c-W.length,c)}if(t===o)return e.chars&&e.chars(t),"break"};t;){if("break"===r())break}function i(e){c+=e,t=t.substring(e)}function a(t,o,n){var M,z;if(null==o&&(o=c),null==n&&(n=c),t)for(z=t.toLowerCase(),M=b.length-1;M>=0&&b[M].lowerCasedTag!==z;M--);else M=0;if(M>=0){for(var r=b.length-1;r>=M;r--)e.end&&e.end(b[r].tag,o,n);b.length=M,p=M&&b[M-1].tag}else"br"===z?e.start&&e.start(t,[],!0,o,n):"p"===z&&(e.start&&e.start(t,[],!1,o,n),e.end&&e.end(t,o,n))}a()}var gM,vM,RM,yM,BM,LM,XM,_M,NM=/^@|^v-on:/,wM=/^v-|^@|^:|^#/,xM=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,TM=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,CM=/^\(|\)$/g,SM=/^\[.*\]$/,kM=/:(.*)$/,EM=/^:|^\.|^v-bind:/,DM=/\.[^.\]]+(?=[^\]]*$)/g,PM=/^v-slot(:|$)|^#/,jM=/[\r\n]/,IM=/[ \f\t\r\n]+/g,FM=v(tM),HM="_empty_";function UM(t,e,o){return{type:1,tag:t,attrsList:e,attrsMap:QM(e),rawAttrsMap:{},parent:o,children:[]}}function VM(t,e){gM=e.warn||cb,LM=e.isPreTag||C,XM=e.mustUseProp||C,_M=e.getTagNamespace||C;var o=e.isReservedTag||C;(function(t){return!(!(t.component||t.attrsMap[":is"]||t.attrsMap["v-bind:is"])&&(t.attrsMap.is?o(t.attrsMap.is):o(t.tag)))}),RM=rb(e.modules,"transformNode"),yM=rb(e.modules,"preTransformNode"),BM=rb(e.modules,"postTransformNode"),vM=e.delimiters;var p,b,n=[],M=!1!==e.preserveWhitespace,z=e.whitespace,c=!1,r=!1;function i(t){if(a(t),c||t.processed||(t=$M(t,e)),n.length||t===p||p.if&&(t.elseif||t.else)&&GM(p,{exp:t.elseif,block:t}),b&&!t.forbidden)if(t.elseif||t.else)M=t,z=function(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}(b.children),z&&z.if&&GM(z,{exp:M.elseif,block:M});else{if(t.slotScope){var o=t.slotTarget||'"default"';(b.scopedSlots||(b.scopedSlots={}))[o]=t}b.children.push(t),t.parent=b}var M,z;t.children=t.children.filter((function(t){return!t.slotScope})),a(t),t.pre&&(c=!1),LM(t.tag)&&(r=!1);for(var i=0;ic&&(z.push(n=t.slice(c,b)),M.push(JSON.stringify(n)));var r=Mb(p[1].trim());M.push("_s(".concat(r,")")),z.push({"@binding":r}),c=b+p[0].length}return c-1")+("true"===n?":(".concat(e,")"):":_q(".concat(e,",").concat(n,")"))),db(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(n,"):(").concat(M,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(p?"_n("+b+")":b,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(Wb(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(Wb(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(Wb(e,"$$c"),"}"),null,!0)}(t,p,b);else if("input"===n&&"radio"===M)!function(t,e,o){var p=o&&o.number,b=Ab(t,"value")||"null";b=p?"_n(".concat(b,")"):b,ib(t,"checked","_q(".concat(e,",").concat(b,")")),db(t,"change",Wb(e,b),null,!0)}(t,p,b);else if("input"===n||"textarea"===n)!function(t,e,o){var p=t.attrsMap.type;0;var b=o||{},n=b.lazy,M=b.number,z=b.trim,c=!n&&"range"!==p,r=n?"change":"range"===p?Lb:"input",i="$event.target.value";z&&(i="$event.target.value.trim()");M&&(i="_n(".concat(i,")"));var a=Wb(e,i);c&&(a="if($event.target.composing)return;".concat(a));ib(t,"value","(".concat(e,")")),db(t,r,a,null,!0),(z||M)&&db(t,"blur","$forceUpdate()")}(t,p,b);else{if(!H.isReservedTag(n))return hb(t,p,b),!1}return!0},text:function(t,e){e.value&&ib(t,"textContent","_s(".concat(e.value,")"),e)},html:function(t,e){e.value&&ib(t,"innerHTML","_s(".concat(e.value,")"),e)}},Mz={expectHTML:!0,modules:oz,directives:nz,isPreTag:function(t){return"pre"===t},isUnaryTag:eM,mustUseProp:Op,canBeLeftOpenTag:oM,isReservedTag:Bp,getTagNamespace:Lp,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(oz)},zz=v((function(t){return f("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}));function cz(t,e){t&&(pz=zz(e.staticKeys||""),bz=e.isReservedTag||C,rz(t),iz(t,!1))}function rz(t){if(t.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||q(t.tag)||!bz(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(pz)))}(t),1===t.type){if(!bz(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var e=0,o=t.children.length;e|^function(?:\s+[\w$]+)?\s*\(/,Oz=/\([^)]*?\);*$/,sz=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,lz={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},dz={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Az=function(t){return"if(".concat(t,")return null;")},uz={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Az("$event.target !== $event.currentTarget"),ctrl:Az("!$event.ctrlKey"),shift:Az("!$event.shiftKey"),alt:Az("!$event.altKey"),meta:Az("!$event.metaKey"),left:Az("'button' in $event && $event.button !== 0"),middle:Az("'button' in $event && $event.button !== 1"),right:Az("'button' in $event && $event.button !== 2")};function fz(t,e){var o=e?"nativeOn:":"on:",p="",b="";for(var n in t){var M=qz(t[n]);t[n]&&t[n].dynamic?b+="".concat(n,",").concat(M,","):p+='"'.concat(n,'":').concat(M,",")}return p="{".concat(p.slice(0,-1),"}"),b?o+"_d(".concat(p,",[").concat(b.slice(0,-1),"])"):o+p}function qz(t){if(!t)return"function(){}";if(Array.isArray(t))return"[".concat(t.map((function(t){return qz(t)})).join(","),"]");var e=sz.test(t.value),o=az.test(t.value),p=sz.test(t.value.replace(Oz,""));if(t.modifiers){var b="",n="",M=[],z=function(e){if(uz[e])n+=uz[e],lz[e]&&M.push(e);else if("exact"===e){var o=t.modifiers;n+=Az(["ctrl","shift","alt","meta"].filter((function(t){return!o[t]})).map((function(t){return"$event.".concat(t,"Key")})).join("||"))}else M.push(e)};for(var c in t.modifiers)z(c);M.length&&(b+=function(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(hz).join("&&"),")return null;")}(M)),n&&(b+=n);var r=e?"return ".concat(t.value,".apply(null, arguments)"):o?"return (".concat(t.value,").apply(null, arguments)"):p?"return ".concat(t.value):t.value;return"function($event){".concat(b).concat(r,"}")}return e||o?t.value:"function($event){".concat(p?"return ".concat(t.value):t.value,"}")}function hz(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var o=lz[t],p=dz[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(o),",")+"$event.key,"+"".concat(JSON.stringify(p))+")"}var Wz={on:function(t,e){t.wrapListeners=function(t){return"_g(".concat(t,",").concat(e.value,")")}},bind:function(t,e){t.wrapData=function(o){return"_b(".concat(o,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}},cloak:T},mz=function(t){this.options=t,this.warn=t.warn||cb,this.transforms=rb(t.modules,"transformCode"),this.dataGenFns=rb(t.modules,"genData"),this.directives=w(w({},Wz),t.directives);var e=t.isReservedTag||C;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function gz(t,e){var o=new mz(e),p=t?"script"===t.tag?"null":vz(t,o):'_c("div")';return{render:"with(this){return ".concat(p,"}"),staticRenderFns:o.staticRenderFns}}function vz(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Rz(t,e);if(t.once&&!t.onceProcessed)return yz(t,e);if(t.for&&!t.forProcessed)return Xz(t,e);if(t.if&&!t.ifProcessed)return Bz(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var o=t.slotName||'"default"',p=xz(t,e),b="_t(".concat(o).concat(p?",function(){return ".concat(p,"}"):""),n=t.attrs||t.dynamicAttrs?Sz((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:y(t.name),value:t.value,dynamic:t.dynamic}}))):null,M=t.attrsMap["v-bind"];!n&&!M||p||(b+=",null");n&&(b+=",".concat(n));M&&(b+="".concat(n?"":",null",",").concat(M));return b+")"}(t,e);var o=void 0;if(t.component)o=function(t,e,o){var p=e.inlineTemplate?null:xz(e,o,!0);return"_c(".concat(t,",").concat(_z(e,o)).concat(p?",".concat(p):"",")")}(t.component,t,e);else{var p=void 0,b=e.maybeComponent(t);(!t.plain||t.pre&&b)&&(p=_z(t,e));var n=void 0,M=e.options.bindings;b&&M&&!1!==M.__isScriptSetup&&(n=function(t,e){var o=y(e),p=B(o),b=function(b){return t[e]===b?e:t[o]===b?o:t[p]===b?p:void 0},n=b("setup-const")||b("setup-reactive-const");if(n)return n;var M=b("setup-let")||b("setup-ref")||b("setup-maybe-ref");if(M)return M}(M,t.tag)),n||(n="'".concat(t.tag,"'"));var z=t.inlineTemplate?null:xz(t,e,!0);o="_c(".concat(n).concat(p?",".concat(p):"").concat(z?",".concat(z):"",")")}for(var c=0;c>>0}(M)):"",")")}(t,t.scopedSlots,e),",")),t.model&&(o+="model:{value:".concat(t.model.value,",callback:").concat(t.model.callback,",expression:").concat(t.model.expression,"},")),t.inlineTemplate){var n=function(t,e){var o=t.children[0];0;if(o&&1===o.type){var p=gz(o,e.options);return"inlineTemplate:{render:function(){".concat(p.render,"},staticRenderFns:[").concat(p.staticRenderFns.map((function(t){return"function(){".concat(t,"}")})).join(","),"]}")}}(t,e);n&&(o+="".concat(n,","))}return o=o.replace(/,$/,"")+"}",t.dynamicAttrs&&(o="_b(".concat(o,',"').concat(t.tag,'",').concat(Sz(t.dynamicAttrs),")")),t.wrapData&&(o=t.wrapData(o)),t.wrapListeners&&(o=t.wrapListeners(o)),o}function Nz(t){return 1===t.type&&("slot"===t.tag||t.children.some(Nz))}function wz(t,e){var o=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!o)return Bz(t,e,wz,"null");if(t.for&&!t.forProcessed)return Xz(t,e,wz);var p=t.slotScope===HM?"":String(t.slotScope),b="function(".concat(p,"){")+"return ".concat("template"===t.tag?t.if&&o?"(".concat(t.if,")?").concat(xz(t,e)||"undefined",":undefined"):xz(t,e)||"undefined":vz(t,e),"}"),n=p?"":",proxy:true";return"{key:".concat(t.slotTarget||'"default"',",fn:").concat(b).concat(n,"}")}function xz(t,e,o,p,b){var n=t.children;if(n.length){var M=n[0];if(1===n.length&&M.for&&"template"!==M.tag&&"slot"!==M.tag){var z=o?e.maybeComponent(M)?",1":",0":"";return"".concat((p||vz)(M,e)).concat(z)}var c=o?function(t,e){for(var o=0,p=0;p':'
',jz.innerHTML.indexOf(" ")>0}var Uz=!!K&&Hz(!1),Vz=!!K&&Hz(!0),$z=v((function(t){var e=Np(t);return e&&e.innerHTML})),Yz=ep.prototype.$mount;ep.prototype.$mount=function(t,e){if((t=t&&Np(t))===document.body||t===document.documentElement)return this;var o=this.$options;if(!o.render){var p=o.template;if(p)if("string"==typeof p)"#"===p.charAt(0)&&(p=$z(p));else{if(!p.nodeType)return this;p=p.innerHTML}else t&&(p=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(p){0;var b=Fz(p,{outputSourceRange:!1,shouldDecodeNewlines:Uz,shouldDecodeNewlinesForHref:Vz,delimiters:o.delimiters,comments:o.comments},this),n=b.render,M=b.staticRenderFns;o.render=n,o.staticRenderFns=M}}return Yz.call(this,t,e)},ep.compile=Fz;var Gz=o(8),Jz=o.n(Gz);function Kz(t){return function(t){if(Array.isArray(t))return Qz(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return Qz(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return Qz(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qz(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,p=new Array(e);o{const e=bc.call(t);return zc[e]||(zc[e]=e.slice(8,-1).toLowerCase())});var zc;const cc=t=>(t=t.toLowerCase(),e=>Mc(e)===t),rc=t=>e=>typeof e===t,{isArray:ic}=Array,ac=rc("undefined");const Oc=cc("ArrayBuffer");const sc=rc("string"),lc=rc("function"),dc=rc("number"),Ac=t=>null!==t&&"object"==typeof t,uc=t=>{if("object"!==Mc(t))return!1;const e=nc(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},fc=cc("Date"),qc=cc("File"),hc=cc("Blob"),Wc=cc("FileList"),mc=cc("URLSearchParams");function gc(t,e,{allOwnKeys:o=!1}={}){if(null==t)return;let p,b;if("object"!=typeof t&&(t=[t]),ic(t))for(p=0,b=t.length;p0;)if(p=o[b],e===p.toLowerCase())return p;return null}const Rc="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,yc=t=>!ac(t)&&t!==Rc;const Bc=(Lc="undefined"!=typeof Uint8Array&&nc(Uint8Array),t=>Lc&&t instanceof Lc);var Lc;const Xc=cc("HTMLFormElement"),_c=(({hasOwnProperty:t})=>(e,o)=>t.call(e,o))(Object.prototype),Nc=cc("RegExp"),wc=(t,e)=>{const o=Object.getOwnPropertyDescriptors(t),p={};gc(o,((o,b)=>{let n;!1!==(n=e(o,b,t))&&(p[b]=n||o)})),Object.defineProperties(t,p)},xc="abcdefghijklmnopqrstuvwxyz",Tc="0123456789",Cc={DIGIT:Tc,ALPHA:xc,ALPHA_DIGIT:xc+xc.toUpperCase()+Tc};const Sc=cc("AsyncFunction"),kc={isArray:ic,isArrayBuffer:Oc,isBuffer:function(t){return null!==t&&!ac(t)&&null!==t.constructor&&!ac(t.constructor)&&lc(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||lc(t.append)&&("formdata"===(e=Mc(t))||"object"===e&&lc(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&Oc(t.buffer),e},isString:sc,isNumber:dc,isBoolean:t=>!0===t||!1===t,isObject:Ac,isPlainObject:uc,isUndefined:ac,isDate:fc,isFile:qc,isBlob:hc,isRegExp:Nc,isFunction:lc,isStream:t=>Ac(t)&&lc(t.pipe),isURLSearchParams:mc,isTypedArray:Bc,isFileList:Wc,forEach:gc,merge:function t(){const{caseless:e}=yc(this)&&this||{},o={},p=(p,b)=>{const n=e&&vc(o,b)||b;uc(o[n])&&uc(p)?o[n]=t(o[n],p):uc(p)?o[n]=t({},p):ic(p)?o[n]=p.slice():o[n]=p};for(let t=0,e=arguments.length;t(gc(e,((e,p)=>{o&&lc(e)?t[p]=pc(e,o):t[p]=e}),{allOwnKeys:p}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,o,p)=>{t.prototype=Object.create(e.prototype,p),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),o&&Object.assign(t.prototype,o)},toFlatObject:(t,e,o,p)=>{let b,n,M;const z={};if(e=e||{},null==t)return e;do{for(b=Object.getOwnPropertyNames(t),n=b.length;n-- >0;)M=b[n],p&&!p(M,t,e)||z[M]||(e[M]=t[M],z[M]=!0);t=!1!==o&&nc(t)}while(t&&(!o||o(t,e))&&t!==Object.prototype);return e},kindOf:Mc,kindOfTest:cc,endsWith:(t,e,o)=>{t=String(t),(void 0===o||o>t.length)&&(o=t.length),o-=e.length;const p=t.indexOf(e,o);return-1!==p&&p===o},toArray:t=>{if(!t)return null;if(ic(t))return t;let e=t.length;if(!dc(e))return null;const o=new Array(e);for(;e-- >0;)o[e]=t[e];return o},forEachEntry:(t,e)=>{const o=(t&&t[Symbol.iterator]).call(t);let p;for(;(p=o.next())&&!p.done;){const o=p.value;e.call(t,o[0],o[1])}},matchAll:(t,e)=>{let o;const p=[];for(;null!==(o=t.exec(e));)p.push(o);return p},isHTMLForm:Xc,hasOwnProperty:_c,hasOwnProp:_c,reduceDescriptors:wc,freezeMethods:t=>{wc(t,((e,o)=>{if(lc(t)&&-1!==["arguments","caller","callee"].indexOf(o))return!1;const p=t[o];lc(p)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+o+"'")}))}))},toObjectSet:(t,e)=>{const o={},p=t=>{t.forEach((t=>{o[t]=!0}))};return ic(t)?p(t):p(String(t).split(e)),o},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,o){return e.toUpperCase()+o})),noop:()=>{},toFiniteNumber:(t,e)=>(t=+t,Number.isFinite(t)?t:e),findKey:vc,global:Rc,isContextDefined:yc,ALPHABET:Cc,generateString:(t=16,e=Cc.ALPHA_DIGIT)=>{let o="";const{length:p}=e;for(;t--;)o+=e[Math.random()*p|0];return o},isSpecCompliantForm:function(t){return!!(t&&lc(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),o=(t,p)=>{if(Ac(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[p]=t;const b=ic(t)?[]:{};return gc(t,((t,e)=>{const n=o(t,p+1);!ac(n)&&(b[e]=n)})),e[p]=void 0,b}}return t};return o(t,0)},isAsyncFn:Sc,isThenable:t=>t&&(Ac(t)||lc(t))&&lc(t.then)&&lc(t.catch)};function Ec(t,e,o,p,b){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),o&&(this.config=o),p&&(this.request=p),b&&(this.response=b)}kc.inherits(Ec,Error,{toJSON:function(){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:kc.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Dc=Ec.prototype,Pc={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{Pc[t]={value:t}})),Object.defineProperties(Ec,Pc),Object.defineProperty(Dc,"isAxiosError",{value:!0}),Ec.from=(t,e,o,p,b,n)=>{const M=Object.create(Dc);return kc.toFlatObject(t,M,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),Ec.call(M,t.message,e,o,p,b),M.cause=t,M.name=t.name,n&&Object.assign(M,n),M};const jc=Ec;var Ic=o(764).lW;function Fc(t){return kc.isPlainObject(t)||kc.isArray(t)}function Hc(t){return kc.endsWith(t,"[]")?t.slice(0,-2):t}function Uc(t,e,o){return t?t.concat(e).map((function(t,e){return t=Hc(t),!o&&e?"["+t+"]":t})).join(o?".":""):e}const Vc=kc.toFlatObject(kc,{},null,(function(t){return/^is[A-Z]/.test(t)}));const $c=function(t,e,o){if(!kc.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const p=(o=kc.toFlatObject(o,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!kc.isUndefined(e[t])}))).metaTokens,b=o.visitor||r,n=o.dots,M=o.indexes,z=(o.Blob||"undefined"!=typeof Blob&&Blob)&&kc.isSpecCompliantForm(e);if(!kc.isFunction(b))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(kc.isDate(t))return t.toISOString();if(!z&&kc.isBlob(t))throw new jc("Blob is not supported. Use a Buffer instead.");return kc.isArrayBuffer(t)||kc.isTypedArray(t)?z&&"function"==typeof Blob?new Blob([t]):Ic.from(t):t}function r(t,o,b){let z=t;if(t&&!b&&"object"==typeof t)if(kc.endsWith(o,"{}"))o=p?o:o.slice(0,-2),t=JSON.stringify(t);else if(kc.isArray(t)&&function(t){return kc.isArray(t)&&!t.some(Fc)}(t)||(kc.isFileList(t)||kc.endsWith(o,"[]"))&&(z=kc.toArray(t)))return o=Hc(o),z.forEach((function(t,p){!kc.isUndefined(t)&&null!==t&&e.append(!0===M?Uc([o],p,n):null===M?o:o+"[]",c(t))})),!1;return!!Fc(t)||(e.append(Uc(b,o,n),c(t)),!1)}const i=[],a=Object.assign(Vc,{defaultVisitor:r,convertValue:c,isVisitable:Fc});if(!kc.isObject(t))throw new TypeError("data must be an object");return function t(o,p){if(!kc.isUndefined(o)){if(-1!==i.indexOf(o))throw Error("Circular reference detected in "+p.join("."));i.push(o),kc.forEach(o,(function(o,n){!0===(!(kc.isUndefined(o)||null===o)&&b.call(e,o,kc.isString(n)?n.trim():n,p,a))&&t(o,p?p.concat(n):[n])})),i.pop()}}(t),e};function Yc(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function Gc(t,e){this._pairs=[],t&&$c(t,this,e)}const Jc=Gc.prototype;Jc.append=function(t,e){this._pairs.push([t,e])},Jc.toString=function(t){const e=t?function(e){return t.call(this,e,Yc)}:Yc;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};const Kc=Gc;function Qc(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Zc(t,e,o){if(!e)return t;const p=o&&o.encode||Qc,b=o&&o.serialize;let n;if(n=b?b(e,o):kc.isURLSearchParams(e)?e.toString():new Kc(e,o).toString(p),n){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+n}return t}const tr=class{constructor(){this.handlers=[]}use(t,e,o){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!o&&o.synchronous,runWhen:o?o.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){kc.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},er={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},or={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Kc,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let t;return("undefined"==typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&("undefined"!=typeof window&&"undefined"!=typeof document)})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};const pr=function(t){function e(t,o,p,b){let n=t[b++];const M=Number.isFinite(+n),z=b>=t.length;if(n=!n&&kc.isArray(p)?p.length:n,z)return kc.hasOwnProp(p,n)?p[n]=[p[n],o]:p[n]=o,!M;p[n]&&kc.isObject(p[n])||(p[n]=[]);return e(t,o,p[n],b)&&kc.isArray(p[n])&&(p[n]=function(t){const e={},o=Object.keys(t);let p;const b=o.length;let n;for(p=0;p{e(function(t){return kc.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),p,o,0)})),o}return null};const br={transitional:er,adapter:["xhr","http"],transformRequest:[function(t,e){const o=e.getContentType()||"",p=o.indexOf("application/json")>-1,b=kc.isObject(t);b&&kc.isHTMLForm(t)&&(t=new FormData(t));if(kc.isFormData(t))return p&&p?JSON.stringify(pr(t)):t;if(kc.isArrayBuffer(t)||kc.isBuffer(t)||kc.isStream(t)||kc.isFile(t)||kc.isBlob(t))return t;if(kc.isArrayBufferView(t))return t.buffer;if(kc.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let n;if(b){if(o.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return $c(t,new or.classes.URLSearchParams,Object.assign({visitor:function(t,e,o,p){return or.isNode&&kc.isBuffer(t)?(this.append(e,t.toString("base64")),!1):p.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((n=kc.isFileList(t))||o.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return $c(n?{"files[]":t}:t,e&&new e,this.formSerializer)}}return b||p?(e.setContentType("application/json",!1),function(t,e,o){if(kc.isString(t))try{return(e||JSON.parse)(t),kc.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(o||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||br.transitional,o=e&&e.forcedJSONParsing,p="json"===this.responseType;if(t&&kc.isString(t)&&(o&&!this.responseType||p)){const o=!(e&&e.silentJSONParsing)&&p;try{return JSON.parse(t)}catch(t){if(o){if("SyntaxError"===t.name)throw jc.from(t,jc.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:or.classes.FormData,Blob:or.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};kc.forEach(["delete","get","head","post","put","patch"],(t=>{br.headers[t]={}}));const nr=br,Mr=kc.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"]),zr=Symbol("internals");function cr(t){return t&&String(t).trim().toLowerCase()}function rr(t){return!1===t||null==t?t:kc.isArray(t)?t.map(rr):String(t)}function ir(t,e,o,p,b){return kc.isFunction(p)?p.call(this,e,o):(b&&(e=o),kc.isString(e)?kc.isString(p)?-1!==e.indexOf(p):kc.isRegExp(p)?p.test(e):void 0:void 0)}class ar{constructor(t){t&&this.set(t)}set(t,e,o){const p=this;function b(t,e,o){const b=cr(e);if(!b)throw new Error("header name must be a non-empty string");const n=kc.findKey(p,b);(!n||void 0===p[n]||!0===o||void 0===o&&!1!==p[n])&&(p[n||e]=rr(t))}const n=(t,e)=>kc.forEach(t,((t,o)=>b(t,o,e)));return kc.isPlainObject(t)||t instanceof this.constructor?n(t,e):kc.isString(t)&&(t=t.trim())&&!(t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))(t)?n((t=>{const e={};let o,p,b;return t&&t.split("\n").forEach((function(t){b=t.indexOf(":"),o=t.substring(0,b).trim().toLowerCase(),p=t.substring(b+1).trim(),!o||e[o]&&Mr[o]||("set-cookie"===o?e[o]?e[o].push(p):e[o]=[p]:e[o]=e[o]?e[o]+", "+p:p)})),e})(t),e):null!=t&&b(e,t,o),this}get(t,e){if(t=cr(t)){const o=kc.findKey(this,t);if(o){const t=this[o];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),o=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let p;for(;p=o.exec(t);)e[p[1]]=p[2];return e}(t);if(kc.isFunction(e))return e.call(this,t,o);if(kc.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=cr(t)){const o=kc.findKey(this,t);return!(!o||void 0===this[o]||e&&!ir(0,this[o],o,e))}return!1}delete(t,e){const o=this;let p=!1;function b(t){if(t=cr(t)){const b=kc.findKey(o,t);!b||e&&!ir(0,o[b],b,e)||(delete o[b],p=!0)}}return kc.isArray(t)?t.forEach(b):b(t),p}clear(t){const e=Object.keys(this);let o=e.length,p=!1;for(;o--;){const b=e[o];t&&!ir(0,this[b],b,t,!0)||(delete this[b],p=!0)}return p}normalize(t){const e=this,o={};return kc.forEach(this,((p,b)=>{const n=kc.findKey(o,b);if(n)return e[n]=rr(p),void delete e[b];const M=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,o)=>e.toUpperCase()+o))}(b):String(b).trim();M!==b&&delete e[b],e[M]=rr(p),o[M]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return kc.forEach(this,((o,p)=>{null!=o&&!1!==o&&(e[p]=t&&kc.isArray(o)?o.join(", "):o)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const o=new this(t);return e.forEach((t=>o.set(t))),o}static accessor(t){const e=(this[zr]=this[zr]={accessors:{}}).accessors,o=this.prototype;function p(t){const p=cr(t);e[p]||(!function(t,e){const o=kc.toCamelCase(" "+e);["get","set","has"].forEach((p=>{Object.defineProperty(t,p+o,{value:function(t,o,b){return this[p].call(this,e,t,o,b)},configurable:!0})}))}(o,t),e[p]=!0)}return kc.isArray(t)?t.forEach(p):p(t),this}}ar.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),kc.reduceDescriptors(ar.prototype,(({value:t},e)=>{let o=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[o]=t}}})),kc.freezeMethods(ar);const Or=ar;function sr(t,e){const o=this||nr,p=e||o,b=Or.from(p.headers);let n=p.data;return kc.forEach(t,(function(t){n=t.call(o,n,b.normalize(),e?e.status:void 0)})),b.normalize(),n}function lr(t){return!(!t||!t.__CANCEL__)}function dr(t,e,o){jc.call(this,null==t?"canceled":t,jc.ERR_CANCELED,e,o),this.name="CanceledError"}kc.inherits(dr,jc,{__CANCEL__:!0});const Ar=dr;const ur=or.isStandardBrowserEnv?{write:function(t,e,o,p,b,n){const M=[];M.push(t+"="+encodeURIComponent(e)),kc.isNumber(o)&&M.push("expires="+new Date(o).toGMTString()),kc.isString(p)&&M.push("path="+p),kc.isString(b)&&M.push("domain="+b),!0===n&&M.push("secure"),document.cookie=M.join("; ")},read:function(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function fr(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}const qr=or.isStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement("a");let o;function p(o){let p=o;return t&&(e.setAttribute("href",p),p=e.href),e.setAttribute("href",p),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return o=p(window.location.href),function(t){const e=kc.isString(t)?p(t):t;return e.protocol===o.protocol&&e.host===o.host}}():function(){return!0};const hr=function(t,e){t=t||10;const o=new Array(t),p=new Array(t);let b,n=0,M=0;return e=void 0!==e?e:1e3,function(z){const c=Date.now(),r=p[M];b||(b=c),o[n]=z,p[n]=c;let i=M,a=0;for(;i!==n;)a+=o[i++],i%=t;if(n=(n+1)%t,n===M&&(M=(M+1)%t),c-b{const n=b.loaded,M=b.lengthComputable?b.total:void 0,z=n-o,c=p(z);o=n;const r={loaded:n,total:M,progress:M?n/M:void 0,bytes:z,rate:c||void 0,estimated:c&&M&&n<=M?(M-n)/c:void 0,event:b};r[e?"download":"upload"]=!0,t(r)}}const mr="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,o){let p=t.data;const b=Or.from(t.headers).normalize(),n=t.responseType;let M,z;function c(){t.cancelToken&&t.cancelToken.unsubscribe(M),t.signal&&t.signal.removeEventListener("abort",M)}kc.isFormData(p)&&(or.isStandardBrowserEnv||or.isStandardBrowserWebWorkerEnv?b.setContentType(!1):b.getContentType(/^\s*multipart\/form-data/)?kc.isString(z=b.getContentType())&&b.setContentType(z.replace(/^\s*(multipart\/form-data);+/,"$1")):b.setContentType("multipart/form-data"));let r=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",o=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";b.set("Authorization","Basic "+btoa(e+":"+o))}const i=fr(t.baseURL,t.url);function a(){if(!r)return;const p=Or.from("getAllResponseHeaders"in r&&r.getAllResponseHeaders());!function(t,e,o){const p=o.config.validateStatus;o.status&&p&&!p(o.status)?e(new jc("Request failed with status code "+o.status,[jc.ERR_BAD_REQUEST,jc.ERR_BAD_RESPONSE][Math.floor(o.status/100)-4],o.config,o.request,o)):t(o)}((function(t){e(t),c()}),(function(t){o(t),c()}),{data:n&&"text"!==n&&"json"!==n?r.response:r.responseText,status:r.status,statusText:r.statusText,headers:p,config:t,request:r}),r=null}if(r.open(t.method.toUpperCase(),Zc(i,t.params,t.paramsSerializer),!0),r.timeout=t.timeout,"onloadend"in r?r.onloadend=a:r.onreadystatechange=function(){r&&4===r.readyState&&(0!==r.status||r.responseURL&&0===r.responseURL.indexOf("file:"))&&setTimeout(a)},r.onabort=function(){r&&(o(new jc("Request aborted",jc.ECONNABORTED,t,r)),r=null)},r.onerror=function(){o(new jc("Network Error",jc.ERR_NETWORK,t,r)),r=null},r.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const p=t.transitional||er;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),o(new jc(e,p.clarifyTimeoutError?jc.ETIMEDOUT:jc.ECONNABORTED,t,r)),r=null},or.isStandardBrowserEnv){const e=qr(i)&&t.xsrfCookieName&&ur.read(t.xsrfCookieName);e&&b.set(t.xsrfHeaderName,e)}void 0===p&&b.setContentType(null),"setRequestHeader"in r&&kc.forEach(b.toJSON(),(function(t,e){r.setRequestHeader(e,t)})),kc.isUndefined(t.withCredentials)||(r.withCredentials=!!t.withCredentials),n&&"json"!==n&&(r.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&r.addEventListener("progress",Wr(t.onDownloadProgress,!0)),"function"==typeof t.onUploadProgress&&r.upload&&r.upload.addEventListener("progress",Wr(t.onUploadProgress)),(t.cancelToken||t.signal)&&(M=e=>{r&&(o(!e||e.type?new Ar(null,t,r):e),r.abort(),r=null)},t.cancelToken&&t.cancelToken.subscribe(M),t.signal&&(t.signal.aborted?M():t.signal.addEventListener("abort",M)));const O=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(i);O&&-1===or.protocols.indexOf(O)?o(new jc("Unsupported protocol "+O+":",jc.ERR_BAD_REQUEST,t)):r.send(p||null)}))},gr={http:null,xhr:mr};kc.forEach(gr,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const vr=t=>`- ${t}`,Rr=t=>kc.isFunction(t)||null===t||!1===t,yr=t=>{t=kc.isArray(t)?t:[t];const{length:e}=t;let o,p;const b={};for(let n=0;n`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let o=e?t.length>1?"since :\n"+t.map(vr).join("\n"):" "+vr(t[0]):"as no adapter specified";throw new jc("There is no suitable adapter to dispatch the request "+o,"ERR_NOT_SUPPORT")}return p};function Br(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Ar(null,t)}function Lr(t){Br(t),t.headers=Or.from(t.headers),t.data=sr.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1);return yr(t.adapter||nr.adapter)(t).then((function(e){return Br(t),e.data=sr.call(t,t.transformResponse,e),e.headers=Or.from(e.headers),e}),(function(e){return lr(e)||(Br(t),e&&e.response&&(e.response.data=sr.call(t,t.transformResponse,e.response),e.response.headers=Or.from(e.response.headers))),Promise.reject(e)}))}const Xr=t=>t instanceof Or?t.toJSON():t;function _r(t,e){e=e||{};const o={};function p(t,e,o){return kc.isPlainObject(t)&&kc.isPlainObject(e)?kc.merge.call({caseless:o},t,e):kc.isPlainObject(e)?kc.merge({},e):kc.isArray(e)?e.slice():e}function b(t,e,o){return kc.isUndefined(e)?kc.isUndefined(t)?void 0:p(void 0,t,o):p(t,e,o)}function n(t,e){if(!kc.isUndefined(e))return p(void 0,e)}function M(t,e){return kc.isUndefined(e)?kc.isUndefined(t)?void 0:p(void 0,t):p(void 0,e)}function z(o,b,n){return n in e?p(o,b):n in t?p(void 0,o):void 0}const c={url:n,method:n,data:n,baseURL:M,transformRequest:M,transformResponse:M,paramsSerializer:M,timeout:M,timeoutMessage:M,withCredentials:M,adapter:M,responseType:M,xsrfCookieName:M,xsrfHeaderName:M,onUploadProgress:M,onDownloadProgress:M,decompress:M,maxContentLength:M,maxBodyLength:M,beforeRedirect:M,transport:M,httpAgent:M,httpsAgent:M,cancelToken:M,socketPath:M,responseEncoding:M,validateStatus:z,headers:(t,e)=>b(Xr(t),Xr(e),!0)};return kc.forEach(Object.keys(Object.assign({},t,e)),(function(p){const n=c[p]||b,M=n(t[p],e[p],p);kc.isUndefined(M)&&n!==z||(o[p]=M)})),o}const Nr="1.6.0",wr={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{wr[t]=function(o){return typeof o===t||"a"+(e<1?"n ":" ")+t}}));const xr={};wr.transitional=function(t,e,o){return(p,b,n)=>{if(!1===t)throw new jc(function(t,e){return"[Axios v1.6.0] Transitional option '"+t+"'"+e+(o?". "+o:"")}(b," has been removed"+(e?" in "+e:"")),jc.ERR_DEPRECATED);return e&&!xr[b]&&(xr[b]=!0),!t||t(p,b,n)}};const Tr={assertOptions:function(t,e,o){if("object"!=typeof t)throw new jc("options must be an object",jc.ERR_BAD_OPTION_VALUE);const p=Object.keys(t);let b=p.length;for(;b-- >0;){const n=p[b],M=e[n];if(M){const e=t[n],o=void 0===e||M(e,n,t);if(!0!==o)throw new jc("option "+n+" must be "+o,jc.ERR_BAD_OPTION_VALUE)}else if(!0!==o)throw new jc("Unknown option "+n,jc.ERR_BAD_OPTION)}},validators:wr},Cr=Tr.validators;class Sr{constructor(t){this.defaults=t,this.interceptors={request:new tr,response:new tr}}request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=_r(this.defaults,e);const{transitional:o,paramsSerializer:p,headers:b}=e;void 0!==o&&Tr.assertOptions(o,{silentJSONParsing:Cr.transitional(Cr.boolean),forcedJSONParsing:Cr.transitional(Cr.boolean),clarifyTimeoutError:Cr.transitional(Cr.boolean)},!1),null!=p&&(kc.isFunction(p)?e.paramsSerializer={serialize:p}:Tr.assertOptions(p,{encode:Cr.function,serialize:Cr.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let n=b&&kc.merge(b.common,b[e.method]);b&&kc.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete b[t]})),e.headers=Or.concat(n,b);const M=[];let z=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(z=z&&t.synchronous,M.unshift(t.fulfilled,t.rejected))}));const c=[];let r;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let i,a=0;if(!z){const t=[Lr.bind(this),void 0];for(t.unshift.apply(t,M),t.push.apply(t,c),i=t.length,r=Promise.resolve(e);a{if(!o._listeners)return;let e=o._listeners.length;for(;e-- >0;)o._listeners[e](t);o._listeners=null})),this.promise.then=t=>{let e;const p=new Promise((t=>{o.subscribe(t),e=t})).then(t);return p.cancel=function(){o.unsubscribe(e)},p},t((function(t,p,b){o.reason||(o.reason=new Ar(t,p,b),e(o.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new Er((function(e){t=e})),cancel:t}}}const Dr=Er;const Pr={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};Object.entries(Pr).forEach((([t,e])=>{Pr[e]=t}));const jr=Pr;const Ir=function t(e){const o=new kr(e),p=pc(kr.prototype.request,o);return kc.extend(p,kr.prototype,o,{allOwnKeys:!0}),kc.extend(p,o,null,{allOwnKeys:!0}),p.create=function(o){return t(_r(e,o))},p}(nr);Ir.Axios=kr,Ir.CanceledError=Ar,Ir.CancelToken=Dr,Ir.isCancel=lr,Ir.VERSION=Nr,Ir.toFormData=$c,Ir.AxiosError=jc,Ir.Cancel=Ir.CanceledError,Ir.all=function(t){return Promise.all(t)},Ir.spread=function(t){return function(e){return t.apply(null,e)}},Ir.isAxiosError=function(t){return kc.isObject(t)&&!0===t.isAxiosError},Ir.mergeConfig=_r,Ir.AxiosHeaders=Or,Ir.formToJSON=t=>pr(kc.isHTMLForm(t)?new FormData(t):t),Ir.getAdapter=yr,Ir.HttpStatusCode=jr,Ir.default=Ir;const Fr=Ir,Hr=[{path:"/",redirect:"/dashboard"},{path:"/dashboard",name:"dashboard",component:o(307).Z},{path:"/monitoring",name:"monitoring",component:o(300).Z},{path:"/monitoring/:tag",component:o(997).Z,children:[{path:"jobs",name:"monitoring-jobs",component:o(790).Z,props:{type:"jobs"}},{path:"failed",name:"monitoring-failed",component:o(790).Z,props:{type:"failed"}}]},{path:"/metrics",redirect:"/metrics/jobs"},{path:"/metrics/",component:o(20).Z,children:[{path:"jobs",name:"metrics-jobs",component:o(253).Z},{path:"queues",name:"metrics-queues",component:o(871).Z}]},{path:"/metrics/:type/:slug",name:"metrics-preview",component:o(295).Z},{path:"/jobs/:type",name:"jobs",component:o(347).Z},{path:"/jobs/pending/:jobId",name:"pending-jobs-preview",component:o(967).Z},{path:"/jobs/completed/:jobId",name:"completed-jobs-preview",component:o(967).Z},{path:"/jobs/silenced/:jobId",name:"silenced-jobs-preview",component:o(967).Z},{path:"/failed",name:"failed-jobs",component:o(404).Z},{path:"/failed/:jobId",name:"failed-jobs-preview",component:o(5).Z},{path:"/batches",name:"batches",component:o(472).Z},{path:"/batches/:batchId",name:"batches-preview",component:o(416).Z}];function Ur(t,e){for(var o in e)t[o]=e[o];return t}var Vr=/[!'()*]/g,$r=function(t){return"%"+t.charCodeAt(0).toString(16)},Yr=/%2C/g,Gr=function(t){return encodeURIComponent(t).replace(Vr,$r).replace(Yr,",")};function Jr(t){try{return decodeURIComponent(t)}catch(t){0}return t}var Kr=function(t){return null==t||"object"==typeof t?t:String(t)};function Qr(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach((function(t){var o=t.replace(/\+/g," ").split("="),p=Jr(o.shift()),b=o.length>0?Jr(o.join("=")):null;void 0===e[p]?e[p]=b:Array.isArray(e[p])?e[p].push(b):e[p]=[e[p],b]})),e):e}function Zr(t){var e=t?Object.keys(t).map((function(e){var o=t[e];if(void 0===o)return"";if(null===o)return Gr(e);if(Array.isArray(o)){var p=[];return o.forEach((function(t){void 0!==t&&(null===t?p.push(Gr(e)):p.push(Gr(e)+"="+Gr(t)))})),p.join("&")}return Gr(e)+"="+Gr(o)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var ti=/\/?$/;function ei(t,e,o,p){var b=p&&p.options.stringifyQuery,n=e.query||{};try{n=oi(n)}catch(t){}var M={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:n,params:e.params||{},fullPath:ni(e,b),matched:t?bi(t):[]};return o&&(M.redirectedFrom=ni(o,b)),Object.freeze(M)}function oi(t){if(Array.isArray(t))return t.map(oi);if(t&&"object"==typeof t){var e={};for(var o in t)e[o]=oi(t[o]);return e}return t}var pi=ei(null,{path:"/"});function bi(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var o=t.path,p=t.query;void 0===p&&(p={});var b=t.hash;return void 0===b&&(b=""),(o||"/")+(e||Zr)(p)+b}function Mi(t,e,o){return e===pi?t===e:!!e&&(t.path&&e.path?t.path.replace(ti,"")===e.path.replace(ti,"")&&(o||t.hash===e.hash&&zi(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(o||t.hash===e.hash&&zi(t.query,e.query)&&zi(t.params,e.params))))}function zi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var o=Object.keys(t).sort(),p=Object.keys(e).sort();return o.length===p.length&&o.every((function(o,b){var n=t[o];if(p[b]!==o)return!1;var M=e[o];return null==n||null==M?n===M:"object"==typeof n&&"object"==typeof M?zi(n,M):String(n)===String(M)}))}function ci(t){for(var e=0;e=0&&(e=t.slice(p),t=t.slice(0,p));var b=t.indexOf("?");return b>=0&&(o=t.slice(b+1),t=t.slice(0,b)),{path:t,query:o,hash:e}}(b.path||""),r=e&&e.path||"/",i=c.path?ai(c.path,r,o||b.append):r,a=function(t,e,o){void 0===e&&(e={});var p,b=o||Qr;try{p=b(t||"")}catch(t){p={}}for(var n in e){var M=e[n];p[n]=Array.isArray(M)?M.map(Kr):Kr(M)}return p}(c.query,b.query,p&&p.options.parseQuery),O=b.hash||c.hash;return O&&"#"!==O.charAt(0)&&(O="#"+O),{_normalized:!0,path:i,query:a,hash:O}}var xi,Ti=function(){},Ci={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,o=this.$router,p=this.$route,b=o.resolve(this.to,p,this.append),n=b.location,M=b.route,z=b.href,c={},r=o.options.linkActiveClass,i=o.options.linkExactActiveClass,a=null==r?"router-link-active":r,O=null==i?"router-link-exact-active":i,s=null==this.activeClass?a:this.activeClass,l=null==this.exactActiveClass?O:this.exactActiveClass,d=M.redirectedFrom?ei(null,wi(M.redirectedFrom),null,o):M;c[l]=Mi(p,d,this.exactPath),c[s]=this.exact||this.exactPath?c[l]:function(t,e){return 0===t.path.replace(ti,"/").indexOf(e.path.replace(ti,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var o in e)if(!(o in t))return!1;return!0}(t.query,e.query)}(p,d);var A=c[l]?this.ariaCurrentValue:null,u=function(t){Si(t)&&(e.replace?o.replace(n,Ti):o.push(n,Ti))},f={click:Si};Array.isArray(this.event)?this.event.forEach((function(t){f[t]=u})):f[this.event]=u;var q={class:c},h=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:z,route:M,navigate:u,isActive:c[s],isExactActive:c[l]});if(h){if(1===h.length)return h[0];if(h.length>1||!h.length)return 0===h.length?t():t("span",{},h)}if("a"===this.tag)q.on=f,q.attrs={href:z,"aria-current":A};else{var W=ki(this.$slots.default);if(W){W.isStatic=!1;var m=W.data=Ur({},W.data);for(var g in m.on=m.on||{},m.on){var v=m.on[g];g in f&&(m.on[g]=Array.isArray(v)?v:[v])}for(var R in f)R in m.on?m.on[R].push(f[R]):m.on[R]=u;var y=W.data.attrs=Ur({},W.data.attrs);y.href=z,y["aria-current"]=A}else q.on=f}return t(this.tag,q,this.$slots.default)}};function Si(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function ki(t){if(t)for(var e,o=0;o-1&&(z.params[O]=o.params[O]);return z.path=Ni(i.path,z.params),c(i,z,M)}if(z.path){z.params={};for(var s=0;s-1}function da(t,e){return la(t)&&t._isRouter&&(null==e||t.type===e)}function Aa(t,e,o){var p=function(b){b>=t.length?o():t[b]?e(t[b],(function(){p(b+1)})):p(b+1)};p(0)}function ua(t){return function(e,o,p){var b=!1,n=0,M=null;fa(t,(function(t,e,o,z){if("function"==typeof t&&void 0===t.cid){b=!0,n++;var c,r=Wa((function(e){var b;((b=e).__esModule||ha&&"Module"===b[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:xi.extend(e),o.components[z]=e,--n<=0&&p()})),i=Wa((function(t){var e="Failed to resolve async component "+z+": "+t;M||(M=la(t)?t:new Error(e),p(M))}));try{c=t(r,i)}catch(t){i(t)}if(c)if("function"==typeof c.then)c.then(r,i);else{var a=c.component;a&&"function"==typeof a.then&&a.then(r,i)}}})),b||p()}}function fa(t,e){return qa(t.map((function(t){return Object.keys(t.components).map((function(o){return e(t.components[o],t.instances[o],t,o)}))})))}function qa(t){return Array.prototype.concat.apply([],t)}var ha="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Wa(t){var e=!1;return function(){for(var o=[],p=arguments.length;p--;)o[p]=arguments[p];if(!e)return e=!0,t.apply(this,o)}}var ma=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ei){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=pi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function ga(t,e,o,p){var b=fa(t,(function(t,p,b,n){var M=function(t,e){"function"!=typeof t&&(t=xi.extend(t));return t.options[e]}(t,e);if(M)return Array.isArray(M)?M.map((function(t){return o(t,p,b,n)})):o(M,p,b,n)}));return qa(p?b.reverse():b)}function va(t,e){if(e)return function(){return t.apply(e,arguments)}}ma.prototype.listen=function(t){this.cb=t},ma.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},ma.prototype.onError=function(t){this.errorCbs.push(t)},ma.prototype.transitionTo=function(t,e,o){var p,b=this;try{p=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var n=this.current;this.confirmTransition(p,(function(){b.updateRoute(p),e&&e(p),b.ensureURL(),b.router.afterHooks.forEach((function(t){t&&t(p,n)})),b.ready||(b.ready=!0,b.readyCbs.forEach((function(t){t(p)})))}),(function(t){o&&o(t),t&&!b.ready&&(da(t,ra.redirected)&&n===pi||(b.ready=!0,b.readyErrorCbs.forEach((function(e){e(t)}))))}))},ma.prototype.confirmTransition=function(t,e,o){var p=this,b=this.current;this.pending=t;var n,M,z=function(t){!da(t)&&la(t)&&p.errorCbs.length&&p.errorCbs.forEach((function(e){e(t)})),o&&o(t)},c=t.matched.length-1,r=b.matched.length-1;if(Mi(t,b)&&c===r&&t.matched[c]===b.matched[r])return this.ensureURL(),t.hash&&Ki(this.router,b,t,!1),z(((M=Oa(n=b,t,ra.duplicated,'Avoided redundant navigation to current location: "'+n.fullPath+'".')).name="NavigationDuplicated",M));var i=function(t,e){var o,p=Math.max(t.length,e.length);for(o=0;o0)){var e=this.router,o=e.options.scrollBehavior,p=Ma&&o;p&&this.listeners.push(Ji());var b=function(){var o=t.current,b=ya(t.base);t.current===pi&&b===t._startLocation||t.transitionTo(b,(function(t){p&&Ki(e,t,o,!0)}))};window.addEventListener("popstate",b),this.listeners.push((function(){window.removeEventListener("popstate",b)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){za(Oi(p.base+t.fullPath)),Ki(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){ca(Oi(p.base+t.fullPath)),Ki(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.ensureURL=function(t){if(ya(this.base)!==this.current.fullPath){var e=Oi(this.base+this.current.fullPath);t?za(e):ca(e)}},e.prototype.getCurrentLocation=function(){return ya(this.base)},e}(ma);function ya(t){var e=window.location.pathname,o=e.toLowerCase(),p=t.toLowerCase();return!t||o!==p&&0!==o.indexOf(Oi(p+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ba=function(t){function e(e,o,p){t.call(this,e,o),p&&function(t){var e=ya(t);if(!/^\/#/.test(e))return window.location.replace(Oi(t+"/#"+e)),!0}(this.base)||La()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,o=Ma&&e;o&&this.listeners.push(Ji());var p=function(){var e=t.current;La()&&t.transitionTo(Xa(),(function(p){o&&Ki(t.router,p,e,!0),Ma||wa(p.fullPath)}))},b=Ma?"popstate":"hashchange";window.addEventListener(b,p),this.listeners.push((function(){window.removeEventListener(b,p)}))}},e.prototype.push=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){Na(t.fullPath),Ki(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){wa(t.fullPath),Ki(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Xa()!==e&&(t?Na(e):wa(e))},e.prototype.getCurrentLocation=function(){return Xa()},e}(ma);function La(){var t=Xa();return"/"===t.charAt(0)||(wa("/"+t),!1)}function Xa(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function _a(t){var e=window.location.href,o=e.indexOf("#");return(o>=0?e.slice(0,o):e)+"#"+t}function Na(t){Ma?za(_a(t)):window.location.hash=t}function wa(t){Ma?ca(_a(t)):window.location.replace(_a(t))}var xa=function(t){function e(e,o){t.call(this,e,o),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,o){var p=this;this.transitionTo(t,(function(t){p.stack=p.stack.slice(0,p.index+1).concat(t),p.index++,e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this;this.transitionTo(t,(function(t){p.stack=p.stack.slice(0,p.index).concat(t),e&&e(t)}),o)},e.prototype.go=function(t){var e=this,o=this.index+t;if(!(o<0||o>=this.stack.length)){var p=this.stack[o];this.confirmTransition(p,(function(){var t=e.current;e.index=o,e.updateRoute(p),e.router.afterHooks.forEach((function(e){e&&e(p,t)}))}),(function(t){da(t,ra.duplicated)&&(e.index=o)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ma),Ta=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ii(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Ma&&!1!==t.fallback,this.fallback&&(e="hash"),Ei||(e="abstract"),this.mode=e,e){case"history":this.history=new Ra(this,t.base);break;case"hash":this.history=new Ba(this,t.base,this.fallback);break;case"abstract":this.history=new xa(this,t.base)}},Ca={currentRoute:{configurable:!0}};Ta.prototype.match=function(t,e,o){return this.matcher.match(t,e,o)},Ca.currentRoute.get=function(){return this.history&&this.history.current},Ta.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var o=e.apps.indexOf(t);o>-1&&e.apps.splice(o,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var o=this.history;if(o instanceof Ra||o instanceof Ba){var p=function(t){o.setupListeners(),function(t){var p=o.current,b=e.options.scrollBehavior;Ma&&b&&"fullPath"in t&&Ki(e,t,p,!1)}(t)};o.transitionTo(o.getCurrentLocation(),p,p)}o.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Ta.prototype.beforeEach=function(t){return ka(this.beforeHooks,t)},Ta.prototype.beforeResolve=function(t){return ka(this.resolveHooks,t)},Ta.prototype.afterEach=function(t){return ka(this.afterHooks,t)},Ta.prototype.onReady=function(t,e){this.history.onReady(t,e)},Ta.prototype.onError=function(t){this.history.onError(t)},Ta.prototype.push=function(t,e,o){var p=this;if(!e&&!o&&"undefined"!=typeof Promise)return new Promise((function(e,o){p.history.push(t,e,o)}));this.history.push(t,e,o)},Ta.prototype.replace=function(t,e,o){var p=this;if(!e&&!o&&"undefined"!=typeof Promise)return new Promise((function(e,o){p.history.replace(t,e,o)}));this.history.replace(t,e,o)},Ta.prototype.go=function(t){this.history.go(t)},Ta.prototype.back=function(){this.go(-1)},Ta.prototype.forward=function(){this.go(1)},Ta.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Ta.prototype.resolve=function(t,e,o){var p=wi(t,e=e||this.history.current,o,this),b=this.match(p,e),n=b.redirectedFrom||b.fullPath,M=function(t,e,o){var p="hash"===o?"#"+e:e;return t?Oi(t+"/"+p):p}(this.history.base,n,this.mode);return{location:p,route:b,href:M,normalizedTo:p,resolved:b}},Ta.prototype.getRoutes=function(){return this.matcher.getRoutes()},Ta.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==pi&&this.history.transitionTo(this.history.getCurrentLocation())},Ta.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==pi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Ta.prototype,Ca);var Sa=Ta;function ka(t,e){return t.push(e),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}Ta.install=function t(e){if(!t.installed||xi!==e){t.installed=!0,xi=e;var o=function(t){return void 0!==t},p=function(t,e){var p=t.$options._parentVnode;o(p)&&o(p=p.data)&&o(p=p.registerRouteInstance)&&p(t,e)};e.mixin({beforeCreate:function(){o(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,p(this,this)},destroyed:function(){p(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",ri),e.component("RouterLink",Ci);var b=e.config.optionMergeStrategies;b.beforeRouteEnter=b.beforeRouteLeave=b.beforeRouteUpdate=b.created}},Ta.version="3.6.5",Ta.isNavigationFailure=da,Ta.NavigationFailureType=ra,Ta.START_LOCATION=pi,Ei&&window.Vue&&window.Vue.use(Ta);var Ea=o(566),Da=o.n(Ea);window.Popper=o(575).default;try{window.$=window.jQuery=o(755),o(734)}catch(t){}var Pa=document.head.querySelector('meta[name="csrf-token"]');Fr.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",Pa&&(Fr.defaults.headers.common["X-CSRF-TOKEN"]=Pa.content),ep.use(Sa),ep.prototype.$http=Fr.create(),window.Horizon.basePath="/"+window.Horizon.path;var ja=window.Horizon.basePath+"/";""!==window.Horizon.path&&"/"!==window.Horizon.path||(ja="/",window.Horizon.basePath="");var Ia=new Sa({routes:Hr,mode:"history",base:ja});ep.component("vue-json-pretty",Da()),ep.component("alert",o(682).Z),ep.component("scheme-toggler",o(70).Z),ep.mixin(oc),ep.directive("tooltip",(function(t,e){$(t).tooltip({title:e.value,placement:e.arg,trigger:"hover"})})),new ep({el:"#horizon",router:Ia,data:function(){return{alert:{type:null,autoClose:0,message:"",confirmationProceed:null,confirmationCancel:null},autoLoadsNewEntries:"1"===localStorage.autoLoadsNewEntries}}})},742:(t,e)=>{"use strict";e.byteLength=function(t){var e=c(t),o=e[0],p=e[1];return 3*(o+p)/4-p},e.toByteArray=function(t){var e,o,n=c(t),M=n[0],z=n[1],r=new b(function(t,e,o){return 3*(e+o)/4-o}(0,M,z)),i=0,a=z>0?M-4:M;for(o=0;o>16&255,r[i++]=e>>8&255,r[i++]=255&e;2===z&&(e=p[t.charCodeAt(o)]<<2|p[t.charCodeAt(o+1)]>>4,r[i++]=255&e);1===z&&(e=p[t.charCodeAt(o)]<<10|p[t.charCodeAt(o+1)]<<4|p[t.charCodeAt(o+2)]>>2,r[i++]=e>>8&255,r[i++]=255&e);return r},e.fromByteArray=function(t){for(var e,p=t.length,b=p%3,n=[],M=16383,z=0,c=p-b;zc?c:z+M));1===b?(e=t[p-1],n.push(o[e>>2]+o[e<<4&63]+"==")):2===b&&(e=(t[p-2]<<8)+t[p-1],n.push(o[e>>10]+o[e>>4&63]+o[e<<2&63]+"="));return n.join("")};for(var o=[],p=[],b="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",M=0,z=n.length;M0)throw new Error("Invalid string. Length must be a multiple of 4");var o=t.indexOf("=");return-1===o&&(o=e),[o,o===e?0:4-o%4]}function r(t,e,p){for(var b,n,M=[],z=e;z>18&63]+o[n>>12&63]+o[n>>6&63]+o[63&n]);return M.join("")}p["-".charCodeAt(0)]=62,p["_".charCodeAt(0)]=63},734:function(t,e,o){!function(t,e,o){"use strict";function p(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var b=p(e),n=p(o);function M(t,e){for(var o=0;o=M)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};f.jQueryDetection(),u();var q="alert",h="4.6.2",W="bs.alert",m="."+W,g=".data-api",v=b.default.fn[q],R="alert",y="fade",B="show",L="close"+m,X="closed"+m,_="click"+m+g,N='[data-dismiss="alert"]',w=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){b.default.removeData(this._element,W),this._element=null},e._getRootElement=function(t){var e=f.getSelectorFromElement(t),o=!1;return e&&(o=document.querySelector(e)),o||(o=b.default(t).closest("."+R)[0]),o},e._triggerCloseEvent=function(t){var e=b.default.Event(L);return b.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(b.default(t).removeClass(B),b.default(t).hasClass(y)){var o=f.getTransitionDurationFromElement(t);b.default(t).one(f.TRANSITION_END,(function(o){return e._destroyElement(t,o)})).emulateTransitionEnd(o)}else this._destroyElement(t)},e._destroyElement=function(t){b.default(t).detach().trigger(X).remove()},t._jQueryInterface=function(e){return this.each((function(){var o=b.default(this),p=o.data(W);p||(p=new t(this),o.data(W,p)),"close"===e&&p[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},z(t,null,[{key:"VERSION",get:function(){return h}}]),t}();b.default(document).on(_,N,w._handleDismiss(new w)),b.default.fn[q]=w._jQueryInterface,b.default.fn[q].Constructor=w,b.default.fn[q].noConflict=function(){return b.default.fn[q]=v,w._jQueryInterface};var x="button",T="4.6.2",C="bs.button",S="."+C,k=".data-api",E=b.default.fn[x],D="active",P="btn",j="focus",I="click"+S+k,F="focus"+S+k+" blur"+S+k,H="load"+S+k,U='[data-toggle^="button"]',V='[data-toggle="buttons"]',$='[data-toggle="button"]',Y='[data-toggle="buttons"] .btn',G='input:not([type="hidden"])',J=".active",K=".btn",Q=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,o=b.default(this._element).closest(V)[0];if(o){var p=this._element.querySelector(G);if(p){if("radio"===p.type)if(p.checked&&this._element.classList.contains(D))t=!1;else{var n=o.querySelector(J);n&&b.default(n).removeClass(D)}t&&("checkbox"!==p.type&&"radio"!==p.type||(p.checked=!this._element.classList.contains(D)),this.shouldAvoidTriggerChange||b.default(p).trigger("change")),p.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(D)),t&&b.default(this._element).toggleClass(D))},e.dispose=function(){b.default.removeData(this._element,C),this._element=null},t._jQueryInterface=function(e,o){return this.each((function(){var p=b.default(this),n=p.data(C);n||(n=new t(this),p.data(C,n)),n.shouldAvoidTriggerChange=o,"toggle"===e&&n[e]()}))},z(t,null,[{key:"VERSION",get:function(){return T}}]),t}();b.default(document).on(I,U,(function(t){var e=t.target,o=e;if(b.default(e).hasClass(P)||(e=b.default(e).closest(K)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var p=e.querySelector(G);if(p&&(p.hasAttribute("disabled")||p.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==o.tagName&&"LABEL"===e.tagName||Q._jQueryInterface.call(b.default(e),"toggle","INPUT"===o.tagName)}})).on(F,U,(function(t){var e=b.default(t.target).closest(K)[0];b.default(e).toggleClass(j,/^focus(in)?$/.test(t.type))})),b.default(window).on(H,(function(){for(var t=[].slice.call(document.querySelectorAll(Y)),e=0,o=t.length;e0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(ut)},e.nextWhenVisible=function(){var t=b.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(ft)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(Et)&&(f.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(Ct);var o=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)b.default(this._element).one(mt,(function(){return e.to(t)}));else{if(o===t)return this.pause(),void this.cycle();var p=t>o?ut:ft;this._slide(p,this._items[t])}},e.dispose=function(){b.default(this._element).off(ot),b.default.removeData(this._element,et),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=c({},It,t),f.typeCheckConfig(Z,t,Ft),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=ct)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&b.default(this._element).on(gt,(function(e){return t._keydown(e)})),"hover"===this._config.pause&&b.default(this._element).on(vt,(function(e){return t.pause(e)})).on(Rt,(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Ht[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},o=function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX},p=function(e){t._pointerEvent&&Ht[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),zt+t._config.interval))};b.default(this._element.querySelectorAll(kt)).on(Nt,(function(t){return t.preventDefault()})),this._pointerEvent?(b.default(this._element).on(Xt,(function(t){return e(t)})),b.default(this._element).on(_t,(function(t){return p(t)})),this._element.classList.add(At)):(b.default(this._element).on(yt,(function(t){return e(t)})),b.default(this._element).on(Bt,(function(t){return o(t)})),b.default(this._element).on(Lt,(function(t){return p(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case nt:t.preventDefault(),this.prev();break;case Mt:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(St)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var o=t===ut,p=t===ft,b=this._getItemIndex(e),n=this._items.length-1;if((p&&0===b||o&&b===n)&&!this._config.wrap)return e;var M=(b+(t===ft?-1:1))%this._items.length;return-1===M?this._items[this._items.length-1]:this._items[M]},e._triggerSlideEvent=function(t,e){var o=this._getItemIndex(t),p=this._getItemIndex(this._element.querySelector(Ct)),n=b.default.Event(Wt,{relatedTarget:t,direction:e,from:p,to:o});return b.default(this._element).trigger(n),n},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(Tt));b.default(e).removeClass(it);var o=this._indicatorsElement.children[this._getItemIndex(t)];o&&b.default(o).addClass(it)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(Ct);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var o,p,n,M=this,z=this._element.querySelector(Ct),c=this._getItemIndex(z),r=e||z&&this._getItemByDirection(t,z),i=this._getItemIndex(r),a=Boolean(this._interval);if(t===ut?(o=st,p=lt,n=qt):(o=Ot,p=dt,n=ht),r&&b.default(r).hasClass(it))this._isSliding=!1;else if(!this._triggerSlideEvent(r,n).isDefaultPrevented()&&z&&r){this._isSliding=!0,a&&this.pause(),this._setActiveIndicatorElement(r),this._activeElement=r;var O=b.default.Event(mt,{relatedTarget:r,direction:n,from:c,to:i});if(b.default(this._element).hasClass(at)){b.default(r).addClass(p),f.reflow(r),b.default(z).addClass(o),b.default(r).addClass(o);var s=f.getTransitionDurationFromElement(z);b.default(z).one(f.TRANSITION_END,(function(){b.default(r).removeClass(o+" "+p).addClass(it),b.default(z).removeClass(it+" "+p+" "+o),M._isSliding=!1,setTimeout((function(){return b.default(M._element).trigger(O)}),0)})).emulateTransitionEnd(s)}else b.default(z).removeClass(it),b.default(r).addClass(it),this._isSliding=!1,b.default(this._element).trigger(O);a&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var o=b.default(this).data(et),p=c({},It,b.default(this).data());"object"==typeof e&&(p=c({},p,e));var n="string"==typeof e?e:p.slide;if(o||(o=new t(this,p),b.default(this).data(et,o)),"number"==typeof e)o.to(e);else if("string"==typeof n){if(void 0===o[n])throw new TypeError('No method named "'+n+'"');o[n]()}else p.interval&&p.ride&&(o.pause(),o.cycle())}))},t._dataApiClickHandler=function(e){var o=f.getSelectorFromElement(this);if(o){var p=b.default(o)[0];if(p&&b.default(p).hasClass(rt)){var n=c({},b.default(p).data(),b.default(this).data()),M=this.getAttribute("data-slide-to");M&&(n.interval=!1),t._jQueryInterface.call(b.default(p),n),M&&b.default(p).data(et).to(M),e.preventDefault()}}},z(t,null,[{key:"VERSION",get:function(){return tt}},{key:"Default",get:function(){return It}}]),t}();b.default(document).on(xt,Pt,Ut._dataApiClickHandler),b.default(window).on(wt,(function(){for(var t=[].slice.call(document.querySelectorAll(jt)),e=0,o=t.length;e0&&(this._selector=M,this._triggerArray.push(n))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){b.default(this._element).hasClass(Qt)?this.hide():this.show()},e.show=function(){var e,o,p=this;if(!(this._isTransitioning||b.default(this._element).hasClass(Qt)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(re)).filter((function(t){return"string"==typeof p._config.parent?t.getAttribute("data-parent")===p._config.parent:t.classList.contains(Zt)}))).length&&(e=null),e&&(o=b.default(e).not(this._selector).data(Yt))&&o._isTransitioning))){var n=b.default.Event(be);if(b.default(this._element).trigger(n),!n.isDefaultPrevented()){e&&(t._jQueryInterface.call(b.default(e).not(this._selector),"hide"),o||b.default(e).data(Yt,null));var M=this._getDimension();b.default(this._element).removeClass(Zt).addClass(te),this._element.style[M]=0,this._triggerArray.length&&b.default(this._triggerArray).removeClass(ee).attr("aria-expanded",!0),this.setTransitioning(!0);var z=function(){b.default(p._element).removeClass(te).addClass(Zt+" "+Qt),p._element.style[M]="",p.setTransitioning(!1),b.default(p._element).trigger(ne)},c="scroll"+(M[0].toUpperCase()+M.slice(1)),r=f.getTransitionDurationFromElement(this._element);b.default(this._element).one(f.TRANSITION_END,z).emulateTransitionEnd(r),this._element.style[M]=this._element[c]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&b.default(this._element).hasClass(Qt)){var e=b.default.Event(Me);if(b.default(this._element).trigger(e),!e.isDefaultPrevented()){var o=this._getDimension();this._element.style[o]=this._element.getBoundingClientRect()[o]+"px",f.reflow(this._element),b.default(this._element).addClass(te).removeClass(Zt+" "+Qt);var p=this._triggerArray.length;if(p>0)for(var n=0;n0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=c({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),c({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var o=b.default(this).data(Ae);if(o||(o=new t(this,"object"==typeof e?e:null),b.default(this).data(Ae,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},t._clearMenus=function(e){if(!e||e.which!==Re&&("keyup"!==e.type||e.which===me))for(var o=[].slice.call(document.querySelectorAll(Ie)),p=0,n=o.length;p0&&M--,e.which===ve&&Mdocument.documentElement.clientHeight;o||(this._element.style.overflowY="hidden"),this._element.classList.add(Ao);var p=f.getTransitionDurationFromElement(this._dialog);b.default(this._element).off(f.TRANSITION_END),b.default(this._element).one(f.TRANSITION_END,(function(){t._element.classList.remove(Ao),o||b.default(t._element).one(f.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,p)})).emulateTransitionEnd(p),this._element.focus()}},e._showElement=function(t){var e=this,o=b.default(this._element).hasClass(so),p=this._dialog?this._dialog.querySelector(_o):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),b.default(this._dialog).hasClass(ro)&&p?p.scrollTop=0:this._element.scrollTop=0,o&&f.reflow(this._element),b.default(this._element).addClass(lo),this._config.focus&&this._enforceFocus();var n=b.default.Event(Wo,{relatedTarget:t}),M=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,b.default(e._element).trigger(n)};if(o){var z=f.getTransitionDurationFromElement(this._dialog);b.default(this._dialog).one(f.TRANSITION_END,M).emulateTransitionEnd(z)}else M()},e._enforceFocus=function(){var t=this;b.default(document).off(mo).on(mo,(function(e){document!==e.target&&t._element!==e.target&&0===b.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?b.default(this._element).on(Ro,(function(e){t._config.keyboard&&e.which===co?(e.preventDefault(),t.hide()):t._config.keyboard||e.which!==co||t._triggerBackdropTransition()})):this._isShown||b.default(this._element).off(Ro)},e._setResizeEvent=function(){var t=this;this._isShown?b.default(window).on(go,(function(e){return t.handleUpdate(e)})):b.default(window).off(go)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){b.default(document.body).removeClass(Oo),t._resetAdjustments(),t._resetScrollbar(),b.default(t._element).trigger(qo)}))},e._removeBackdrop=function(){this._backdrop&&(b.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,o=b.default(this._element).hasClass(so)?so:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ao,o&&this._backdrop.classList.add(o),b.default(this._backdrop).appendTo(document.body),b.default(this._element).on(vo,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),o&&f.reflow(this._backdrop),b.default(this._backdrop).addClass(lo),!t)return;if(!o)return void t();var p=f.getTransitionDurationFromElement(this._backdrop);b.default(this._backdrop).one(f.TRANSITION_END,t).emulateTransitionEnd(p)}else if(!this._isShown&&this._backdrop){b.default(this._backdrop).removeClass(lo);var n=function(){e._removeBackdrop(),t&&t()};if(b.default(this._element).hasClass(so)){var M=f.getTransitionDurationFromElement(this._backdrop);b.default(this._backdrop).one(f.TRANSITION_END,n).emulateTransitionEnd(M)}else n()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:Do,popperConfig:null},ip={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},ap={HIDE:"hide"+$o,HIDDEN:"hidden"+$o,SHOW:"show"+$o,SHOWN:"shown"+$o,INSERTED:"inserted"+$o,CLICK:"click"+$o,FOCUSIN:"focusin"+$o,FOCUSOUT:"focusout"+$o,MOUSEENTER:"mouseenter"+$o,MOUSELEAVE:"mouseleave"+$o},Op=function(){function t(t,e){if(void 0===n.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,o=b.default(t.currentTarget).data(e);o||(o=new this.constructor(t.currentTarget,this._getDelegateConfig()),b.default(t.currentTarget).data(e,o)),o._activeTrigger.click=!o._activeTrigger.click,o._isWithActiveTrigger()?o._enter(null,o):o._leave(null,o)}else{if(b.default(this.getTipElement()).hasClass(Zo))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),b.default.removeData(this.element,this.constructor.DATA_KEY),b.default(this.element).off(this.constructor.EVENT_KEY),b.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&b.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===b.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=b.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){b.default(this.element).trigger(e);var o=f.findShadowRoot(this.element),p=b.default.contains(null!==o?o:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!p)return;var M=this.getTipElement(),z=f.getUID(this.constructor.NAME);M.setAttribute("id",z),this.element.setAttribute("aria-describedby",z),this.setContent(),this.config.animation&&b.default(M).addClass(Qo);var c="function"==typeof this.config.placement?this.config.placement.call(this,M,this.element):this.config.placement,r=this._getAttachment(c);this.addAttachmentClass(r);var i=this._getContainer();b.default(M).data(this.constructor.DATA_KEY,this),b.default.contains(this.element.ownerDocument.documentElement,this.tip)||b.default(M).appendTo(i),b.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n.default(this.element,M,this._getPopperConfig(r)),b.default(M).addClass(Zo),b.default(M).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&b.default(document.body).children().on("mouseover",null,b.default.noop);var a=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,b.default(t.element).trigger(t.constructor.Event.SHOWN),e===ep&&t._leave(null,t)};if(b.default(this.tip).hasClass(Qo)){var O=f.getTransitionDurationFromElement(this.tip);b.default(this.tip).one(f.TRANSITION_END,a).emulateTransitionEnd(O)}else a()}},e.hide=function(t){var e=this,o=this.getTipElement(),p=b.default.Event(this.constructor.Event.HIDE),n=function(){e._hoverState!==tp&&o.parentNode&&o.parentNode.removeChild(o),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),b.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(b.default(this.element).trigger(p),!p.isDefaultPrevented()){if(b.default(o).removeClass(Zo),"ontouchstart"in document.documentElement&&b.default(document.body).children().off("mouseover",null,b.default.noop),this._activeTrigger[Mp]=!1,this._activeTrigger[np]=!1,this._activeTrigger[bp]=!1,b.default(this.tip).hasClass(Qo)){var M=f.getTransitionDurationFromElement(o);b.default(o).one(f.TRANSITION_END,n).emulateTransitionEnd(M)}else n();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){b.default(this.getTipElement()).addClass(Go+"-"+t)},e.getTipElement=function(){return this.tip=this.tip||b.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(b.default(t.querySelectorAll(op)),this.getTitle()),b.default(t).removeClass(Qo+" "+Zo)},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Fo(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?b.default(e).parent().is(t)||t.empty().append(e):t.text(b.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return c({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:pp},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=c({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:f.isElement(this.config.container)?b.default(this.config.container):b.default(document).find(this.config.container)},e._getAttachment=function(t){return cp[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)b.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if(e!==zp){var o=e===bp?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,p=e===bp?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;b.default(t.element).on(o,t.config.selector,(function(e){return t._enter(e)})).on(p,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},b.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=c({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var o=this.constructor.DATA_KEY;(e=e||b.default(t.currentTarget).data(o))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),b.default(t.currentTarget).data(o,e)),t&&(e._activeTrigger["focusin"===t.type?np:bp]=!0),b.default(e.getTipElement()).hasClass(Zo)||e._hoverState===tp?e._hoverState=tp:(clearTimeout(e._timeout),e._hoverState=tp,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===tp&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var o=this.constructor.DATA_KEY;(e=e||b.default(t.currentTarget).data(o))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),b.default(t.currentTarget).data(o,e)),t&&(e._activeTrigger["focusout"===t.type?np:bp]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=ep,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===ep&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=b.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Ko.indexOf(t)&&delete e[t]})),"number"==typeof(t=c({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),f.typeCheckConfig(Ho,t,this.constructor.DefaultType),t.sanitize&&(t.template=Fo(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=b.default(this.getTipElement()),e=t.attr("class").match(Jo);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(b.default(t).removeClass(Qo),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var o=b.default(this),p=o.data(Vo),n="object"==typeof e&&e;if((p||!/dispose|hide/.test(e))&&(p||(p=new t(this,n),o.data(Vo,p)),"string"==typeof e)){if(void 0===p[e])throw new TypeError('No method named "'+e+'"');p[e]()}}))},z(t,null,[{key:"VERSION",get:function(){return Uo}},{key:"Default",get:function(){return rp}},{key:"NAME",get:function(){return Ho}},{key:"DATA_KEY",get:function(){return Vo}},{key:"Event",get:function(){return ap}},{key:"EVENT_KEY",get:function(){return $o}},{key:"DefaultType",get:function(){return ip}}]),t}();b.default.fn[Ho]=Op._jQueryInterface,b.default.fn[Ho].Constructor=Op,b.default.fn[Ho].noConflict=function(){return b.default.fn[Ho]=Yo,Op._jQueryInterface};var sp="popover",lp="4.6.2",dp="bs.popover",Ap="."+dp,up=b.default.fn[sp],fp="bs-popover",qp=new RegExp("(^|\\s)"+fp+"\\S+","g"),hp="fade",Wp="show",mp=".popover-header",gp=".popover-body",vp=c({},Op.Default,{placement:"right",trigger:"click",content:"",template:''}),Rp=c({},Op.DefaultType,{content:"(string|element|function)"}),yp={HIDE:"hide"+Ap,HIDDEN:"hidden"+Ap,SHOW:"show"+Ap,SHOWN:"shown"+Ap,INSERTED:"inserted"+Ap,CLICK:"click"+Ap,FOCUSIN:"focusin"+Ap,FOCUSOUT:"focusout"+Ap,MOUSEENTER:"mouseenter"+Ap,MOUSELEAVE:"mouseleave"+Ap},Bp=function(t){function e(){return t.apply(this,arguments)||this}r(e,t);var o=e.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){b.default(this.getTipElement()).addClass(fp+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||b.default(this.config.template)[0],this.tip},o.setContent=function(){var t=b.default(this.getTipElement());this.setElementContent(t.find(mp),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(gp),e),t.removeClass(hp+" "+Wp)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=b.default(this.getTipElement()),e=t.attr("class").match(qp);null!==e&&e.length>0&&t.removeClass(e.join(""))},e._jQueryInterface=function(t){return this.each((function(){var o=b.default(this).data(dp),p="object"==typeof t?t:null;if((o||!/dispose|hide/.test(t))&&(o||(o=new e(this,p),b.default(this).data(dp,o)),"string"==typeof t)){if(void 0===o[t])throw new TypeError('No method named "'+t+'"');o[t]()}}))},z(e,null,[{key:"VERSION",get:function(){return lp}},{key:"Default",get:function(){return vp}},{key:"NAME",get:function(){return sp}},{key:"DATA_KEY",get:function(){return dp}},{key:"Event",get:function(){return yp}},{key:"EVENT_KEY",get:function(){return Ap}},{key:"DefaultType",get:function(){return Rp}}]),e}(Op);b.default.fn[sp]=Bp._jQueryInterface,b.default.fn[sp].Constructor=Bp,b.default.fn[sp].noConflict=function(){return b.default.fn[sp]=up,Bp._jQueryInterface};var Lp="scrollspy",Xp="4.6.2",_p="bs.scrollspy",Np="."+_p,wp=".data-api",xp=b.default.fn[Lp],Tp="dropdown-item",Cp="active",Sp="activate"+Np,kp="scroll"+Np,Ep="load"+Np+wp,Dp="offset",Pp="position",jp='[data-spy="scroll"]',Ip=".nav, .list-group",Fp=".nav-link",Hp=".nav-item",Up=".list-group-item",Vp=".dropdown",$p=".dropdown-item",Yp=".dropdown-toggle",Gp={offset:10,method:"auto",target:""},Jp={offset:"number",method:"string",target:"(string|element)"},Kp=function(){function t(t,e){var o=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Fp+","+this._config.target+" "+Up+","+this._config.target+" "+$p,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,b.default(this._scrollElement).on(kp,(function(t){return o._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Dp:Pp,o="auto"===this._config.method?e:this._config.method,p=o===Pp?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,n=f.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var M=e.getBoundingClientRect();if(M.width||M.height)return[b.default(e)[o]().top+p,n]}return null})).filter(Boolean).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){b.default.removeData(this._element,_p),b.default(this._scrollElement).off(Np),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=c({},Gp,"object"==typeof t&&t?t:{})).target&&f.isElement(t.target)){var e=b.default(t.target).attr("id");e||(e=f.getUID(Lp),b.default(t.target).attr("id",e)),t.target="#"+e}return f.typeCheckConfig(Lp,t,Jp),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),o=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=o){var p=this._targets[this._targets.length-1];this._activeTarget!==p&&this._activate(p)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var b=this._offsets.length;b--;)this._activeTarget!==this._targets[b]&&t>=this._offsets[b]&&(void 0===this._offsets[b+1]||t{"use strict";var p=o(742),b=o(645),n=o(826);function M(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function z(t,e){if(M()=M())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+M().toString(16)+" bytes");return 0|t}function l(t,e){if(c.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var o=t.length;if(0===o)return 0;for(var p=!1;;)switch(e){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":case void 0:return j(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*o;case"hex":return o>>>1;case"base64":return I(t).length;default:if(p)return j(t).length;e=(""+e).toLowerCase(),p=!0}}function d(t,e,o){var p=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===o||o>this.length)&&(o=this.length),o<=0)return"";if((o>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return _(this,e,o);case"utf8":case"utf-8":return y(this,e,o);case"ascii":return L(this,e,o);case"latin1":case"binary":return X(this,e,o);case"base64":return R(this,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,e,o);default:if(p)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),p=!0}}function A(t,e,o){var p=t[e];t[e]=t[o],t[o]=p}function u(t,e,o,p,b){if(0===t.length)return-1;if("string"==typeof o?(p=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,isNaN(o)&&(o=b?0:t.length-1),o<0&&(o=t.length+o),o>=t.length){if(b)return-1;o=t.length-1}else if(o<0){if(!b)return-1;o=0}if("string"==typeof e&&(e=c.from(e,p)),c.isBuffer(e))return 0===e.length?-1:f(t,e,o,p,b);if("number"==typeof e)return e&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?b?Uint8Array.prototype.indexOf.call(t,e,o):Uint8Array.prototype.lastIndexOf.call(t,e,o):f(t,[e],o,p,b);throw new TypeError("val must be string, number or Buffer")}function f(t,e,o,p,b){var n,M=1,z=t.length,c=e.length;if(void 0!==p&&("ucs2"===(p=String(p).toLowerCase())||"ucs-2"===p||"utf16le"===p||"utf-16le"===p)){if(t.length<2||e.length<2)return-1;M=2,z/=2,c/=2,o/=2}function r(t,e){return 1===M?t[e]:t.readUInt16BE(e*M)}if(b){var i=-1;for(n=o;nz&&(o=z-c),n=o;n>=0;n--){for(var a=!0,O=0;Ob&&(p=b):p=b;var n=e.length;if(n%2!=0)throw new TypeError("Invalid hex string");p>n/2&&(p=n/2);for(var M=0;M>8,b=o%256,n.push(b),n.push(p);return n}(e,t.length-o),t,o,p)}function R(t,e,o){return 0===e&&o===t.length?p.fromByteArray(t):p.fromByteArray(t.slice(e,o))}function y(t,e,o){o=Math.min(t.length,o);for(var p=[],b=e;b239?4:r>223?3:r>191?2:1;if(b+a<=o)switch(a){case 1:r<128&&(i=r);break;case 2:128==(192&(n=t[b+1]))&&(c=(31&r)<<6|63&n)>127&&(i=c);break;case 3:n=t[b+1],M=t[b+2],128==(192&n)&&128==(192&M)&&(c=(15&r)<<12|(63&n)<<6|63&M)>2047&&(c<55296||c>57343)&&(i=c);break;case 4:n=t[b+1],M=t[b+2],z=t[b+3],128==(192&n)&&128==(192&M)&&128==(192&z)&&(c=(15&r)<<18|(63&n)<<12|(63&M)<<6|63&z)>65535&&c<1114112&&(i=c)}null===i?(i=65533,a=1):i>65535&&(i-=65536,p.push(i>>>10&1023|55296),i=56320|1023&i),p.push(i),b+=a}return function(t){var e=t.length;if(e<=B)return String.fromCharCode.apply(String,t);var o="",p=0;for(;p0&&(t=this.toString("hex",0,o).match(/.{2}/g).join(" "),this.length>o&&(t+=" ... ")),""},c.prototype.compare=function(t,e,o,p,b){if(!c.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===o&&(o=t?t.length:0),void 0===p&&(p=0),void 0===b&&(b=this.length),e<0||o>t.length||p<0||b>this.length)throw new RangeError("out of range index");if(p>=b&&e>=o)return 0;if(p>=b)return-1;if(e>=o)return 1;if(this===t)return 0;for(var n=(b>>>=0)-(p>>>=0),M=(o>>>=0)-(e>>>=0),z=Math.min(n,M),r=this.slice(p,b),i=t.slice(e,o),a=0;ab)&&(o=b),t.length>0&&(o<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");p||(p="utf8");for(var n=!1;;)switch(p){case"hex":return q(this,t,e,o);case"utf8":case"utf-8":return h(this,t,e,o);case"ascii":return W(this,t,e,o);case"latin1":case"binary":return m(this,t,e,o);case"base64":return g(this,t,e,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,t,e,o);default:if(n)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),n=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var B=4096;function L(t,e,o){var p="";o=Math.min(t.length,o);for(var b=e;bp)&&(o=p);for(var b="",n=e;no)throw new RangeError("Trying to access beyond buffer length")}function x(t,e,o,p,b,n){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>b||et.length)throw new RangeError("Index out of range")}function T(t,e,o,p){e<0&&(e=65535+e+1);for(var b=0,n=Math.min(t.length-o,2);b>>8*(p?b:1-b)}function C(t,e,o,p){e<0&&(e=4294967295+e+1);for(var b=0,n=Math.min(t.length-o,4);b>>8*(p?b:3-b)&255}function S(t,e,o,p,b,n){if(o+p>t.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function k(t,e,o,p,n){return n||S(t,0,o,4),b.write(t,e,o,p,23,4),o+4}function E(t,e,o,p,n){return n||S(t,0,o,8),b.write(t,e,o,p,52,8),o+8}c.prototype.slice=function(t,e){var o,p=this.length;if((t=~~t)<0?(t+=p)<0&&(t=0):t>p&&(t=p),(e=void 0===e?p:~~e)<0?(e+=p)<0&&(e=0):e>p&&(e=p),e0&&(b*=256);)p+=this[t+--e]*b;return p},c.prototype.readUInt8=function(t,e){return e||w(t,1,this.length),this[t]},c.prototype.readUInt16LE=function(t,e){return e||w(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUInt16BE=function(t,e){return e||w(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUInt32LE=function(t,e){return e||w(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUInt32BE=function(t,e){return e||w(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readIntLE=function(t,e,o){t|=0,e|=0,o||w(t,e,this.length);for(var p=this[t],b=1,n=0;++n=(b*=128)&&(p-=Math.pow(2,8*e)),p},c.prototype.readIntBE=function(t,e,o){t|=0,e|=0,o||w(t,e,this.length);for(var p=e,b=1,n=this[t+--p];p>0&&(b*=256);)n+=this[t+--p]*b;return n>=(b*=128)&&(n-=Math.pow(2,8*e)),n},c.prototype.readInt8=function(t,e){return e||w(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){e||w(t,2,this.length);var o=this[t]|this[t+1]<<8;return 32768&o?4294901760|o:o},c.prototype.readInt16BE=function(t,e){e||w(t,2,this.length);var o=this[t+1]|this[t]<<8;return 32768&o?4294901760|o:o},c.prototype.readInt32LE=function(t,e){return e||w(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return e||w(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readFloatLE=function(t,e){return e||w(t,4,this.length),b.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return e||w(t,4,this.length),b.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return e||w(t,8,this.length),b.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return e||w(t,8,this.length),b.read(this,t,!1,52,8)},c.prototype.writeUIntLE=function(t,e,o,p){(t=+t,e|=0,o|=0,p)||x(this,t,e,o,Math.pow(2,8*o)-1,0);var b=1,n=0;for(this[e]=255&t;++n=0&&(n*=256);)this[e+b]=t/n&255;return e+o},c.prototype.writeUInt8=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,1,255,0),c.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},c.prototype.writeUInt16LE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},c.prototype.writeUInt16BE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},c.prototype.writeUInt32LE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):C(this,t,e,!0),e+4},c.prototype.writeUInt32BE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):C(this,t,e,!1),e+4},c.prototype.writeIntLE=function(t,e,o,p){if(t=+t,e|=0,!p){var b=Math.pow(2,8*o-1);x(this,t,e,o,b-1,-b)}var n=0,M=1,z=0;for(this[e]=255&t;++n>0)-z&255;return e+o},c.prototype.writeIntBE=function(t,e,o,p){if(t=+t,e|=0,!p){var b=Math.pow(2,8*o-1);x(this,t,e,o,b-1,-b)}var n=o-1,M=1,z=0;for(this[e+n]=255&t;--n>=0&&(M*=256);)t<0&&0===z&&0!==this[e+n+1]&&(z=1),this[e+n]=(t/M>>0)-z&255;return e+o},c.prototype.writeInt8=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,1,127,-128),c.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},c.prototype.writeInt16BE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},c.prototype.writeInt32LE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):C(this,t,e,!0),e+4},c.prototype.writeInt32BE=function(t,e,o){return t=+t,e|=0,o||x(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):C(this,t,e,!1),e+4},c.prototype.writeFloatLE=function(t,e,o){return k(this,t,e,!0,o)},c.prototype.writeFloatBE=function(t,e,o){return k(this,t,e,!1,o)},c.prototype.writeDoubleLE=function(t,e,o){return E(this,t,e,!0,o)},c.prototype.writeDoubleBE=function(t,e,o){return E(this,t,e,!1,o)},c.prototype.copy=function(t,e,o,p){if(o||(o=0),p||0===p||(p=this.length),e>=t.length&&(e=t.length),e||(e=0),p>0&&p=this.length)throw new RangeError("sourceStart out of bounds");if(p<0)throw new RangeError("sourceEnd out of bounds");p>this.length&&(p=this.length),t.length-e=0;--b)t[b+e]=this[b+o];else if(n<1e3||!c.TYPED_ARRAY_SUPPORT)for(b=0;b>>=0,o=void 0===o?this.length:o>>>0,t||(t=0),"number"==typeof t)for(n=e;n55295&&o<57344){if(!b){if(o>56319){(e-=3)>-1&&n.push(239,191,189);continue}if(M+1===p){(e-=3)>-1&&n.push(239,191,189);continue}b=o;continue}if(o<56320){(e-=3)>-1&&n.push(239,191,189),b=o;continue}o=65536+(b-55296<<10|o-56320)}else b&&(e-=3)>-1&&n.push(239,191,189);if(b=null,o<128){if((e-=1)<0)break;n.push(o)}else if(o<2048){if((e-=2)<0)break;n.push(o>>6|192,63&o|128)}else if(o<65536){if((e-=3)<0)break;n.push(o>>12|224,o>>6&63|128,63&o|128)}else{if(!(o<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;n.push(o>>18|240,o>>12&63|128,o>>6&63|128,63&o|128)}}return n}function I(t){return p.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(D,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,o,p){for(var b=0;b=e.length||b>=t.length);++b)e[b+o]=t[b];return b}},757:function(t,e,o){t.exports=function(t){"use strict";function e(t,e){return t(e={exports:{}},e.exports),e.exports}function o(t){return t&&t.default||t}t=t&&t.hasOwnProperty("default")?t.default:t;var p={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},b=e((function(t){var e={};for(var o in p)p.hasOwnProperty(o)&&(e[p[o]]=o);var b=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var n in b)if(b.hasOwnProperty(n)){if(!("channels"in b[n]))throw new Error("missing channels property: "+n);if(!("labels"in b[n]))throw new Error("missing channel labels property: "+n);if(b[n].labels.length!==b[n].channels)throw new Error("channel and label counts mismatch: "+n);var M=b[n].channels,z=b[n].labels;delete b[n].channels,delete b[n].labels,Object.defineProperty(b[n],"channels",{value:M}),Object.defineProperty(b[n],"labels",{value:z})}function c(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2)}b.rgb.hsl=function(t){var e,o,p=t[0]/255,b=t[1]/255,n=t[2]/255,M=Math.min(p,b,n),z=Math.max(p,b,n),c=z-M;return z===M?e=0:p===z?e=(b-n)/c:b===z?e=2+(n-p)/c:n===z&&(e=4+(p-b)/c),(e=Math.min(60*e,360))<0&&(e+=360),o=(M+z)/2,[e,100*(z===M?0:o<=.5?c/(z+M):c/(2-z-M)),100*o]},b.rgb.hsv=function(t){var e,o,p,b,n,M=t[0]/255,z=t[1]/255,c=t[2]/255,r=Math.max(M,z,c),i=r-Math.min(M,z,c),a=function(t){return(r-t)/6/i+.5};return 0===i?b=n=0:(n=i/r,e=a(M),o=a(z),p=a(c),M===r?b=p-o:z===r?b=1/3+e-p:c===r&&(b=2/3+o-e),b<0?b+=1:b>1&&(b-=1)),[360*b,100*n,100*r]},b.rgb.hwb=function(t){var e=t[0],o=t[1],p=t[2];return[b.rgb.hsl(t)[0],1/255*Math.min(e,Math.min(o,p))*100,100*(p=1-1/255*Math.max(e,Math.max(o,p)))]},b.rgb.cmyk=function(t){var e,o=t[0]/255,p=t[1]/255,b=t[2]/255;return[100*((1-o-(e=Math.min(1-o,1-p,1-b)))/(1-e)||0),100*((1-p-e)/(1-e)||0),100*((1-b-e)/(1-e)||0),100*e]},b.rgb.keyword=function(t){var o=e[t];if(o)return o;var b,n=1/0;for(var M in p)if(p.hasOwnProperty(M)){var z=c(t,p[M]);z.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(o=o>.04045?Math.pow((o+.055)/1.055,2.4):o/12.92)+.1805*(p=p>.04045?Math.pow((p+.055)/1.055,2.4):p/12.92)),100*(.2126*e+.7152*o+.0722*p),100*(.0193*e+.1192*o+.9505*p)]},b.rgb.lab=function(t){var e=b.rgb.xyz(t),o=e[0],p=e[1],n=e[2];return p/=100,n/=108.883,o=(o/=95.047)>.008856?Math.pow(o,1/3):7.787*o+16/116,[116*(p=p>.008856?Math.pow(p,1/3):7.787*p+16/116)-16,500*(o-p),200*(p-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]},b.hsl.rgb=function(t){var e,o,p,b,n,M=t[0]/360,z=t[1]/100,c=t[2]/100;if(0===z)return[n=255*c,n,n];e=2*c-(o=c<.5?c*(1+z):c+z-c*z),b=[0,0,0];for(var r=0;r<3;r++)(p=M+1/3*-(r-1))<0&&p++,p>1&&p--,n=6*p<1?e+6*(o-e)*p:2*p<1?o:3*p<2?e+(o-e)*(2/3-p)*6:e,b[r]=255*n;return b},b.hsl.hsv=function(t){var e=t[0],o=t[1]/100,p=t[2]/100,b=o,n=Math.max(p,.01);return o*=(p*=2)<=1?p:2-p,b*=n<=1?n:2-n,[e,100*(0===p?2*b/(n+b):2*o/(p+o)),(p+o)/2*100]},b.hsv.rgb=function(t){var e=t[0]/60,o=t[1]/100,p=t[2]/100,b=Math.floor(e)%6,n=e-Math.floor(e),M=255*p*(1-o),z=255*p*(1-o*n),c=255*p*(1-o*(1-n));switch(p*=255,b){case 0:return[p,c,M];case 1:return[z,p,M];case 2:return[M,p,c];case 3:return[M,z,p];case 4:return[c,M,p];case 5:return[p,M,z]}},b.hsv.hsl=function(t){var e,o,p,b=t[0],n=t[1]/100,M=t[2]/100,z=Math.max(M,.01);return p=(2-n)*M,o=n*z,[b,100*(o=(o/=(e=(2-n)*z)<=1?e:2-e)||0),100*(p/=2)]},b.hwb.rgb=function(t){var e,o,p,b,n,M,z,c=t[0]/360,r=t[1]/100,i=t[2]/100,a=r+i;switch(a>1&&(r/=a,i/=a),p=6*c-(e=Math.floor(6*c)),0!=(1&e)&&(p=1-p),b=r+p*((o=1-i)-r),e){default:case 6:case 0:n=o,M=b,z=r;break;case 1:n=b,M=o,z=r;break;case 2:n=r,M=o,z=b;break;case 3:n=r,M=b,z=o;break;case 4:n=b,M=r,z=o;break;case 5:n=o,M=r,z=b}return[255*n,255*M,255*z]},b.cmyk.rgb=function(t){var e=t[0]/100,o=t[1]/100,p=t[2]/100,b=t[3]/100;return[255*(1-Math.min(1,e*(1-b)+b)),255*(1-Math.min(1,o*(1-b)+b)),255*(1-Math.min(1,p*(1-b)+b))]},b.xyz.rgb=function(t){var e,o,p,b=t[0]/100,n=t[1]/100,M=t[2]/100;return o=-.9689*b+1.8758*n+.0415*M,p=.0557*b+-.204*n+1.057*M,e=(e=3.2406*b+-1.5372*n+-.4986*M)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:12.92*o,p=p>.0031308?1.055*Math.pow(p,1/2.4)-.055:12.92*p,[255*(e=Math.min(Math.max(0,e),1)),255*(o=Math.min(Math.max(0,o),1)),255*(p=Math.min(Math.max(0,p),1))]},b.xyz.lab=function(t){var e=t[0],o=t[1],p=t[2];return o/=100,p/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(o=o>.008856?Math.pow(o,1/3):7.787*o+16/116)-16,500*(e-o),200*(o-(p=p>.008856?Math.pow(p,1/3):7.787*p+16/116))]},b.lab.xyz=function(t){var e,o,p,b=t[0];e=t[1]/500+(o=(b+16)/116),p=o-t[2]/200;var n=Math.pow(o,3),M=Math.pow(e,3),z=Math.pow(p,3);return o=n>.008856?n:(o-16/116)/7.787,e=M>.008856?M:(e-16/116)/7.787,p=z>.008856?z:(p-16/116)/7.787,[e*=95.047,o*=100,p*=108.883]},b.lab.lch=function(t){var e,o=t[0],p=t[1],b=t[2];return(e=360*Math.atan2(b,p)/2/Math.PI)<0&&(e+=360),[o,Math.sqrt(p*p+b*b),e]},b.lch.lab=function(t){var e,o=t[0],p=t[1];return e=t[2]/360*2*Math.PI,[o,p*Math.cos(e),p*Math.sin(e)]},b.rgb.ansi16=function(t){var e=t[0],o=t[1],p=t[2],n=1 in arguments?arguments[1]:b.rgb.hsv(t)[2];if(0===(n=Math.round(n/50)))return 30;var M=30+(Math.round(p/255)<<2|Math.round(o/255)<<1|Math.round(e/255));return 2===n&&(M+=60),M},b.hsv.ansi16=function(t){return b.rgb.ansi16(b.hsv.rgb(t),t[2])},b.rgb.ansi256=function(t){var e=t[0],o=t[1],p=t[2];return e===o&&o===p?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(o/255*5)+Math.round(p/255*5)},b.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var o=.5*(1+~~(t>50));return[(1&e)*o*255,(e>>1&1)*o*255,(e>>2&1)*o*255]},b.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var o;return t-=16,[Math.floor(t/36)/5*255,Math.floor((o=t%36)/6)/5*255,o%6/5*255]},b.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},b.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var o=e[0];3===e[0].length&&(o=o.split("").map((function(t){return t+t})).join(""));var p=parseInt(o,16);return[p>>16&255,p>>8&255,255&p]},b.rgb.hcg=function(t){var e,o=t[0]/255,p=t[1]/255,b=t[2]/255,n=Math.max(Math.max(o,p),b),M=Math.min(Math.min(o,p),b),z=n-M;return e=z<=0?0:n===o?(p-b)/z%6:n===p?2+(b-o)/z:4+(o-p)/z+4,e/=6,[360*(e%=1),100*z,100*(z<1?M/(1-z):0)]},b.hsl.hcg=function(t){var e=t[1]/100,o=t[2]/100,p=1,b=0;return(p=o<.5?2*e*o:2*e*(1-o))<1&&(b=(o-.5*p)/(1-p)),[t[0],100*p,100*b]},b.hsv.hcg=function(t){var e=t[1]/100,o=t[2]/100,p=e*o,b=0;return p<1&&(b=(o-p)/(1-p)),[t[0],100*p,100*b]},b.hcg.rgb=function(t){var e=t[0]/360,o=t[1]/100,p=t[2]/100;if(0===o)return[255*p,255*p,255*p];var b=[0,0,0],n=e%1*6,M=n%1,z=1-M,c=0;switch(Math.floor(n)){case 0:b[0]=1,b[1]=M,b[2]=0;break;case 1:b[0]=z,b[1]=1,b[2]=0;break;case 2:b[0]=0,b[1]=1,b[2]=M;break;case 3:b[0]=0,b[1]=z,b[2]=1;break;case 4:b[0]=M,b[1]=0,b[2]=1;break;default:b[0]=1,b[1]=0,b[2]=z}return c=(1-o)*p,[255*(o*b[0]+c),255*(o*b[1]+c),255*(o*b[2]+c)]},b.hcg.hsv=function(t){var e=t[1]/100,o=e+t[2]/100*(1-e),p=0;return o>0&&(p=e/o),[t[0],100*p,100*o]},b.hcg.hsl=function(t){var e=t[1]/100,o=t[2]/100*(1-e)+.5*e,p=0;return o>0&&o<.5?p=e/(2*o):o>=.5&&o<1&&(p=e/(2*(1-o))),[t[0],100*p,100*o]},b.hcg.hwb=function(t){var e=t[1]/100,o=e+t[2]/100*(1-e);return[t[0],100*(o-e),100*(1-o)]},b.hwb.hcg=function(t){var e=t[1]/100,o=1-t[2]/100,p=o-e,b=0;return p<1&&(b=(o-p)/(1-p)),[t[0],100*p,100*b]},b.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},b.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},b.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},b.gray.hsl=b.gray.hsv=function(t){return[0,0,t[0]]},b.gray.hwb=function(t){return[0,100,t[0]]},b.gray.cmyk=function(t){return[0,0,0,t[0]]},b.gray.lab=function(t){return[t[0],0,0]},b.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o},b.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}}));function n(){for(var t={},e=Object.keys(b),o=e.length,p=0;p1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}function O(t){var e=function(e){if(null==e)return e;arguments.length>1&&(e=Array.prototype.slice.call(arguments));var o=t(e);if("object"==typeof o)for(var p=o.length,b=0;b=0&&e<1?w(Math.round(255*e)):"")}function g(t,e){return e<1||t[3]&&t[3]<1?v(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function v(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function R(t,e){return e<1||t[3]&&t[3]<1?y(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"}function y(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function B(t,e){return e<1||t[3]&&t[3]<1?L(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function L(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function X(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function _(t){return x[t.slice(0,3)]}function N(t,e,o){return Math.min(Math.max(e,t),o)}function w(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var x={};for(var T in l)x[l[T]]=T;var C=function(t){return t instanceof C?t:this instanceof C?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=d.getRgba(t))?this.setValues("rgb",e):(e=d.getHsla(t))?this.setValues("hsl",e):(e=d.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new C(t);var e};C.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return d.hexString(this.values.rgb)},rgbString:function(){return d.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return d.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return d.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return d.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return d.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return d.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return d.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],o=0;oo?(e+.05)/(o+.05):(o+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,o=(e[0]+t)%360;return e[0]=o<0?360+o:o,this.setValues("hsl",e),this},mix:function(t,e){var o=this,p=t,b=void 0===e?.5:e,n=2*b-1,M=o.alpha()-p.alpha(),z=((n*M==-1?n:(n+M)/(1+n*M))+1)/2,c=1-z;return this.rgb(z*o.red()+c*p.red(),z*o.green()+c*p.green(),z*o.blue()+c*p.blue()).alpha(o.alpha()*b+p.alpha()*(1-b))},toJSON:function(){return this.rgb()},clone:function(){var t,e,o=new C,p=this.values,b=o.values;for(var n in p)p.hasOwnProperty(n)&&(t=p[n],"[object Array]"===(e={}.toString.call(t))?b[n]=t.slice(0):"[object Number]"===e&&(b[n]=t));return o}},C.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},C.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},C.prototype.getValues=function(t){for(var e=this.values,o={},p=0;p=0;b--)e.call(o,t[b],b);else for(b=0;b=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,o=0,p=1;return 0===t?0:1===t?1:(o||(o=.3),p<1?(p=1,e=o/4):e=o/(2*Math.PI)*Math.asin(1/p),-p*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/o))},easeOutElastic:function(t){var e=1.70158,o=0,p=1;return 0===t?0:1===t?1:(o||(o=.3),p<1?(p=1,e=o/4):e=o/(2*Math.PI)*Math.asin(1/p),p*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/o)+1)},easeInOutElastic:function(t){var e=1.70158,o=0,p=1;return 0===t?0:2==(t/=.5)?1:(o||(o=.45),p<1?(p=1,e=o/4):e=o/(2*Math.PI)*Math.asin(1/p),t<1?p*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/o)*-.5:p*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/o)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-j.easeOutBounce(1-t)},easeOutBounce:function(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:function(t){return t<.5?.5*j.easeInBounce(2*t):.5*j.easeOutBounce(2*t-1)+.5}},I={effects:j};P.easingEffects=j;var F=Math.PI,H=F/180,U=2*F,V=F/2,$=F/4,Y=2*F/3,G={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,o,p,b,n){if(n){var M=Math.min(n,b/2,p/2),z=e+M,c=o+M,r=e+p-M,i=o+b-M;t.moveTo(e,c),ze.left-o&&t.xe.top-o&&t.y0&&t.requestAnimationFrame()},advance:function(){for(var t,e,o,p,b=this.animations,n=0;n=o?(zt.callback(t.onAnimationComplete,[t],e),e.animating=!1,b.splice(n,1)):++n}},qt=zt.options.resolve,ht=["push","pop","shift","splice","unshift"];function Wt(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ht.forEach((function(e){var o="onData"+e.charAt(0).toUpperCase()+e.slice(1),p=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),b=p.apply(this,e);return zt.each(t._chartjs.listeners,(function(t){"function"==typeof t[o]&&t[o].apply(t,e)})),b}})})))}function mt(t,e){var o=t._chartjs;if(o){var p=o.listeners,b=p.indexOf(e);-1!==b&&p.splice(b,1),p.length>0||(ht.forEach((function(e){delete t[e]})),delete t._chartjs)}}var gt=function(t,e){this.initialize(t,e)};zt.extend(gt.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(t,e){var o=this;o.chart=t,o.index=e,o.linkScales(),o.addElements(),o._type=o.getMeta().type},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),o=t.chart,p=o.scales,b=t.getDataset(),n=o.options.scales;null!==e.xAxisID&&e.xAxisID in p&&!b.xAxisID||(e.xAxisID=b.xAxisID||n.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in p&&!b.yAxisID||(e.yAxisID=b.yAxisID||n.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&mt(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,o=e.dataElementType;return o&&new o({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,o=this,p=o.getMeta(),b=o.getDataset().data||[],n=p.data;for(t=0,e=b.length;tp&&t.insertElements(p,b-p)},insertElements:function(t,e){for(var o=0;ob?(n=b/e.innerRadius,t.arc(M,z,e.innerRadius-b,p+n,o-n,!0)):t.arc(M,z,b,p+Math.PI/2,o-Math.PI/2),t.closePath(),t.clip()}function Bt(t,e,o,p){var b,n=o.endAngle;for(p&&(o.endAngle=o.startAngle+Rt,yt(t,o),o.endAngle=n,o.endAngle===o.startAngle&&o.fullCircles&&(o.endAngle+=Rt,o.fullCircles--)),t.beginPath(),t.arc(o.x,o.y,o.innerRadius,o.startAngle+Rt,o.startAngle,!0),b=0;bz;)b-=Rt;for(;b=M&&b<=z,r=n>=o.innerRadius&&n<=o.outerRadius;return c&&r}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,o=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*o,y:t.y+Math.sin(e)*o}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,o=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*o,y:t.y+Math.sin(e)*o}},draw:function(){var t,e=this._chart.ctx,o=this._view,p="inner"===o.borderAlign?.33:0,b={x:o.x,y:o.y,innerRadius:o.innerRadius,outerRadius:Math.max(o.outerRadius-p,0),pixelMargin:p,startAngle:o.startAngle,endAngle:o.endAngle,fullCircles:Math.floor(o.circumference/Rt)};if(e.save(),e.fillStyle=o.backgroundColor,e.strokeStyle=o.borderColor,b.fullCircles){for(b.endAngle=b.startAngle+Rt,e.beginPath(),e.arc(b.x,b.y,b.outerRadius,b.startAngle,b.endAngle),e.arc(b.x,b.y,b.innerRadius,b.endAngle,b.startAngle,!0),e.closePath(),t=0;tt.x&&(e=jt(e,"left","right")):t.baseo?o:p,r:c.right||b<0?0:b>e?e:b,b:c.bottom||n<0?0:n>o?o:n,l:c.left||M<0?0:M>e?e:M}}function Ht(t){var e=Pt(t),o=e.right-e.left,p=e.bottom-e.top,b=Ft(t,o/2,p/2);return{outer:{x:e.left,y:e.top,w:o,h:p},inner:{x:e.left+b.l,y:e.top+b.t,w:o-b.l-b.r,h:p-b.t-b.b}}}function Ut(t,e,o){var p=null===e,b=null===o,n=!(!t||p&&b)&&Pt(t);return n&&(p||e>=n.left&&e<=n.right)&&(b||o>=n.top&&o<=n.bottom)}Q._set("global",{elements:{rectangle:{backgroundColor:Et,borderColor:Et,borderSkipped:"bottom",borderWidth:0}}});var Vt=dt.extend({_type:"rectangle",draw:function(){var t=this._chart.ctx,e=this._view,o=Ht(e),p=o.outer,b=o.inner;t.fillStyle=e.backgroundColor,t.fillRect(p.x,p.y,p.w,p.h),p.w===b.w&&p.h===b.h||(t.save(),t.beginPath(),t.rect(p.x,p.y,p.w,p.h),t.clip(),t.fillStyle=e.borderColor,t.rect(b.x,b.y,b.w,b.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Ut(this._view,t,e)},inLabelRange:function(t,e){var o=this._view;return Dt(o)?Ut(o,t,null):Ut(o,null,e)},inXRange:function(t){return Ut(this._view,t,null)},inYRange:function(t){return Ut(this._view,null,t)},getCenterPoint:function(){var t,e,o=this._view;return Dt(o)?(t=o.x,e=(o.y+o.base)/2):(t=(o.x+o.base)/2,e=o.y),{x:t,y:e}},getArea:function(){var t=this._view;return Dt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),$t={},Yt=Xt,Gt=wt,Jt=kt,Kt=Vt;$t.Arc=Yt,$t.Line=Gt,$t.Point=Jt,$t.Rectangle=Kt;var Qt=zt._deprecated,Zt=zt.valueOrDefault;function te(t,e){var o,p,b,n,M=t._length;for(b=1,n=e.length;b0?Math.min(M,Math.abs(p-o)):M,o=p;return M}function ee(t,e,o){var p,b,n=o.barThickness,M=e.stackCount,z=e.pixels[t],c=zt.isNullOrUndef(n)?te(e.scale,e.pixels):-1;return zt.isNullOrUndef(n)?(p=c*o.categoryPercentage,b=o.barPercentage):(p=n*M,b=1),{chunk:p/M,ratio:b,start:z-p/2}}function oe(t,e,o){var p,b=e.pixels,n=b[t],M=t>0?b[t-1]:null,z=t=0&&A.min>=0?A.min:A.max,W=void 0===A.start?A.end:A.max>=0&&A.min>=0?A.max-A.min:A.min-A.max,m=d.length;if(f||void 0===f&&void 0!==q)for(p=0;p=0&&r.max>=0?r.max:r.min,(A.min<0&&n<0||A.max>=0&&n>0)&&(h+=n));return M=O.getPixelForValue(h),c=(z=O.getPixelForValue(h+W))-M,void 0!==u&&Math.abs(c)=0&&!s||W<0&&s?M-u:M+u),{size:c,base:M,head:z,center:z+c/2}},calculateBarIndexPixels:function(t,e,o,p){var b=this,n="flex"===p.barThickness?oe(e,o,p):ee(e,o,p),M=b.getStackIndex(t,b.getMeta().stack),z=n.start+n.chunk*M+n.chunk/2,c=Math.min(Zt(p.maxBarThickness,1/0),n.chunk*n.ratio);return{base:z-c/2,head:z+c/2,center:z,size:c}},draw:function(){var t=this,e=t.chart,o=t._getValueScale(),p=t.getMeta().data,b=t.getDataset(),n=p.length,M=0;for(zt.canvas.clipArea(e.ctx,e.chartArea);M=ce?-re:f<-ce?re:0)+A,h=Math.cos(f),W=Math.sin(f),m=Math.cos(q),g=Math.sin(q),v=f<=0&&q>=0||q>=re,R=f<=ie&&q>=ie||q>=re+ie,y=f<=-ie&&q>=-ie||q>=ce+ie,B=f===-ce||q>=ce?-1:Math.min(h,h*d,m,m*d),L=y?-1:Math.min(W,W*d,g,g*d),X=v?1:Math.max(h,h*d,m,m*d),_=R?1:Math.max(W,W*d,g,g*d);r=(X-B)/2,i=(_-L)/2,a=-(X+B)/2,O=-(_+L)/2}for(p=0,b=l.length;p0&&!isNaN(t)?re*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,o,p,b,n,M,z,c,r=this,i=0,a=r.chart;if(!t)for(e=0,o=a.data.datasets.length;e(i=z>i?z:i)?c:i);return i},setHoverStyle:function(t){var e=t._model,o=t._options,p=zt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=ze(o.hoverBackgroundColor,p(o.backgroundColor)),e.borderColor=ze(o.hoverBorderColor,p(o.borderColor)),e.borderWidth=ze(o.hoverBorderWidth,o.borderWidth)},_getRingWeightOffset:function(t){for(var e=0,o=0;o0&&de(r[t-1]._model,c)&&(o.controlPointPreviousX=i(o.controlPointPreviousX,c.left,c.right),o.controlPointPreviousY=i(o.controlPointPreviousY,c.top,c.bottom)),t0&&(n=t.getDatasetMeta(n[0]._datasetIndex).data),n},"x-axis":function(t,e){return Ne(t,e,{intersect:!1})},point:function(t,e){return Le(t,ye(e,t))},nearest:function(t,e,o){var p=ye(e,t);o.axis=o.axis||"xy";var b=_e(o.axis);return Xe(t,p,o.intersect,b)},x:function(t,e,o){var p=ye(e,t),b=[],n=!1;return Be(t,(function(t){t.inXRange(p.x)&&b.push(t),t.inRange(p.x,p.y)&&(n=!0)})),o.intersect&&!n&&(b=[]),b},y:function(t,e,o){var p=ye(e,t),b=[],n=!1;return Be(t,(function(t){t.inYRange(p.y)&&b.push(t),t.inRange(p.x,p.y)&&(n=!0)})),o.intersect&&!n&&(b=[]),b}}},xe=zt.extend;function Te(t,e){return zt.where(t,(function(t){return t.pos===e}))}function Ce(t,e){return t.sort((function(t,o){var p=e?o:t,b=e?t:o;return p.weight===b.weight?p.index-b.index:p.weight-b.weight}))}function Se(t){var e,o,p,b=[];for(e=0,o=(t||[]).length;e div {\r\n\tposition: absolute;\r\n\twidth: 1000000px;\r\n\theight: 1000000px;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n\r\n.chartjs-size-monitor-shrink > div {\r\n\tposition: absolute;\r\n\twidth: 200%;\r\n\theight: 200%;\r\n\tleft: 0;\r\n\ttop: 0;\r\n}\r\n",Ye=o(Object.freeze({__proto__:null,default:$e})),Ge="$chartjs",Je="chartjs-",Ke=Je+"size-monitor",Qe=Je+"render-monitor",Ze=Je+"render-animation",to=["animationstart","webkitAnimationStart"],eo={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function oo(t,e){var o=zt.getStyle(t,e),p=o&&o.match(/^(\d+)(\.\d+)?px$/);return p?Number(p[1]):void 0}function po(t,e){var o=t.style,p=t.getAttribute("height"),b=t.getAttribute("width");if(t[Ge]={initial:{height:p,width:b,style:{display:o.display,height:o.height,width:o.width}}},o.display=o.display||"block",null===b||""===b){var n=oo(t,"width");void 0!==n&&(t.width=n)}if(null===p||""===p)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var M=oo(t,"height");void 0!==n&&(t.height=M)}return t}var bo=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}(),no=!!bo&&{passive:!0};function Mo(t,e,o){t.addEventListener(e,o,no)}function zo(t,e,o){t.removeEventListener(e,o,no)}function co(t,e,o,p,b){return{type:t,chart:e,native:b||null,x:void 0!==o?o:null,y:void 0!==p?p:null}}function ro(t,e){var o=eo[t.type]||t.type,p=zt.getRelativePosition(t,e);return co(o,e,p.x,p.y,t)}function io(t,e){var o=!1,p=[];return function(){p=Array.prototype.slice.call(arguments),e=e||this,o||(o=!0,zt.requestAnimFrame.call(window,(function(){o=!1,t.apply(e,p)})))}}function ao(t){var e=document.createElement("div");return e.className=t||"",e}function Oo(t){var e=1e6,o=ao(Ke),p=ao(Ke+"-expand"),b=ao(Ke+"-shrink");p.appendChild(ao()),b.appendChild(ao()),o.appendChild(p),o.appendChild(b),o._reset=function(){p.scrollLeft=e,p.scrollTop=e,b.scrollLeft=e,b.scrollTop=e};var n=function(){o._reset(),t()};return Mo(p,"scroll",n.bind(p,"expand")),Mo(b,"scroll",n.bind(b,"shrink")),o}function so(t,e){var o=t[Ge]||(t[Ge]={}),p=o.renderProxy=function(t){t.animationName===Ze&&e()};zt.each(to,(function(e){Mo(t,e,p)})),o.reflow=!!t.offsetParent,t.classList.add(Qe)}function lo(t){var e=t[Ge]||{},o=e.renderProxy;o&&(zt.each(to,(function(e){zo(t,e,o)})),delete e.renderProxy),t.classList.remove(Qe)}function Ao(t,e,o){var p=t[Ge]||(t[Ge]={}),b=p.resizer=Oo(io((function(){if(p.resizer){var b=o.options.maintainAspectRatio&&t.parentNode,n=b?b.clientWidth:0;e(co("resize",o)),b&&b.clientWidth0){var n=t[0];n.label?o=n.label:n.xLabel?o=n.xLabel:b>0&&n.index-1?t.split("\n"):t}function Xo(t){var e=t._xScale,o=t._yScale||t._scale,p=t._index,b=t._datasetIndex,n=t._chart.getDatasetMeta(b).controller,M=n._getIndexScale(),z=n._getValueScale();return{xLabel:e?e.getLabelForIndex(p,b):"",yLabel:o?o.getLabelForIndex(p,b):"",label:M?""+M.getLabelForIndex(p,b):"",value:z?""+z.getLabelForIndex(p,b):"",index:p,datasetIndex:b,x:t._model.x,y:t._model.y}}function _o(t){var e=Q.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,rtl:t.rtl,textDirection:t.textDirection,bodyFontColor:t.bodyFontColor,_bodyFontFamily:vo(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:vo(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:vo(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:vo(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:vo(t.titleFontStyle,e.defaultFontStyle),titleFontSize:vo(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:vo(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:vo(t.footerFontStyle,e.defaultFontStyle),footerFontSize:vo(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function No(t,e){var o=t._chart.ctx,p=2*e.yPadding,b=0,n=e.body,M=n.reduce((function(t,e){return t+e.before.length+e.lines.length+e.after.length}),0);M+=e.beforeBody.length+e.afterBody.length;var z=e.title.length,c=e.footer.length,r=e.titleFontSize,i=e.bodyFontSize,a=e.footerFontSize;p+=z*r,p+=z?(z-1)*e.titleSpacing:0,p+=z?e.titleMarginBottom:0,p+=M*i,p+=M?(M-1)*e.bodySpacing:0,p+=c?e.footerMarginTop:0,p+=c*a,p+=c?(c-1)*e.footerSpacing:0;var O=0,s=function(t){b=Math.max(b,o.measureText(t).width+O)};return o.font=zt.fontString(r,e._titleFontStyle,e._titleFontFamily),zt.each(e.title,s),o.font=zt.fontString(i,e._bodyFontStyle,e._bodyFontFamily),zt.each(e.beforeBody.concat(e.afterBody),s),O=e.displayColors?i+2:0,zt.each(n,(function(t){zt.each(t.before,s),zt.each(t.lines,s),zt.each(t.after,s)})),O=0,o.font=zt.fontString(a,e._footerFontStyle,e._footerFontFamily),zt.each(e.footer,s),{width:b+=2*e.xPadding,height:p}}function wo(t,e){var o,p,b,n,M,z=t._model,c=t._chart,r=t._chart.chartArea,i="center",a="center";z.yc.height-e.height&&(a="bottom");var O=(r.left+r.right)/2,s=(r.top+r.bottom)/2;"center"===a?(o=function(t){return t<=O},p=function(t){return t>O}):(o=function(t){return t<=e.width/2},p=function(t){return t>=c.width-e.width/2}),b=function(t){return t+e.width+z.caretSize+z.caretPadding>c.width},n=function(t){return t-e.width-z.caretSize-z.caretPadding<0},M=function(t){return t<=s?"top":"bottom"},o(z.x)?(i="left",b(z.x)&&(i="center",a=M(z.y))):p(z.x)&&(i="right",n(z.x)&&(i="center",a=M(z.y)));var l=t._options;return{xAlign:l.xAlign?l.xAlign:i,yAlign:l.yAlign?l.yAlign:a}}function xo(t,e,o,p){var b=t.x,n=t.y,M=t.caretSize,z=t.caretPadding,c=t.cornerRadius,r=o.xAlign,i=o.yAlign,a=M+z,O=c+z;return"right"===r?b-=e.width:"center"===r&&((b-=e.width/2)+e.width>p.width&&(b=p.width-e.width),b<0&&(b=0)),"top"===i?n+=a:n-="bottom"===i?e.height+a:e.height/2,"center"===i?"left"===r?b+=a:"right"===r&&(b-=a):"left"===r?b-=O:"right"===r&&(b+=O),{x:b,y:n}}function To(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Co(t){return Bo([],Lo(t))}var So=dt.extend({initialize:function(){this._model=_o(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options.callbacks,o=e.beforeTitle.apply(t,arguments),p=e.title.apply(t,arguments),b=e.afterTitle.apply(t,arguments),n=[];return n=Bo(n,Lo(o)),n=Bo(n,Lo(p)),n=Bo(n,Lo(b))},getBeforeBody:function(){return Co(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var o=this,p=o._options.callbacks,b=[];return zt.each(t,(function(t){var n={before:[],lines:[],after:[]};Bo(n.before,Lo(p.beforeLabel.call(o,t,e))),Bo(n.lines,p.label.call(o,t,e)),Bo(n.after,Lo(p.afterLabel.call(o,t,e))),b.push(n)})),b},getAfterBody:function(){return Co(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,o=e.beforeFooter.apply(t,arguments),p=e.footer.apply(t,arguments),b=e.afterFooter.apply(t,arguments),n=[];return n=Bo(n,Lo(o)),n=Bo(n,Lo(p)),n=Bo(n,Lo(b))},update:function(t){var e,o,p=this,b=p._options,n=p._model,M=p._model=_o(b),z=p._active,c=p._data,r={xAlign:n.xAlign,yAlign:n.yAlign},i={x:n.x,y:n.y},a={width:n.width,height:n.height},O={x:n.caretX,y:n.caretY};if(z.length){M.opacity=1;var s=[],l=[];O=yo[b.position].call(p,z,p._eventPosition);var d=[];for(e=0,o=z.length;e0&&o.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var o={width:e.width,height:e.height},p={x:e.x,y:e.y},b=Math.abs(e.opacity<.001)?0:e.opacity,n=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&n&&(t.save(),t.globalAlpha=b,this.drawBackground(p,e,t,o),p.y+=e.yPadding,zt.rtl.overrideTextDirection(t,e.textDirection),this.drawTitle(p,e,t),this.drawBody(p,e,t),this.drawFooter(p,e,t),zt.rtl.restoreTextDirection(t,e.textDirection),t.restore())}},handleEvent:function(t){var e=this,o=e._options,p=!1;return e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:(e._active=e._chart.getElementsAtEventForMode(t,o.mode,o),o.reverse&&e._active.reverse()),(p=!zt.arrayEquals(e._active,e._lastActive))&&(e._lastActive=e._active,(o.enabled||o.custom)&&(e._eventPosition={x:t.x,y:t.y},e.update(!0),e.pivot())),p}}),ko=yo,Eo=So;Eo.positioners=ko;var Do=zt.valueOrDefault;function Po(){return zt.merge(Object.create(null),[].slice.call(arguments),{merger:function(t,e,o,p){if("xAxes"===t||"yAxes"===t){var b,n,M,z=o[t].length;for(e[t]||(e[t]=[]),b=0;b=e[t].length&&e[t].push({}),!e[t][b].type||M.type&&M.type!==e[t][b].type?zt.merge(e[t][b],[go.getScaleDefaults(n),M]):zt.merge(e[t][b],M)}else zt._merger(t,e,o,p)}})}function jo(){return zt.merge(Object.create(null),[].slice.call(arguments),{merger:function(t,e,o,p){var b=e[t]||Object.create(null),n=o[t];"scales"===t?e[t]=Po(b,n):"scale"===t?e[t]=zt.merge(b,[go.getScaleDefaults(n.type),n]):zt._merger(t,e,o,p)}})}function Io(t){var e=(t=t||Object.create(null)).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=jo(Q.global,Q[t.type],t.options||{}),t}function Fo(t){var e=t.options;zt.each(t.scales,(function(e){Ue.removeBox(t,e)})),e=jo(Q.global,Q[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function Ho(t,e,o){var p,b=function(t){return t.id===p};do{p=e+o++}while(zt.findIndex(t,b)>=0);return p}function Uo(t){return"top"===t||"bottom"===t}function Vo(t,e){return function(o,p){return o[t]===p[t]?o[e]-p[e]:o[t]-p[t]}}Q._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var $o=function(t,e){return this.construct(t,e),this};zt.extend($o.prototype,{construct:function(t,e){var o=this;e=Io(e);var p=Wo.acquireContext(t,e),b=p&&p.canvas,n=b&&b.height,M=b&&b.width;o.id=zt.uid(),o.ctx=p,o.canvas=b,o.config=e,o.width=M,o.height=n,o.aspectRatio=n?M/n:null,o.options=e.options,o._bufferedRender=!1,o._layers=[],o.chart=o,o.controller=o,$o.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),p&&b&&(o.initialize(),o.update())},initialize:function(){var t=this;return mo.notify(t,"beforeInit"),zt.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.initToolTip(),mo.notify(t,"afterInit"),t},clear:function(){return zt.canvas.clear(this),this},stop:function(){return ft.cancelAnimation(this),this},resize:function(t){var e=this,o=e.options,p=e.canvas,b=o.maintainAspectRatio&&e.aspectRatio||null,n=Math.max(0,Math.floor(zt.getMaximumWidth(p))),M=Math.max(0,Math.floor(b?n/b:zt.getMaximumHeight(p)));if((e.width!==n||e.height!==M)&&(p.width=e.width=n,p.height=e.height=M,p.style.width=n+"px",p.style.height=M+"px",zt.retinaScale(e,o.devicePixelRatio),!t)){var z={width:n,height:M};mo.notify(e,"resize",[z]),o.onResize&&o.onResize(e,z),e.stop(),e.update({duration:o.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},o=t.scale;zt.each(e.xAxes,(function(t,o){t.id||(t.id=Ho(e.xAxes,"x-axis-",o))})),zt.each(e.yAxes,(function(t,o){t.id||(t.id=Ho(e.yAxes,"y-axis-",o))})),o&&(o.id=o.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,o=t.scales||{},p=[],b=Object.keys(o).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(p=p.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&p.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),zt.each(p,(function(e){var p=e.options,n=p.id,M=Do(p.type,e.dtype);Uo(p.position)!==Uo(e.dposition)&&(p.position=e.dposition),b[n]=!0;var z=null;if(n in o&&o[n].type===M)(z=o[n]).options=p,z.ctx=t.ctx,z.chart=t;else{var c=go.getScaleConstructor(M);if(!c)return;z=new c({id:n,type:M,options:p,ctx:t.ctx,chart:t}),o[z.id]=z}z.mergeTicksOptions(),e.isDefault&&(t.scale=z)})),zt.each(b,(function(t,e){t||delete o[e]})),t.scales=o,go.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t,e,o=this,p=[],b=o.data.datasets;for(t=0,e=b.length;t=0;--o)p.drawDataset(e[o],t);mo.notify(p,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var o=this,p={meta:t,index:t.index,easingValue:e};!1!==mo.notify(o,"beforeDatasetDraw",[p])&&(t.controller.draw(e),mo.notify(o,"afterDatasetDraw",[p]))},_drawTooltip:function(t){var e=this,o=e.tooltip,p={tooltip:o,easingValue:t};!1!==mo.notify(e,"beforeTooltipDraw",[p])&&(o.draw(),mo.notify(e,"afterTooltipDraw",[p]))},getElementAtEvent:function(t){return we.modes.single(this,t)},getElementsAtEvent:function(t){return we.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return we.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,o){var p=we.modes[e];return"function"==typeof p?p(this,t,o):[]},getDatasetAtEvent:function(t){return we.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,o=e.data.datasets[t];o._meta||(o._meta={});var p=o._meta[e.id];return p||(p=o._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:o.order||0,index:t}),p},getVisibleDatasetCount:function(){for(var t=0,e=0,o=this.data.datasets.length;e=0;p--){var b=t[p];if(e(b))return b}},zt.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},zt.almostEquals=function(t,e,o){return Math.abs(t-e)=t},zt.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},zt.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},zt.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},zt.toRadians=function(t){return t*(Math.PI/180)},zt.toDegrees=function(t){return t*(180/Math.PI)},zt._decimalPlaces=function(t){if(zt.isFinite(t)){for(var e=1,o=0;Math.round(t*e)/e!==t;)e*=10,o++;return o}},zt.getAngleFromPoint=function(t,e){var o=e.x-t.x,p=e.y-t.y,b=Math.sqrt(o*o+p*p),n=Math.atan2(p,o);return n<-.5*Math.PI&&(n+=2*Math.PI),{angle:n,distance:b}},zt.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},zt.aliasPixel=function(t){return t%2==0?0:.5},zt._alignPixel=function(t,e,o){var p=t.currentDevicePixelRatio,b=o/2;return Math.round((e-b)*p)/p+b},zt.splineCurve=function(t,e,o,p){var b=t.skip?e:t,n=e,M=o.skip?e:o,z=Math.sqrt(Math.pow(n.x-b.x,2)+Math.pow(n.y-b.y,2)),c=Math.sqrt(Math.pow(M.x-n.x,2)+Math.pow(M.y-n.y,2)),r=z/(z+c),i=c/(z+c),a=p*(r=isNaN(r)?0:r),O=p*(i=isNaN(i)?0:i);return{previous:{x:n.x-a*(M.x-b.x),y:n.y-a*(M.y-b.y)},next:{x:n.x+O*(M.x-b.x),y:n.y+O*(M.y-b.y)}}},zt.EPSILON=Number.EPSILON||1e-14,zt.splineCurveMonotone=function(t){var e,o,p,b,n,M,z,c,r,i=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),a=i.length;for(e=0;e0?i[e-1]:null,(b=e0?i[e-1]:null,b=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},zt.previousItem=function(t,e,o){return o?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},zt.niceNum=function(t,e){var o=Math.floor(zt.log10(t)),p=t/Math.pow(10,o);return(e?p<1.5?1:p<3?2:p<7?5:10:p<=1?1:p<=2?2:p<=5?5:10)*Math.pow(10,o)},zt.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},zt.getRelativePosition=function(t,e){var o,p,b=t.originalEvent||t,n=t.target||t.srcElement,M=n.getBoundingClientRect(),z=b.touches;z&&z.length>0?(o=z[0].clientX,p=z[0].clientY):(o=b.clientX,p=b.clientY);var c=parseFloat(zt.getStyle(n,"padding-left")),r=parseFloat(zt.getStyle(n,"padding-top")),i=parseFloat(zt.getStyle(n,"padding-right")),a=parseFloat(zt.getStyle(n,"padding-bottom")),O=M.right-M.left-c-i,s=M.bottom-M.top-r-a;return{x:o=Math.round((o-M.left-c)/O*n.width/e.currentDevicePixelRatio),y:p=Math.round((p-M.top-r)/s*n.height/e.currentDevicePixelRatio)}},zt.getConstraintWidth=function(t){return o(t,"max-width","clientWidth")},zt.getConstraintHeight=function(t){return o(t,"max-height","clientHeight")},zt._calculatePadding=function(t,e,o){return(e=zt.getStyle(t,e)).indexOf("%")>-1?o*parseInt(e,10)/100:parseInt(e,10)},zt._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},zt.getMaximumWidth=function(t){var e=zt._getParentNode(t);if(!e)return t.clientWidth;var o=e.clientWidth,p=o-zt._calculatePadding(e,"padding-left",o)-zt._calculatePadding(e,"padding-right",o),b=zt.getConstraintWidth(t);return isNaN(b)?p:Math.min(p,b)},zt.getMaximumHeight=function(t){var e=zt._getParentNode(t);if(!e)return t.clientHeight;var o=e.clientHeight,p=o-zt._calculatePadding(e,"padding-top",o)-zt._calculatePadding(e,"padding-bottom",o),b=zt.getConstraintHeight(t);return isNaN(b)?p:Math.min(p,b)},zt.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},zt.retinaScale=function(t,e){var o=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==o){var p=t.canvas,b=t.height,n=t.width;p.height=b*o,p.width=n*o,t.ctx.scale(o,o),p.style.height||p.style.width||(p.style.height=b+"px",p.style.width=n+"px")}},zt.fontString=function(t,e,o){return e+" "+t+"px "+o},zt.longestText=function(t,e,o,p){var b=(p=p||{}).data=p.data||{},n=p.garbageCollect=p.garbageCollect||[];p.font!==e&&(b=p.data={},n=p.garbageCollect=[],p.font=e),t.font=e;var M,z,c,r,i,a=0,O=o.length;for(M=0;Mo.length){for(M=0;Mp&&(p=n),p},zt.numberOfLabelLines=function(t){var e=1;return zt.each(t,(function(t){zt.isArray(t)&&t.length>e&&(e=t.length)})),e},zt.color=S?function(t){return t instanceof CanvasGradient&&(t=Q.global.defaultColor),S(t)}:function(t){return t},zt.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:zt.color(t).saturate(.5).darken(.1).rgbString()}};function Jo(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Ko(t){this.options=t||{}}zt.extend(Ko.prototype,{formats:Jo,parse:Jo,format:Jo,add:Jo,diff:Jo,startOf:Jo,endOf:Jo,_create:function(t){return t}}),Ko.override=function(t){zt.extend(Ko.prototype,t)};var Qo={_date:Ko},Zo={formatters:{values:function(t){return zt.isArray(t)?t:""+t},linear:function(t,e,o){var p=o.length>3?o[2]-o[1]:o[1]-o[0];Math.abs(p)>1&&t!==Math.floor(t)&&(p=t-Math.floor(t));var b=zt.log10(Math.abs(p)),n="";if(0!==t)if(Math.max(Math.abs(o[0]),Math.abs(o[o.length-1]))<1e-4){var M=zt.log10(Math.abs(t)),z=Math.floor(M)-Math.floor(b);z=Math.max(Math.min(z,20),0),n=t.toExponential(z)}else{var c=-1*Math.floor(b);c=Math.max(Math.min(c,20),0),n=t.toFixed(c)}else n="0";return n},logarithmic:function(t,e,o){var p=t/Math.pow(10,Math.floor(zt.log10(t)));return 0===t?"0":1===p||2===p||5===p||0===e||e===o.length-1?t.toExponential():""}}},tp=zt.isArray,ep=zt.isNullOrUndef,op=zt.valueOrDefault,pp=zt.valueAtIndexOrDefault;function bp(t,e){for(var o=[],p=t.length/e,b=0,n=t.length;bc+r)))return M}function Mp(t,e){zt.each(t,(function(t){var o,p=t.gc,b=p.length/2;if(b>e){for(o=0;or)return n;return Math.max(r,1)}function dp(t){var e,o,p=[];for(e=0,o=t.length;e=O||i<=1||!z.isHorizontal()?z.labelRotation=a:(e=(t=z._getLabelSizes()).widest.width,o=t.highest.height-t.highest.offset,p=Math.min(z.maxWidth,z.chart.width-e),e+6>(b=c.offset?z.maxWidth/i:p/(i-1))&&(b=p/(i-(c.offset?.5:1)),n=z.maxHeight-cp(c.gridLines)-r.padding-rp(c.scaleLabel),M=Math.sqrt(e*e+o*o),s=zt.toDegrees(Math.min(Math.asin(Math.min((t.highest.height+6)/b,1)),Math.asin(Math.min(n/M,1))-Math.asin(o/M))),s=Math.max(a,Math.min(O,s))),z.labelRotation=s)},afterCalculateTickRotation:function(){zt.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){zt.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},o=t.chart,p=t.options,b=p.ticks,n=p.scaleLabel,M=p.gridLines,z=t._isVisible(),c="bottom"===p.position,r=t.isHorizontal();if(r?e.width=t.maxWidth:z&&(e.width=cp(M)+rp(n)),r?z&&(e.height=cp(M)+rp(n)):e.height=t.maxHeight,b.display&&z){var i=ap(b),a=t._getLabelSizes(),O=a.first,s=a.last,l=a.widest,d=a.highest,A=.4*i.minor.lineHeight,u=b.padding;if(r){var f=0!==t.labelRotation,q=zt.toRadians(t.labelRotation),h=Math.cos(q),W=Math.sin(q),m=W*l.width+h*(d.height-(f?d.offset:0))+(f?0:A);e.height=Math.min(t.maxHeight,e.height+m+u);var g,v,R=t.getPixelForTick(0)-t.left,y=t.right-t.getPixelForTick(t.getTicks().length-1);f?(g=c?h*O.width+W*O.offset:W*(O.height-O.offset),v=c?W*(s.height-s.offset):h*s.width+W*s.offset):(g=O.width/2,v=s.width/2),t.paddingLeft=Math.max((g-R)*t.width/(t.width-R),0)+3,t.paddingRight=Math.max((v-y)*t.width/(t.width-y),0)+3}else{var B=b.mirror?0:l.width+u+A;e.width=Math.min(t.maxWidth,e.width+B),t.paddingTop=O.height/2,t.paddingBottom=s.height/2}}t.handleMargins(),r?(t.width=t._length=o.width-t.margins.left-t.margins.right,t.height=e.height):(t.width=e.width,t.height=t._length=o.height-t.margins.top-t.margins.bottom)},handleMargins:function(){var t=this;t.margins&&(t.margins.left=Math.max(t.paddingLeft,t.margins.left),t.margins.top=Math.max(t.paddingTop,t.margins.top),t.margins.right=Math.max(t.paddingRight,t.margins.right),t.margins.bottom=Math.max(t.paddingBottom,t.margins.bottom))},afterFit:function(){zt.callback(this.options.afterFit,[this])},isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(ep(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},_convertTicksToLabels:function(t){var e,o,p,b=this;for(b.ticks=t.map((function(t){return t.value})),b.beforeTickToLabelConversion(),e=b.convertTicksToLabels(t)||b.ticks,b.afterTickToLabelConversion(),o=0,p=t.length;op-1?null:e.getPixelForDecimal(t*b+(o?b/2:0))},getPixelForDecimal:function(t){var e=this;return e._reversePixels&&(t=1-t),e._startPixel+t*e._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,o=t.max;return t.beginAtZero?0:e<0&&o<0?o:e>0&&o>0?e:0},_autoSkip:function(t){var e,o,p,b,n=this,M=n.options.ticks,z=n._length,c=M.maxTicksLimit||z/n._tickSize()+1,r=M.major.enabled?dp(t):[],i=r.length,a=r[0],O=r[i-1];if(i>c)return Ap(t,r,i/c),Op(t);if(p=lp(r,t,z,c),i>0){for(e=0,o=i-1;e1?(O-a)/(i-1):null,up(t,p,zt.isNullOrUndef(b)?0:a-b,a),up(t,p,O,zt.isNullOrUndef(b)?t.length:O+b),Op(t)}return up(t,p),Op(t)},_tickSize:function(){var t=this,e=t.options.ticks,o=zt.toRadians(t.labelRotation),p=Math.abs(Math.cos(o)),b=Math.abs(Math.sin(o)),n=t._getLabelSizes(),M=e.autoSkipPadding||0,z=n?n.widest.width+M:0,c=n?n.highest.height+M:0;return t.isHorizontal()?c*p>z*b?z/p:c/b:c*b=0&&(M=t),void 0!==n&&(t=o.indexOf(n))>=0&&(z=t),e.minIndex=M,e.maxIndex=z,e.min=o[M],e.max=o[z]},buildTicks:function(){var t=this,e=t._getLabels(),o=t.minIndex,p=t.maxIndex;t.ticks=0===o&&p===e.length-1?e:e.slice(o,p+1)},getLabelForIndex:function(t,e){var o=this,p=o.chart;return p.getDatasetMeta(e).controller._getValueScaleId()===o.id?o.getRightValue(p.data.datasets[e].data[t]):o._getLabels()[t]},_configure:function(){var t=this,e=t.options.offset,o=t.ticks;qp.prototype._configure.call(t),t.isHorizontal()||(t._reversePixels=!t._reversePixels),o&&(t._startValue=t.minIndex-(e?.5:0),t._valueRange=Math.max(o.length-(e?0:1),1))},getPixelForValue:function(t,e,o){var p,b,n,M=this;return hp(e)||hp(o)||(t=M.chart.data.datasets[o].data[e]),hp(t)||(p=M.isHorizontal()?t.x:t.y),(void 0!==p||void 0!==t&&isNaN(e))&&(b=M._getLabels(),t=zt.valueOrDefault(p,t),e=-1!==(n=b.indexOf(t))?n:e,isNaN(e)&&(e=t)),M.getPixelForDecimal((e-M._startValue)/M._valueRange)},getPixelForTick:function(t){var e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t],t+this.minIndex)},getValueForPixel:function(t){var e=this,o=Math.round(e._startValue+e.getDecimalForPixel(t)*e._valueRange);return Math.min(Math.max(o,0),e.ticks.length-1)},getBasePixel:function(){return this.bottom}}),gp=Wp;mp._defaults=gp;var vp=zt.noop,Rp=zt.isNullOrUndef;function yp(t,e){var o,p,b,n,M=[],z=1e-14,c=t.stepSize,r=c||1,i=t.maxTicks-1,a=t.min,O=t.max,s=t.precision,l=e.min,d=e.max,A=zt.niceNum((d-l)/i/r)*r;if(Ai&&(A=zt.niceNum(n*A/i/r)*r),c||Rp(s)?o=Math.pow(10,zt._decimalPlaces(A)):(o=Math.pow(10,s),A=Math.ceil(A*o)/o),p=Math.floor(l/A)*A,b=Math.ceil(d/A)*A,c&&(!Rp(a)&&zt.almostWhole(a/A,A/1e3)&&(p=a),!Rp(O)&&zt.almostWhole(O/A,A/1e3)&&(b=O)),n=(b-p)/A,n=zt.almostEquals(n,Math.round(n),A/1e3)?Math.round(n):Math.ceil(n),p=Math.round(p*o)/o,b=Math.round(b*o)/o,M.push(Rp(a)?p:a);for(var u=1;u0&&p>0&&(t.min=0)}var b=void 0!==e.min||void 0!==e.suggestedMin,n=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),b!==n&&t.min>=t.max&&(b?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this,o=e.options.ticks,p=o.stepSize,b=o.maxTicksLimit;return p?t=Math.ceil(e.max/p)-Math.floor(e.min/p)+1:(t=e._computeTickLimit(),b=b||11),b&&(t=Math.min(b,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:vp,buildTicks:function(){var t=this,e=t.options.ticks,o=t.getTickLimit(),p={maxTicks:o=Math.max(2,o),min:e.min,max:e.max,precision:e.precision,stepSize:zt.valueOrDefault(e.fixedStepSize,e.stepSize)},b=t.ticks=yp(p,t);t.handleDirectionalChanges(),t.max=zt.max(b),t.min=zt.min(b),e.reverse?(b.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),qp.prototype.convertTicksToLabels.call(t)},_configure:function(){var t,e=this,o=e.getTicks(),p=e.min,b=e.max;qp.prototype._configure.call(e),e.options.offset&&o.length&&(p-=t=(b-p)/Math.max(o.length-1,1)/2,b+=t),e._startValue=p,e._endValue=b,e._valueRange=b-p}}),Lp={position:"left",ticks:{callback:Zo.formatters.linear}},Xp=0,_p=1;function Np(t,e,o){var p=[o.type,void 0===e&&void 0===o.stack?o.index:"",o.stack].join(".");return void 0===t[p]&&(t[p]={pos:[],neg:[]}),t[p]}function wp(t,e,o,p){var b,n,M=t.options,z=Np(e,M.stacked,o),c=z.pos,r=z.neg,i=p.length;for(b=0;be.length-1?null:this.getPixelForValue(e[t])}}),Cp=Lp;Tp._defaults=Cp;var Sp=zt.valueOrDefault,kp=zt.math.log10;function Ep(t,e){var o,p,b=[],n=Sp(t.min,Math.pow(10,Math.floor(kp(e.min)))),M=Math.floor(kp(e.max)),z=Math.ceil(e.max/Math.pow(10,M));0===n?(o=Math.floor(kp(e.minNotZero)),p=Math.floor(e.minNotZero/Math.pow(10,o)),b.push(n),n=p*Math.pow(10,o)):(o=Math.floor(kp(n)),p=Math.floor(n/Math.pow(10,o)));var c=o<0?Math.pow(10,Math.abs(o)):1;do{b.push(n),10==++p&&(p=1,c=++o>=0?1:c),n=Math.round(p*Math.pow(10,o)*c)/c}while(o=0?t:e}var jp=qp.extend({determineDataLimits:function(){var t,e,o,p,b,n,M=this,z=M.options,c=M.chart,r=c.data.datasets,i=M.isHorizontal();function a(t){return i?t.xAxisID===M.id:t.yAxisID===M.id}M.min=Number.POSITIVE_INFINITY,M.max=Number.NEGATIVE_INFINITY,M.minNotZero=Number.POSITIVE_INFINITY;var O=z.stacked;if(void 0===O)for(t=0;t0){var e=zt.min(t),o=zt.max(t);M.min=Math.min(M.min,e),M.max=Math.max(M.max,o)}}))}else for(t=0;t0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(kp(t.max))):t.minNotZero=o)},buildTicks:function(){var t=this,e=t.options.ticks,o=!t.isHorizontal(),p={min:Pp(e.min),max:Pp(e.max)},b=t.ticks=Ep(p,t);t.max=zt.max(b),t.min=zt.min(b),e.reverse?(o=!o,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),o&&b.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),qp.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return this._getScaleLabel(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){var e=this.tickValues;return t<0||t>e.length-1?null:this.getPixelForValue(e[t])},_getFirstTickValue:function(t){var e=Math.floor(kp(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},_configure:function(){var t=this,e=t.min,o=0;qp.prototype._configure.call(t),0===e&&(e=t._getFirstTickValue(t.minNotZero),o=Sp(t.options.ticks.fontSize,Q.global.defaultFontSize)/t._length),t._startValue=kp(e),t._valueOffset=o,t._valueRange=(kp(t.max)-kp(e))/(1-o)},getPixelForValue:function(t){var e=this,o=0;return(t=+e.getRightValue(t))>e.min&&t>0&&(o=(kp(t)-e._startValue)/e._valueRange+e._valueOffset),e.getPixelForDecimal(o)},getValueForPixel:function(t){var e=this,o=e.getDecimalForPixel(t);return 0===o&&0===e.min?0:Math.pow(10,e._startValue+(o-e._valueOffset)*e._valueRange)}}),Ip=Dp;jp._defaults=Ip;var Fp=zt.valueOrDefault,Hp=zt.valueAtIndexOrDefault,Up=zt.options.resolve,Vp={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Zo.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function $p(t){var e=t.ticks;return e.display&&t.display?Fp(e.fontSize,Q.global.defaultFontSize)+2*e.backdropPaddingY:0}function Yp(t,e,o){return zt.isArray(o)?{w:zt.longestText(t,t.font,o),h:o.length*e}:{w:t.measureText(o).width,h:e}}function Gp(t,e,o,p,b){return t===p||t===b?{start:e-o/2,end:e+o/2}:tb?{start:e-o,end:e}:{start:e,end:e+o}}function Jp(t){var e,o,p,b=zt.options._parseFont(t.options.pointLabels),n={l:0,r:t.width,t:0,b:t.height-t.paddingTop},M={};t.ctx.font=b.string,t._pointLabelSizes=[];var z=t.chart.data.labels.length;for(e=0;en.r&&(n.r=i.end,M.r=c),a.startn.b&&(n.b=a.end,M.b=c)}t.setReductions(t.drawingArea,n,M)}function Kp(t){return 0===t||180===t?"center":t<180?"left":"right"}function Qp(t,e,o,p){var b,n,M=o.y+p/2;if(zt.isArray(e))for(b=0,n=e.length;b270||t<90)&&(o.y-=e.h)}function tb(t){var e=t.ctx,o=t.options,p=o.pointLabels,b=$p(o),n=t.getDistanceFromCenterForValue(o.ticks.reverse?t.min:t.max),M=zt.options._parseFont(p);e.save(),e.font=M.string,e.textBaseline="middle";for(var z=t.chart.data.labels.length-1;z>=0;z--){var c=0===z?b/2:0,r=t.getPointPosition(z,n+c+5),i=Hp(p.fontColor,z,Q.global.defaultFontColor);e.fillStyle=i;var a=t.getIndexAngle(z),O=zt.toDegrees(a);e.textAlign=Kp(O),Zp(O,t._pointLabelSizes[z],r),Qp(e,t.pointLabels[z],r,M.lineHeight)}e.restore()}function eb(t,e,o,p){var b,n=t.ctx,M=e.circular,z=t.chart.data.labels.length,c=Hp(e.color,p-1),r=Hp(e.lineWidth,p-1);if((M||z)&&c&&r){if(n.save(),n.strokeStyle=c,n.lineWidth=r,n.setLineDash&&(n.setLineDash(e.borderDash||[]),n.lineDashOffset=e.borderDashOffset||0),n.beginPath(),M)n.arc(t.xCenter,t.yCenter,o,0,2*Math.PI);else{b=t.getPointPosition(0,o),n.moveTo(b.x,b.y);for(var i=1;i0&&p>0?o:0)},_drawGrid:function(){var t,e,o,p=this,b=p.ctx,n=p.options,M=n.gridLines,z=n.angleLines,c=Fp(z.lineWidth,M.lineWidth),r=Fp(z.color,M.color);if(n.pointLabels.display&&tb(p),M.display&&zt.each(p.ticks,(function(t,o){0!==o&&(e=p.getDistanceFromCenterForValue(p.ticksAsNumbers[o]),eb(p,M,e,o))})),z.display&&c&&r){for(b.save(),b.lineWidth=c,b.strokeStyle=r,b.setLineDash&&(b.setLineDash(Up([z.borderDash,M.borderDash,[]])),b.lineDashOffset=Up([z.borderDashOffset,M.borderDashOffset,0])),t=p.chart.data.labels.length-1;t>=0;t--)e=p.getDistanceFromCenterForValue(n.ticks.reverse?p.min:p.max),o=p.getPointPosition(t,e),b.beginPath(),b.moveTo(p.xCenter,p.yCenter),b.lineTo(o.x,o.y),b.stroke();b.restore()}},_drawLabels:function(){var t=this,e=t.ctx,o=t.options.ticks;if(o.display){var p,b,n=t.getIndexAngle(0),M=zt.options._parseFont(o),z=Fp(o.fontColor,Q.global.defaultFontColor);e.save(),e.font=M.string,e.translate(t.xCenter,t.yCenter),e.rotate(n),e.textAlign="center",e.textBaseline="middle",zt.each(t.ticks,(function(n,c){(0!==c||o.reverse)&&(p=t.getDistanceFromCenterForValue(t.ticksAsNumbers[c]),o.showLabelBackdrop&&(b=e.measureText(n).width,e.fillStyle=o.backdropColor,e.fillRect(-b/2-o.backdropPaddingX,-p-M.size/2-o.backdropPaddingY,b+2*o.backdropPaddingX,M.size+2*o.backdropPaddingY)),e.fillStyle=z,e.fillText(n,0,-p))})),e.restore()}},_drawTitle:zt.noop}),bb=Vp;pb._defaults=bb;var nb=zt._deprecated,Mb=zt.options.resolve,zb=zt.valueOrDefault,cb=Number.MIN_SAFE_INTEGER||-9007199254740991,rb=Number.MAX_SAFE_INTEGER||9007199254740991,ib={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}},ab=Object.keys(ib);function Ob(t,e){return t-e}function sb(t){var e,o,p,b={},n=[];for(e=0,o=t.length;ee&&z=0&&M<=z;){if(b=t[(p=M+z>>1)-1]||null,n=t[p],!b)return{lo:null,hi:n};if(n[e]o))return{lo:b,hi:n};z=p-1}}return{lo:n,hi:null}}function fb(t,e,o,p){var b=ub(t,e,o),n=b.lo?b.hi?b.lo:t[t.length-2]:t[0],M=b.lo?b.hi?b.hi:t[t.length-1]:t[1],z=M[e]-n[e],c=z?(o-n[e])/z:0,r=(M[p]-n[p])*c;return n[p]+r}function qb(t,e){var o=t._adapter,p=t.options.time,b=p.parser,n=b||p.format,M=e;return"function"==typeof b&&(M=b(M)),zt.isFinite(M)||(M="string"==typeof n?o.parse(M,n):o.parse(M)),null!==M?+M:(b||"function"!=typeof n||(M=n(e),zt.isFinite(M)||(M=o.parse(M))),M)}function hb(t,e){if(zt.isNullOrUndef(e))return null;var o=t.options.time,p=qb(t,t.getRightValue(e));return null===p||o.round&&(p=+t._adapter.startOf(p,o.round)),p}function Wb(t,e,o,p){var b,n,M,z=ab.length;for(b=ab.indexOf(t);b=ab.indexOf(o);n--)if(M=ab[n],ib[M].common&&t._adapter.diff(b,p,M)>=e-1)return M;return ab[o?ab.indexOf(o):0]}function gb(t){for(var e=ab.indexOf(t)+1,o=ab.length;e1e5*r)throw e+" and "+o+" are too far apart with stepSize of "+r+" "+c;for(b=a;b=0&&(e[n].major=!0);return e}function Bb(t,e,o){var p,b,n=[],M={},z=e.length;for(p=0;p1?sb(l).sort(Ob):l.sort(Ob),O=Math.min(O,l[0]),s=Math.max(s,l[l.length-1])),O=hb(z,lb(i))||O,s=hb(z,db(i))||s,O=O===rb?+r.startOf(Date.now(),a):O,s=s===cb?+r.endOf(Date.now(),a)+1:s,z.min=Math.min(O,s),z.max=Math.max(O+1,s),z._table=[],z._timestamps={data:l,datasets:d,labels:A}},buildTicks:function(){var t,e,o,p=this,b=p.min,n=p.max,M=p.options,z=M.ticks,c=M.time,r=p._timestamps,i=[],a=p.getLabelCapacity(b),O=z.source,s=M.distribution;for(r="data"===O||"auto"===O&&"series"===s?r.data:"labels"===O?r.labels:vb(p,b,n,a),"ticks"===M.bounds&&r.length&&(b=r[0],n=r[r.length-1]),b=hb(p,lb(M))||b,n=hb(p,db(M))||n,t=0,e=r.length;t=b&&o<=n&&i.push(o);return p.min=b,p.max=n,p._unit=c.unit||(z.autoSkip?Wb(c.minUnit,p.min,p.max,a):mb(p,i.length,c.minUnit,p.min,p.max)),p._majorUnit=z.major.enabled&&"year"!==p._unit?gb(p._unit):void 0,p._table=Ab(p._timestamps.data,b,n,s),p._offsets=Rb(p._table,i,b,n,M),z.reverse&&i.reverse(),Bb(p,i,p._majorUnit)},getLabelForIndex:function(t,e){var o=this,p=o._adapter,b=o.chart.data,n=o.options.time,M=b.labels&&t=0&&t0?z:1}}),_b=Lb;Xb._defaults=_b;var Nb={category:mp,linear:Tp,logarithmic:jp,radialLinear:pb,time:Xb},wb={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Qo._date.override("function"==typeof t?{_id:"moment",formats:function(){return wb},parse:function(e,o){return"string"==typeof e&&"string"==typeof o?e=t(e,o):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,o){return t(e).format(o)},add:function(e,o,p){return t(e).add(o,p).valueOf()},diff:function(e,o,p){return t(e).diff(t(o),p)},startOf:function(e,o,p){return e=t(e),"isoWeek"===o?e.isoWeekday(p).valueOf():e.startOf(o).valueOf()},endOf:function(e,o){return t(e).endOf(o).valueOf()},_create:function(e){return t(e)}}:{}),Q._set("global",{plugins:{filler:{propagate:!0}}});var xb={dataset:function(t){var e=t.fill,o=t.chart,p=o.getDatasetMeta(e),b=p&&o.isDatasetVisible(e)&&p.dataset._children||[],n=b.length||0;return n?function(t,e){return e=o)&&p;switch(n){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return n;default:return!1}}function Cb(t){var e,o=t.el._model||{},p=t.el._scale||{},b=t.fill,n=null;if(isFinite(b))return null;if("start"===b?n=void 0===o.scaleBottom?p.bottom:o.scaleBottom:"end"===b?n=void 0===o.scaleTop?p.top:o.scaleTop:void 0!==o.scaleZero?n=o.scaleZero:p.getBasePixel&&(n=p.getBasePixel()),null!=n){if(void 0!==n.x&&void 0!==n.y)return n;if(zt.isFinite(n))return{x:(e=p.isHorizontal())?n:null,y:e?null:n}}return null}function Sb(t){var e,o,p,b,n,M=t.el._scale,z=M.options,c=M.chart.data.labels.length,r=t.fill,i=[];if(!c)return null;for(e=z.ticks.reverse?M.max:M.min,o=z.ticks.reverse?M.min:M.max,p=M.getPointPositionForValue(0,e),b=0;b0;--n)zt.canvas.lineTo(t,o[n],o[n-1],!0);else for(M=o[0].cx,z=o[0].cy,c=Math.sqrt(Math.pow(o[0].x-M,2)+Math.pow(o[0].y-z,2)),n=b-1;n>0;--n)t.arc(M,z,c,o[n].angle,o[n-1].angle,!0)}}function Ib(t,e,o,p,b,n){var M,z,c,r,i,a,O,s,l=e.length,d=p.spanGaps,A=[],u=[],f=0,q=0;for(t.beginPath(),M=0,z=l;M=0;--o)(e=c[o].$filler)&&e.visible&&(b=(p=e.el)._view,n=p._children||[],M=e.mapper,z=b.backgroundColor||Q.global.defaultColor,M&&z&&n.length&&(zt.canvas.clipArea(r,t.chartArea),Ib(r,n,M,b,z,p._loop),zt.canvas.unclipArea(r)))}},Hb=zt.rtl.getRtlAdapter,Ub=zt.noop,Vb=zt.valueOrDefault;function $b(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}Q._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var o=e.datasetIndex,p=this.chart,b=p.getDatasetMeta(o);b.hidden=null===b.hidden?!p.data.datasets[o].hidden:null,p.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data.datasets,o=t.options.legend||{},p=o.labels&&o.labels.usePointStyle;return t._getSortedDatasetMetas().map((function(o){var b=o.controller.getStyle(p?0:void 0);return{text:e[o.index].label,fillStyle:b.backgroundColor,hidden:!t.isDatasetVisible(o.index),lineCap:b.borderCapStyle,lineDash:b.borderDash,lineDashOffset:b.borderDashOffset,lineJoin:b.borderJoinStyle,lineWidth:b.borderWidth,strokeStyle:b.borderColor,pointStyle:b.pointStyle,rotation:b.rotation,datasetIndex:o.index}}),this)}}},legendCallback:function(t){var e,o,p,b=document.createElement("ul"),n=t.data.datasets;for(b.setAttribute("class",t.id+"-legend"),e=0,o=n.length;ec.width)&&(a+=M+o.padding,i[i.length-(e>0?0:1)]=0),z[e]={left:0,top:0,width:p,height:M},i[i.length-1]+=p+o.padding})),c.height+=a}else{var O=o.padding,s=t.columnWidths=[],l=t.columnHeights=[],d=o.padding,A=0,u=0;zt.each(t.legendItems,(function(t,e){var p=$b(o,M)+M/2+b.measureText(t.text).width;e>0&&u+M+2*O>c.height&&(d+=A+o.padding,s.push(A),l.push(u),A=0,u=0),A=Math.max(A,p),u+=M+O,z[e]={left:0,top:0,width:p,height:M}})),d+=A,s.push(A),l.push(u),c.width+=d}t.width=c.width,t.height=c.height}else t.width=c.width=t.height=c.height=0},afterFit:Ub,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,o=e.labels,p=Q.global,b=p.defaultColor,n=p.elements.line,M=t.height,z=t.columnHeights,c=t.width,r=t.lineWidths;if(e.display){var i,a=Hb(e.rtl,t.left,t.minSize.width),O=t.ctx,s=Vb(o.fontColor,p.defaultFontColor),l=zt.options._parseFont(o),d=l.size;O.textAlign=a.textAlign("left"),O.textBaseline="middle",O.lineWidth=.5,O.strokeStyle=s,O.fillStyle=s,O.font=l.string;var A=$b(o,d),u=t.legendHitBoxes,f=function(t,e,p){if(!(isNaN(A)||A<=0)){O.save();var M=Vb(p.lineWidth,n.borderWidth);if(O.fillStyle=Vb(p.fillStyle,b),O.lineCap=Vb(p.lineCap,n.borderCapStyle),O.lineDashOffset=Vb(p.lineDashOffset,n.borderDashOffset),O.lineJoin=Vb(p.lineJoin,n.borderJoinStyle),O.lineWidth=M,O.strokeStyle=Vb(p.strokeStyle,b),O.setLineDash&&O.setLineDash(Vb(p.lineDash,n.borderDash)),o&&o.usePointStyle){var z=A*Math.SQRT2/2,c=a.xPlus(t,A/2),r=e+d/2;zt.canvas.drawPoint(O,p.pointStyle,z,c,r,p.rotation)}else O.fillRect(a.leftForLtr(t,A),e,A,d),0!==M&&O.strokeRect(a.leftForLtr(t,A),e,A,d);O.restore()}},q=function(t,e,o,p){var b=d/2,n=a.xPlus(t,A+b),M=e+b;O.fillText(o.text,n,M),o.hidden&&(O.beginPath(),O.lineWidth=2,O.moveTo(n,M),O.lineTo(a.xPlus(n,p),M),O.stroke())},h=function(t,p){switch(e.align){case"start":return o.padding;case"end":return t-p;default:return(t-p+o.padding)/2}},W=t.isHorizontal();i=W?{x:t.left+h(c,r[0]),y:t.top+o.padding,line:0}:{x:t.left+o.padding,y:t.top+h(M,z[0]),line:0},zt.rtl.overrideTextDirection(t.ctx,e.textDirection);var m=d+o.padding;zt.each(t.legendItems,(function(e,p){var b=O.measureText(e.text).width,n=A+d/2+b,s=i.x,l=i.y;a.setWidth(t.minSize.width),W?p>0&&s+n+o.padding>t.left+t.minSize.width&&(l=i.y+=m,i.line++,s=i.x=t.left+h(c,r[i.line])):p>0&&l+m>t.top+t.minSize.height&&(s=i.x=s+t.columnWidths[i.line]+o.padding,i.line++,l=i.y=t.top+h(M,z[i.line]));var g=a.x(s);f(g,l,e),u[p].left=a.leftForLtr(g,u[p].width),u[p].top=l,q(g,l,e,b),W?i.x+=n+o.padding:i.y+=m})),zt.rtl.restoreTextDirection(t.ctx,e.textDirection)}},_getLegendItemAt:function(t,e){var o,p,b,n=this;if(t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom)for(b=n.legendHitBoxes,o=0;o=(p=b[o]).left&&t<=p.left+p.width&&e>=p.top&&e<=p.top+p.height)return n.legendItems[o];return null},handleEvent:function(t){var e,o=this,p=o.options,b="mouseup"===t.type?"click":t.type;if("mousemove"===b){if(!p.onHover&&!p.onLeave)return}else{if("click"!==b)return;if(!p.onClick)return}e=o._getLegendItemAt(t.x,t.y),"click"===b?e&&p.onClick&&p.onClick.call(o,t.native,e):(p.onLeave&&e!==o._hoveredItem&&(o._hoveredItem&&p.onLeave.call(o,t.native,o._hoveredItem),o._hoveredItem=e),p.onHover&&e&&p.onHover.call(o,t.native,e))}});function Gb(t,e){var o=new Yb({ctx:t.ctx,options:e,chart:t});Ue.configure(t,o,e),Ue.addBox(t,o),t.legend=o}var Jb={id:"legend",_element:Yb,beforeInit:function(t){var e=t.options.legend;e&&Gb(t,e)},beforeUpdate:function(t){var e=t.options.legend,o=t.legend;e?(zt.mergeIf(e,Q.global.legend),o?(Ue.configure(t,o,e),o.options=e):Gb(t,e)):o&&(Ue.removeBox(t,o),delete t.legend)},afterEvent:function(t,e){var o=t.legend;o&&o.handleEvent(e)}},Kb=zt.noop;Q._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Qb=dt.extend({initialize:function(t){var e=this;zt.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:Kb,update:function(t,e,o){var p=this;return p.beforeUpdate(),p.maxWidth=t,p.maxHeight=e,p.margins=o,p.beforeSetDimensions(),p.setDimensions(),p.afterSetDimensions(),p.beforeBuildLabels(),p.buildLabels(),p.afterBuildLabels(),p.beforeFit(),p.fit(),p.afterFit(),p.afterUpdate(),p.minSize},afterUpdate:Kb,beforeSetDimensions:Kb,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Kb,beforeBuildLabels:Kb,buildLabels:Kb,afterBuildLabels:Kb,beforeFit:Kb,fit:function(){var t,e=this,o=e.options,p=e.minSize={},b=e.isHorizontal();o.display?(t=(zt.isArray(o.text)?o.text.length:1)*zt.options._parseFont(o).lineHeight+2*o.padding,e.width=p.width=b?e.maxWidth:t,e.height=p.height=b?t:e.maxHeight):e.width=p.width=e.height=p.height=0},afterFit:Kb,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,o=t.options;if(o.display){var p,b,n,M=zt.options._parseFont(o),z=M.lineHeight,c=z/2+o.padding,r=0,i=t.top,a=t.left,O=t.bottom,s=t.right;e.fillStyle=zt.valueOrDefault(o.fontColor,Q.global.defaultFontColor),e.font=M.string,t.isHorizontal()?(b=a+(s-a)/2,n=i+c,p=s-a):(b="left"===o.position?a+c:s-c,n=i+(O-i)/2,p=O-i,r=Math.PI*("left"===o.position?-.5:.5)),e.save(),e.translate(b,n),e.rotate(r),e.textAlign="center",e.textBaseline="middle";var l=o.text;if(zt.isArray(l))for(var d=0,A=0;A{e.read=function(t,e,o,p,b){var n,M,z=8*b-p-1,c=(1<>1,i=-7,a=o?b-1:0,O=o?-1:1,s=t[e+a];for(a+=O,n=s&(1<<-i)-1,s>>=-i,i+=z;i>0;n=256*n+t[e+a],a+=O,i-=8);for(M=n&(1<<-i)-1,n>>=-i,i+=p;i>0;M=256*M+t[e+a],a+=O,i-=8);if(0===n)n=1-r;else{if(n===c)return M?NaN:1/0*(s?-1:1);M+=Math.pow(2,p),n-=r}return(s?-1:1)*M*Math.pow(2,n-p)},e.write=function(t,e,o,p,b,n){var M,z,c,r=8*n-b-1,i=(1<>1,O=23===b?Math.pow(2,-24)-Math.pow(2,-77):0,s=p?0:n-1,l=p?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(z=isNaN(e)?1:0,M=i):(M=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-M))<1&&(M--,c*=2),(e+=M+a>=1?O/c:O*Math.pow(2,1-a))*c>=2&&(M++,c/=2),M+a>=i?(z=0,M=i):M+a>=1?(z=(e*c-1)*Math.pow(2,b),M+=a):(z=e*Math.pow(2,a-1)*Math.pow(2,b),M=0));b>=8;t[o+s]=255&z,s+=l,z/=256,b-=8);for(M=M<0;t[o+s]=255&M,s+=l,M/=256,r-=8);t[o+s-l]|=128*d}},826:t=>{var e={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==e.call(t)}},755:function(t,e){var o;!function(e,o){"use strict";"object"==typeof t.exports?t.exports=e.document?o(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return o(t)}:o(e)}("undefined"!=typeof window?window:this,(function(p,b){"use strict";var n=[],M=Object.getPrototypeOf,z=n.slice,c=n.flat?function(t){return n.flat.call(t)}:function(t){return n.concat.apply([],t)},r=n.push,i=n.indexOf,a={},O=a.toString,s=a.hasOwnProperty,l=s.toString,d=l.call(Object),A={},u=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType&&"function"!=typeof t.item},f=function(t){return null!=t&&t===t.window},q=p.document,h={type:!0,src:!0,nonce:!0,noModule:!0};function W(t,e,o){var p,b,n=(o=o||q).createElement("script");if(n.text=t,e)for(p in h)(b=e[p]||e.getAttribute&&e.getAttribute(p))&&n.setAttribute(p,b);o.head.appendChild(n).parentNode.removeChild(n)}function m(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?a[O.call(t)]||"object":typeof t}var g="3.6.1",v=function(t,e){return new v.fn.init(t,e)};function R(t){var e=!!t&&"length"in t&&t.length,o=m(t);return!u(t)&&!f(t)&&("array"===o||0===e||"number"==typeof e&&e>0&&e-1 in t)}v.fn=v.prototype={jquery:g,constructor:v,length:0,toArray:function(){return z.call(this)},get:function(t){return null==t?z.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=v.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return v.each(this,t)},map:function(t){return this.pushStack(v.map(this,(function(e,o){return t.call(e,o,e)})))},slice:function(){return this.pushStack(z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(v.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(v.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,o=+t+(t<0?e:0);return this.pushStack(o>=0&&o+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),U=new RegExp(k+"|>"),V=new RegExp(P),$=new RegExp("^"+E+"$"),Y={ID:new RegExp("^#("+E+")"),CLASS:new RegExp("^\\.("+E+")"),TAG:new RegExp("^("+E+"|[*])"),ATTR:new RegExp("^"+D),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+S+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},G=/HTML$/i,J=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),ot=function(t,e){var o="0x"+t.slice(1)-65536;return e||(o<0?String.fromCharCode(o+65536):String.fromCharCode(o>>10|55296,1023&o|56320))},pt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,bt=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},nt=function(){O()},Mt=ht((function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{x.apply(_=T.call(W.childNodes),W.childNodes),_[W.childNodes.length].nodeType}catch(t){x={apply:_.length?function(t,e){w.apply(t,T.call(e))}:function(t,e){for(var o=t.length,p=0;t[o++]=e[p++];);t.length=o-1}}}function zt(t,e,p,b){var n,z,r,i,a,l,u,f=e&&e.ownerDocument,W=e?e.nodeType:9;if(p=p||[],"string"!=typeof t||!t||1!==W&&9!==W&&11!==W)return p;if(!b&&(O(e),e=e||s,d)){if(11!==W&&(a=Z.exec(t)))if(n=a[1]){if(9===W){if(!(r=e.getElementById(n)))return p;if(r.id===n)return p.push(r),p}else if(f&&(r=f.getElementById(n))&&q(e,r)&&r.id===n)return p.push(r),p}else{if(a[2])return x.apply(p,e.getElementsByTagName(t)),p;if((n=a[3])&&o.getElementsByClassName&&e.getElementsByClassName)return x.apply(p,e.getElementsByClassName(n)),p}if(o.qsa&&!B[t+" "]&&(!A||!A.test(t))&&(1!==W||"object"!==e.nodeName.toLowerCase())){if(u=t,f=e,1===W&&(U.test(t)||H.test(t))){for((f=tt.test(t)&&ut(e.parentNode)||e)===e&&o.scope||((i=e.getAttribute("id"))?i=i.replace(pt,bt):e.setAttribute("id",i=h)),z=(l=M(t)).length;z--;)l[z]=(i?"#"+i:":scope")+" "+qt(l[z]);u=l.join(",")}try{return x.apply(p,f.querySelectorAll(u)),p}catch(e){B(t,!0)}finally{i===h&&e.removeAttribute("id")}}}return c(t.replace(I,"$1"),e,p,b)}function ct(){var t=[];return function e(o,b){return t.push(o+" ")>p.cacheLength&&delete e[t.shift()],e[o+" "]=b}}function rt(t){return t[h]=!0,t}function it(t){var e=s.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function at(t,e){for(var o=t.split("|"),b=o.length;b--;)p.attrHandle[o[b]]=e}function Ot(t,e){var o=e&&t,p=o&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(p)return p;if(o)for(;o=o.nextSibling;)if(o===e)return-1;return t?1:-1}function st(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function lt(t){return function(e){var o=e.nodeName.toLowerCase();return("input"===o||"button"===o)&&e.type===t}}function dt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&Mt(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function At(t){return rt((function(e){return e=+e,rt((function(o,p){for(var b,n=t([],o.length,e),M=n.length;M--;)o[b=n[M]]&&(o[b]=!(p[b]=o[b]))}))}))}function ut(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in o=zt.support={},n=zt.isXML=function(t){var e=t&&t.namespaceURI,o=t&&(t.ownerDocument||t).documentElement;return!G.test(e||o&&o.nodeName||"HTML")},O=zt.setDocument=function(t){var e,b,M=t?t.ownerDocument||t:W;return M!=s&&9===M.nodeType&&M.documentElement?(l=(s=M).documentElement,d=!n(s),W!=s&&(b=s.defaultView)&&b.top!==b&&(b.addEventListener?b.addEventListener("unload",nt,!1):b.attachEvent&&b.attachEvent("onunload",nt)),o.scope=it((function(t){return l.appendChild(t).appendChild(s.createElement("div")),void 0!==t.querySelectorAll&&!t.querySelectorAll(":scope fieldset div").length})),o.attributes=it((function(t){return t.className="i",!t.getAttribute("className")})),o.getElementsByTagName=it((function(t){return t.appendChild(s.createComment("")),!t.getElementsByTagName("*").length})),o.getElementsByClassName=Q.test(s.getElementsByClassName),o.getById=it((function(t){return l.appendChild(t).id=h,!s.getElementsByName||!s.getElementsByName(h).length})),o.getById?(p.filter.ID=function(t){var e=t.replace(et,ot);return function(t){return t.getAttribute("id")===e}},p.find.ID=function(t,e){if(void 0!==e.getElementById&&d){var o=e.getElementById(t);return o?[o]:[]}}):(p.filter.ID=function(t){var e=t.replace(et,ot);return function(t){var o=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return o&&o.value===e}},p.find.ID=function(t,e){if(void 0!==e.getElementById&&d){var o,p,b,n=e.getElementById(t);if(n){if((o=n.getAttributeNode("id"))&&o.value===t)return[n];for(b=e.getElementsByName(t),p=0;n=b[p++];)if((o=n.getAttributeNode("id"))&&o.value===t)return[n]}return[]}}),p.find.TAG=o.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):o.qsa?e.querySelectorAll(t):void 0}:function(t,e){var o,p=[],b=0,n=e.getElementsByTagName(t);if("*"===t){for(;o=n[b++];)1===o.nodeType&&p.push(o);return p}return n},p.find.CLASS=o.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&d)return e.getElementsByClassName(t)},u=[],A=[],(o.qsa=Q.test(s.querySelectorAll))&&(it((function(t){var e;l.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&A.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll("[selected]").length||A.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+S+")"),t.querySelectorAll("[id~="+h+"-]").length||A.push("~="),(e=s.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||A.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll(":checked").length||A.push(":checked"),t.querySelectorAll("a#"+h+"+*").length||A.push(".#.+[+~]"),t.querySelectorAll("\\\f"),A.push("[\\r\\n\\f]")})),it((function(t){t.innerHTML="";var e=s.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&A.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&A.push(":enabled",":disabled"),l.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&A.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),A.push(",.*:")}))),(o.matchesSelector=Q.test(f=l.matches||l.webkitMatchesSelector||l.mozMatchesSelector||l.oMatchesSelector||l.msMatchesSelector))&&it((function(t){o.disconnectedMatch=f.call(t,"*"),f.call(t,"[s!='']:x"),u.push("!=",P)})),A=A.length&&new RegExp(A.join("|")),u=u.length&&new RegExp(u.join("|")),e=Q.test(l.compareDocumentPosition),q=e||Q.test(l.contains)?function(t,e){var o=9===t.nodeType?t.documentElement:t,p=e&&e.parentNode;return t===p||!(!p||1!==p.nodeType||!(o.contains?o.contains(p):t.compareDocumentPosition&&16&t.compareDocumentPosition(p)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},L=e?function(t,e){if(t===e)return a=!0,0;var p=!t.compareDocumentPosition-!e.compareDocumentPosition;return p||(1&(p=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!o.sortDetached&&e.compareDocumentPosition(t)===p?t==s||t.ownerDocument==W&&q(W,t)?-1:e==s||e.ownerDocument==W&&q(W,e)?1:i?C(i,t)-C(i,e):0:4&p?-1:1)}:function(t,e){if(t===e)return a=!0,0;var o,p=0,b=t.parentNode,n=e.parentNode,M=[t],z=[e];if(!b||!n)return t==s?-1:e==s?1:b?-1:n?1:i?C(i,t)-C(i,e):0;if(b===n)return Ot(t,e);for(o=t;o=o.parentNode;)M.unshift(o);for(o=e;o=o.parentNode;)z.unshift(o);for(;M[p]===z[p];)p++;return p?Ot(M[p],z[p]):M[p]==W?-1:z[p]==W?1:0},s):s},zt.matches=function(t,e){return zt(t,null,null,e)},zt.matchesSelector=function(t,e){if(O(t),o.matchesSelector&&d&&!B[e+" "]&&(!u||!u.test(e))&&(!A||!A.test(e)))try{var p=f.call(t,e);if(p||o.disconnectedMatch||t.document&&11!==t.document.nodeType)return p}catch(t){B(e,!0)}return zt(e,s,null,[t]).length>0},zt.contains=function(t,e){return(t.ownerDocument||t)!=s&&O(t),q(t,e)},zt.attr=function(t,e){(t.ownerDocument||t)!=s&&O(t);var b=p.attrHandle[e.toLowerCase()],n=b&&X.call(p.attrHandle,e.toLowerCase())?b(t,e,!d):void 0;return void 0!==n?n:o.attributes||!d?t.getAttribute(e):(n=t.getAttributeNode(e))&&n.specified?n.value:null},zt.escape=function(t){return(t+"").replace(pt,bt)},zt.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},zt.uniqueSort=function(t){var e,p=[],b=0,n=0;if(a=!o.detectDuplicates,i=!o.sortStable&&t.slice(0),t.sort(L),a){for(;e=t[n++];)e===t[n]&&(b=p.push(n));for(;b--;)t.splice(p[b],1)}return i=null,t},b=zt.getText=function(t){var e,o="",p=0,n=t.nodeType;if(n){if(1===n||9===n||11===n){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)o+=b(t)}else if(3===n||4===n)return t.nodeValue}else for(;e=t[p++];)o+=b(e);return o},p=zt.selectors={cacheLength:50,createPseudo:rt,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,ot),t[3]=(t[3]||t[4]||t[5]||"").replace(et,ot),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||zt.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&zt.error(t[0]),t},PSEUDO:function(t){var e,o=!t[6]&&t[2];return Y.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":o&&V.test(o)&&(e=M(o,!0))&&(e=o.indexOf(")",o.length-e)-o.length)&&(t[0]=t[0].slice(0,e),t[2]=o.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,ot).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=v[t+" "];return e||(e=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+t+"("+k+"|$)"))&&v(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,o){return function(p){var b=zt.attr(p,t);return null==b?"!="===e:!e||(b+="","="===e?b===o:"!="===e?b!==o:"^="===e?o&&0===b.indexOf(o):"*="===e?o&&b.indexOf(o)>-1:"$="===e?o&&b.slice(-o.length)===o:"~="===e?(" "+b.replace(j," ")+" ").indexOf(o)>-1:"|="===e&&(b===o||b.slice(0,o.length+1)===o+"-"))}},CHILD:function(t,e,o,p,b){var n="nth"!==t.slice(0,3),M="last"!==t.slice(-4),z="of-type"===e;return 1===p&&0===b?function(t){return!!t.parentNode}:function(e,o,c){var r,i,a,O,s,l,d=n!==M?"nextSibling":"previousSibling",A=e.parentNode,u=z&&e.nodeName.toLowerCase(),f=!c&&!z,q=!1;if(A){if(n){for(;d;){for(O=e;O=O[d];)if(z?O.nodeName.toLowerCase()===u:1===O.nodeType)return!1;l=d="only"===t&&!l&&"nextSibling"}return!0}if(l=[M?A.firstChild:A.lastChild],M&&f){for(q=(s=(r=(i=(a=(O=A)[h]||(O[h]={}))[O.uniqueID]||(a[O.uniqueID]={}))[t]||[])[0]===m&&r[1])&&r[2],O=s&&A.childNodes[s];O=++s&&O&&O[d]||(q=s=0)||l.pop();)if(1===O.nodeType&&++q&&O===e){i[t]=[m,s,q];break}}else if(f&&(q=s=(r=(i=(a=(O=e)[h]||(O[h]={}))[O.uniqueID]||(a[O.uniqueID]={}))[t]||[])[0]===m&&r[1]),!1===q)for(;(O=++s&&O&&O[d]||(q=s=0)||l.pop())&&((z?O.nodeName.toLowerCase()!==u:1!==O.nodeType)||!++q||(f&&((i=(a=O[h]||(O[h]={}))[O.uniqueID]||(a[O.uniqueID]={}))[t]=[m,q]),O!==e)););return(q-=b)===p||q%p==0&&q/p>=0}}},PSEUDO:function(t,e){var o,b=p.pseudos[t]||p.setFilters[t.toLowerCase()]||zt.error("unsupported pseudo: "+t);return b[h]?b(e):b.length>1?(o=[t,t,"",e],p.setFilters.hasOwnProperty(t.toLowerCase())?rt((function(t,o){for(var p,n=b(t,e),M=n.length;M--;)t[p=C(t,n[M])]=!(o[p]=n[M])})):function(t){return b(t,0,o)}):b}},pseudos:{not:rt((function(t){var e=[],o=[],p=z(t.replace(I,"$1"));return p[h]?rt((function(t,e,o,b){for(var n,M=p(t,null,b,[]),z=t.length;z--;)(n=M[z])&&(t[z]=!(e[z]=n))})):function(t,b,n){return e[0]=t,p(e,null,n,o),e[0]=null,!o.pop()}})),has:rt((function(t){return function(e){return zt(t,e).length>0}})),contains:rt((function(t){return t=t.replace(et,ot),function(e){return(e.textContent||b(e)).indexOf(t)>-1}})),lang:rt((function(t){return $.test(t||"")||zt.error("unsupported lang: "+t),t=t.replace(et,ot).toLowerCase(),function(e){var o;do{if(o=d?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(o=o.toLowerCase())===t||0===o.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var o=t.location&&t.location.hash;return o&&o.slice(1)===e.id},root:function(t){return t===l},focus:function(t){return t===s.activeElement&&(!s.hasFocus||s.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:dt(!1),disabled:dt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!p.pseudos.empty(t)},header:function(t){return K.test(t.nodeName)},input:function(t){return J.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:At((function(){return[0]})),last:At((function(t,e){return[e-1]})),eq:At((function(t,e,o){return[o<0?o+e:o]})),even:At((function(t,e){for(var o=0;oe?e:o;--p>=0;)t.push(p);return t})),gt:At((function(t,e,o){for(var p=o<0?o+e:o;++p1?function(e,o,p){for(var b=t.length;b--;)if(!t[b](e,o,p))return!1;return!0}:t[0]}function mt(t,e,o,p,b){for(var n,M=[],z=0,c=t.length,r=null!=e;z-1&&(n[r]=!(M[r]=a))}}else u=mt(u===M?u.splice(l,u.length):u),b?b(null,M,u,c):x.apply(M,u)}))}function vt(t){for(var e,o,b,n=t.length,M=p.relative[t[0].type],z=M||p.relative[" "],c=M?1:0,i=ht((function(t){return t===e}),z,!0),a=ht((function(t){return C(e,t)>-1}),z,!0),O=[function(t,o,p){var b=!M&&(p||o!==r)||((e=o).nodeType?i(t,o,p):a(t,o,p));return e=null,b}];c1&&Wt(O),c>1&&qt(t.slice(0,c-1).concat({value:" "===t[c-2].type?"*":""})).replace(I,"$1"),o,c0,b=t.length>0,n=function(n,M,z,c,i){var a,l,A,u=0,f="0",q=n&&[],h=[],W=r,g=n||b&&p.find.TAG("*",i),v=m+=null==W?1:Math.random()||.1,R=g.length;for(i&&(r=M==s||M||i);f!==R&&null!=(a=g[f]);f++){if(b&&a){for(l=0,M||a.ownerDocument==s||(O(a),z=!d);A=t[l++];)if(A(a,M||s,z)){c.push(a);break}i&&(m=v)}o&&((a=!A&&a)&&u--,n&&q.push(a))}if(u+=f,o&&f!==u){for(l=0;A=e[l++];)A(q,h,M,z);if(n){if(u>0)for(;f--;)q[f]||h[f]||(h[f]=N.call(c));h=mt(h)}x.apply(c,h),i&&!n&&h.length>0&&u+e.length>1&&zt.uniqueSort(c)}return i&&(m=v,r=W),q};return o?rt(n):n}(n,b)),z.selector=t}return z},c=zt.select=function(t,e,o,b){var n,c,r,i,a,O="function"==typeof t&&t,s=!b&&M(t=O.selector||t);if(o=o||[],1===s.length){if((c=s[0]=s[0].slice(0)).length>2&&"ID"===(r=c[0]).type&&9===e.nodeType&&d&&p.relative[c[1].type]){if(!(e=(p.find.ID(r.matches[0].replace(et,ot),e)||[])[0]))return o;O&&(e=e.parentNode),t=t.slice(c.shift().value.length)}for(n=Y.needsContext.test(t)?0:c.length;n--&&(r=c[n],!p.relative[i=r.type]);)if((a=p.find[i])&&(b=a(r.matches[0].replace(et,ot),tt.test(c[0].type)&&ut(e.parentNode)||e))){if(c.splice(n,1),!(t=b.length&&qt(c)))return x.apply(o,b),o;break}}return(O||z(t,s))(b,e,!d,o,!e||tt.test(t)&&ut(e.parentNode)||e),o},o.sortStable=h.split("").sort(L).join("")===h,o.detectDuplicates=!!a,O(),o.sortDetached=it((function(t){return 1&t.compareDocumentPosition(s.createElement("fieldset"))})),it((function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")}))||at("type|href|height|width",(function(t,e,o){if(!o)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)})),o.attributes&&it((function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")}))||at("value",(function(t,e,o){if(!o&&"input"===t.nodeName.toLowerCase())return t.defaultValue})),it((function(t){return null==t.getAttribute("disabled")}))||at(S,(function(t,e,o){var p;if(!o)return!0===t[e]?e.toLowerCase():(p=t.getAttributeNode(e))&&p.specified?p.value:null})),zt}(p);v.find=y,v.expr=y.selectors,v.expr[":"]=v.expr.pseudos,v.uniqueSort=v.unique=y.uniqueSort,v.text=y.getText,v.isXMLDoc=y.isXML,v.contains=y.contains,v.escapeSelector=y.escape;var B=function(t,e,o){for(var p=[],b=void 0!==o;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(b&&v(t).is(o))break;p.push(t)}return p},L=function(t,e){for(var o=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&o.push(t);return o},X=v.expr.match.needsContext;function _(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function w(t,e,o){return u(e)?v.grep(t,(function(t,p){return!!e.call(t,p,t)!==o})):e.nodeType?v.grep(t,(function(t){return t===e!==o})):"string"!=typeof e?v.grep(t,(function(t){return i.call(e,t)>-1!==o})):v.filter(e,t,o)}v.filter=function(t,e,o){var p=e[0];return o&&(t=":not("+t+")"),1===e.length&&1===p.nodeType?v.find.matchesSelector(p,t)?[p]:[]:v.find.matches(t,v.grep(e,(function(t){return 1===t.nodeType})))},v.fn.extend({find:function(t){var e,o,p=this.length,b=this;if("string"!=typeof t)return this.pushStack(v(t).filter((function(){for(e=0;e1?v.uniqueSort(o):o},filter:function(t){return this.pushStack(w(this,t||[],!1))},not:function(t){return this.pushStack(w(this,t||[],!0))},is:function(t){return!!w(this,"string"==typeof t&&X.test(t)?v(t):t||[],!1).length}});var x,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(v.fn.init=function(t,e,o){var p,b;if(!t)return this;if(o=o||x,"string"==typeof t){if(!(p="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:T.exec(t))||!p[1]&&e)return!e||e.jquery?(e||o).find(t):this.constructor(e).find(t);if(p[1]){if(e=e instanceof v?e[0]:e,v.merge(this,v.parseHTML(p[1],e&&e.nodeType?e.ownerDocument||e:q,!0)),N.test(p[1])&&v.isPlainObject(e))for(p in e)u(this[p])?this[p](e[p]):this.attr(p,e[p]);return this}return(b=q.getElementById(p[2]))&&(this[0]=b,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):u(t)?void 0!==o.ready?o.ready(t):t(v):v.makeArray(t,this)}).prototype=v.fn,x=v(q);var C=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function k(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}v.fn.extend({has:function(t){var e=v(t,this),o=e.length;return this.filter((function(){for(var t=0;t-1:1===o.nodeType&&v.find.matchesSelector(o,t))){n.push(o);break}return this.pushStack(n.length>1?v.uniqueSort(n):n)},index:function(t){return t?"string"==typeof t?i.call(v(t),this[0]):i.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(v.uniqueSort(v.merge(this.get(),v(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),v.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return B(t,"parentNode")},parentsUntil:function(t,e,o){return B(t,"parentNode",o)},next:function(t){return k(t,"nextSibling")},prev:function(t){return k(t,"previousSibling")},nextAll:function(t){return B(t,"nextSibling")},prevAll:function(t){return B(t,"previousSibling")},nextUntil:function(t,e,o){return B(t,"nextSibling",o)},prevUntil:function(t,e,o){return B(t,"previousSibling",o)},siblings:function(t){return L((t.parentNode||{}).firstChild,t)},children:function(t){return L(t.firstChild)},contents:function(t){return null!=t.contentDocument&&M(t.contentDocument)?t.contentDocument:(_(t,"template")&&(t=t.content||t),v.merge([],t.childNodes))}},(function(t,e){v.fn[t]=function(o,p){var b=v.map(this,e,o);return"Until"!==t.slice(-5)&&(p=o),p&&"string"==typeof p&&(b=v.filter(p,b)),this.length>1&&(S[t]||v.uniqueSort(b),C.test(t)&&b.reverse()),this.pushStack(b)}}));var E=/[^\x20\t\r\n\f]+/g;function D(t){return t}function P(t){throw t}function j(t,e,o,p){var b;try{t&&u(b=t.promise)?b.call(t).done(e).fail(o):t&&u(b=t.then)?b.call(t,e,o):e.apply(void 0,[t].slice(p))}catch(t){o.apply(void 0,[t])}}v.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return v.each(t.match(E)||[],(function(t,o){e[o]=!0})),e}(t):v.extend({},t);var e,o,p,b,n=[],M=[],z=-1,c=function(){for(b=b||t.once,p=e=!0;M.length;z=-1)for(o=M.shift();++z-1;)n.splice(o,1),o<=z&&z--})),this},has:function(t){return t?v.inArray(t,n)>-1:n.length>0},empty:function(){return n&&(n=[]),this},disable:function(){return b=M=[],n=o="",this},disabled:function(){return!n},lock:function(){return b=M=[],o||e||(n=o=""),this},locked:function(){return!!b},fireWith:function(t,o){return b||(o=[t,(o=o||[]).slice?o.slice():o],M.push(o),e||c()),this},fire:function(){return r.fireWith(this,arguments),this},fired:function(){return!!p}};return r},v.extend({Deferred:function(t){var e=[["notify","progress",v.Callbacks("memory"),v.Callbacks("memory"),2],["resolve","done",v.Callbacks("once memory"),v.Callbacks("once memory"),0,"resolved"],["reject","fail",v.Callbacks("once memory"),v.Callbacks("once memory"),1,"rejected"]],o="pending",b={state:function(){return o},always:function(){return n.done(arguments).fail(arguments),this},catch:function(t){return b.then(null,t)},pipe:function(){var t=arguments;return v.Deferred((function(o){v.each(e,(function(e,p){var b=u(t[p[4]])&&t[p[4]];n[p[1]]((function(){var t=b&&b.apply(this,arguments);t&&u(t.promise)?t.promise().progress(o.notify).done(o.resolve).fail(o.reject):o[p[0]+"With"](this,b?[t]:arguments)}))})),t=null})).promise()},then:function(t,o,b){var n=0;function M(t,e,o,b){return function(){var z=this,c=arguments,r=function(){var p,r;if(!(t=n&&(o!==P&&(z=void 0,c=[p]),e.rejectWith(z,c))}};t?i():(v.Deferred.getStackHook&&(i.stackTrace=v.Deferred.getStackHook()),p.setTimeout(i))}}return v.Deferred((function(p){e[0][3].add(M(0,p,u(b)?b:D,p.notifyWith)),e[1][3].add(M(0,p,u(t)?t:D)),e[2][3].add(M(0,p,u(o)?o:P))})).promise()},promise:function(t){return null!=t?v.extend(t,b):b}},n={};return v.each(e,(function(t,p){var M=p[2],z=p[5];b[p[1]]=M.add,z&&M.add((function(){o=z}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),M.add(p[3].fire),n[p[0]]=function(){return n[p[0]+"With"](this===n?void 0:this,arguments),this},n[p[0]+"With"]=M.fireWith})),b.promise(n),t&&t.call(n,n),n},when:function(t){var e=arguments.length,o=e,p=Array(o),b=z.call(arguments),n=v.Deferred(),M=function(t){return function(o){p[t]=this,b[t]=arguments.length>1?z.call(arguments):o,--e||n.resolveWith(p,b)}};if(e<=1&&(j(t,n.done(M(o)).resolve,n.reject,!e),"pending"===n.state()||u(b[o]&&b[o].then)))return n.then();for(;o--;)j(b[o],M(o),n.reject);return n.promise()}});var I=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;v.Deferred.exceptionHook=function(t,e){p.console&&p.console.warn&&t&&I.test(t.name)&&p.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},v.readyException=function(t){p.setTimeout((function(){throw t}))};var F=v.Deferred();function H(){q.removeEventListener("DOMContentLoaded",H),p.removeEventListener("load",H),v.ready()}v.fn.ready=function(t){return F.then(t).catch((function(t){v.readyException(t)})),this},v.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--v.readyWait:v.isReady)||(v.isReady=!0,!0!==t&&--v.readyWait>0||F.resolveWith(q,[v]))}}),v.ready.then=F.then,"complete"===q.readyState||"loading"!==q.readyState&&!q.documentElement.doScroll?p.setTimeout(v.ready):(q.addEventListener("DOMContentLoaded",H),p.addEventListener("load",H));var U=function(t,e,o,p,b,n,M){var z=0,c=t.length,r=null==o;if("object"===m(o))for(z in b=!0,o)U(t,e,z,o[z],!0,n,M);else if(void 0!==p&&(b=!0,u(p)||(M=!0),r&&(M?(e.call(t,p),e=null):(r=e,e=function(t,e,o){return r.call(v(t),o)})),e))for(;z1,null,!0)},removeData:function(t){return this.each((function(){Z.remove(this,t)}))}}),v.extend({queue:function(t,e,o){var p;if(t)return e=(e||"fx")+"queue",p=Q.get(t,e),o&&(!p||Array.isArray(o)?p=Q.access(t,e,v.makeArray(o)):p.push(o)),p||[]},dequeue:function(t,e){e=e||"fx";var o=v.queue(t,e),p=o.length,b=o.shift(),n=v._queueHooks(t,e);"inprogress"===b&&(b=o.shift(),p--),b&&("fx"===e&&o.unshift("inprogress"),delete n.stop,b.call(t,(function(){v.dequeue(t,e)}),n)),!p&&n&&n.empty.fire()},_queueHooks:function(t,e){var o=e+"queueHooks";return Q.get(t,o)||Q.access(t,o,{empty:v.Callbacks("once memory").add((function(){Q.remove(t,[e+"queue",o])}))})}}),v.fn.extend({queue:function(t,e){var o=2;return"string"!=typeof t&&(e=t,t="fx",o--),arguments.length\x20\t\r\n\f]*)/i,ft=/^$|^module$|\/(?:java|ecma)script/i;lt=q.createDocumentFragment().appendChild(q.createElement("div")),(dt=q.createElement("input")).setAttribute("type","radio"),dt.setAttribute("checked","checked"),dt.setAttribute("name","t"),lt.appendChild(dt),A.checkClone=lt.cloneNode(!0).cloneNode(!0).lastChild.checked,lt.innerHTML="",A.noCloneChecked=!!lt.cloneNode(!0).lastChild.defaultValue,lt.innerHTML="",A.option=!!lt.lastChild;var qt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ht(t,e){var o;return o=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&_(t,e)?v.merge([t],o):o}function Wt(t,e){for(var o=0,p=t.length;o",""]);var mt=/<|&#?\w+;/;function gt(t,e,o,p,b){for(var n,M,z,c,r,i,a=e.createDocumentFragment(),O=[],s=0,l=t.length;s-1)b&&b.push(n);else if(r=zt(n),M=ht(a.appendChild(n),"script"),r&&Wt(M),o)for(i=0;n=M[i++];)ft.test(n.type||"")&&o.push(n);return a}var vt=/^([^.]*)(?:\.(.+)|)/;function Rt(){return!0}function yt(){return!1}function Bt(t,e){return t===function(){try{return q.activeElement}catch(t){}}()==("focus"===e)}function Lt(t,e,o,p,b,n){var M,z;if("object"==typeof e){for(z in"string"!=typeof o&&(p=p||o,o=void 0),e)Lt(t,z,o,p,e[z],n);return t}if(null==p&&null==b?(b=o,p=o=void 0):null==b&&("string"==typeof o?(b=p,p=void 0):(b=p,p=o,o=void 0)),!1===b)b=yt;else if(!b)return t;return 1===n&&(M=b,b=function(t){return v().off(t),M.apply(this,arguments)},b.guid=M.guid||(M.guid=v.guid++)),t.each((function(){v.event.add(this,e,b,p,o)}))}function Xt(t,e,o){o?(Q.set(t,e,!1),v.event.add(t,e,{namespace:!1,handler:function(t){var p,b,n=Q.get(this,e);if(1&t.isTrigger&&this[e]){if(n.length)(v.event.special[e]||{}).delegateType&&t.stopPropagation();else if(n=z.call(arguments),Q.set(this,e,n),p=o(this,e),this[e](),n!==(b=Q.get(this,e))||p?Q.set(this,e,!1):b={},n!==b)return t.stopImmediatePropagation(),t.preventDefault(),b&&b.value}else n.length&&(Q.set(this,e,{value:v.event.trigger(v.extend(n[0],v.Event.prototype),n.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Q.get(t,e)&&v.event.add(t,e,Rt)}v.event={global:{},add:function(t,e,o,p,b){var n,M,z,c,r,i,a,O,s,l,d,A=Q.get(t);if(J(t))for(o.handler&&(o=(n=o).handler,b=n.selector),b&&v.find.matchesSelector(Mt,b),o.guid||(o.guid=v.guid++),(c=A.events)||(c=A.events=Object.create(null)),(M=A.handle)||(M=A.handle=function(e){return void 0!==v&&v.event.triggered!==e.type?v.event.dispatch.apply(t,arguments):void 0}),r=(e=(e||"").match(E)||[""]).length;r--;)s=d=(z=vt.exec(e[r])||[])[1],l=(z[2]||"").split(".").sort(),s&&(a=v.event.special[s]||{},s=(b?a.delegateType:a.bindType)||s,a=v.event.special[s]||{},i=v.extend({type:s,origType:d,data:p,handler:o,guid:o.guid,selector:b,needsContext:b&&v.expr.match.needsContext.test(b),namespace:l.join(".")},n),(O=c[s])||((O=c[s]=[]).delegateCount=0,a.setup&&!1!==a.setup.call(t,p,l,M)||t.addEventListener&&t.addEventListener(s,M)),a.add&&(a.add.call(t,i),i.handler.guid||(i.handler.guid=o.guid)),b?O.splice(O.delegateCount++,0,i):O.push(i),v.event.global[s]=!0)},remove:function(t,e,o,p,b){var n,M,z,c,r,i,a,O,s,l,d,A=Q.hasData(t)&&Q.get(t);if(A&&(c=A.events)){for(r=(e=(e||"").match(E)||[""]).length;r--;)if(s=d=(z=vt.exec(e[r])||[])[1],l=(z[2]||"").split(".").sort(),s){for(a=v.event.special[s]||{},O=c[s=(p?a.delegateType:a.bindType)||s]||[],z=z[2]&&new RegExp("(^|\\.)"+l.join("\\.(?:.*\\.|)")+"(\\.|$)"),M=n=O.length;n--;)i=O[n],!b&&d!==i.origType||o&&o.guid!==i.guid||z&&!z.test(i.namespace)||p&&p!==i.selector&&("**"!==p||!i.selector)||(O.splice(n,1),i.selector&&O.delegateCount--,a.remove&&a.remove.call(t,i));M&&!O.length&&(a.teardown&&!1!==a.teardown.call(t,l,A.handle)||v.removeEvent(t,s,A.handle),delete c[s])}else for(s in c)v.event.remove(t,s+e[r],o,p,!0);v.isEmptyObject(c)&&Q.remove(t,"handle events")}},dispatch:function(t){var e,o,p,b,n,M,z=new Array(arguments.length),c=v.event.fix(t),r=(Q.get(this,"events")||Object.create(null))[c.type]||[],i=v.event.special[c.type]||{};for(z[0]=c,e=1;e=1))for(;r!==this;r=r.parentNode||this)if(1===r.nodeType&&("click"!==t.type||!0!==r.disabled)){for(n=[],M={},o=0;o-1:v.find(b,this,null,[r]).length),M[b]&&n.push(p);n.length&&z.push({elem:r,handlers:n})}return r=this,c\s*$/g;function xt(t,e){return _(t,"table")&&_(11!==e.nodeType?e:e.firstChild,"tr")&&v(t).children("tbody")[0]||t}function Tt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Ct(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function St(t,e){var o,p,b,n,M,z;if(1===e.nodeType){if(Q.hasData(t)&&(z=Q.get(t).events))for(b in Q.remove(e,"handle events"),z)for(o=0,p=z[b].length;o1&&"string"==typeof l&&!A.checkClone&&Nt.test(l))return t.each((function(b){var n=t.eq(b);d&&(e[0]=l.call(this,b,n.html())),Et(n,e,o,p)}));if(O&&(n=(b=gt(e,t[0].ownerDocument,!1,t,p)).firstChild,1===b.childNodes.length&&(b=n),n||p)){for(z=(M=v.map(ht(b,"script"),Tt)).length;a0&&Wt(M,!c&&ht(t,"script")),z},cleanData:function(t){for(var e,o,p,b=v.event.special,n=0;void 0!==(o=t[n]);n++)if(J(o)){if(e=o[Q.expando]){if(e.events)for(p in e.events)b[p]?v.event.remove(o,p):v.removeEvent(o,p,e.handle);o[Q.expando]=void 0}o[Z.expando]&&(o[Z.expando]=void 0)}}}),v.fn.extend({detach:function(t){return Dt(this,t,!0)},remove:function(t){return Dt(this,t)},text:function(t){return U(this,(function(t){return void 0===t?v.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Et(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||xt(this,t).appendChild(t)}))},prepend:function(){return Et(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=xt(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Et(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Et(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(v.cleanData(ht(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return v.clone(this,t,e)}))},html:function(t){return U(this,(function(t){var e=this[0]||{},o=0,p=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!_t.test(t)&&!qt[(ut.exec(t)||["",""])[1].toLowerCase()]){t=v.htmlPrefilter(t);try{for(;o=0&&(c+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-n-c-z-.5))||0),c}function pe(t,e,o){var p=It(t),b=(!A.boxSizingReliable()||o)&&"border-box"===v.css(t,"boxSizing",!1,p),n=b,M=Vt(t,e,p),z="offset"+e[0].toUpperCase()+e.slice(1);if(Pt.test(M)){if(!o)return M;M="auto"}return(!A.boxSizingReliable()&&b||!A.reliableTrDimensions()&&_(t,"tr")||"auto"===M||!parseFloat(M)&&"inline"===v.css(t,"display",!1,p))&&t.getClientRects().length&&(b="border-box"===v.css(t,"boxSizing",!1,p),(n=z in t)&&(M=t[z])),(M=parseFloat(M)||0)+oe(t,e,o||(b?"border":"content"),n,p,M)+"px"}function be(t,e,o,p,b){return new be.prototype.init(t,e,o,p,b)}v.extend({cssHooks:{opacity:{get:function(t,e){if(e){var o=Vt(t,"opacity");return""===o?"1":o}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,o,p){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var b,n,M,z=G(e),c=jt.test(e),r=t.style;if(c||(e=Kt(z)),M=v.cssHooks[e]||v.cssHooks[z],void 0===o)return M&&"get"in M&&void 0!==(b=M.get(t,!1,p))?b:r[e];"string"===(n=typeof o)&&(b=bt.exec(o))&&b[1]&&(o=it(t,e,b),n="number"),null!=o&&o==o&&("number"!==n||c||(o+=b&&b[3]||(v.cssNumber[z]?"":"px")),A.clearCloneStyle||""!==o||0!==e.indexOf("background")||(r[e]="inherit"),M&&"set"in M&&void 0===(o=M.set(t,o,p))||(c?r.setProperty(e,o):r[e]=o))}},css:function(t,e,o,p){var b,n,M,z=G(e);return jt.test(e)||(e=Kt(z)),(M=v.cssHooks[e]||v.cssHooks[z])&&"get"in M&&(b=M.get(t,!0,o)),void 0===b&&(b=Vt(t,e,p)),"normal"===b&&e in te&&(b=te[e]),""===o||o?(n=parseFloat(b),!0===o||isFinite(n)?n||0:b):b}}),v.each(["height","width"],(function(t,e){v.cssHooks[e]={get:function(t,o,p){if(o)return!Qt.test(v.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?pe(t,e,p):Ft(t,Zt,(function(){return pe(t,e,p)}))},set:function(t,o,p){var b,n=It(t),M=!A.scrollboxSize()&&"absolute"===n.position,z=(M||p)&&"border-box"===v.css(t,"boxSizing",!1,n),c=p?oe(t,e,p,z,n):0;return z&&M&&(c-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(n[e])-oe(t,e,"border",!1,n)-.5)),c&&(b=bt.exec(o))&&"px"!==(b[3]||"px")&&(t.style[e]=o,o=v.css(t,e)),ee(0,o,c)}}})),v.cssHooks.marginLeft=$t(A.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Vt(t,"marginLeft"))||t.getBoundingClientRect().left-Ft(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),v.each({margin:"",padding:"",border:"Width"},(function(t,e){v.cssHooks[t+e]={expand:function(o){for(var p=0,b={},n="string"==typeof o?o.split(" "):[o];p<4;p++)b[t+nt[p]+e]=n[p]||n[p-2]||n[0];return b}},"margin"!==t&&(v.cssHooks[t+e].set=ee)})),v.fn.extend({css:function(t,e){return U(this,(function(t,e,o){var p,b,n={},M=0;if(Array.isArray(e)){for(p=It(t),b=e.length;M1)}}),v.Tween=be,be.prototype={constructor:be,init:function(t,e,o,p,b,n){this.elem=t,this.prop=o,this.easing=b||v.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=p,this.unit=n||(v.cssNumber[o]?"":"px")},cur:function(){var t=be.propHooks[this.prop];return t&&t.get?t.get(this):be.propHooks._default.get(this)},run:function(t){var e,o=be.propHooks[this.prop];return this.options.duration?this.pos=e=v.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),o&&o.set?o.set(this):be.propHooks._default.set(this),this}},be.prototype.init.prototype=be.prototype,be.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=v.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){v.fx.step[t.prop]?v.fx.step[t.prop](t):1!==t.elem.nodeType||!v.cssHooks[t.prop]&&null==t.elem.style[Kt(t.prop)]?t.elem[t.prop]=t.now:v.style(t.elem,t.prop,t.now+t.unit)}}},be.propHooks.scrollTop=be.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},v.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},v.fx=be.prototype.init,v.fx.step={};var ne,Me,ze=/^(?:toggle|show|hide)$/,ce=/queueHooks$/;function re(){Me&&(!1===q.hidden&&p.requestAnimationFrame?p.requestAnimationFrame(re):p.setTimeout(re,v.fx.interval),v.fx.tick())}function ie(){return p.setTimeout((function(){ne=void 0})),ne=Date.now()}function ae(t,e){var o,p=0,b={height:t};for(e=e?1:0;p<4;p+=2-e)b["margin"+(o=nt[p])]=b["padding"+o]=t;return e&&(b.opacity=b.width=t),b}function Oe(t,e,o){for(var p,b=(se.tweeners[e]||[]).concat(se.tweeners["*"]),n=0,M=b.length;n1)},removeAttr:function(t){return this.each((function(){v.removeAttr(this,t)}))}}),v.extend({attr:function(t,e,o){var p,b,n=t.nodeType;if(3!==n&&8!==n&&2!==n)return void 0===t.getAttribute?v.prop(t,e,o):(1===n&&v.isXMLDoc(t)||(b=v.attrHooks[e.toLowerCase()]||(v.expr.match.bool.test(e)?le:void 0)),void 0!==o?null===o?void v.removeAttr(t,e):b&&"set"in b&&void 0!==(p=b.set(t,o,e))?p:(t.setAttribute(e,o+""),o):b&&"get"in b&&null!==(p=b.get(t,e))?p:null==(p=v.find.attr(t,e))?void 0:p)},attrHooks:{type:{set:function(t,e){if(!A.radioValue&&"radio"===e&&_(t,"input")){var o=t.value;return t.setAttribute("type",e),o&&(t.value=o),e}}}},removeAttr:function(t,e){var o,p=0,b=e&&e.match(E);if(b&&1===t.nodeType)for(;o=b[p++];)t.removeAttribute(o)}}),le={set:function(t,e,o){return!1===e?v.removeAttr(t,o):t.setAttribute(o,o),o}},v.each(v.expr.match.bool.source.match(/\w+/g),(function(t,e){var o=de[e]||v.find.attr;de[e]=function(t,e,p){var b,n,M=e.toLowerCase();return p||(n=de[M],de[M]=b,b=null!=o(t,e,p)?M:null,de[M]=n),b}}));var Ae=/^(?:input|select|textarea|button)$/i,ue=/^(?:a|area)$/i;function fe(t){return(t.match(E)||[]).join(" ")}function qe(t){return t.getAttribute&&t.getAttribute("class")||""}function he(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(E)||[]}v.fn.extend({prop:function(t,e){return U(this,v.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[v.propFix[t]||t]}))}}),v.extend({prop:function(t,e,o){var p,b,n=t.nodeType;if(3!==n&&8!==n&&2!==n)return 1===n&&v.isXMLDoc(t)||(e=v.propFix[e]||e,b=v.propHooks[e]),void 0!==o?b&&"set"in b&&void 0!==(p=b.set(t,o,e))?p:t[e]=o:b&&"get"in b&&null!==(p=b.get(t,e))?p:t[e]},propHooks:{tabIndex:{get:function(t){var e=v.find.attr(t,"tabindex");return e?parseInt(e,10):Ae.test(t.nodeName)||ue.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),A.optSelected||(v.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),v.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){v.propFix[this.toLowerCase()]=this})),v.fn.extend({addClass:function(t){var e,o,p,b,n,M;return u(t)?this.each((function(e){v(this).addClass(t.call(this,e,qe(this)))})):(e=he(t)).length?this.each((function(){if(p=qe(this),o=1===this.nodeType&&" "+fe(p)+" "){for(n=0;n-1;)o=o.replace(" "+b+" "," ");M=fe(o),p!==M&&this.setAttribute("class",M)}})):this:this.attr("class","")},toggleClass:function(t,e){var o,p,b,n,M=typeof t,z="string"===M||Array.isArray(t);return u(t)?this.each((function(o){v(this).toggleClass(t.call(this,o,qe(this),e),e)})):"boolean"==typeof e&&z?e?this.addClass(t):this.removeClass(t):(o=he(t),this.each((function(){if(z)for(n=v(this),b=0;b-1)return!0;return!1}});var We=/\r/g;v.fn.extend({val:function(t){var e,o,p,b=this[0];return arguments.length?(p=u(t),this.each((function(o){var b;1===this.nodeType&&(null==(b=p?t.call(this,o,v(this).val()):t)?b="":"number"==typeof b?b+="":Array.isArray(b)&&(b=v.map(b,(function(t){return null==t?"":t+""}))),(e=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,b,"value")||(this.value=b))}))):b?(e=v.valHooks[b.type]||v.valHooks[b.nodeName.toLowerCase()])&&"get"in e&&void 0!==(o=e.get(b,"value"))?o:"string"==typeof(o=b.value)?o.replace(We,""):null==o?"":o:void 0}}),v.extend({valHooks:{option:{get:function(t){var e=v.find.attr(t,"value");return null!=e?e:fe(v.text(t))}},select:{get:function(t){var e,o,p,b=t.options,n=t.selectedIndex,M="select-one"===t.type,z=M?null:[],c=M?n+1:b.length;for(p=n<0?c:M?n:0;p-1)&&(o=!0);return o||(t.selectedIndex=-1),n}}}}),v.each(["radio","checkbox"],(function(){v.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=v.inArray(v(t).val(),e)>-1}},A.checkOn||(v.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})})),A.focusin="onfocusin"in p;var me=/^(?:focusinfocus|focusoutblur)$/,ge=function(t){t.stopPropagation()};v.extend(v.event,{trigger:function(t,e,o,b){var n,M,z,c,r,i,a,O,l=[o||q],d=s.call(t,"type")?t.type:t,A=s.call(t,"namespace")?t.namespace.split("."):[];if(M=O=z=o=o||q,3!==o.nodeType&&8!==o.nodeType&&!me.test(d+v.event.triggered)&&(d.indexOf(".")>-1&&(A=d.split("."),d=A.shift(),A.sort()),r=d.indexOf(":")<0&&"on"+d,(t=t[v.expando]?t:new v.Event(d,"object"==typeof t&&t)).isTrigger=b?2:3,t.namespace=A.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+A.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=o),e=null==e?[t]:v.makeArray(e,[t]),a=v.event.special[d]||{},b||!a.trigger||!1!==a.trigger.apply(o,e))){if(!b&&!a.noBubble&&!f(o)){for(c=a.delegateType||d,me.test(c+d)||(M=M.parentNode);M;M=M.parentNode)l.push(M),z=M;z===(o.ownerDocument||q)&&l.push(z.defaultView||z.parentWindow||p)}for(n=0;(M=l[n++])&&!t.isPropagationStopped();)O=M,t.type=n>1?c:a.bindType||d,(i=(Q.get(M,"events")||Object.create(null))[t.type]&&Q.get(M,"handle"))&&i.apply(M,e),(i=r&&M[r])&&i.apply&&J(M)&&(t.result=i.apply(M,e),!1===t.result&&t.preventDefault());return t.type=d,b||t.isDefaultPrevented()||a._default&&!1!==a._default.apply(l.pop(),e)||!J(o)||r&&u(o[d])&&!f(o)&&((z=o[r])&&(o[r]=null),v.event.triggered=d,t.isPropagationStopped()&&O.addEventListener(d,ge),o[d](),t.isPropagationStopped()&&O.removeEventListener(d,ge),v.event.triggered=void 0,z&&(o[r]=z)),t.result}},simulate:function(t,e,o){var p=v.extend(new v.Event,o,{type:t,isSimulated:!0});v.event.trigger(p,null,e)}}),v.fn.extend({trigger:function(t,e){return this.each((function(){v.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var o=this[0];if(o)return v.event.trigger(t,e,o,!0)}}),A.focusin||v.each({focus:"focusin",blur:"focusout"},(function(t,e){var o=function(t){v.event.simulate(e,t.target,v.event.fix(t))};v.event.special[e]={setup:function(){var p=this.ownerDocument||this.document||this,b=Q.access(p,e);b||p.addEventListener(t,o,!0),Q.access(p,e,(b||0)+1)},teardown:function(){var p=this.ownerDocument||this.document||this,b=Q.access(p,e)-1;b?Q.access(p,e,b):(p.removeEventListener(t,o,!0),Q.remove(p,e))}}}));var ve=p.location,Re={guid:Date.now()},ye=/\?/;v.parseXML=function(t){var e,o;if(!t||"string"!=typeof t)return null;try{e=(new p.DOMParser).parseFromString(t,"text/xml")}catch(t){}return o=e&&e.getElementsByTagName("parsererror")[0],e&&!o||v.error("Invalid XML: "+(o?v.map(o.childNodes,(function(t){return t.textContent})).join("\n"):t)),e};var Be=/\[\]$/,Le=/\r?\n/g,Xe=/^(?:submit|button|image|reset|file)$/i,_e=/^(?:input|select|textarea|keygen)/i;function Ne(t,e,o,p){var b;if(Array.isArray(e))v.each(e,(function(e,b){o||Be.test(t)?p(t,b):Ne(t+"["+("object"==typeof b&&null!=b?e:"")+"]",b,o,p)}));else if(o||"object"!==m(e))p(t,e);else for(b in e)Ne(t+"["+b+"]",e[b],o,p)}v.param=function(t,e){var o,p=[],b=function(t,e){var o=u(e)?e():e;p[p.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==o?"":o)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!v.isPlainObject(t))v.each(t,(function(){b(this.name,this.value)}));else for(o in t)Ne(o,t[o],e,b);return p.join("&")},v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=v.prop(this,"elements");return t?v.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!v(this).is(":disabled")&&_e.test(this.nodeName)&&!Xe.test(t)&&(this.checked||!At.test(t))})).map((function(t,e){var o=v(this).val();return null==o?null:Array.isArray(o)?v.map(o,(function(t){return{name:e.name,value:t.replace(Le,"\r\n")}})):{name:e.name,value:o.replace(Le,"\r\n")}})).get()}});var we=/%20/g,xe=/#.*$/,Te=/([?&])_=[^&]*/,Ce=/^(.*?):[ \t]*([^\r\n]*)$/gm,Se=/^(?:GET|HEAD)$/,ke=/^\/\//,Ee={},De={},Pe="*/".concat("*"),je=q.createElement("a");function Ie(t){return function(e,o){"string"!=typeof e&&(o=e,e="*");var p,b=0,n=e.toLowerCase().match(E)||[];if(u(o))for(;p=n[b++];)"+"===p[0]?(p=p.slice(1)||"*",(t[p]=t[p]||[]).unshift(o)):(t[p]=t[p]||[]).push(o)}}function Fe(t,e,o,p){var b={},n=t===De;function M(z){var c;return b[z]=!0,v.each(t[z]||[],(function(t,z){var r=z(e,o,p);return"string"!=typeof r||n||b[r]?n?!(c=r):void 0:(e.dataTypes.unshift(r),M(r),!1)})),c}return M(e.dataTypes[0])||!b["*"]&&M("*")}function He(t,e){var o,p,b=v.ajaxSettings.flatOptions||{};for(o in e)void 0!==e[o]&&((b[o]?t:p||(p={}))[o]=e[o]);return p&&v.extend(!0,t,p),t}je.href=ve.href,v.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ve.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ve.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Pe,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":v.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?He(He(t,v.ajaxSettings),e):He(v.ajaxSettings,t)},ajaxPrefilter:Ie(Ee),ajaxTransport:Ie(De),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var o,b,n,M,z,c,r,i,a,O,s=v.ajaxSetup({},e),l=s.context||s,d=s.context&&(l.nodeType||l.jquery)?v(l):v.event,A=v.Deferred(),u=v.Callbacks("once memory"),f=s.statusCode||{},h={},W={},m="canceled",g={readyState:0,getResponseHeader:function(t){var e;if(r){if(!M)for(M={};e=Ce.exec(n);)M[e[1].toLowerCase()+" "]=(M[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=M[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return r?n:null},setRequestHeader:function(t,e){return null==r&&(t=W[t.toLowerCase()]=W[t.toLowerCase()]||t,h[t]=e),this},overrideMimeType:function(t){return null==r&&(s.mimeType=t),this},statusCode:function(t){var e;if(t)if(r)g.always(t[g.status]);else for(e in t)f[e]=[f[e],t[e]];return this},abort:function(t){var e=t||m;return o&&o.abort(e),R(0,e),this}};if(A.promise(g),s.url=((t||s.url||ve.href)+"").replace(ke,ve.protocol+"//"),s.type=e.method||e.type||s.method||s.type,s.dataTypes=(s.dataType||"*").toLowerCase().match(E)||[""],null==s.crossDomain){c=q.createElement("a");try{c.href=s.url,c.href=c.href,s.crossDomain=je.protocol+"//"+je.host!=c.protocol+"//"+c.host}catch(t){s.crossDomain=!0}}if(s.data&&s.processData&&"string"!=typeof s.data&&(s.data=v.param(s.data,s.traditional)),Fe(Ee,s,e,g),r)return g;for(a in(i=v.event&&s.global)&&0==v.active++&&v.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!Se.test(s.type),b=s.url.replace(xe,""),s.hasContent?s.data&&s.processData&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&(s.data=s.data.replace(we,"+")):(O=s.url.slice(b.length),s.data&&(s.processData||"string"==typeof s.data)&&(b+=(ye.test(b)?"&":"?")+s.data,delete s.data),!1===s.cache&&(b=b.replace(Te,"$1"),O=(ye.test(b)?"&":"?")+"_="+Re.guid+++O),s.url=b+O),s.ifModified&&(v.lastModified[b]&&g.setRequestHeader("If-Modified-Since",v.lastModified[b]),v.etag[b]&&g.setRequestHeader("If-None-Match",v.etag[b])),(s.data&&s.hasContent&&!1!==s.contentType||e.contentType)&&g.setRequestHeader("Content-Type",s.contentType),g.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+Pe+"; q=0.01":""):s.accepts["*"]),s.headers)g.setRequestHeader(a,s.headers[a]);if(s.beforeSend&&(!1===s.beforeSend.call(l,g,s)||r))return g.abort();if(m="abort",u.add(s.complete),g.done(s.success),g.fail(s.error),o=Fe(De,s,e,g)){if(g.readyState=1,i&&d.trigger("ajaxSend",[g,s]),r)return g;s.async&&s.timeout>0&&(z=p.setTimeout((function(){g.abort("timeout")}),s.timeout));try{r=!1,o.send(h,R)}catch(t){if(r)throw t;R(-1,t)}}else R(-1,"No Transport");function R(t,e,M,c){var a,O,q,h,W,m=e;r||(r=!0,z&&p.clearTimeout(z),o=void 0,n=c||"",g.readyState=t>0?4:0,a=t>=200&&t<300||304===t,M&&(h=function(t,e,o){for(var p,b,n,M,z=t.contents,c=t.dataTypes;"*"===c[0];)c.shift(),void 0===p&&(p=t.mimeType||e.getResponseHeader("Content-Type"));if(p)for(b in z)if(z[b]&&z[b].test(p)){c.unshift(b);break}if(c[0]in o)n=c[0];else{for(b in o){if(!c[0]||t.converters[b+" "+c[0]]){n=b;break}M||(M=b)}n=n||M}if(n)return n!==c[0]&&c.unshift(n),o[n]}(s,g,M)),!a&&v.inArray("script",s.dataTypes)>-1&&v.inArray("json",s.dataTypes)<0&&(s.converters["text script"]=function(){}),h=function(t,e,o,p){var b,n,M,z,c,r={},i=t.dataTypes.slice();if(i[1])for(M in t.converters)r[M.toLowerCase()]=t.converters[M];for(n=i.shift();n;)if(t.responseFields[n]&&(o[t.responseFields[n]]=e),!c&&p&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),c=n,n=i.shift())if("*"===n)n=c;else if("*"!==c&&c!==n){if(!(M=r[c+" "+n]||r["* "+n]))for(b in r)if((z=b.split(" "))[1]===n&&(M=r[c+" "+z[0]]||r["* "+z[0]])){!0===M?M=r[b]:!0!==r[b]&&(n=z[0],i.unshift(z[1]));break}if(!0!==M)if(M&&t.throws)e=M(e);else try{e=M(e)}catch(t){return{state:"parsererror",error:M?t:"No conversion from "+c+" to "+n}}}return{state:"success",data:e}}(s,h,g,a),a?(s.ifModified&&((W=g.getResponseHeader("Last-Modified"))&&(v.lastModified[b]=W),(W=g.getResponseHeader("etag"))&&(v.etag[b]=W)),204===t||"HEAD"===s.type?m="nocontent":304===t?m="notmodified":(m=h.state,O=h.data,a=!(q=h.error))):(q=m,!t&&m||(m="error",t<0&&(t=0))),g.status=t,g.statusText=(e||m)+"",a?A.resolveWith(l,[O,m,g]):A.rejectWith(l,[g,m,q]),g.statusCode(f),f=void 0,i&&d.trigger(a?"ajaxSuccess":"ajaxError",[g,s,a?O:q]),u.fireWith(l,[g,m]),i&&(d.trigger("ajaxComplete",[g,s]),--v.active||v.event.trigger("ajaxStop")))}return g},getJSON:function(t,e,o){return v.get(t,e,o,"json")},getScript:function(t,e){return v.get(t,void 0,e,"script")}}),v.each(["get","post"],(function(t,e){v[e]=function(t,o,p,b){return u(o)&&(b=b||p,p=o,o=void 0),v.ajax(v.extend({url:t,type:e,dataType:b,data:o,success:p},v.isPlainObject(t)&&t))}})),v.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),v._evalUrl=function(t,e,o){return v.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){v.globalEval(t,e,o)}})},v.fn.extend({wrapAll:function(t){var e;return this[0]&&(u(t)&&(t=t.call(this[0])),e=v(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return u(t)?this.each((function(e){v(this).wrapInner(t.call(this,e))})):this.each((function(){var e=v(this),o=e.contents();o.length?o.wrapAll(t):e.append(t)}))},wrap:function(t){var e=u(t);return this.each((function(o){v(this).wrapAll(e?t.call(this,o):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){v(this).replaceWith(this.childNodes)})),this}}),v.expr.pseudos.hidden=function(t){return!v.expr.pseudos.visible(t)},v.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},v.ajaxSettings.xhr=function(){try{return new p.XMLHttpRequest}catch(t){}};var Ue={0:200,1223:204},Ve=v.ajaxSettings.xhr();A.cors=!!Ve&&"withCredentials"in Ve,A.ajax=Ve=!!Ve,v.ajaxTransport((function(t){var e,o;if(A.cors||Ve&&!t.crossDomain)return{send:function(b,n){var M,z=t.xhr();if(z.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(M in t.xhrFields)z[M]=t.xhrFields[M];for(M in t.mimeType&&z.overrideMimeType&&z.overrideMimeType(t.mimeType),t.crossDomain||b["X-Requested-With"]||(b["X-Requested-With"]="XMLHttpRequest"),b)z.setRequestHeader(M,b[M]);e=function(t){return function(){e&&(e=o=z.onload=z.onerror=z.onabort=z.ontimeout=z.onreadystatechange=null,"abort"===t?z.abort():"error"===t?"number"!=typeof z.status?n(0,"error"):n(z.status,z.statusText):n(Ue[z.status]||z.status,z.statusText,"text"!==(z.responseType||"text")||"string"!=typeof z.responseText?{binary:z.response}:{text:z.responseText},z.getAllResponseHeaders()))}},z.onload=e(),o=z.onerror=z.ontimeout=e("error"),void 0!==z.onabort?z.onabort=o:z.onreadystatechange=function(){4===z.readyState&&p.setTimeout((function(){e&&o()}))},e=e("abort");try{z.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),v.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return v.globalEval(t),t}}}),v.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),v.ajaxTransport("script",(function(t){var e,o;if(t.crossDomain||t.scriptAttrs)return{send:function(p,b){e=v(" @endif @endif + + diff --git a/routes/api.php b/routes/api.php index 9f105fd26..1103da2c8 100644 --- a/routes/api.php +++ b/routes/api.php @@ -21,6 +21,18 @@ Route::get('/galleries-overview', [Api\GalleryOverviewController::class, 'index']) ->name('galleries-overview.index'); +Route::get('/nominatable-collections', [Api\NominatableCollectionController::class, 'index']) + ->name('nominatable-collections'); + +Route::get('/popular-collections', [Api\PopularCollectionController::class, 'index']) + ->name('api:popular-collections'); + +Route::get('/votable-collections', [Api\VotableCollectionController::class, 'index']) + ->name('api:votable-collections'); + +Route::get('/all-popular-collections', [Api\AllPopularCollectionController::class, 'index']) + ->name('api:all-popular-collections'); + Route::middleware('auth:sanctum')->group(function () { // Tokens... Route::get('/tokens', [Controllers\TokenController::class, 'list'])->name('tokens.list'); diff --git a/routes/web.php b/routes/web.php index e7b9b69ad..0f046f018 100644 --- a/routes/web.php +++ b/routes/web.php @@ -4,7 +4,9 @@ use App\Http\Controllers\ArticleController; use App\Http\Controllers\CollectionController; +use App\Http\Controllers\CollectionOfTheMonthController; use App\Http\Controllers\CollectionReportController; +use App\Http\Controllers\CollectionVoteController; use App\Http\Controllers\DashboardController; use App\Http\Controllers\Filament\LogoutController; use App\Http\Controllers\FilteredGalleryController; @@ -13,18 +15,20 @@ use App\Http\Controllers\GeneralSettingsController; use App\Http\Controllers\HiddenCollectionController; use App\Http\Controllers\MetaImageController; +use App\Http\Controllers\MyCollectionsController; use App\Http\Controllers\MyGalleryCollectionController; use App\Http\Controllers\MyGalleryController; use App\Http\Controllers\NftController; use App\Http\Controllers\NftReportController; use App\Http\Controllers\OnboardingController; +use App\Http\Controllers\PopularCollectionController; use App\Http\Controllers\RefreshCsrfTokenController; use App\Http\Controllers\WalletController; use App\Http\Middleware\EnsureOnboarded; use App\Http\Middleware\RecordGalleryView; use Illuminate\Support\Facades\Route; -Route::get('/', [GalleryController::class, 'index'])->name('galleries'); +Route::get('/', [CollectionController::class, 'index'])->name('collections'); Route::get('/wallet', DashboardController::class)->name('dashboard'); @@ -66,6 +70,8 @@ Route::post('{collection:address}/reports', [ CollectionReportController::class, 'store', ])->name('collection-reports.create')->middleware('throttle:collection:reports'); + + Route::post('{collection}/vote', [CollectionVoteController::class, 'store'])->name('collection-votes.create'); }); Route::group(['prefix' => 'nfts', 'middleware' => 'signed_wallet'], function () { @@ -86,15 +92,25 @@ Route::get('{article:slug}', [ArticleController::class, 'show'])->name('articles.view'); }); -Route::group(['prefix' => 'collections', 'middleware' => 'features:collections'], function () { - Route::get('', [CollectionController::class, 'index'])->name('collections')->middleware(EnsureOnboarded::class); - Route::get('{collection:slug}', [CollectionController::class, 'show'])->name('collections.view'); - Route::get('{collection:slug}/articles', [CollectionController::class, 'articles'])->name('collections.articles'); - Route::get('{collection:slug}/{nft:token_number}', [NftController::class, 'show'])->name('collection-nfts.view'); +Route::group(['middleware' => 'features:collections'], function () { + Route::group(['prefix' => 'my-collections'], function () { + Route::get('', [MyCollectionsController::class, 'index'])->name('my-collections')->middleware(EnsureOnboarded::class); + }); + + Route::group(['prefix' => 'collections'], function () { + Route::redirect('/', '/'); + + Route::get('collection-of-the-month', CollectionOfTheMonthController::class)->name('collection-of-the-month'); + Route::get('popular', [PopularCollectionController::class, 'index'])->name('popular-collections'); + + Route::get('{collection:slug}', [CollectionController::class, 'show'])->name('collections.view'); + Route::get('{collection:slug}/articles', [CollectionController::class, 'articles'])->name('collections.articles'); + Route::get('{collection:slug}/{nft:token_number}', [NftController::class, 'show'])->name('collection-nfts.view'); + }); }); Route::group(['prefix' => 'galleries', 'middleware' => 'features:galleries'], function () { - Route::redirect('/', '/'); // due to the prefix it's hard to see, but it redirects from /galleries to / + Route::get('/', [GalleryController::class, 'index'])->name('galleries'); Route::get('{filter}', [FilteredGalleryController::class, 'index']) ->name('filtered-galleries.index') diff --git a/tailwind.config.js b/tailwind.config.js index 06be81eef..679d8341d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -41,6 +41,9 @@ module.exports = { "3xl": "0px 48px 64px -36px rgba(49, 51, 63, 0.13), 0px 24px 48px -8px rgba(49, 51, 63, 0.11)", dialog: "0px 2px 6px rgba(33, 34, 37, 0.06), 0px 32px 41px -23px rgba(33, 34, 37, 0.07)", dropdown: "0px 2px 4px -2px rgba(49, 51, 63, 0.06), 0px 4px 8px -2px rgba(49, 51, 63, 0.1)", + "carousel-button-light": + "0px 1px 3px 0px rgba(33, 42, 131, 0.10), 0px 6px 6px 0px rgba(33, 42, 131, 0.09), -1px 13px 8px 0px rgba(33, 42, 131, 0.05), -2px 22px 9px 0px rgba(33, 42, 131, 0.01), -3px 35px 10px 0px rgba(33, 42, 131, 0.00)", + "carousel-button-dark": "0px 15px 35px 0px rgba(18, 18, 19, 0.40)", }, borderRadius: { @@ -214,6 +217,8 @@ module.exports = { "theme-hint-700": "rgb(var(--theme-color-hint-700) / )", "theme-hint-800": "rgb(var(--theme-color-hint-800) / )", "theme-hint-900": "rgb(var(--theme-color-hint-900) / )", + + "theme-vote-background": "rgba(var(--theme-color-vote-background) / )", }, }, diff --git a/tests/App/Console/Commands/FetchBurnActivityTest.php b/tests/App/Console/Commands/FetchBurnActivityTest.php new file mode 100644 index 000000000..8000db795 --- /dev/null +++ b/tests/App/Console/Commands/FetchBurnActivityTest.php @@ -0,0 +1,61 @@ + true, + ]); +}); + +it('dispatches a job only for collections that have previously indexed activities', function () { + Bus::fake(); + + Collection::factory()->create([ + 'activity_updated_at' => now(), + ]); + + Collection::factory()->create([ + 'activity_updated_at' => null, + ]); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 0); + + $this->artisan('collections:fetch-burn-activity'); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 1); +}); + +it('dispatches a job for a specific collection', function () { + Bus::fake(); + + $collection = Collection::factory()->create(); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 0); + + $this->artisan('collections:fetch-burn-activity', [ + '--collection-id' => $collection->id, + ]); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 1); +}); + +it('does not run if activities are disabled', function () { + Bus::fake(); + + config([ + 'dashbrd.features.activities' => false, + ]); + + Collection::factory()->create(); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 0); + + $this->artisan('collections:fetch-burn-activity'); + + Bus::assertDispatchedTimes(FetchBurnActivity::class, 0); +}); diff --git a/tests/App/Console/Commands/FetchCollectionBannerBatchTest.php b/tests/App/Console/Commands/FetchCollectionBannerBatchTest.php index 8e683dfa8..f1105b4b0 100644 --- a/tests/App/Console/Commands/FetchCollectionBannerBatchTest.php +++ b/tests/App/Console/Commands/FetchCollectionBannerBatchTest.php @@ -25,7 +25,7 @@ Bus::assertDispatchedTimes(FetchCollectionBannerBatch::class, 0); - $this->artisan('nfts:fetch-collection-banner-batch', [ + $this->artisan('collections:fetch-banner-batch', [ '--missing-only' => true, ]); @@ -46,7 +46,7 @@ Bus::assertDispatchedTimes(FetchCollectionBannerBatch::class, 0); - $this->artisan('nfts:fetch-collection-banner-batch'); + $this->artisan('collections:fetch-banner-batch'); Bus::assertDispatched(FetchCollectionBannerBatch::class, function ($job) use ($collections) { return ! in_array($collections->first()->address, $job->collectionAddresses); @@ -62,7 +62,7 @@ Bus::assertDispatchedTimes(FetchCollectionBannerBatch::class, 0); - $this->artisan('nfts:fetch-collection-banner-batch'); + $this->artisan('collections:fetch-banner-batch'); Bus::assertDispatchedTimes(FetchCollectionBannerBatch::class, 2); }); diff --git a/tests/App/Console/Commands/FetchCollectionBannerTest.php b/tests/App/Console/Commands/FetchCollectionBannerTest.php index 7a4554175..4ac99588b 100644 --- a/tests/App/Console/Commands/FetchCollectionBannerTest.php +++ b/tests/App/Console/Commands/FetchCollectionBannerTest.php @@ -14,7 +14,7 @@ Bus::assertDispatchedTimes(FetchCollectionBanner::class, 0); - $this->artisan('nfts:fetch-collection-banner', [ + $this->artisan('collections:fetch-banner', [ '--collection-id' => $collection->id, ]); @@ -24,7 +24,7 @@ it('should return error if `collection-id` flag is missing', function () { Bus::fake(); - $response = $this->artisan('nfts:fetch-collection-banner'); + $response = $this->artisan('collections:fetch-banner'); $response->assertExitCode(Command::INVALID); diff --git a/tests/App/Console/Commands/FetchCollectionFloorPriceTest.php b/tests/App/Console/Commands/FetchCollectionFloorPriceTest.php index c27b4fcea..2943b483b 100644 --- a/tests/App/Console/Commands/FetchCollectionFloorPriceTest.php +++ b/tests/App/Console/Commands/FetchCollectionFloorPriceTest.php @@ -15,7 +15,7 @@ Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 0); - $this->artisan('nfts:fetch-collection-floor-price'); + $this->artisan('collections:fetch-floor-price'); Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 3); }); @@ -29,7 +29,7 @@ Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 0); - $this->artisan('nfts:fetch-collection-floor-price'); + $this->artisan('collections:fetch-floor-price'); Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 3); @@ -50,7 +50,7 @@ Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 0); - $this->artisan('nfts:fetch-collection-floor-price'); + $this->artisan('collections:fetch-floor-price'); Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 2); }); @@ -62,7 +62,7 @@ Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 0); - $this->artisan('nfts:fetch-collection-floor-price', [ + $this->artisan('collections:fetch-floor-price', [ '--collection-id' => $collection->id, ]); @@ -81,7 +81,7 @@ Bus::assertDispatchedTimes(FetchCollectionFloorPrice::class, 0); - $this->artisan('nfts:fetch-collection-floor-price', [ + $this->artisan('collections:fetch-floor-price', [ '--collection-id' => $collection->id, ]); diff --git a/tests/App/Console/Commands/FetchCollectionMetadataTest.php b/tests/App/Console/Commands/FetchCollectionMetadataTest.php index a5e27c6c5..71c035e5f 100644 --- a/tests/App/Console/Commands/FetchCollectionMetadataTest.php +++ b/tests/App/Console/Commands/FetchCollectionMetadataTest.php @@ -16,7 +16,7 @@ Bus::assertDispatchedTimes(FetchCollectionMetadataJob::class, 0); - $this->artisan('nfts:fetch-collection-metadata'); + $this->artisan('collections:fetch-metadata'); Bus::assertDispatchedTimes(FetchCollectionMetadataJob::class, 1); }); diff --git a/tests/App/Console/Commands/FetchCollectionNftsTest.php b/tests/App/Console/Commands/FetchCollectionNftsTest.php index c3ef70e76..6952230cd 100644 --- a/tests/App/Console/Commands/FetchCollectionNftsTest.php +++ b/tests/App/Console/Commands/FetchCollectionNftsTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use App\Enums\TokenType; use App\Jobs\FetchCollectionNfts; use App\Models\Collection; use App\Models\Network; @@ -226,3 +227,22 @@ Bus::assertDispatched(FetchCollectionNfts::class, fn ($job) => $job->collection->address === $collection1->address); }); + +it('should exclude erc1155 collections', function () { + Bus::fake(); + + $network = Network::factory()->create(); + + $collection1 = Collection::factory()->create([ + 'network_id' => $network->id, + ]); + + Collection::factory()->create([ + 'network_id' => $network->id, + 'type' => TokenType::Erc1155, + ]); + + $this->artisan('collections:fetch-nfts'); + + Bus::assertDispatched(FetchCollectionNfts::class, fn ($job) => $job->collection->address === $collection1->address); +}); diff --git a/tests/App/Console/Commands/FetchCollectionOpenseaSlugTest.php b/tests/App/Console/Commands/FetchCollectionOpenseaSlugTest.php index 605633f02..eb64e701e 100644 --- a/tests/App/Console/Commands/FetchCollectionOpenseaSlugTest.php +++ b/tests/App/Console/Commands/FetchCollectionOpenseaSlugTest.php @@ -33,7 +33,7 @@ Bus::assertDispatchedTimes(FetchCollectionOpenseaSlug::class, 0); - $this->artisan('nfts:fetch-collection-opensea-slug'); + $this->artisan('collections:fetch-opensea-slug'); Bus::assertDispatchedTimes(FetchCollectionOpenseaSlug::class, 2); }); @@ -45,7 +45,7 @@ Bus::assertDispatchedTimes(FetchCollectionOpenseaSlug::class, 0); - $this->artisan('nfts:fetch-collection-opensea-slug', [ + $this->artisan('collections:fetch-opensea-slug', [ '--collection-id' => $collection->id, ]); diff --git a/tests/App/Console/Commands/FetchCollectionOwnersTest.php b/tests/App/Console/Commands/FetchCollectionOwnersTest.php index 1f1727a65..983551539 100644 --- a/tests/App/Console/Commands/FetchCollectionOwnersTest.php +++ b/tests/App/Console/Commands/FetchCollectionOwnersTest.php @@ -13,7 +13,7 @@ Bus::assertDispatchedTimes(FetchCollectionOwners::class, 0); - $this->artisan('nfts:fetch-collection-owners'); + $this->artisan('collections:fetch-owners'); Bus::assertDispatchedTimes(FetchCollectionOwners::class, 3); }); @@ -25,7 +25,7 @@ Bus::assertDispatchedTimes(FetchCollectionOwners::class, 0); - $this->artisan('nfts:fetch-collection-owners', [ + $this->artisan('collections:fetch-owners', [ '--collection-id' => $collection->id, ]); diff --git a/tests/App/Console/Commands/FetchCollectionTotalVolumeTest.php b/tests/App/Console/Commands/FetchCollectionTotalVolumeTest.php new file mode 100644 index 000000000..749317f72 --- /dev/null +++ b/tests/App/Console/Commands/FetchCollectionTotalVolumeTest.php @@ -0,0 +1,102 @@ +create([ + 'extra_attributes' => [ + 'opensea_slug' => 'some-slug', + ], + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); + + $this->artisan('collections:fetch-total-volume'); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 3); +}); + +it('should not dispatch a job for a spam collection', function () { + Bus::fake([FetchCollectionTotalVolume::class]); + + $collections = Collection::factory(3)->create([ + 'extra_attributes' => [ + 'opensea_slug' => 'some-slug', + ], + ]); + + SpamContract::query()->insert([ + 'address' => $collections->first()->address, + 'network_id' => $collections->first()->network_id, + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); + + $this->artisan('collections:fetch-total-volume'); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 2); +}); + +it('dispatches a job for a specific collection', function () { + Bus::fake([FetchCollectionTotalVolume::class]); + + $collection = Collection::factory()->create([ + 'extra_attributes' => [ + 'opensea_slug' => 'some-slug', + ], + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); + + $this->artisan('collections:fetch-total-volume', [ + '--collection-id' => $collection->id, + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 1); +}); + +it('should not dispatch a job for a given spam collection', function () { + Bus::fake([FetchCollectionTotalVolume::class]); + + $collection = Collection::factory()->create([ + 'extra_attributes' => [ + 'opensea_slug' => 'some-slug', + ], + ]); + + SpamContract::query()->insert([ + 'address' => $collection->address, + 'network_id' => $collection->network_id, + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); + + $this->artisan('collections:fetch-total-volume', [ + '--collection-id' => $collection->id, + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); +}); + +it('should not dispatch a job for collections that dont have OpenSea slug', function () { + Bus::fake([FetchCollectionTotalVolume::class]); + + $collection = Collection::factory()->create([ + 'extra_attributes' => [ + 'opensea_slug' => null, + ], + ]); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); + + $this->artisan('collections:fetch-total-volume'); + + Bus::assertDispatchedTimes(FetchCollectionTotalVolume::class, 0); +}); diff --git a/tests/App/Console/Commands/FetchCollectionTraitsTest.php b/tests/App/Console/Commands/FetchCollectionTraitsTest.php index 0a34ec074..002961dac 100644 --- a/tests/App/Console/Commands/FetchCollectionTraitsTest.php +++ b/tests/App/Console/Commands/FetchCollectionTraitsTest.php @@ -13,7 +13,7 @@ Bus::assertDispatchedTimes(FetchCollectionTraits::class, 0); - $this->artisan('nfts:fetch-collection-traits'); + $this->artisan('collections:fetch-traits'); Bus::assertDispatchedTimes(FetchCollectionTraits::class, 3); }); @@ -25,7 +25,7 @@ Bus::assertDispatchedTimes(FetchCollectionTraits::class, 0); - $this->artisan('nfts:fetch-collection-traits', [ + $this->artisan('collections:fetch-traits', [ '--collection-id' => $collection->id, ]); diff --git a/tests/App/Console/Commands/FetchCollectionVolumeHistoryTest.php b/tests/App/Console/Commands/FetchCollectionVolumeHistoryTest.php new file mode 100644 index 000000000..5202cb0cb --- /dev/null +++ b/tests/App/Console/Commands/FetchCollectionVolumeHistoryTest.php @@ -0,0 +1,33 @@ +count(3)->create(); + + Bus::assertDispatchedTimes(FetchCollectionVolumeHistory::class, 0); + + $this->artisan('collections:fetch-volume-history'); + + Bus::assertDispatchedTimes(FetchCollectionVolumeHistory::class, 3); +}); + +it('dispatches a job for a specific collection', function () { + Bus::fake(); + + $collection = Collection::factory()->create(); + + Bus::assertDispatchedTimes(FetchCollectionVolumeHistory::class, 0); + + $this->artisan('collections:fetch-volume-history', [ + '--collection-id' => $collection->id, + ]); + + Bus::assertDispatchedTimes(FetchCollectionVolumeHistory::class, 1); +}); diff --git a/tests/App/Console/Commands/FetchCollectionVolumeTest.php b/tests/App/Console/Commands/FetchCollectionVolumeTest.php index a855e8525..c7eed8045 100644 --- a/tests/App/Console/Commands/FetchCollectionVolumeTest.php +++ b/tests/App/Console/Commands/FetchCollectionVolumeTest.php @@ -13,7 +13,7 @@ Bus::assertDispatchedTimes(FetchCollectionVolume::class, 0); - $this->artisan('nfts:fetch-collection-volume'); + $this->artisan('collections:fetch-volume'); Bus::assertDispatchedTimes(FetchCollectionVolume::class, 3); }); @@ -25,7 +25,7 @@ Bus::assertDispatchedTimes(FetchCollectionVolume::class, 0); - $this->artisan('nfts:fetch-collection-volume', [ + $this->artisan('collections:fetch-volume', [ '--collection-id' => $collection->id, ]); diff --git a/tests/App/Enums/TokenTypeTest.php b/tests/App/Enums/TokenTypeTest.php deleted file mode 100644 index cc8b2a467..000000000 --- a/tests/App/Enums/TokenTypeTest.php +++ /dev/null @@ -1,18 +0,0 @@ -toBe($equal); -})->with([ - 'ERC721' => [TokenType::Erc721, 'ERC721', true], - 'erc721' => [TokenType::Erc721, 'erc721', true], - 'ErC721' => [TokenType::Erc721, 'erC721', true], - - 'ERC20' => [TokenType::Erc20, 'ERC20', true], - 'ERC1155' => [TokenType::Erc1155, 'ERC1155', true], - - 'Erc721!=Erc20' => [TokenType::Erc721, 'Erc20', false], -]); diff --git a/tests/App/Http/Client/Mnemonic/MnemonicPendingRequestTest.php b/tests/App/Http/Client/Mnemonic/MnemonicPendingRequestTest.php index 9e136190e..3a8461b46 100644 --- a/tests/App/Http/Client/Mnemonic/MnemonicPendingRequestTest.php +++ b/tests/App/Http/Client/Mnemonic/MnemonicPendingRequestTest.php @@ -15,9 +15,7 @@ use Illuminate\Support\Facades\Http; beforeEach(function () { - Token::factory()-> - withGuid()-> - create([ + Token::factory()->withGuid()->create([ 'network_id' => Network::where('chain_id', 1)->firstOrFail()->id, 'symbol' => 'ETH', 'is_native_token' => 1, @@ -36,7 +34,7 @@ 'network_id' => $network->id, ]); - Mnemonic::getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + Mnemonic::getCollectionFloorPrice(Chain::Polygon, $collection->address); })->throws(ConnectionException::class); it('should throw on 401', function () { @@ -50,7 +48,7 @@ 'network_id' => $network->id, ]); - Mnemonic::getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + Mnemonic::getCollectionFloorPrice(Chain::Polygon, $collection->address); })->throws(Exception::class); it('should throw a custom exception on rate limits', function () { @@ -66,7 +64,7 @@ 'network_id' => $network->id, ]); - Mnemonic::getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + Mnemonic::getCollectionFloorPrice(Chain::Polygon, $collection->address); })->throws(RateLimitException::class); it('should not retry request on 400', function () { @@ -90,8 +88,7 @@ it('should get owners', function () { Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/metadata?includeStats=1' => Http::sequence() - ->push(['ownersCount' => '789'], 200), + 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/totals' => Http::response(['ownersCount' => '789']), ]); $network = Network::polygon(); @@ -100,17 +97,87 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionOwners(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionOwners(Chain::Polygon, $collection->address); expect($data)->toBe(789); }); +it('should get banner URL for the collection', function () { + Mnemonic::fake([ + 'https://polygon-rest.api.mnemonichq.com/foundational/v1beta2/nft_contracts?contractAddresses=*' => Http::response([ + 'nftContracts' => [[ + 'bannerImageUrl' => 'https://example.com', + ]], + ]), + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->create([ + 'network_id' => $network->id, + ]); + + $banner = Mnemonic::getCollectionBanner(Chain::Polygon, $collection->address); + + expect($banner)->toBe('https://example.com'); +}); + +it('should normalize the banner URL for the collection', function () { + Mnemonic::fake([ + 'https://polygon-rest.api.mnemonichq.com/foundational/v1beta2/nft_contracts?contractAddresses=*' => Http::response([ + 'nftContracts' => [[ + 'bannerImageUrl' => 'https://i.seadn.io/gae/test?w=150&auto=format', + ]], + ]), + ]); + + $banner = Mnemonic::getCollectionBanner(Chain::Polygon, '0x123'); + + expect($banner)->toBe('https://i.seadn.io/gae/test?w=1378&auto=format'); +}); + +it('can handle empty banner URLs', function () { + Mnemonic::fake([ + 'https://polygon-rest.api.mnemonichq.com/foundational/v1beta2/nft_contracts?contractAddresses=*' => Http::response([ + 'nftContracts' => [[ + 'bannerImageUrl' => '', + ]], + ]), + ]); + + $banner = Mnemonic::getCollectionBanner(Chain::Polygon, '0x123'); + + expect($banner)->toBeNull(); +}); + it('should get volume', function () { Mnemonic::fake([ 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/sales_volume/DURATION_1_DAY/GROUP_BY_PERIOD_1_DAY' => Http::sequence() ->push([ 'dataPoints' => [ - ['volume' => '12.3'], + ['volume' => '12.3', 'timestamp' => '2024-01-05T00:00:00Z'], + ], + ], 200), + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->create([ + 'network_id' => $network->id, + ]); + + $data = Mnemonic::getLatestCollectionVolume(Chain::Polygon, $collection->address); + + expect($data->value)->toBe('12300000000000000000'); + expect($data->date->toDateString())->toBe('2024-01-05'); +}); + +it('should get total periodic volume', function () { + Mnemonic::fake([ + 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/sales_volume/DURATION_30_DAYS/GROUP_BY_PERIOD_1_DAY' => Http::sequence() + ->push([ + 'dataPoints' => [ + ['volume' => '12.3', 'timestamp' => '2024-01-05T00:00:00Z'], ], ], 200), ]); @@ -121,9 +188,10 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionVolume(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionVolumeHistory(Chain::Polygon, $collection->address); - expect($data)->toBe('12300000000000000000'); + expect($data->first()->value)->toBe('12300000000000000000'); + expect($data->first()->date->toDateString())->toBe('2024-01-05'); }); it('should handle no volume', function ($request) { @@ -138,9 +206,9 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionVolume(Chain::Polygon, $collection->address); + $data = Mnemonic::getLatestCollectionVolume(Chain::Polygon, $collection->address); - expect($data)->toBe(null); + expect($data->value)->toBe('0'); })->with([ 'null volume' => [[ 'dataPoints' => [ @@ -171,7 +239,7 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionTraits(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionTraits(Chain::Polygon, $collection->address); expect($data)->toHaveCount(25); }); @@ -198,7 +266,7 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionTraits(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionTraits(Chain::Polygon, $collection->address); expect($data)->toHaveCount(500 + 500 + 0 + 0); }); @@ -219,7 +287,7 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionTraits(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionTraits(Chain::Polygon, $collection->address); expect($data)->toHaveCount(1); }); @@ -240,7 +308,7 @@ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionTraits(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionTraits(Chain::Polygon, $collection->address); expect($data)->toHaveCount(1); }); @@ -276,6 +344,41 @@ expect($data->totalUsd)->toBe(7547.995011517354); }); +it('should fetch burn activity', function () { + Mnemonic::fake([ + 'https://*-rest.api.mnemonichq.com/foundational/v1beta2/transfers/nft?*' => Http::response(fixtureData('mnemonic.burn_transfers'), 200), + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->create([ + 'network_id' => $network->id, + 'address' => '0x23581767a106ae21c074b2276d25e5c3e136a68b', + ]); + + // Note: limit is ignored because the fixture is fixed size + $data = Mnemonic::getBurnActivity(Chain::Polygon, $collection->address, 100, now()); + + expect($data)->toHaveCount(8); + + $data = $data->first(); + + expect($data->contractAddress)->toBe('0x23581767a106ae21c074b2276d25e5c3e136a68b'); + expect($data->tokenId)->toBe('8304'); + expect($data->sender)->toBe('0x0000000000000000000000000000000000000000'); + expect($data->recipient)->toBe('0xe66e1e9e37e4e148b21eb22001431818e980d060'); + expect($data->txHash)->toBe('0x8f1c4d575332c9a89ceec4d3d05960e23a17ec385912b00f4e970faf446ae4de'); + expect($data->logIndex)->toBe('164'); + expect($data->type)->toBe(NftTransferType::Burn); + expect($data->timestamp->toIso8601String())->toBe('2022-04-16T16:39:27+00:00'); + expect($data->totalNative)->toBe(null); + expect($data->totalUsd)->toBe(7547.995011517354); + + Mnemonic::assertSent(function ($request) { + return $request->data()['blockTimestampGt'] !== null; + }); +}); + it('should convert total to native currency by using historical price for the given date', function () { Mnemonic::fake([ 'https://*-rest.api.mnemonichq.com/foundational/v1beta2/transfers/nft?*' => Http::response(fixtureData('mnemonic.nft_transfers'), 200), @@ -437,5 +540,5 @@ 'network_id' => $network->id, ]); - expect(Mnemonic::getNftCollectionFloorPrice(Chain::ETH, $collection->address))->toBeNull(); + expect(Mnemonic::getCollectionFloorPrice(Chain::ETH, $collection->address))->toBeNull(); }); diff --git a/tests/App/Http/Client/Moralis/MoralisPendingRequestTest.php b/tests/App/Http/Client/Moralis/MoralisPendingRequestTest.php index af990e26b..99a19343c 100644 --- a/tests/App/Http/Client/Moralis/MoralisPendingRequestTest.php +++ b/tests/App/Http/Client/Moralis/MoralisPendingRequestTest.php @@ -67,7 +67,7 @@ 'https://deep-index.moralis.io/api/v2/nft/*/lowestprice?*' => Http::response(null, 404), ]); - expect(Moralis::getNftCollectionFloorPrice(Chain::ETH, '1'))->toBeNull(); + expect(Moralis::getCollectionFloorPrice(Chain::ETH, '1'))->toBeNull(); }); it('should throw any non-404 error when getting nft floor price', function () { @@ -75,5 +75,5 @@ 'https://deep-index.moralis.io/api/v2/nft/*/lowestprice?*' => Http::response(null, 400), ]); - expect(fn () => Moralis::getNftCollectionFloorPrice(Chain::ETH, '1'))->toThrow('400 Bad Request'); + expect(fn () => Moralis::getCollectionFloorPrice(Chain::ETH, '1'))->toThrow('400 Bad Request'); }); diff --git a/tests/App/Http/Client/Opensea/OpenseaPendingRequestTest.php b/tests/App/Http/Client/Opensea/OpenseaPendingRequestTest.php index 18265a10e..450b73337 100644 --- a/tests/App/Http/Client/Opensea/OpenseaPendingRequestTest.php +++ b/tests/App/Http/Client/Opensea/OpenseaPendingRequestTest.php @@ -2,54 +2,55 @@ declare(strict_types=1); -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Enums\Chain; use App\Exceptions\ConnectionException; use App\Exceptions\RateLimitException; +use App\Models\Collection; use App\Support\Facades\Opensea; use GuzzleHttp\Exception\ClientException; use Illuminate\Support\Facades\Http; it('should throw a custom exception on internal server error', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Http::response(null, 500), + 'https://api.opensea.io/api/v2/collections*' => Http::response(null, 500), ]); $collectionSlug = 'doodles-official'; - Opensea::getNftCollectionFloorPrice($collectionSlug); + Opensea::getCollectionFloorPrice($collectionSlug); })->throws(ConnectionException::class); it('should throw a custom exception when rate limited', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Http::response(null, 429), + 'https://api.opensea.io/api/v2/collections*' => Http::response(null, 429), ]); $collectionSlug = 'doodles-official'; - Opensea::getNftCollectionFloorPrice($collectionSlug); + Opensea::getCollectionFloorPrice($collectionSlug); })->throws(RateLimitException::class); it('should throw a custom exception on client error', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Http::response(null, 400), + 'https://api.opensea.io/api/v2/collections*' => Http::response(null, 400), ]); $collectionSlug = 'doodles-official'; - Opensea::getNftCollectionFloorPrice($collectionSlug); + Opensea::getCollectionFloorPrice($collectionSlug); })->throws(ClientException::class); it('can get floor price for the collection', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Opensea::response(fixtureData('opensea.collection_stats')), + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats')), ]); $collectionSlug = 'doodles-official'; - $data = Opensea::getNftCollectionFloorPrice($collectionSlug); + $data = Opensea::getCollectionFloorPrice($collectionSlug); - expect($data)->toBeInstanceOf(Web3NftCollectionFloorPrice::class); + expect($data)->toBeInstanceOf(Web3CollectionFloorPrice::class); }); it('can get nft collection slug', function () { @@ -109,3 +110,37 @@ identifier: $identifier ); })->throws(ClientException::class); + +it('can get total volume for a collection', function () { + Opensea::fake([ + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats')), + ]); + + $collection = new Collection([ + 'address' => '0x670fd103b1a08628e9557cd66b87ded841115190', + 'extra_attributes' => [ + 'opensea_slug' => 'test', + ], + ]); + + expect(Opensea::getCollectionTotalVolume($collection))->toBe('288921605076300000000000'); +}); + +it('can get total volume for a collection, if the total volume is 0', function () { + $response = fixtureData('opensea.collection_stats'); + + $response['total']['volume'] = null; + + Opensea::fake([ + 'https://api.opensea.io/api/v2/collections*' => Opensea::response($response), + ]); + + $collection = new Collection([ + 'address' => '0x670fd103b1a08628e9557cd66b87ded841115190', + 'extra_attributes' => [ + 'opensea_slug' => 'test', + ], + ]); + + expect(Opensea::getCollectionTotalVolume($collection))->toBeNull(); +}); diff --git a/tests/App/Http/Controllers/Api/AllPopularCollectionControllerTest.php b/tests/App/Http/Controllers/Api/AllPopularCollectionControllerTest.php new file mode 100644 index 000000000..8effad3b3 --- /dev/null +++ b/tests/App/Http/Controllers/Api/AllPopularCollectionControllerTest.php @@ -0,0 +1,32 @@ +matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $user = User::factory()->create(); + + Collection::factory(3)->for($network)->create(); + + $this->actingAs($user) + ->get(route('api:all-popular-collections', [ + 'direction' => 'desc', + ])) + ->assertOk(); + + $this->actingAs($user) + ->get(route('api:all-popular-collections', [ + 'direction' => 'test', + ])) + ->assertOk(); +}); diff --git a/tests/App/Http/Controllers/Api/NominatableCollectionControllerTest.php b/tests/App/Http/Controllers/Api/NominatableCollectionControllerTest.php new file mode 100644 index 000000000..0942a104b --- /dev/null +++ b/tests/App/Http/Controllers/Api/NominatableCollectionControllerTest.php @@ -0,0 +1,24 @@ +matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $user = User::factory()->create(); + + Collection::factory(3)->for($network)->create(); + + $this->actingAs($user) + ->get(route('nominatable-collections')) + ->assertOk(); +}); diff --git a/tests/App/Http/Controllers/Api/PopularCollectionControllerTest.php b/tests/App/Http/Controllers/Api/PopularCollectionControllerTest.php new file mode 100644 index 000000000..da23cf883 --- /dev/null +++ b/tests/App/Http/Controllers/Api/PopularCollectionControllerTest.php @@ -0,0 +1,24 @@ +matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $user = User::factory()->create(); + + Collection::factory(3)->for($network)->create(); + + $this->actingAs($user) + ->get(route('api:popular-collections')) + ->assertOk(); +}); diff --git a/tests/App/Http/Controllers/Api/VotableCollectionControllerTest.php b/tests/App/Http/Controllers/Api/VotableCollectionControllerTest.php new file mode 100644 index 000000000..4a772d2a7 --- /dev/null +++ b/tests/App/Http/Controllers/Api/VotableCollectionControllerTest.php @@ -0,0 +1,57 @@ +matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $user = User::factory()->create(); + + Collection::factory(3)->for($network)->create(); + + $this->actingAs($user) + ->get(route('api:votable-collections')) + ->assertOk(); +}); + +it('can get the votable collections as a guest', function () { + Token::factory()->matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + Collection::factory(3)->for($network)->create(); + + $this->get(route('api:votable-collections')) + ->assertJson([ + 'votedCollection' => null, + ]); +}); + +it('can get the collection that the user has voted for', function () { + Token::factory()->matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $user = createUser(); + + $collection = Collection::factory()->for($network)->create(); + + $collection->addVote($user->wallet); + + $response = $this->actingAs($user)->get(route('api:votable-collections')); + + expect($response['votedCollection'])->not->toBeNull(); +}); diff --git a/tests/App/Http/Controllers/AuthenticatedSessionControllerTest.php b/tests/App/Http/Controllers/AuthenticatedSessionControllerTest.php index 37346f1ac..040d06150 100644 --- a/tests/App/Http/Controllers/AuthenticatedSessionControllerTest.php +++ b/tests/App/Http/Controllers/AuthenticatedSessionControllerTest.php @@ -74,7 +74,7 @@ 'chainId' => $network->chain_id, ])->assertSessionHasErrors([ 'address' => trans('auth.session_timeout'), - ])->assertRedirect(route('galleries')); + ])->assertRedirect(route('collections')); }); it('should throw a validation exception if signature cannot be verified', function () { @@ -98,7 +98,7 @@ 'chainId' => $network->chain_id, ])->assertSessionHasErrors([ 'address' => trans('auth.failed'), - ])->assertRedirect(route('galleries')); + ])->assertRedirect(route('collections')); }); it('should handle an incoming authentication request for a new user', function () { @@ -138,7 +138,7 @@ $this->post(route('login'), [ 'address' => '0x1231231231231231231231231231231231231231', 'chainId' => $network->chain_id, - ])->assertRedirect(route('galleries')); + ])->assertRedirect(route('collections')); }); it('should handle an incoming authentication request for a user with a new wallet', function () { @@ -195,7 +195,7 @@ 'chainId' => $network->chain_id, ])->assertSessionHasErrors([ 'address' => trans('auth.validation.invalid_address'), - ])->assertRedirect(route('galleries')); + ])->assertRedirect(route('collections')); }); it('should validate data on incoming authentication request', function () { @@ -285,7 +285,7 @@ $this->actingAs($user) ->post(route('logout')) - ->assertRedirect(route('galleries')); + ->assertRedirect(route('collections')); }); it('should destroy the session and return response', function () { @@ -299,7 +299,7 @@ ->postJson(route('logout'), [], ['Referer' => '/collections']); expect($response->status())->toBe(200) - ->and($response->json('redirectTo'))->toBe('galleries'); + ->and($response->json('redirectTo'))->toBeNull(); }); diff --git a/tests/App/Http/Controllers/CollectionControllerTest.php b/tests/App/Http/Controllers/CollectionControllerTest.php index 603d8ccf6..7676dd611 100644 --- a/tests/App/Http/Controllers/CollectionControllerTest.php +++ b/tests/App/Http/Controllers/CollectionControllerTest.php @@ -23,28 +23,40 @@ ->assertStatus(200); }); -it('can render the collections for guests', function () { +it('can render the collections overview page as guest', function () { $this->get(route('collections')) ->assertStatus(200); }); -it('should render collections overview page with collections and NFTs', function () { +it('can return featured collections', function () { + Token::factory()->matic()->create([ + 'is_native_token' => true, + ]); + $user = createUser(); - $secondaryUser = createUser(); + $network = Network::polygon(); - $collection = Collection::factory()->create(); + Collection::factory(8)->for($network)->create([ + 'is_featured' => false, + ]); - collect([$secondaryUser->wallet_id, $user->wallet_id, $user->wallet_id]) - ->map(fn ($walletId) => Nft::factory()->create(['wallet_id' => $walletId, 'collection_id' => $collection->id])); + Collection::factory(2)->for($network)->create([ + 'is_featured' => true, + ]); - $response = $this->actingAs($user) - ->getJson(route('collections')) + $this->actingAs($user) + ->get(route('collections')) ->assertStatus(200) - ->assertJsonCount(7) - ->json(); + ->assertInertia( + fn (Assert $page) => $page + ->component('Collections/Index') + ->has( + 'featuredCollections' + ), + fn (Assert $page) => $page->where('featuredCollections', 2) - expect(count($response['collections']['data']))->toEqual(1); + ); }); it('can render the collections view page', function () { @@ -637,396 +649,6 @@ ); }); -it('filters the collections by a search query', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'Another Collection', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'Test Collection 2', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->get(route('collections', ['query' => 'Test'])) - ->assertStatus(200); -}); - -it('filters the collections by a search query on json requests', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['query' => 'Test'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('removes the showIndex parameter if user has no hidden collections', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - $this->actingAs($user) - ->get(route('collections', [ - 'other' => 'param', - 'showHidden' => 'true', - ])) - ->assertRedirectToRoute('collections', [ - 'other' => 'param', - ]); -}); - -it('filters hidden collections by a search query on json requests', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - $hiddenCollection = Collection::factory()->create(); - $user->hiddenCollections()->attach($hiddenCollection); - - $this->actingAs($user) - ->getJson(route('collections', [ - 'query' => 'Test', - 'showHidden' => 'true', - ])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by oldest collection', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'Another Collection', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'Test Collection 2', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'oldest'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by recently received', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'Test Collection', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'Another Collection', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'Test Collection 2', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'received'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by collection name', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'A', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'B', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'C', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'name', 'direction' => 'desc'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by floor price', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'A', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'B', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'C', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'floor-price'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by chain ID', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'A', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'B', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'C', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'chain'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('can sort by value', function () { - $user = createUser(); - - $userCollection = Collection::factory()->create([ - 'name' => 'A', - ]); - - $userCollection2 = Collection::factory()->create([ - 'name' => 'B', - ]); - - $userCollection3 = Collection::factory()->create([ - 'name' => 'C', - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection2->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $userCollection3->id, - ]); - - $this->actingAs($user) - ->getJson(route('collections', ['sort' => 'value'])) - ->assertStatus(200) - ->assertJsonCount(7); -}); - -it('should remove selected chains where its network has no collections in its count', function () { - $user = createUser(); - $network1 = Network::factory()->create(); - $network2 = Network::factory()->create(); - - $collection1 = Collection::factory()->create(['network_id' => $network1->id]); - $collection2 = Collection::factory()->create(['network_id' => $network2->id]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $collection1->id, - ]); - - Nft::factory()->create([ - 'wallet_id' => $user->wallet_id, - 'collection_id' => $collection2->id, - ]); - - $response = $this->actingAs($user) - ->getJson(route('collections', [ - 'chain' => '137', - ])) - ->assertStatus(200) - ->assertJsonCount(7) - ->json(); - - expect(count($response['selectedChainIds']))->toEqual(0); -}); - -it('can get stats', function () { - $user = createUser(); - - $collection1 = Collection::factory()->create(); - Nft::factory()->for($collection1)->for($user->wallet)->create(); - - $collection2 = Collection::factory()->create(); - Nft::factory()->for($collection2)->for($user->wallet)->create(); - - $hidden = Collection::factory()->create(); - Nft::factory()->for($hidden)->for($user->wallet)->create(); - - $user->hiddenCollections()->attach($hidden); - - $this->actingAs($user) - ->get(route('collections')) - ->assertInertia(function ($page) { - $stats = $page->toArray()['props']['initialStats']; - - return $stats['nfts'] === 2 && $stats['collections'] === 2; - }); - - $this->actingAs($user) - ->get(route('collections', ['showHidden' => 'true'])) - ->assertInertia(function ($page) { - $stats = $page->toArray()['props']['initialStats']; - - return $stats['nfts'] === 1 && $stats['collections'] === 1; - }); - - $response = $this->actingAs($user)->getJson(route('collections')); - - expect($response['stats']['nfts'] === 2 && $response['stats']['collections'] === 2)->toBeTrue(); - - $response = $this->actingAs($user)->getJson(route('collections', [ - 'showHidden' => 'true', - ])); - - expect($response['stats']['nfts'] === 1 && $response['stats']['collections'] === 1)->toBeTrue(); -}); - it('should return collection articles', function () { $collections = Collection::factory(8)->create(); diff --git a/tests/App/Http/Controllers/CollectionOfTheMonthControllerTest.php b/tests/App/Http/Controllers/CollectionOfTheMonthControllerTest.php new file mode 100644 index 000000000..ad5dcc142 --- /dev/null +++ b/tests/App/Http/Controllers/CollectionOfTheMonthControllerTest.php @@ -0,0 +1,36 @@ +matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->for($network)->create(); + + CollectionWinner::factory()->for($collection)->create(); + + $this->get(route('collection-of-the-month'))->assertOk(); +}); + +it('shows a 404 page if no collections', function () { + $this->get(route('collection-of-the-month'))->assertNotFound(); +}); + +it('prevents having a collection with `collection-of-the-month` as slug', function () { + $collection = Collection::factory()->create(['name' => 'Collection Of The Month']); + + expect($collection->slug)->toBe('collection-of-the-month-collection'); + + $collection2 = Collection::factory()->create(['name' => 'Collection Of The Month']); + + expect($collection2->slug)->toBe('collection-of-the-month-collection-1'); +}); diff --git a/tests/App/Http/Controllers/CollectionVoteControllerTest.php b/tests/App/Http/Controllers/CollectionVoteControllerTest.php new file mode 100644 index 000000000..7e7260731 --- /dev/null +++ b/tests/App/Http/Controllers/CollectionVoteControllerTest.php @@ -0,0 +1,119 @@ +andReturn(false); + }); + + it('cannot vote', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + expect($collection->votes()->count())->toBe(0); + + $this->actingAs($user)->post(route('collection-votes.create', $collection))->assertRedirect(); + + expect($collection->votes()->count())->toBe(0); + }); +}); + +describe('user with a signed wallet', function () { + beforeEach(function () { + Signature::shouldReceive('walletIsSigned') + ->andReturn(true); + }); + + it('can vote for a collection', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + CollectionVote::factory()->for($collection)->for($user->wallet)->create([ + 'voted_at' => now()->subMonth()->subDays(1), + ]); + + expect($collection->votes()->count())->toBe(1); + + $this->actingAs($user)->post(route('collection-votes.create', $collection)); + + expect($collection->votes()->count())->toBe(2); + }); + + it('cannot vote if already voted for a collection in the current month', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + Carbon::setTestNow('2023-12-20'); + + CollectionVote::factory()->for($collection)->for($user->wallet)->create([ + 'voted_at' => now()->subDays(3), + ]); + + expect($collection->votes()->count())->toBe(1); + + $this->actingAs($user) + ->post(route('collection-votes.create', $collection)) + ->assertStatus(302); + + expect($collection->votes()->count())->toBe(1); + }); + + it('allows users to vote even if they voted a few days ago, but in a previous month', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + CollectionVote::factory()->for($collection)->for($user->wallet)->create([ + 'voted_at' => Carbon::parse('2023-11-30'), + ]); + + expect($collection->votes()->count())->toBe(1); + + Carbon::setTestNow('2023-12-01'); + + $this->actingAs($user) + ->post(route('collection-votes.create', $collection)) + ->assertStatus(302); + + expect($collection->votes()->count())->toBe(2); + }); + + it('disallows votes for collection that have already previously won', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + CollectionWinner::factory()->for($collection)->create([ + 'rank' => 1, + ]); + + expect($collection->votes()->count())->toBe(0); + + $this->actingAs($user) + ->post(route('collection-votes.create', $collection)) + ->assertStatus(302); + + expect($collection->votes()->count())->toBe(0); + }); + + it('allows votes for collection that have not won first place in cotm', function () { + $user = createUser(); + $collection = Collection::factory()->create(); + + CollectionWinner::factory()->for($collection)->create([ + 'rank' => 2, + ]); + + expect($collection->votes()->count())->toBe(0); + + $this->actingAs($user)->post(route('collection-votes.create', $collection)); + + expect($collection->votes()->count())->toBe(1); + }); +}); diff --git a/tests/App/Http/Controllers/DashboardControllerTest.php b/tests/App/Http/Controllers/DashboardControllerTest.php index 163abf77b..ba5b3a70f 100644 --- a/tests/App/Http/Controllers/DashboardControllerTest.php +++ b/tests/App/Http/Controllers/DashboardControllerTest.php @@ -15,7 +15,7 @@ $this->get(route('dashboard'))->assertStatus(200); }); -it('should redirect to galleries if porfolio is disabled', function () { +it('should redirect to collections if porfolio is disabled', function () { Feature::shouldReceive('all') ->andReturn([ Features::Galleries->value => true, @@ -26,21 +26,21 @@ ->with(Features::Portfolio->value) ->andReturn(false) ->shouldReceive('active') - ->with(Features::Galleries->value) + ->with(Features::Collections->value) ->andReturn(true); $user = createUser(); $this->actingAs($user) ->get(route('dashboard')) - ->assertRedirect(route('galleries')); + ->assertRedirect(route('collections')); }); -it('should redirect to collections if porfolio and galleries are disabled', function () { +it('should redirect to galleries if porfolio and collections are disabled', function () { Feature::shouldReceive('all') ->andReturn([ - Features::Galleries->value => false, - Features::Collections->value => true, + Features::Galleries->value => true, + Features::Collections->value => false, Features::Portfolio->value => false, ]) ->shouldReceive('active') @@ -48,16 +48,16 @@ ->andReturn(false) ->shouldReceive('active') ->with(Features::Galleries->value) - ->andReturn(false) + ->andReturn(true) ->shouldReceive('active') ->with(Features::Collections->value) - ->andReturn(true); + ->andReturn(false); $user = createUser(); $this->actingAs($user) ->get(route('dashboard')) - ->assertRedirect(route('collections')); + ->assertRedirect(route('galleries')); }); it('should redirect to user settings if porfolio, galleries and collections are disabled', function () { diff --git a/tests/App/Http/Controllers/Filament/LogoutControllerTest.php b/tests/App/Http/Controllers/Filament/LogoutControllerTest.php index a70256059..782a0ad5d 100644 --- a/tests/App/Http/Controllers/Filament/LogoutControllerTest.php +++ b/tests/App/Http/Controllers/Filament/LogoutControllerTest.php @@ -25,5 +25,5 @@ $response = $controller->logout($request); $this->assertInstanceOf(RedirectResponse::class, $response); - $this->assertEquals(route('galleries'), $response->getTargetUrl()); + $this->assertEquals(route('collections'), $response->getTargetUrl()); }); diff --git a/tests/App/Http/Controllers/MyCollectionControllerTest.php b/tests/App/Http/Controllers/MyCollectionControllerTest.php new file mode 100644 index 000000000..8d097163f --- /dev/null +++ b/tests/App/Http/Controllers/MyCollectionControllerTest.php @@ -0,0 +1,453 @@ +actingAs($user) + ->get(route('my-collections')) + ->assertStatus(200); +}); + +it('can render the collections for guests', function () { + $this->get(route('my-collections')) + ->assertStatus(200); +}); + +it('should render collections overview page with collections and NFTs', function () { + $user = createUser(); + + $secondaryUser = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $collection = Collection::factory()->for($network)->create(); + + collect([$secondaryUser->wallet_id, $user->wallet_id, $user->wallet_id]) + ->map(fn ($walletId) => Nft::factory()->create(['wallet_id' => $walletId, 'collection_id' => $collection->id])); + + $response = $this->actingAs($user) + ->getJson(route('my-collections')) + ->assertStatus(200) + ->assertJsonCount(7) + ->json(); + + expect(count($response['collections']['data']))->toEqual(1); +}); + +it('filters the collections by a search query', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'Another Collection', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection 2', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->get(route('my-collections', ['query' => 'Test'])) + ->assertStatus(200); +}); + +it('filters the collections by a search query on json requests', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['query' => 'Test'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('removes the showIndex parameter if user has no hidden collections', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + $this->actingAs($user) + ->get(route('my-collections', [ + 'other' => 'param', + 'showHidden' => 'true', + ])) + ->assertRedirectToroute('my-collections', [ + 'other' => 'param', + ]); +}); + +it('filters hidden collections by a search query on json requests', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + $hiddenCollection = Collection::factory()->for($network)->create(); + $user->hiddenCollections()->attach($hiddenCollection); + + $this->actingAs($user) + ->getJson(route('my-collections', [ + 'query' => 'Test', + 'showHidden' => 'true', + ])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by oldest collection', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'Another Collection', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection 2', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'oldest'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by recently received', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'Another Collection', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'Test Collection 2', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'received'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by collection name', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'A', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'B', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'C', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'name', 'direction' => 'desc'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by floor price', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'A', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'B', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'C', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'floor-price'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by chain ID', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'A', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'B', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'C', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'chain'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('can sort by value', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $userCollection = Collection::factory()->for($network)->create([ + 'name' => 'A', + ]); + + $userCollection2 = Collection::factory()->for($network)->create([ + 'name' => 'B', + ]); + + $userCollection3 = Collection::factory()->for($network)->create([ + 'name' => 'C', + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection2->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $userCollection3->id, + ]); + + $this->actingAs($user) + ->getJson(route('my-collections', ['sort' => 'value'])) + ->assertStatus(200) + ->assertJsonCount(7); +}); + +it('should remove selected chains where its network has no collections in its count', function () { + $user = createUser(); + $network1 = Network::factory()->withNativeToken()->create(); + $network2 = Network::factory()->withNativeToken()->create(); + + $collection1 = Collection::factory()->create(['network_id' => $network1->id]); + $collection2 = Collection::factory()->create(['network_id' => $network2->id]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $collection1->id, + ]); + + Nft::factory()->create([ + 'wallet_id' => $user->wallet_id, + 'collection_id' => $collection2->id, + ]); + + $response = $this->actingAs($user) + ->getJson(route('my-collections', [ + 'chain' => '137', + ])) + ->assertStatus(200) + ->assertJsonCount(7) + ->json(); + + expect(count($response['selectedChainIds']))->toEqual(0); +}); + +it('can get stats', function () { + $user = createUser(); + + $network = Network::factory()->withNativeToken()->create(); + + $collection1 = Collection::factory()->for($network)->create(); + Nft::factory()->for($collection1)->for($user->wallet)->create(); + + $collection2 = Collection::factory()->for($network)->create(); + Nft::factory()->for($collection2)->for($user->wallet)->create(); + + $hidden = Collection::factory()->for($network)->create(); + Nft::factory()->for($hidden)->for($user->wallet)->create(); + + $user->hiddenCollections()->attach($hidden); + + $this->actingAs($user) + ->get(route('my-collections')) + ->assertInertia(function ($page) { + $stats = $page->toArray()['props']['initialStats']; + + return $stats['nfts'] === 2 && $stats['collections'] === 2; + }); + + $this->actingAs($user) + ->get(route('my-collections', ['showHidden' => 'true'])) + ->assertInertia(function ($page) { + $stats = $page->toArray()['props']['initialStats']; + + return $stats['nfts'] === 1 && $stats['collections'] === 1; + }); + + $response = $this->actingAs($user)->getJson(route('my-collections')); + + expect($response['stats']['nfts'] === 2 && $response['stats']['collections'] === 2)->toBeTrue(); + + $response = $this->actingAs($user)->getJson(route('my-collections', [ + 'showHidden' => 'true', + ])); + + expect($response['stats']['nfts'] === 1 && $response['stats']['collections'] === 1)->toBeTrue(); +}); diff --git a/tests/App/Http/Controllers/PopularCollectionControllerTest.php b/tests/App/Http/Controllers/PopularCollectionControllerTest.php new file mode 100644 index 000000000..ae835b813 --- /dev/null +++ b/tests/App/Http/Controllers/PopularCollectionControllerTest.php @@ -0,0 +1,16 @@ +actingAs($user) + ->get(route('popular-collections')) + ->assertStatus(200); +}); + +it('should render the collections overview page as guest', function () { + $this->get(route('popular-collections')) + ->assertStatus(200); +}); diff --git a/tests/App/Http/Controllers/TokenControllerTest.php b/tests/App/Http/Controllers/TokenControllerTest.php index dfb79fc19..87a1ef8e1 100644 --- a/tests/App/Http/Controllers/TokenControllerTest.php +++ b/tests/App/Http/Controllers/TokenControllerTest.php @@ -32,7 +32,7 @@ $user->save(); $this->get(route('tokens.list')) - ->assertRedirect(route('galleries')); + ->assertRedirect(route('collections')); }); it('should return user portfolio breakdown', function () { diff --git a/tests/App/Jobs/AggregateCollectionWinnersTest.php b/tests/App/Jobs/AggregateCollectionWinnersTest.php new file mode 100644 index 000000000..5beb81483 --- /dev/null +++ b/tests/App/Jobs/AggregateCollectionWinnersTest.php @@ -0,0 +1,331 @@ +create(); + + CollectionVote::factory($votes)->for($collection)->create([ + 'voted_at' => Carbon::createFromTimestamp(random_int($between[0]->timestamp, $between[1]->timestamp)), + ]); + + return $collection; +} + +it('stores collections that have the most votes', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now()->subMonth(); + + $first = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $third = createCollection(votes: 1, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $second = createCollection(votes: 2, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + expect(CollectionWinner::count())->toBe(3); + + [$a, $b, $c] = CollectionWinner::orderBy('rank', 'asc')->get(); + + expect($a->collection->is($first))->toBeTrue(); + expect($a->votes)->toBe(3); + expect($a->month)->toBe(11); + expect($a->year)->toBe(2023); + + expect($b->collection->is($second))->toBeTrue(); + expect($b->votes)->toBe(2); + expect($b->month)->toBe(11); + expect($b->year)->toBe(2023); + + expect($c->collection->is($third))->toBeTrue(); + expect($c->votes)->toBe(1); + expect($c->month)->toBe(11); + expect($c->year)->toBe(2023); +}); + +it('only keeps 3 winners for the previous month', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now()->subMonth(); + + $existing = CollectionWinner::factory()->create([ + 'month' => 11, + 'year' => 2023, + ]); + + createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + createCollection(votes: 1, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + createCollection(votes: 2, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + expect(CollectionWinner::count())->toBe(3); + + expect($existing->fresh())->toBeNull(); +}); + +it('only queries collections that have more than 0 votes', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now()->subMonth(); + + $first = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + CollectionVote::factory(3)->create([ + 'voted_at' => now()->addMonth()->startOfMonth(), + ]); + + $second = createCollection(votes: 2, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + expect(CollectionWinner::count())->toBe(2); + + [$a, $b] = CollectionWinner::orderBy('rank', 'asc')->get(); + + expect($a->collection->is($first))->toBeTrue(); + expect($b->collection->is($second))->toBeTrue(); +}); + +it('ignores collections that are not eligible for winning', function () { + Carbon::setTestNow('2023-12-19'); + + // This collection has already won previously... + $winner = CollectionWinner::factory()->create([ + 'month' => 10, + 'year' => 2023, + 'rank' => 1, + ]); + + $previous = now()->subMonth(); + + CollectionVote::factory(50)->for($winner->collection)->create([ + 'voted_at' => $previous, + ]); + + $first = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $third = createCollection(votes: 1, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $second = createCollection(votes: 2, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + expect(CollectionWinner::count())->toBe(4); + expect(CollectionWinner::where('month', 11)->count())->toBe(3); + + [$a, $b, $c] = CollectionWinner::where('month', 11)->orderBy('rank', 'asc')->get(); + + expect($a->collection->is($first))->toBeTrue(); + expect($a->votes)->toBe(3); + expect($a->month)->toBe(11); + expect($a->year)->toBe(2023); + + expect($b->collection->is($second))->toBeTrue(); + expect($b->votes)->toBe(2); + expect($b->month)->toBe(11); + expect($b->year)->toBe(2023); + + expect($c->collection->is($third))->toBeTrue(); + expect($c->votes)->toBe(1); + expect($c->month)->toBe(11); + expect($c->year)->toBe(2023); +}); + +it('only counts votes from the previous month', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now()->subMonth(); + + $collection = Collection::factory()->create(); + + CollectionVote::factory(3)->for($collection)->create([ + 'voted_at' => $previous, + ]); + + CollectionVote::factory(3)->for($collection)->create([ + 'voted_at' => now()->startOfMonth(), + ]); + + CollectionVote::factory(3)->for($collection)->create([ + 'voted_at' => now()->addMonth()->startOfMonth(), + ]); + + CollectionVote::factory(3)->for($collection)->create([ + 'voted_at' => now()->subMonths(2)->endOfMonth(), + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + $winner = CollectionWinner::first(); + + expect($winner->collection->is($collection))->toBeTrue(); + expect($winner->votes)->toBe(3); +}); + +it('orders by 30-day volume if collections have the same vote count', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now()->subMonth(); + + Token::factory()->matic()->create([ + 'is_native_token' => true, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 10, + ], + ], + ], + ]); + + $network = Network::polygon(); + + $third = createCollection(votes: 1, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $third->update([ + 'network_id' => $network->id, + 'volume_30d' => '20', + ]); + + $second = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $second->update([ + 'network_id' => $network->id, + 'volume_30d' => '5', + ]); + + $first = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $first->update([ + 'network_id' => $network->id, + 'volume_30d' => '10', + ]); + + $job = new AggregateCollectionWinners; + + $job->handle(); + + expect(CollectionWinner::count())->toBe(3); + + [$a, $b, $c] = CollectionWinner::orderBy('rank', 'asc')->get(); + + expect($a->collection->is($first))->toBeTrue(); + expect($b->collection->is($second))->toBeTrue(); + expect($c->collection->is($third))->toBeTrue(); +}); + +it('can aggregate winners for the current month', function () { + Carbon::setTestNow('2023-12-19'); + + $previous = now(); + + Token::factory()->matic()->create([ + 'is_native_token' => true, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 10, + ], + ], + ], + ]); + + $network = Network::polygon(); + + $third = createCollection(votes: 1, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $third->update([ + 'network_id' => $network->id, + 'volume_30d' => '20', + ]); + + $second = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $second->update([ + 'network_id' => $network->id, + 'volume_30d' => '5', + ]); + + $first = createCollection(votes: 3, between: [ + $previous->startOfMonth(), $previous->endOfMonth(), + ]); + + $first->update([ + 'network_id' => $network->id, + 'volume_30d' => '10', + ]); + + $job = new AggregateCollectionWinners(currentMonth: true); + + $job->handle(); + + expect(CollectionWinner::count())->toBe(3); + + [$a, $b, $c] = CollectionWinner::orderBy('rank', 'asc')->get(); + + expect($a->collection->is($first))->toBeTrue(); + expect($b->collection->is($second))->toBeTrue(); + expect($c->collection->is($third))->toBeTrue(); +}); + +it('has a unique ID', function () { + $job = new AggregateCollectionWinners; + + expect($job->uniqueId())->toBeString(); +}); diff --git a/tests/App/Jobs/FetchBurnActivityTest.php b/tests/App/Jobs/FetchBurnActivityTest.php new file mode 100644 index 000000000..93fce50fc --- /dev/null +++ b/tests/App/Jobs/FetchBurnActivityTest.php @@ -0,0 +1,337 @@ + true, + ]); +}); + +it('does not run if collection is marked as spam', function () { + $collection = Collection::factory()->create([ + 'activity_updated_at' => now(), + ]); + + SpamContract::create([ + 'network_id' => $collection->network_id, + 'address' => $collection->address, + ]); + + expect($collection->isSpam())->toBeTrue(); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->never() + ); + + (new FetchBurnActivity($collection))->handle($mock); +}); + +it('does not run if collection has never ran the initial activity fetching', function () { + $collection = Collection::factory()->create([ + 'activity_updated_at' => null, + ]); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->never() + ); + + (new FetchBurnActivity($collection))->handle($mock); +}); + +it('does not run if collection is blacklisted from indexing activity', function () { + $collection = Collection::factory()->create([ + 'activity_updated_at' => now(), + ]); + + config([ + 'dashbrd.activity_blacklist' => [ + $collection->address, + ], + ]); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->never() + ); + + (new FetchBurnActivity($collection))->handle($mock); +}); + +it('does not dispatch another job in the chain if there are no activities at all', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + Bus::fake(); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(collect([])) + ); + + (new FetchBurnActivity($collection))->handle($mock); + + Bus::assertNothingDispatched(); +}); + +it('does not dispatch another job in the chain if there are less than 500 burn activities returned from the provider', function () { + Bus::fake([FetchBurnActivity::class]); + + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + expect($collection->activities()->count())->toBe(0); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '1', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + (new FetchBurnActivity($collection))->handle($mock); + + expect($collection->activities()->count())->toBe(1); + + Bus::assertNothingDispatched(); +}); + +it('does dispatch another job in the chain if there are more than 500 activities returned from the provider', function () { + Bus::fake([FetchBurnActivity::class]); + + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + expect($collection->activities()->count())->toBe(0); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(BaseCollection::times(500, fn ($index) => new CollectionActivity( + contractAddress: 'test-address', + tokenId: (string) $index, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: (string) $index, + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ))) + ); + + (new FetchBurnActivity($collection))->handle($mock); + + expect($collection->activities()->count())->toBe(500); + + Bus::assertDispatched(FetchBurnActivity::class, fn ($job) => $job->collection->is($collection) && ! $job->isFirstRun); +}); + +it('starts from the timestamp of the newest burn activity', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + $date = now(); + + // Newer... + $newer = NftActivity::factory()->create([ + 'collection_id' => $collection->id, + 'token_number' => 1, + 'timestamp' => $date, + 'type' => NftTransferType::Burn, + ]); + + // Older... + NftActivity::factory()->create([ + 'collection_id' => $collection->id, + 'token_number' => 1, + 'timestamp' => $date->copy()->subMinutes(10), + 'type' => NftTransferType::Burn, + ]); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->withArgs(function ($chain, $address, $limit, $from) use ($date, $collection) { + return $chain === Chain::Polygon + && $address === $collection->address + && $limit === 500 + && ($from->toDateTimeString() === $date->toDateTimeString()); + })->andReturn(collect([])) + ); + + (new FetchBurnActivity($collection, isFirstRun: false))->handle($mock); +}); + +it('does not dispatch another job in the chain if there are no activities with the proper label', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '1', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: null, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + Bus::fake(); + + (new FetchBurnActivity($collection))->handle($mock); + + Bus::assertNothingDispatched(); +}); + +it('ignores activities without any type (label)', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + expect($collection->activities()->count())->toBe(0); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '2', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: null, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '3', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + (new FetchBurnActivity($collection))->handle($mock); + + expect($collection->activities()->count())->toBe(1); + + $collection->refresh(); + + expect($collection->activities()->where('token_number', '2')->exists())->toBeFalse(); +}); + +it('upserts existing activities', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => now(), + ]); + + NftActivity::factory()->create([ + 'collection_id' => $collection->id, + 'token_number' => 1, + 'type' => NftTransferType::Burn, + 'tx_hash' => 'test-hash', + 'log_index' => '1', + 'sender' => 'old-sender', + ]); + + expect($collection->activities()->count())->toBe(1); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getBurnActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '1', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'new-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + (new FetchBurnActivity($collection))->handle($mock); + + expect($collection->activities()->count())->toBe(2); +}); + +it('has a retry until', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->id, + 'activity_updated_at' => null, + ]); + + expect((new FetchBurnActivity($collection))->retryUntil())->toBeInstanceOf(DateTime::class); +}); diff --git a/tests/App/Jobs/FetchCollectionActivityTest.php b/tests/App/Jobs/FetchCollectionActivityTest.php index bfd6eb0c1..e8cc34877 100644 --- a/tests/App/Jobs/FetchCollectionActivityTest.php +++ b/tests/App/Jobs/FetchCollectionActivityTest.php @@ -6,6 +6,7 @@ use App\Enums\Chain; use App\Enums\NftTransferType; use App\Jobs\FetchCollectionActivity; +use App\Jobs\SyncBurnedNfts; use App\Models\Collection; use App\Models\Network; use App\Models\NftActivity; @@ -140,6 +141,100 @@ expect($collection->activity_updated_at)->not->toBeNull(); }); +it('dispatches the job to sync burned NFTs if there are some burn events', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->first()->id, + 'activity_updated_at' => null, + ]); + + Bus::fake(); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getCollectionActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '1', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Mint, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '2', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + (new FetchCollectionActivity($collection))->handle($mock); + + Bus::assertDispatched(SyncBurnedNfts::class, function ($job) use ($collection) { + return $job->collection->is($collection); + }); +}); + +it('does not the job to sync burned NFTs if there are no burn events', function () { + $collection = Collection::factory()->create([ + 'is_fetching_activity' => false, + 'network_id' => Network::polygon()->first()->id, + 'activity_updated_at' => null, + ]); + + Bus::fake(); + + $mock = $this->mock( + MnemonicWeb3DataProvider::class, + fn ($mock) => $mock->shouldReceive('getCollectionActivity')->once()->andReturn(collect([ + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '1', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Mint, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + new CollectionActivity( + contractAddress: 'test-address', + tokenId: '2', + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Mint, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ])) + ); + + (new FetchCollectionActivity($collection))->handle($mock); + + Bus::assertNothingDispatched(); +}); + it('does not dispatch another job in the chain if there are less than 500 activities returned from the provider', function () { Bus::fake([FetchCollectionActivity::class]); diff --git a/tests/App/Jobs/FetchCollectionBannerTest.php b/tests/App/Jobs/FetchCollectionBannerTest.php index 6cb0a15e8..ee2fad55b 100644 --- a/tests/App/Jobs/FetchCollectionBannerTest.php +++ b/tests/App/Jobs/FetchCollectionBannerTest.php @@ -6,12 +6,9 @@ use App\Models\Collection; use App\Models\Network; use App\Support\Facades\Mnemonic; -use Illuminate\Support\Facades\Http; it('should fetch nft collection banner', function () { - Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/metadata' => Http::response(fixtureData('mnemonic.nft_metadata'), 200), - ]); + Mnemonic::shouldReceive('getCollectionBanner')->andReturn('https://i.seadn.io/gcs/files/f0d3006fb5a1f09d1619a024762f5aee.png?w=1378&auto=format'); $network = Network::polygon(); @@ -31,17 +28,12 @@ $collection->refresh(); - expect($collection->banner())->toBe('https://i.seadn.io/gcs/files/f0d3006fb5a1f09d1619a024762f5aee.png?w=1378&auto=format') - ->and($collection->image())->toBe('image-url'); + expect($collection->banner())->toBe('https://i.seadn.io/gcs/files/f0d3006fb5a1f09d1619a024762f5aee.png?w=1378&auto=format'); + expect($collection->image())->toBe('image-url'); }); it('should fetch nft collection banner in case no image', function () { - $response = fixtureData('mnemonic.nft_metadata'); - $response['metadata'] = []; - - Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/metadata' => Http::response($response, 200), - ]); + Mnemonic::shouldReceive('getCollectionBanner')->andReturn(null); $network = Network::polygon(); diff --git a/tests/App/Jobs/FetchCollectionFloorPriceTest.php b/tests/App/Jobs/FetchCollectionFloorPriceTest.php index 285fc5790..80c6bdb1e 100644 --- a/tests/App/Jobs/FetchCollectionFloorPriceTest.php +++ b/tests/App/Jobs/FetchCollectionFloorPriceTest.php @@ -12,7 +12,7 @@ it('should fetch nft collection floor price', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Opensea::response(fixtureData('opensea.collection_stats')), + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats')), ]); $network = Network::where('chain_id', Chain::ETH->value)->first(); @@ -41,11 +41,19 @@ expect($collection->floor_price)->toBe('1229900000000000000') ->and($collection->floor_price_token_id)->toBe($token->id); + + expect($collection->floorPriceHistory()->count())->toBe(1); + + $floorPriceHistory = $collection->floorPriceHistory()->first(); + + expect($floorPriceHistory->floor_price)->toBe('1229900000000000000') + ->and($floorPriceHistory->token_id)->toBe($token->id) + ->and($floorPriceHistory->retrieved_at)->toBeInstanceOf(Carbon::class); }); it('should handle null floor price in response', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Opensea::response(fixtureData('opensea.collection_stats_floor_price_null')), + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats_floor_price_null')), ]); $network = Network::where('chain_id', Chain::ETH->value)->first(); @@ -77,11 +85,13 @@ expect($collection->floor_price)->toBe(null) ->and($collection->floor_price_token_id)->toBe(null) ->and($collection->floor_price_retrieved_at->gt($retrievedAt))->toBe(true); + + expect($collection->floorPriceHistory()->count())->toBe(0); }); it('should handle non existing collection when fetching floor price', function () { Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Opensea::response(fixtureData('opensea.collection_stats_missing_collection'), 404), + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats_missing_collection'), 404), ]); $network = Network::where('chain_id', Chain::ETH->value)->first(); diff --git a/tests/App/Jobs/FetchCollectionNftsTest.php b/tests/App/Jobs/FetchCollectionNftsTest.php index c7dfd1974..a2581fb7c 100644 --- a/tests/App/Jobs/FetchCollectionNftsTest.php +++ b/tests/App/Jobs/FetchCollectionNftsTest.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use App\Enums\TokenType; use App\Jobs\FetchCollectionNfts; use App\Models\Collection; use App\Models\Network; @@ -200,3 +201,17 @@ Alchemy::assertNothingSent(); }); + +it('does not fetch NFTs for erc1155 collections', function () { + Alchemy::fake(); + + $collection = Collection::factory()->create([ + 'supply' => 10, + 'last_indexed_token_number' => 1, + 'type' => TokenType::Erc1155, + ]); + + (new FetchCollectionNfts($collection, startToken: null, skipIfPotentiallyFull: true))->handle(); + + Alchemy::assertNothingSent(); +}); diff --git a/tests/App/Jobs/FetchCollectionOwnersTest.php b/tests/App/Jobs/FetchCollectionOwnersTest.php index 8be05f065..418cdd99e 100644 --- a/tests/App/Jobs/FetchCollectionOwnersTest.php +++ b/tests/App/Jobs/FetchCollectionOwnersTest.php @@ -6,14 +6,9 @@ use App\Models\Collection; use App\Models\Network; use App\Support\Facades\Mnemonic; -use Illuminate\Support\Facades\Http; it('should fetch nft collection owners', function () { - Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/metadata?includeStats=1' => Http::response([ - 'ownersCount' => '789', - ], 200), - ]); + Mnemonic::shouldReceive('getCollectionOwners')->andReturn(789); $network = Network::polygon(); @@ -34,11 +29,7 @@ }); it('should handle null owner count', function () { - Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/metadata?includeStats=1' => Http::response([ - 'ownersCount' => null, - ], 200), - ]); + Mnemonic::shouldReceive('getCollectionOwners')->andReturn(0); $network = Network::polygon(); @@ -55,7 +46,7 @@ $collection->refresh(); - expect($collection->owners)->toBeNull(); + expect($collection->owners)->toBe(0); }); it('has a unique ID', function () { diff --git a/tests/App/Jobs/FetchCollectionTotalVolumeTest.php b/tests/App/Jobs/FetchCollectionTotalVolumeTest.php new file mode 100644 index 000000000..3f4643d97 --- /dev/null +++ b/tests/App/Jobs/FetchCollectionTotalVolumeTest.php @@ -0,0 +1,49 @@ +andReturn(753); + + $collection = Collection::factory()->create([ + 'total_volume' => '254', + 'extra_attributes' => [ + 'opensea_slug' => 'test', + ], + ]); + + (new FetchCollectionTotalVolume($collection))->handle(); + + expect($collection->fresh()->total_volume)->toBe('753'); +}); + +it('does not run for collections without an OpenSea slug', function () { + Opensea::shouldReceive('getCollectionTotalVolume')->never(); + + $collection = Collection::factory()->create([ + 'total_volume' => null, + 'extra_attributes' => [ + 'opensea_slug' => null, + ], + ]); + + (new FetchCollectionTotalVolume($collection))->handle(); + + expect($collection->fresh()->total_volume)->toBeNull(); +}); + +it('has a unique ID', function () { + $collection = Collection::factory()->create(); + + expect((new FetchCollectionTotalVolume($collection))->uniqueId())->toBeString(); +}); + +it('has a retry limit', function () { + $collection = Collection::factory()->create(); + + expect((new FetchCollectionTotalVolume($collection))->retryUntil())->toBeInstanceOf(DateTime::class); +}); diff --git a/tests/App/Jobs/FetchCollectionVolumeHistoryTest.php b/tests/App/Jobs/FetchCollectionVolumeHistoryTest.php new file mode 100644 index 000000000..2e1d03ee7 --- /dev/null +++ b/tests/App/Jobs/FetchCollectionVolumeHistoryTest.php @@ -0,0 +1,44 @@ +andReturn(collect([ + new Web3Volume(value: '1', date: today()), + new Web3Volume(value: '2', date: today()->subDay()), + ])); + + $network = Network::polygon(); + + $collection = Collection::factory()->for($network)->create([ + 'volume_1d' => '1', + 'volume_7d' => '2', + 'volume_30d' => '3', + ]); + + (new FetchCollectionVolumeHistory($collection))->handle(); + + $collection->refresh(); + + expect($collection->volume_1d)->toBe('1'); + expect($collection->volume_7d)->toBe('3'); + expect($collection->volume_30d)->toBe('3'); +}); + +it('has a unique ID', function () { + $collection = Collection::factory()->create(); + + expect((new FetchCollectionVolumeHistory($collection))->uniqueId())->toBeString(); +}); + +it('has a retry limit', function () { + $collection = Collection::factory()->create(); + + expect((new FetchCollectionVolumeHistory($collection))->retryUntil())->toBeInstanceOf(DateTime::class); +}); diff --git a/tests/App/Jobs/FetchCollectionVolumeTest.php b/tests/App/Jobs/FetchCollectionVolumeTest.php index 4bb2c8414..955d52717 100644 --- a/tests/App/Jobs/FetchCollectionVolumeTest.php +++ b/tests/App/Jobs/FetchCollectionVolumeTest.php @@ -2,37 +2,41 @@ declare(strict_types=1); +use App\Data\Web3\Web3Volume; use App\Jobs\FetchCollectionVolume; use App\Models\Collection; use App\Models\Network; +use App\Models\TradingVolume; use App\Support\Facades\Mnemonic; -use Illuminate\Support\Facades\Http; - -it('should fetch nft collection volume', function () { - Mnemonic::fake([ - 'https://polygon-rest.api.mnemonichq.com/collections/v1beta2/*/sales_volume/DURATION_1_DAY/GROUP_BY_PERIOD_1_DAY' => Http::response([ - 'dataPoints' => [ - ['volume' => '12.3'], - ], - ], 200), - ]); + +it('should retrieve the latest collection volume', function () { + Mnemonic::shouldReceive('getLatestCollectionVolume')->andReturn(new Web3Volume( + value: '123', + date: now(), + )); $network = Network::polygon(); - $collection = Collection::factory()->create([ - 'network_id' => $network->id, + $collection = Collection::factory()->for($network)->create([ 'volume' => null, ]); - $this->assertDatabaseCount('collections', 1); + TradingVolume::factory()->for($collection)->create([ + 'volume' => '10', + 'created_at' => now()->subDays(3), + ]); expect($collection->volume)->toBeNull(); (new FetchCollectionVolume($collection))->handle(); - $collection->refresh(); + expect($collection->fresh()->volume)->toBe('123'); + expect(TradingVolume::count())->toBe(2); + + $volume = TradingVolume::latest('id')->first(); - expect($collection->volume)->toBe('12300000000000000000'); + expect($volume->volume)->toBe('123'); + expect($volume->created_at->toDateString())->toBe(today()->toDateString()); }); it('has a retry limit', function () { diff --git a/tests/App/Jobs/FetchWalletNftsTest.php b/tests/App/Jobs/FetchWalletNftsTest.php index a50f7eb6e..523623382 100644 --- a/tests/App/Jobs/FetchWalletNftsTest.php +++ b/tests/App/Jobs/FetchWalletNftsTest.php @@ -1208,3 +1208,71 @@ function getTestNfts($length = 3, $offset = 0, $withCursor = false): array expect($collection->fresh()->last_indexed_token_number)->toBe('12345'); }); + +it('stores if the wallet owns ERC1155 NFTs', function () { + Bus::fake(); + + $nfts = getTestNfts(); + + $nfts['ownedNfts'][0]['contract']['tokenType'] = 'ERC1155'; + + $network = Network::polygon(); + + $wallet = Wallet::factory()->create([ + 'owns_erc1155_tokens_eth' => false, + 'owns_erc1155_tokens_polygon' => false, + ]); + + Alchemy::fake(Http::response($nfts, 200)); + + (new FetchWalletNfts($wallet, $network))->handle(); + + $wallet->refresh(); + + expect($wallet->owns_erc1155_tokens_eth)->toBeFalse(); + expect($wallet->owns_erc1155_tokens_polygon)->toBeTrue(); +}); + +it('stores if the wallet does not own ERC1155 NFTs', function () { + Bus::fake(); + + $nfts = getTestNfts(); + + $network = Network::polygon(); + + $wallet = Wallet::factory()->create([ + 'owns_erc1155_tokens_eth' => true, + 'owns_erc1155_tokens_polygon' => false, + ]); + + Alchemy::fake(Http::response($nfts, 200)); + + (new FetchWalletNfts($wallet, $network))->handle(); + + $wallet->refresh(); + + expect($wallet->owns_erc1155_tokens_eth)->toBeTrue(); + expect($wallet->owns_erc1155_tokens_polygon)->toBeFalse(); +}); + +it('does not update the opposite network', function () { + Bus::fake(); + + $nfts = getTestNfts(); + + $network = Network::firstWhere('chain_id', 1); // ETH mainnet + + $wallet = Wallet::factory()->create([ + 'owns_erc1155_tokens_eth' => true, + 'owns_erc1155_tokens_polygon' => true, + ]); + + Alchemy::fake(Http::response($nfts, 200)); + + (new FetchWalletNfts($wallet, $network))->handle(); + + $wallet->refresh(); + + expect($wallet->owns_erc1155_tokens_eth)->toBeFalse(); + expect($wallet->owns_erc1155_tokens_polygon)->toBeTrue(); +}); diff --git a/tests/App/Jobs/Middleware/RateLimitedTest.php b/tests/App/Jobs/Middleware/RateLimitedTest.php index 88a797de5..22ee4cf3e 100644 --- a/tests/App/Jobs/Middleware/RateLimitedTest.php +++ b/tests/App/Jobs/Middleware/RateLimitedTest.php @@ -80,7 +80,7 @@ public function attempts() ->andReturnSelf() ->shouldReceive('then') // Mock implementation - ->andReturnUsing(function (callable $callback, callable $failure = null) use ($job) { + ->andReturnUsing(function (callable $callback, ?callable $failure = null) use ($job) { $failure($job); }); diff --git a/tests/App/Jobs/RefreshNftMetadataTest.php b/tests/App/Jobs/RefreshNftMetadataTest.php index 66b8b9fca..651e42768 100644 --- a/tests/App/Jobs/RefreshNftMetadataTest.php +++ b/tests/App/Jobs/RefreshNftMetadataTest.php @@ -67,6 +67,31 @@ expect(Nft::whereNotNull('metadata_fetched_at')->get())->toHaveCount(0); }); +it('should not refresh NFT metadata for NFTs that were previously burned', function () { + Bus::fake(); + $user = createUser(); + + $network = Network::polygon(); + + $collection = Collection::factory()->for($network)->create(); + + $nft = Nft::factory()->create([ + 'wallet_id' => $user->wallet, + 'collection_id' => $collection, + 'metadata_fetched_at' => null, + 'metadata_requested_at' => now(), + 'burned_at' => now(), + ]); + + Alchemy::fake(); + + (new RefreshNftMetadata($collection))->handle(app(AlchemyWeb3DataProvider::class)); + + Alchemy::assertNothingSent(); + + expect($nft->fresh()->metadata_fetched_at)->toBeNull(); +}); + it('should skip refreshing NFT metadata for a spam collection', function () { $network = Network::polygon(); diff --git a/tests/App/Jobs/SyncBurnedNftsTest.php b/tests/App/Jobs/SyncBurnedNftsTest.php new file mode 100644 index 000000000..21644757e --- /dev/null +++ b/tests/App/Jobs/SyncBurnedNftsTest.php @@ -0,0 +1,225 @@ + true, + ]); +}); + +it('does not run if collection is marked as spam', function () { + $collection = Collection::factory()->create(); + + $nft = Nft::factory()->for($collection)->create([ + 'token_number' => '1', + 'burned_at' => null, + ]); + + SpamContract::create([ + 'network_id' => $collection->network_id, + 'address' => $collection->address, + ]); + + expect($collection->isSpam())->toBeTrue(); + + $activity = collect([ + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $nft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ]); + + (new SyncBurnedNfts($collection, $activity))->handle(); + + expect($nft->fresh()->burned_at)->toBeNull(); +}); + +it('does not run if activity indexing is disabled', function () { + config([ + 'dashbrd.features.activities' => false, + ]); + + $collection = Collection::factory()->create(); + + $nft = Nft::factory()->for($collection)->create([ + 'token_number' => '1', + 'burned_at' => null, + ]); + + $activity = collect([ + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $nft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ]); + + (new SyncBurnedNfts($collection, $activity))->handle(); + + expect($nft->fresh()->burned_at)->toBeNull(); +}); + +it('does not run if collection is blacklisted from indexing activity', function () { + $collection = Collection::factory()->create(); + + config([ + 'dashbrd.activity_blacklist' => [ + $collection->address, + ], + ]); + + $nft = Nft::factory()->for($collection)->create([ + 'token_number' => '1', + 'burned_at' => null, + ]); + + $activity = collect([ + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $nft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: now(), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ]); + + (new SyncBurnedNfts($collection, $activity))->handle(); + + expect($nft->fresh()->burned_at)->toBeNull(); +}); + +it('updates burn timestamp for nfts', function () { + $collection = Collection::factory()->create(); + + $nft = Nft::factory()->for($collection)->create([ + 'token_number' => '1', + 'burned_at' => null, + ]); + + $otherNft = Nft::factory()->for($collection)->create([ + 'token_number' => '2', + 'burned_at' => null, + ]); + + $activity = collect([ + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $nft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: Carbon::parse(100000), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $otherNft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: Carbon::parse(200000), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ]); + + (new SyncBurnedNfts($collection, $activity))->handle(); + + expect($nft->fresh()->burned_at->timestamp)->toBe(100000); + expect($otherNft->fresh()->burned_at->timestamp)->toBe(200000); +}); + +it('logs an error if there are some NFTs that have previously been burned', function () { + $collection = Collection::factory()->create(); + + $nft = Nft::factory()->for($collection)->create([ + 'token_number' => '1', + 'burned_at' => null, + ]); + + $otherNft = Nft::factory()->for($collection)->create([ + 'token_number' => '2', + 'burned_at' => now(), + ]); + + $this->withoutExceptionHandling(); + + $activity = collect([ + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $nft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: Carbon::parse(100000), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + new CollectionActivity( + contractAddress: $collection->address, + tokenId: $otherNft->token_number, + sender: 'test-sender', + recipient: 'test-recipient', + txHash: 'test-tx-hash', + logIndex: '1', + type: NftTransferType::Burn, + timestamp: Carbon::parse(200000), + totalNative: 0, + totalUsd: 0, + extraAttributes: [], + ), + ]); + + (new SyncBurnedNfts($collection, $activity))->handle(); + + expect($nft->fresh()->burned_at->timestamp)->toBe(100000); + expect($otherNft->fresh()->burned_at->timestamp)->toBe(200000); +}); + +it('has a retry until', function () { + $collection = Collection::factory()->create(); + + expect((new SyncBurnedNfts($collection, collect([])))->retryUntil())->toBeInstanceOf(DateTime::class); +}); diff --git a/tests/App/Jobs/UpdateNftDescriptionTest.php b/tests/App/Jobs/UpdateNftDescriptionTest.php index b0e12ed5b..427f6fd65 100644 --- a/tests/App/Jobs/UpdateNftDescriptionTest.php +++ b/tests/App/Jobs/UpdateNftDescriptionTest.php @@ -4,6 +4,7 @@ use App\Data\Web3\Web3NftData; use App\Data\Web3\Web3NftsChunk; +use App\Enums\TokenType; use App\Jobs\UpdateNftDescription; use App\Models\Network; use App\Models\Nft; @@ -52,6 +53,7 @@ traits: [], mintedAt: null, hasError: false, info: null, + type: TokenType::Erc721, ), new Web3NftData( tokenAddress: $other->collection->address, @@ -76,6 +78,7 @@ traits: [], mintedAt: null, hasError: false, info: null, + type: TokenType::Erc721, ), ]) )); diff --git a/tests/App/Models/CollectionTest.php b/tests/App/Models/CollectionTest.php index c4dbea64a..04d13c9f6 100644 --- a/tests/App/Models/CollectionTest.php +++ b/tests/App/Models/CollectionTest.php @@ -2,18 +2,25 @@ declare(strict_types=1); +use App\Data\VolumeData; use App\Enums\CurrencyCode; use App\Enums\NftTransferType; +use App\Enums\Period; use App\Models\Article; use App\Models\Collection; use App\Models\CollectionTrait; +use App\Models\CollectionVote; +use App\Models\CollectionWinner; +use App\Models\FloorPriceHistory; use App\Models\Gallery; use App\Models\Network; use App\Models\Nft; use App\Models\NftActivity; use App\Models\SpamContract; +use App\Models\Token; use App\Models\User; use App\Models\Wallet; +use Carbon\Carbon; use Illuminate\Support\Facades\Config; it('can create a basic collection', function () { @@ -173,6 +180,26 @@ expect(Collection::search($user, 'Another')->count())->toBe(1); }); +it('should search collections by collection name', function () { + $collection1 = Collection::factory()->create([ + 'name' => 'Test name', + ]); + + $collection2 = Collection::factory()->create([ + 'name' => 'Test name 2', + ]); + + $collection3 = Collection::factory()->create([ + 'name' => 'Another', + ]); + + expect(Collection::searchByName('Test')->count())->toBe(2) + ->and(Collection::searchByName('Test')->get()->pluck('id')->toArray()) + ->toEqualCanonicalizing([$collection1->id, $collection2->id]) + ->and(Collection::searchByName('Another')->count())->toBe(1); + +}); + it('filters the collections by a nft name', function () { $user = createUser(); @@ -254,6 +281,37 @@ expect(Collection::search($user, '9999')->count())->toBe(1); }); +it('should filter collections by chainId', function () { + $ethNetwork = Network::query()->where('chain_id', 1)->first(); + $polygonNetwork = Network::query()->where('chain_id', 137)->first(); + + Collection::factory()->create([ + 'name' => 'Collection 1', + 'network_id' => $ethNetwork->id, + ]); + + Collection::factory()->create([ + 'name' => 'Collection 2', + 'network_id' => $polygonNetwork->id, + ]); + + $ethCollections = Collection::query()->filterByChainId(1)->get(); + + expect($ethCollections->count())->toBe(1) + ->and($ethCollections->first()->name)->toBe('Collection 1'); + + $polygonCollections = Collection::query()->filterByChainId(137)->get(); + + expect($polygonCollections->count())->toBe(1) + ->and($polygonCollections->first()->name)->toBe('Collection 2'); + + $allCollections = Collection::query()->filterByChainId(null)->orderBy('id')->get(); + + expect($allCollections->count())->toBe(2) + ->and($allCollections[0]->name)->toBe('Collection 1') + ->and($allCollections[1]->name)->toBe('Collection 2'); +}); + it('filters the collections by nft concatenated name', function () { $user = createUser(); @@ -1152,3 +1210,346 @@ 'supply' => 100000, ])->indexesActivities())->toBeFalse(); }); + +it('can determine if a collection is featured or not using its scope', function () { + $featuredCollection1 = Collection::factory()->create(['is_featured' => true]); + $featuredCollection2 = Collection::factory()->create(['is_featured' => true]); + $nonFeaturedCollection = Collection::factory()->create(['is_featured' => false]); + + $featuredCollections = Collection::featured()->get(); + + $this->assertTrue($featuredCollections->contains($featuredCollection1)); + $this->assertTrue($featuredCollections->contains($featuredCollection2)); + $this->assertFalse($featuredCollections->contains($nonFeaturedCollection)); + + $this->assertEquals(2, Collection::featured()->count()); +}); + +it('returns the collection of the month by most votes in the last month', function () { + $collectionWith5Votes = Collection::factory()->create(); + CollectionVote::factory()->count(5)->create([ + 'collection_id' => $collectionWith5Votes->id, + 'voted_at' => Carbon::now()->subMonth(), + ]); + + $collectionWith1Vote = Collection::factory()->create(); + CollectionVote::factory()->count(1)->create([ + 'collection_id' => $collectionWith1Vote->id, + 'voted_at' => Carbon::now()->subMonth(), + ]); + + $collectionWith8Votes = Collection::factory()->create(); + CollectionVote::factory()->count(8)->create([ + 'collection_id' => $collectionWith8Votes->id, + 'voted_at' => Carbon::now()->subMonth(), + ]); + + // Not included + $collectionWithoutVotes = Collection::factory()->create(); + + $collectionWith3Votes = Collection::factory()->create(); + CollectionVote::factory()->count(3)->create([ + 'collection_id' => $collectionWith3Votes->id, + 'voted_at' => Carbon::now()->subMonth(), + ]); + + $collectionsIds = Collection::winnersOfThePreviousMonth()->pluck('id')->toArray(); + + expect($collectionsIds)->toBe([ + $collectionWith8Votes->id, + $collectionWith5Votes->id, + $collectionWith3Votes->id, + $collectionWith1Vote->id, + ]); +}); + +it('has floor price history', function () { + $collection = Collection::factory()->create(); + + FloorPriceHistory::factory()->count(3)->create([ + 'collection_id' => $collection->id, + ]); + + FloorPriceHistory::factory()->count(2)->create(); + + expect($collection->floorPriceHistory()->count())->toBe(3); + + expect($collection->floorPriceHistory()->first())->toBeInstanceOf(FloorPriceHistory::class); +}); + +it('can scope the query to only include collections eligible for winning "collection of the month"', function () { + CollectionWinner::factory()->create([ + 'rank' => 1, + 'month' => 10, + 'year' => 2023, + ]); + + CollectionWinner::factory()->create([ + 'rank' => 1, + 'month' => 9, + 'year' => 2023, + ]); + + $winner = CollectionWinner::factory()->create([ + 'rank' => 2, + 'month' => 10, + 'year' => 2023, + ]); + + $collections = Collection::eligibleToWin()->get(); + + expect(Collection::count())->toBe(3); + expect($collections)->toHaveCount(1); + expect($collections->contains($winner->collection))->toBeTrue(); +}); + +it('should get sum of fiat values of collections', function () { + Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 10, + 'EUR' => 20, + ], + ]); + + Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 20, + 'EUR' => 30, + 'AZN' => 45, + ], + ]); + + Collection::factory()->create([ + 'fiat_value' => [ + 'EUR' => 30, + ], + ]); + + Collection::factory()->create(); + + $fiatValues = collect(Collection::getFiatValueSum()); + + expect($fiatValues->where('key', 'USD')->first()->total)->toBeString(30); + expect($fiatValues->where('key', 'EUR')->first()->total)->toBeString(80); + expect($fiatValues->where('key', 'AZN')->first()->total)->toBeString(45); +}); + +it('should sort collections', function () { + // 4 eur * 2 nft = 8 eur + $collection1 = Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 5, + 'EUR' => 4, + ], + ])->id; + + Nft::factory()->count(2)->create([ + 'collection_id' => $collection1, + ]); + + // 1 eur * 2 nft = 2 eur + $collection2 = Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 3, + 'EUR' => 1, + ], + ])->id; + + Nft::factory()->count(2)->create([ + 'collection_id' => $collection2, + ]); + + // 5 eur * 2 = 10 eur + $collection3 = Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 8, + 'EUR' => 5, + ], + ])->id; + + Nft::factory()->count(2)->create([ + 'collection_id' => $collection3, + ]); + + // 1 eur * 10 nft = 10 eur + $collection4 = Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => null, + 'EUR' => 1, + ], + ])->id; + + Nft::factory()->count(10)->create([ + 'collection_id' => $collection4, + ]); + + // 0 eur * 7 nft = 0 + $collection5 = Collection::factory()->create([ + 'fiat_value' => [ + 'USD' => 1, + 'EUR' => 0, + ], + ])->id; + + Nft::factory()->count(7)->create([ + 'collection_id' => $collection5, + ]); + + $ordered = Collection::query()->orderByValue(null, 'asc', CurrencyCode::EUR)->pluck('id')->toArray(); + + expect($ordered)->toEqual([ + $collection5, // 0 + $collection2, // 1 + $collection1, // 4 + $collection3, // 8 + $collection4, // 10 + ]); + + $ordered = Collection::query()->orderByValue(null, 'desc', CurrencyCode::EUR)->pluck('id')->toArray(); + + expect($ordered)->toEqual([ + $collection4, // 10 + $collection3, // 8 + $collection1, // 4 + $collection2, // 1 + $collection5, // 0 + ]); +}); + +it('can create volume data for a collection', function () { + Token::factory()->matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->for($network)->create([ + 'volume_30d' => '3', + ]); + + expect($collection->createVolumeData(Period::MONTH, CurrencyCode::USD))->toBeInstanceOf(VolumeData::class); +}); + +it('can get volume based on the period', function () { + $collection = Collection::factory()->create([ + 'total_volume' => '1', + 'volume_1d' => '2', + 'volume_7d' => '3', + 'volume_30d' => '4', + ]); + + expect($collection->getVolume())->toBe('1'); + expect($collection->getVolume(Period::DAY))->toBe('2'); + expect($collection->getVolume(Period::WEEK))->toBe('3'); + expect($collection->getVolume(Period::MONTH))->toBe('4'); +}); + +it('can get native token for a network', function () { + $token = Token::factory()->matic()->create([ + 'is_native_token' => true, + ]); + + $network = Network::polygon(); + + $collection = Collection::factory()->for($network)->create(); + + expect($collection->nativeToken()->is($token))->toBeTrue(); +}); + +it('can order collections based on the total fiat amount of sales volume', function () { + $ethereum = Network::firstWhere('chain_id', 1); + $polygon = Network::firstWhere('chain_id', 137); + + $eth = Token::factory()->create([ + 'network_id' => $ethereum->id, + 'is_native_token' => true, + 'decimals' => 1, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 10, + ], + ], + ], + ]); + + $matic = Token::factory()->create([ + 'network_id' => $polygon->id, + 'is_native_token' => true, + 'decimals' => 1, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 20, + ], + ], + ], + ]); + + $first = Collection::factory()->for($ethereum)->create([ + 'volume_7d' => '10', // total: 100 + ]); + + $second = Collection::factory()->for($polygon)->create([ + 'volume_7d' => '7', // total: 140 + ]); + + $third = Collection::factory()->for($ethereum)->create([ + 'volume_7d' => '11', // total: 110 + ]); + + $collections = Collection::orderByVolume(period: Period::WEEK, currency: CurrencyCode::USD)->get(); + + expect($collections->modelKeys())->toBe([ + $second->id, $third->id, $first->id, + ]); +}); + +it('can order collections based on the sales volume amount, ignoring the fiat value', function () { + $ethereum = Network::firstWhere('chain_id', 1); + $polygon = Network::firstWhere('chain_id', 137); + + $eth = Token::factory()->create([ + 'network_id' => $ethereum->id, + 'is_native_token' => true, + 'decimals' => 1, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 10, + ], + ], + ], + ]); + + $matic = Token::factory()->create([ + 'network_id' => $polygon->id, + 'is_native_token' => true, + 'decimals' => 1, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 20, + ], + ], + ], + ]); + + $first = Collection::factory()->for($ethereum)->create([ + 'volume_7d' => '10', + ]); + + $second = Collection::factory()->for($polygon)->create([ + 'volume_7d' => '7', + ]); + + $third = Collection::factory()->for($ethereum)->create([ + 'volume_7d' => '11', + ]); + + $collections = Collection::orderByVolume(period: Period::WEEK)->get(); + + expect($collections->modelKeys())->toBe([ + $third->id, $first->id, $second->id, + ]); +}); diff --git a/tests/App/Models/CollectionVoteTest.php b/tests/App/Models/CollectionVoteTest.php new file mode 100644 index 000000000..0cbad8fe4 --- /dev/null +++ b/tests/App/Models/CollectionVoteTest.php @@ -0,0 +1,87 @@ +create(); + + $wallet = Wallet::factory()->create(); + + expect($collection->votes()->count())->toBe(0); + + Carbon::setTestNow(); + + $collection->addVote($wallet); + + expect($collection->votes()->count())->toBe(1); + + $collection->addVote($wallet); + + // Still one vote since the wallet already voted + expect($collection->votes()->count())->toBe(1); + + $collection->addVote(Wallet::factory()->create()); + + expect($collection->votes()->count())->toBe(2); +}); + +it('filters votes from the current month', function () { + $collection = Collection::factory()->create(); + + CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->startOfMonth(), + ]); + + $other[] = CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->endOfMonth()->addDay(), + ])->id; + + CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->startOfMonth()->addDays(15), + ]); + + $other[] = CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->startOfMonth()->subDay(), + ])->id; + + expect($collection->votes()->inCurrentMonth()->count())->toBe(2); + + expect($collection->votes()->inCurrentMonth()->whereIn('id', $other)->count())->toBe(0); +}); + +it('filters votes from the previous month', function () { + $collection = Collection::factory()->create(); + + CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->subMonth()->startOfMonth(), + ]); + + $other[] = CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->subMonth()->endOfMonth()->addDay(), + ])->id; + + CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->subMonth()->startOfMonth()->addDays(15), + ]); + + $other[] = CollectionVote::factory()->create([ + 'collection_id' => $collection->id, + 'voted_at' => Carbon::now()->subMonth()->startOfMonth()->subDay(), + ])->id; + + expect($collection->votes()->inPreviousMonth()->count())->toBe(2); + + expect($collection->votes()->inPreviousMonth()->whereIn('id', $other)->count())->toBe(0); +}); diff --git a/tests/App/Models/CollectionWinnerTest.php b/tests/App/Models/CollectionWinnerTest.php new file mode 100644 index 000000000..d8c56e452 --- /dev/null +++ b/tests/App/Models/CollectionWinnerTest.php @@ -0,0 +1,56 @@ +create([ + 'rank' => 1, + ]); + + $second = CollectionWinner::factory()->create([ + 'rank' => 1, + ]); + + CollectionWinner::factory()->create([ + 'rank' => 2, + ]); + + Collection::factory()->create(); + + $collectionIds = CollectionWinner::ineligibleCollectionIds(); + + expect($collectionIds)->toHaveCount(2); + expect($collectionIds->contains($first->collection_id))->toBeTrue(); + expect($collectionIds->contains($second->collection_id))->toBeTrue(); +}); + +it('can get current "collection of the month" winners', function () { + $previousMonth = now()->subMonth(); + + $first = CollectionWinner::factory()->create([ + 'year' => $previousMonth->year, + 'month' => $previousMonth->month, + 'rank' => 1, + ]); + + $second = CollectionWinner::factory()->create([ + 'year' => $previousMonth->year, + 'month' => $previousMonth->month, + 'rank' => 2, + ]); + + CollectionWinner::factory()->create([ + 'year' => $previousMonth->year, + 'month' => $previousMonth->month - 1, + 'rank' => 1, + ]); + + $winners = CollectionWinner::current(); + + expect($winners)->toHaveCount(2); + expect($winners->contains($first))->toBeTrue(); + expect($winners->contains($second))->toBeTrue(); +}); diff --git a/tests/App/Models/NftTest.php b/tests/App/Models/NftTest.php index 2eb24e47d..f2f3e3f9a 100644 --- a/tests/App/Models/NftTest.php +++ b/tests/App/Models/NftTest.php @@ -438,3 +438,13 @@ expect($third->activities()->count())->toBe(1); expect($third->activities->modelKeys())->toContain($activity4->id); }); + +it('can determine whether the NFT was burned', function () { + expect((new Nft([ + 'burned_at' => null, + ]))->isBurned())->toBeFalse(); + + expect((new Nft([ + 'burned_at' => now(), + ]))->isBurned())->toBeTrue(); +}); diff --git a/tests/App/Models/TokenTest.php b/tests/App/Models/TokenTest.php index d4472c17b..2f95374f3 100644 --- a/tests/App/Models/TokenTest.php +++ b/tests/App/Models/TokenTest.php @@ -318,3 +318,36 @@ $tokenWith0->id, ]); }); + +it('can get current price of a token in a specific currency', function () { + $token = Token::factory()->create([ + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 10.51, + ], + ], + ], + ]); + + expect($token->currentPrice(CurrencyCode::USD))->toBe(10.51); + expect($token->currentPrice(CurrencyCode::EUR))->toBeNull(); +}); + +it('can convert value to a current price of a token in a specific currency', function () { + $token = Token::factory()->create([ + 'decimals' => 18, + 'extra_attributes' => [ + 'market_data' => [ + 'current_prices' => [ + 'usd' => 1701.51, + ], + ], + ], + ]); + + // (6780914114355034300*1701.51)/1e18 + + expect($token->toCurrentFiat('6780914114355034300', CurrencyCode::USD)->toFloat())->toBe(11537.79); + expect($token->toCurrentFiat('6780914114355034300', CurrencyCode::EUR))->toBeNull(); +}); diff --git a/tests/App/Models/TradingVolumeTest.php b/tests/App/Models/TradingVolumeTest.php new file mode 100644 index 000000000..ece0bad67 --- /dev/null +++ b/tests/App/Models/TradingVolumeTest.php @@ -0,0 +1,16 @@ +create(); + + $volume = TradingVolume::factory()->create([ + 'collection_id' => $collection->id, + ]); + + expect($volume->collection->is($collection))->toBeTrue(); +}); diff --git a/tests/App/Observers/ArticleObserverTest.php b/tests/App/Observers/ArticleObserverTest.php index 24b483e9d..c1037dd37 100644 --- a/tests/App/Observers/ArticleObserverTest.php +++ b/tests/App/Observers/ArticleObserverTest.php @@ -4,6 +4,7 @@ use App\Jobs\ConvertArticleToSpeech; use App\Models\Article; +use App\Observers\ArticleObserver; use Illuminate\Support\Facades\Bus; use Illuminate\Support\Facades\Cache; @@ -120,7 +121,8 @@ }); it('should not clear the meta description cache if article is not published', function () { - Cache::shouldReceive('forget')->never(); + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); Article::factory()->create([ 'content' => 'Hello World', @@ -136,7 +138,8 @@ 'published_at' => now()->subMinutes(2), ])->fresh(); - Cache::shouldReceive('forget')->never(); + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); $article->update([ 'title' => 'Updated title', @@ -144,6 +147,8 @@ }); it('should clear the meta description cache when an article created', function () { + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); Cache::shouldReceive('forget')->with('article:1:meta_description')->once(); Article::factory()->create([ @@ -158,6 +163,8 @@ 'published_at' => now()->subMinutes(2), ]); + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); Cache::shouldReceive('forget')->with('article:1:meta_description')->once(); $article->update([ @@ -171,6 +178,8 @@ 'published_at' => now()->subMinutes(2), ]); + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); Cache::shouldReceive('forget')->with('article:1:meta_description')->once(); $article->update([ @@ -184,9 +193,40 @@ 'published_at' => null, ]); + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); Cache::shouldReceive('forget')->with('article:1:meta_description')->once(); $article->update([ 'published_at' => now()->subMinutes(2), ]); }); + +it('clears cache when article is deleted', function () { + $article = Article::factory()->create([ + 'content' => 'Hello World', + 'meta_description' => 'Hello World', + 'published_at' => null, + ]); + + $cache = Cache::partialMock(); + + $cache->shouldReceive('forget')->once()->with('articles:latest'); + $cache->shouldReceive('forget')->once()->with('articles:popular'); + + (new ArticleObserver)->deleted(); +}); + +it('clears cache when article is restored', function () { + $article = Article::factory()->create([ + 'content' => 'Hello World', + 'meta_description' => 'Hello World', + 'published_at' => now()->subMinutes(2), + 'deleted_at' => now(), + ]); + + Cache::shouldReceive('forget')->once()->with('articles:latest'); + Cache::shouldReceive('forget')->once()->with('articles:popular'); + + (new ArticleObserver)->restored(); +}); diff --git a/tests/App/Policies/CollectionPolicyTest.php b/tests/App/Policies/CollectionPolicyTest.php index 9ea923167..b442271ce 100644 --- a/tests/App/Policies/CollectionPolicyTest.php +++ b/tests/App/Policies/CollectionPolicyTest.php @@ -26,8 +26,8 @@ it('should be able to view a single collection', function () { $collection = Collection::factory()->create(); - expect($this->user->hasPermissionTo('user:view', 'admin', $collection))->toBeFalse(); - expect($this->admin->hasPermissionTo('user:view', 'admin', $collection))->toBeTrue(); + expect($this->user->hasPermissionTo('collection:view', 'admin', $collection))->toBeFalse(); + expect($this->admin->hasPermissionTo('collection:view', 'admin', $collection))->toBeTrue(); expect($this->instance->view($this->user, $collection))->toBeFalse(); expect($this->instance->view($this->admin, $collection))->toBeTrue(); }); @@ -37,11 +37,11 @@ expect($this->instance->create($this->admin))->toBeFalse(); }); -it('should not be able to update a single collection', function () { +it('should be able to update a single collection', function () { $collection = Collection::factory()->create(); expect($this->instance->update($this->user, $collection))->toBeFalse(); - expect($this->instance->update($this->admin, $collection))->toBeFalse(); + expect($this->instance->update($this->admin, $collection))->toBeTrue(); }); it('should not be able to delete a single collection', function () { diff --git a/tests/App/Services/Web3/Alchemy/AlchemyWeb3DataProviderTest.php b/tests/App/Services/Web3/Alchemy/AlchemyWeb3DataProviderTest.php index c79eb0b47..d0d556e75 100644 --- a/tests/App/Services/Web3/Alchemy/AlchemyWeb3DataProviderTest.php +++ b/tests/App/Services/Web3/Alchemy/AlchemyWeb3DataProviderTest.php @@ -2,8 +2,8 @@ declare(strict_types=1); +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Data\Web3\Web3NftsChunk; use App\Enums\Chain; @@ -153,7 +153,7 @@ ->and($tokens[0])->toBeInstanceOf(Web3NftData::class) ->and($tokens[0]->tokenAddress)->toBe('0x684E4ED51D350b4d76A3a07864dF572D24e6dC4c') ->and($tokens[2]->floorPrice) - ->toBeInstanceOf(Web3NftCollectionFloorPrice::class) + ->toBeInstanceOf(Web3CollectionFloorPrice::class) ->and($tokens[2]->floorPrice->price)->toEqual('3000000000000000') ->and($tokens[2]->floorPrice->currency)->toEqual('eth'); }); @@ -246,7 +246,7 @@ ]); $provider = new AlchemyWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::ETH, 'asdf'))->toEqual(new Web3NftCollectionFloorPrice( + expect($provider->getCollectionFloorPrice(Chain::ETH, 'asdf'))->toEqual(new Web3CollectionFloorPrice( '1235000000000000000', 'eth', Carbon::parse('2023-03-30T04:08:09.791Z'), @@ -259,7 +259,7 @@ ]); $provider = new AlchemyWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::ETH, 'asdf'))->toEqual(new Web3NftCollectionFloorPrice( + expect($provider->getCollectionFloorPrice(Chain::ETH, 'asdf'))->toEqual(new Web3CollectionFloorPrice( '1247200000000000000', 'eth', Carbon::parse('2023-03-30T03:59:09.707Z'), @@ -275,7 +275,7 @@ ]); $provider = new AlchemyWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::ETH, 'asdf'))->toBeNull(); + expect($provider->getCollectionFloorPrice(Chain::ETH, 'asdf'))->toBeNull(); }); it('returns null for unsupported network when calling nft floor price', function () { @@ -290,7 +290,7 @@ collect(Chain::cases()) ->filter(fn ($case) => $case !== Chain::ETH) ->each( - fn ($case) => expect($provider->getNftCollectionFloorPrice($case, 'asdf')) + fn ($case) => expect($provider->getCollectionFloorPrice($case, 'asdf')) ->toBeNull() ); }); @@ -491,7 +491,7 @@ $provider = new AlchemyWeb3DataProvider(); $nfts = $provider->getWalletNfts($wallet, $network)->nfts; - expect($nfts)->toHaveCount(6) + expect($nfts)->toHaveCount(7) ->and($nfts->first()->name)->not->toBeNull() ->and($nfts->last()->name)->toEqual('OK OpenSea fallback'); }); diff --git a/tests/App/Services/Web3/Fake/FakeWeb3DataProviderTest.php b/tests/App/Services/Web3/Fake/FakeWeb3DataProviderTest.php index 1aaab21ac..84fd4f838 100644 --- a/tests/App/Services/Web3/Fake/FakeWeb3DataProviderTest.php +++ b/tests/App/Services/Web3/Fake/FakeWeb3DataProviderTest.php @@ -2,8 +2,8 @@ declare(strict_types=1); +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Exceptions\NotImplementedException; use App\Models\Collection; @@ -47,7 +47,7 @@ expect($nft) ->toBeInstanceOf(Web3NftData::class) ->and($nft->floorPrice) - ->toBeInstanceOf(Web3NftCollectionFloorPrice::class); + ->toBeInstanceOf(Web3CollectionFloorPrice::class); }); }); diff --git a/tests/App/Services/Web3/Mnemonic/MnemonicWeb3DataProviderTest.php b/tests/App/Services/Web3/Mnemonic/MnemonicWeb3DataProviderTest.php index 765221cd7..9d55b900d 100644 --- a/tests/App/Services/Web3/Mnemonic/MnemonicWeb3DataProviderTest.php +++ b/tests/App/Services/Web3/Mnemonic/MnemonicWeb3DataProviderTest.php @@ -21,7 +21,7 @@ $collection = Collection::factory()->create(); $provider = new MnemonicWeb3DataProvider(); - $floorPrice = $provider->getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + $floorPrice = $provider->getCollectionFloorPrice(Chain::Polygon, $collection->address); expect($floorPrice->price)->toBe('10267792581881993') ->and($floorPrice->currency)->toBe('matic'); }); @@ -45,7 +45,7 @@ ]); $provider = new MnemonicWeb3DataProvider(); - $floorPrice = $provider->getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + $floorPrice = $provider->getCollectionFloorPrice(Chain::Polygon, $collection->address); expect($floorPrice->price)->toBe('6000000000000') ->and($floorPrice->currency)->toBe('weth'); }); @@ -62,7 +62,7 @@ ]); $provider = new MnemonicWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::Polygon, $collection->address)) + expect($provider->getCollectionFloorPrice(Chain::Polygon, $collection->address)) ->toBeNull(); }); @@ -130,3 +130,22 @@ expect($activity)->toHaveCount(18); }); + +it('can get burn activity', function () { + Mnemonic::fake([ + '*' => Http::response(fixtureData('mnemonic.burn_transfers'), 200), + ]); + + Token::factory()->withGuid()->create([ + 'network_id' => Network::where('chain_id', 1)->firstOrFail()->id, + 'symbol' => 'ETH', + 'is_native_token' => 1, + 'is_default_token' => 1, + ]); + + $collection = Collection::factory()->create(); + + $activity = (new MnemonicWeb3DataProvider)->getBurnActivity(Chain::Polygon, $collection->address, limit: 10); + + expect($activity)->toHaveCount(8); +}); diff --git a/tests/App/Services/Web3/Moralis/MoralisWeb3DataProviderTest.php b/tests/App/Services/Web3/Moralis/MoralisWeb3DataProviderTest.php index d4fca978c..93da557e3 100644 --- a/tests/App/Services/Web3/Moralis/MoralisWeb3DataProviderTest.php +++ b/tests/App/Services/Web3/Moralis/MoralisWeb3DataProviderTest.php @@ -2,8 +2,8 @@ declare(strict_types=1); +use App\Data\Web3\Web3CollectionFloorPrice; use App\Data\Web3\Web3Erc20TokenData; -use App\Data\Web3\Web3NftCollectionFloorPrice; use App\Data\Web3\Web3NftData; use App\Enums\Chain; use App\Exceptions\NotImplementedException; @@ -49,9 +49,9 @@ $tokens = $provider->getWalletNfts($wallet, $network)->nfts; expect($tokens)->toBeInstanceOf(Collection::class) - ->and($tokens)->toHaveCount(47) + ->and($tokens)->toHaveCount(100) ->and($tokens[0])->toBeInstanceOf(Web3NftData::class) - ->and($tokens[0]->tokenAddress)->toBe('0x5d666f215a85b87cb042d59662a7ecd2c8cc44e6'); + ->and($tokens[0]->tokenAddress)->toBe('0x2953399124f0cbb46d2cbacd8a89cf0599974963'); }); it('can get nft floor price', function () { @@ -61,7 +61,7 @@ $provider = new MoralisWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::ETH, ''))->toEqual(new Web3NftCollectionFloorPrice( + expect($provider->getCollectionFloorPrice(Chain::ETH, ''))->toEqual(new Web3CollectionFloorPrice( '1000000000000000', 'eth', Carbon::parse('2021-06-04T16:00:15'), @@ -74,7 +74,7 @@ ]); $provider = new MoralisWeb3DataProvider(); - expect($provider->getNftCollectionFloorPrice(Chain::ETH, 'asdf'))->toBeNull(); + expect($provider->getCollectionFloorPrice(Chain::ETH, 'asdf'))->toBeNull(); }); it('can get native balance for a wallet', function () { diff --git a/tests/App/Services/Web3/Opensea/OpenseaWeb3DataProviderTest.php b/tests/App/Services/Web3/Opensea/OpenseaWeb3DataProviderTest.php index 3c547a580..ac913548c 100644 --- a/tests/App/Services/Web3/Opensea/OpenseaWeb3DataProviderTest.php +++ b/tests/App/Services/Web3/Opensea/OpenseaWeb3DataProviderTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Enums\Chain; use App\Exceptions\NotImplementedException; use App\Jobs\Middleware\RateLimited; @@ -12,7 +12,7 @@ use App\Services\Web3\Opensea\OpenseaWeb3DataProvider; use App\Support\Facades\Opensea; -it('should getNftCollectionFloorPrice if no open sea slug', function () { +it('should getCollectionFloorPrice if no open sea slug', function () { Collection::factory()->create([ 'address' => '0x23581767a106ae21c074b2276D25e5C3e136a68b', 'network_id' => Network::where('chain_id', Chain::ETH->value)->first()->id, @@ -22,12 +22,12 @@ $provider = new OpenseaWeb3DataProvider(); - $data = $provider->getNftCollectionFloorPrice(Chain::ETH, $contractAddress); + $data = $provider->getCollectionFloorPrice(Chain::ETH, $contractAddress); expect($data)->toBeNull(); }); -it('should getNftCollectionFloorPrice ', function () { +it('should getCollectionFloorPrice ', function () { Collection::factory()->create([ 'address' => '0x23581767a106ae21c074b2276D25e5C3e136a68b', 'network_id' => Network::where('chain_id', Chain::ETH->value)->first()->id, @@ -35,16 +35,16 @@ ]); Opensea::fake([ - 'https://api.opensea.io/api/v1/collection*' => Opensea::response(fixtureData('opensea.collection_stats')), + 'https://api.opensea.io/api/v2/collections*' => Opensea::response(fixtureData('opensea.collection_stats')), ]); $contractAddress = '0x23581767a106ae21c074b2276D25e5C3e136a68b'; $provider = new OpenseaWeb3DataProvider(); - $data = $provider->getNftCollectionFloorPrice(Chain::ETH, $contractAddress); + $data = $provider->getCollectionFloorPrice(Chain::ETH, $contractAddress); - expect($data)->toBeInstanceOf(Web3NftCollectionFloorPrice::class); + expect($data)->toBeInstanceOf(Web3CollectionFloorPrice::class); }); it('should getWalletTokens and throw NotImplementedException', function () { diff --git a/tests/App/Support/Facades/MnemonicTest.php b/tests/App/Support/Facades/MnemonicTest.php index eba6af19a..78c38d707 100644 --- a/tests/App/Support/Facades/MnemonicTest.php +++ b/tests/App/Support/Facades/MnemonicTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -use App\Data\Web3\Web3NftCollectionFloorPrice; +use App\Data\Web3\Web3CollectionFloorPrice; use App\Enums\Chain; use App\Http\Client\Mnemonic\MnemonicUnknownChainException; use App\Models\Collection; @@ -20,9 +20,9 @@ $collection = Collection::factory()->create([ 'network_id' => $network->id, ]); - $data = Mnemonic::getNftCollectionFloorPrice(Chain::Polygon, $collection->address); + $data = Mnemonic::getCollectionFloorPrice(Chain::Polygon, $collection->address); - expect($data)->toBeInstanceOf(Web3NftCollectionFloorPrice::class); + expect($data)->toBeInstanceOf(Web3CollectionFloorPrice::class); }); it('throws if unknown chain', function () { diff --git a/tests/App/Support/PermissionRepositoryTest.php b/tests/App/Support/PermissionRepositoryTest.php index 97ff8ea6c..5db277ded 100644 --- a/tests/App/Support/PermissionRepositoryTest.php +++ b/tests/App/Support/PermissionRepositoryTest.php @@ -6,26 +6,26 @@ use Illuminate\Support\Facades\Config; it('should get all permissions', function () { - expect(PermissionRepository::all())->toHaveCount(17); + expect(PermissionRepository::all())->toHaveCount(20); }); it('should cache permissions and refresh every 5 days', function () { $config = config('permission.roles'); - expect(PermissionRepository::all())->toHaveCount(17); + expect(PermissionRepository::all())->toHaveCount(20); $config['User'] = ['user:test']; Config::set('permission.roles', $config); - expect(PermissionRepository::all())->toHaveCount(17); + expect(PermissionRepository::all())->toHaveCount(20); $this->travel(4)->days(); - expect(PermissionRepository::all())->toHaveCount(17); + expect(PermissionRepository::all())->toHaveCount(20); $this->travel(1)->days(); $this->travel(1)->minute(); - expect(PermissionRepository::all())->toHaveCount(18); + expect(PermissionRepository::all())->toHaveCount(21); }); diff --git a/tests/App/Support/Web3NftHandlerTest.php b/tests/App/Support/Web3NftHandlerTest.php index 44db4d418..e1be86d70 100644 --- a/tests/App/Support/Web3NftHandlerTest.php +++ b/tests/App/Support/Web3NftHandlerTest.php @@ -4,7 +4,9 @@ use App\Data\Web3\Web3NftData; use App\Enums\NftInfo; +use App\Enums\TokenType; use App\Enums\TraitDisplayType; +use App\Jobs\FetchCollectionVolumeHistory; use App\Models\Collection; use App\Models\Network; use App\Models\NftTrait; @@ -565,6 +567,7 @@ traits: [], mintedAt: null, hasError: false, info: null, + type: TokenType::Erc721, ); $collection = Collection::query()->create([ @@ -611,6 +614,7 @@ traits: [], mintedAt: null, hasError: true, info: null, + type: TokenType::Erc721, ); $handler->store(collect([$dataWithError])); @@ -669,6 +673,7 @@ traits: [], mintedAt: null, hasError: true, info: NftInfo::MetadataOutdated->value, + type: TokenType::Erc721, ); $collection = Collection::query()->create([ @@ -710,6 +715,7 @@ traits: [], tokenAddress: '0x1234', tokenNumber: '123', networkId: $token->network_id, + type: TokenType::Erc721, collectionName: 'Collection Name', collectionSymbol: 'AME', collectionImage: 'test_image', @@ -787,6 +793,7 @@ traits: [], mintedAt: null, hasError: true, info: null, + type: TokenType::Erc721, ); $handler->store(collect([$dataWithNoError])); @@ -795,3 +802,95 @@ traits: [], expect(Collection::count())->toBe(1); expect($collection->nfts->first()->info)->toBe(null); }); + +it('should dispatch jobs to fetch collection volume history when collection is first added', function () { + Bus::fake(); + + $network = Network::polygon(); + + $token = Token::factory()->create([ + 'network_id' => $network->id, + ]); + + $wallet = Wallet::factory()->create(); + + $handler = new Web3NftHandler( + network: $network, + wallet: $wallet, + ); + + Collection::factory()->for($network)->create([ + 'address' => '0x999', + 'created_at' => now()->subHour(), + ]); + + $oldData = new Web3NftData( + tokenAddress: '0x999', + tokenNumber: '123', + networkId: $token->network_id, + collectionName: 'Collection Name', + collectionSymbol: 'AME', + collectionImage: null, + collectionWebsite: null, + collectionDescription: null, + collectionSocials: null, + collectionSupply: 3000, + collectionBannerImageUrl: null, + collectionBannerUpdatedAt: now(), + collectionOpenSeaSlug: null, + name: null, + description: null, + extraAttributes: [ + 'image' => null, + 'website' => null, + 'banner' => null, + 'banner_updated_at' => now(), + 'opensea_slug' => null, + ], + floorPrice: null, + traits: [], + mintedBlock: 1000, + mintedAt: null, + hasError: true, + info: null, + type: TokenType::Erc721, + ); + + $data = new Web3NftData( + tokenAddress: '0x1234', + tokenNumber: '123', + networkId: $token->network_id, + collectionName: 'Collection Name', + collectionSymbol: 'AME', + collectionImage: null, + collectionWebsite: null, + collectionDescription: null, + collectionSocials: null, + collectionSupply: 3000, + collectionBannerImageUrl: null, + collectionBannerUpdatedAt: now(), + collectionOpenSeaSlug: null, + name: null, + description: null, + extraAttributes: [ + 'image' => null, + 'website' => null, + 'banner' => null, + 'banner_updated_at' => now(), + 'opensea_slug' => null, + ], + floorPrice: null, + traits: [], + mintedBlock: 1000, + mintedAt: null, + hasError: true, + info: null, + type: TokenType::Erc721, + ); + + $handler->store(collect([$data, $oldData]), dispatchJobs: true); + + expect(Collection::count())->toBe(2); + + Bus::assertDispatchedTimes(FetchCollectionVolumeHistory::class, 1); +}); diff --git a/tests/App/helpersTest.php b/tests/App/helpersTest.php index 4f9abe328..2f84f8f94 100644 --- a/tests/App/helpersTest.php +++ b/tests/App/helpersTest.php @@ -19,106 +19,3 @@ expect($contents)->toBe("select * from users where id = 'test'".PHP_EOL); }); - -it('should detect if the given string is base64 encoded', function () { - expect(isBase64EncodedImage('data:image/png;base64,iVBhEUgAAAREDACTED'))->toBeTrue() - ->and(isBase64EncodedImage('https://cats.com/'))->toBeFalse(); -}); - -it('format_amount_for_display', function ($amount, $expected) { - expect(format_amount_for_display($amount))->toEqual($expected); -})->with([ - [6_543, '6.5k'], - [12_320_000, '12.3m'], - [1, '1'], - [2, '2'], - [124, '124'], - [1232, '1.2k'], - [2_540_123, '2.5m'], -]); - -it('should filter attributes', function () { - $requiredAttributes = [ - 'description', - 'contract' => [ - 'address', - ], - 'contractMetadata' => [ - 'symbol', - 'name', - 'totalSupply', - 'openSea' => ['twitterUsername', 'discordUrl', 'floorPrice', 'collectionName', 'imageUrl', 'externalUrl', 'description'], - 'deployedBlockNumber', - ], - ]; - - $data = [ - 'contract' => [ - 'address' => '0x4e1f41613c9084fdb9e34e11fae9412427480e56', - ], - 'id' => [ - 'tokenId' => '0x0000000000000000000000000000000000000000000000000000000000000001', - 'tokenMetadata' => [ - 'tokenType' => 'ERC721', - ], - ], - 'title' => 'Level 13 at {9, 5}', - 'description' => 'Terraforms by Mathcastles. Onchain land art from a dynamically generated, onchain 3D world.', - 'tokenUri' => [ - 'gateway' => '', - 'raw' => 'data:', - ], - 'media' => [ - [ - 'gateway' => 'https://nft-cdn.alchemy.com/eth-mainnet/b5a0b09ef853edc679205cf0062b331f', - 'thumbnail' => 'https://res.cloudinary.com/alchemyapi/image/upload/thumbnailv2/eth-mainnet/b5a0b09ef853edc679205cf0062b331f', - 'raw' => 'data:', - 'format' => 'svg+xml', - 'bytes' => 44846, - ], - ], - 'timeLastUpdated' => '2023-08-13T15:31:14.203Z', - 'contractMetadata' => [ - 'name' => 'Terraforms', - 'symbol' => 'TERRAFORMS', - 'totalSupply' => '9910', - 'tokenType' => 'ERC721', - 'contractDeployer' => '0x9f400619b85eaca2f1f76f4f7e44ab7e5ee12cfa', - 'deployedBlockNumber' => 13823015, - 'openSea' => [ - 'floorPrice' => 1.618999, - 'collectionName' => 'Terraforms by Mathcastles', - 'collectionSlug' => 'terraforms', - 'safelistRequestStatus' => 'approved', - 'imageUrl' => 'https://i.seadn.io/gcs/files/8987b795655076fdf8183a7daee3754a.gif?w=500&auto=format', - 'description' => 'Onchain land art from a dynamically generated onchain 3D world.', - 'externalUrl' => 'http://mathcastles.xyz', - 'twitterUsername' => 'mathcastles', - 'discordUrl' => 'https://discord.gg/mathcastles', - 'lastIngestedAt' => '2023-08-15T10:54:18.000Z', - ], - ], - ]; - - expect(filterAttributes($data, $requiredAttributes))->toEqual($array = [ - 'contract' => [ - 'address' => '0x4e1f41613c9084fdb9e34e11fae9412427480e56', - ], - 'description' => 'Terraforms by Mathcastles. Onchain land art from a dynamically generated, onchain 3D world.', - 'contractMetadata' => [ - 'name' => 'Terraforms', - 'symbol' => 'TERRAFORMS', - 'totalSupply' => '9910', - 'deployedBlockNumber' => 13823015, - 'openSea' => [ - 'floorPrice' => 1.618999, - 'collectionName' => 'Terraforms by Mathcastles', - 'imageUrl' => 'https://i.seadn.io/gcs/files/8987b795655076fdf8183a7daee3754a.gif?w=500&auto=format', - 'description' => 'Onchain land art from a dynamically generated onchain 3D world.', - 'externalUrl' => 'http://mathcastles.xyz', - 'twitterUsername' => 'mathcastles', - 'discordUrl' => 'https://discord.gg/mathcastles', - ], - ], - ]); -}); diff --git a/tests/fixtures/mnemonic/burn_transfers.json b/tests/fixtures/mnemonic/burn_transfers.json new file mode 100644 index 000000000..603cb6091 --- /dev/null +++ b/tests/fixtures/mnemonic/burn_transfers.json @@ -0,0 +1,262 @@ +{ + "nftTransfers": [ + { + "blockchainEvent": { + "txHash": "0x8f1c4d575332c9a89ceec4d3d05960e23a17ec385912b00f4e970faf446ae4de", + "logIndex": "164", + "seqIndex": "0", + "blockNumber": "14597477", + "blockTimestamp": "2022-04-16T16:39:27Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x0000000000000000000000000000000000000000", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", + "fungibleTotals": [] + }, + "recipient": { "address": "0xe66e1e9e37e4e148b21eb22001431818e980d060", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "2.5", + "totalUsd": "7547.995011517354", + "nativeTransfersTotal": "2.5", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN"] + }, + { + "blockchainEvent": { + "txHash": "0x4cb092168f37d22df9f7ff202fd5d2ba43c4f2c0e8876ca3ee8ee6e4a1ffadae", + "logIndex": "23", + "seqIndex": "0", + "blockNumber": "14597525", + "blockTimestamp": "2022-04-16T16:49:04Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0xe66e1e9e37e4e148b21eb22001431818e980d060", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", + "fungibleTotals": [] + }, + "recipient": { "address": "0x660f95e3d6fc0a67cd6226a76bf7cf31a1c2a6ce", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_RECIPIENT_NO_PAYMENT", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN"] + }, + { + "blockchainEvent": { + "txHash": "0x0f4ace575c32ea4a8b8274c27cfa51f824e2a51436f8ebe17f2539dd456b6dc0", + "logIndex": "186", + "seqIndex": "0", + "blockNumber": "14701109", + "blockTimestamp": "2022-05-02T23:07:40Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x660f95e3d6fc0a67cd6226a76bf7cf31a1c2a6ce", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "28.7854361871930582", + "totalUsd": "82399.746541664674586519578199118", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "28.7854361871930582", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [ + { "contractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "totalNormalized": "28.737" } + ] + }, + "recipient": { "address": "0x0ccce9b458d1ec2c5ca4a31b65910890f4416d7f", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "30.9", + "totalUsd": "88452.790903694841", + "nativeTransfersTotal": "30.9", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN", "LABEL_MARKETPLACE_LOOKSRARE"] + }, + { + "blockchainEvent": { + "txHash": "0xff095fe13b3d988663730be6d773d9051dfb51b8860f110309ee91666710ec1e", + "logIndex": "374", + "seqIndex": "0", + "blockNumber": "15058129", + "blockTimestamp": "2022-07-01T18:14:35Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x0ccce9b458d1ec2c5ca4a31b65910890f4416d7f", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "19.425", + "totalUsd": "20823.1506151185636525", + "nativeTransfersTotal": "19.425", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "recipient": { "address": "0x2bcdb960250e281cc5fb609f2f200a8d92687464", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "21", + "totalUsd": "22511.5141785065553", + "nativeTransfersTotal": "21", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN", "LABEL_MARKETPLACE_OPENSEA"] + }, + { + "blockchainEvent": { + "txHash": "0x9ff8e924d68b7ec304b92e27595e46f950177c67498452c88969abdb61395157", + "logIndex": "284", + "seqIndex": "0", + "blockNumber": "15058413", + "blockTimestamp": "2022-07-01T19:15:08Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x2bcdb960250e281cc5fb609f2f200a8d92687464", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "21.275", + "totalUsd": "22755.5631207295041375", + "nativeTransfersTotal": "21.275", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "recipient": { "address": "0xd1f216b640a9bab9e6dd52e365e15ff2ac7e6002", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "23", + "totalUsd": "24600.6087791670315", + "nativeTransfersTotal": "23", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_SINGLE_TRANSFER", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN", "LABEL_MARKETPLACE_OPENSEA"] + }, + { + "blockchainEvent": { + "txHash": "0x3ecbfccdc18fe3785faa0554f15aed17d67c9db143408925a5c7aa9ed154c120", + "logIndex": "200", + "seqIndex": "0", + "blockNumber": "15086030", + "blockTimestamp": "2022-07-06T01:30:25Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0xd1f216b640a9bab9e6dd52e365e15ff2ac7e6002", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", + "fungibleTotals": [] + }, + "recipient": { "address": "0x304ffdd9d5e2bd23ecfd99a1da32a0472de766cb", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_RECIPIENT_NO_PAYMENT", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN"] + }, + { + "blockchainEvent": { + "txHash": "0x2a3cafd159beb7d261c96c158274d6c120bb939f9ff315b4a235821893cc5697", + "logIndex": "351", + "seqIndex": "0", + "blockNumber": "16487098", + "blockTimestamp": "2023-01-25T23:25:11Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x304ffdd9d5e2bd23ecfd99a1da32a0472de766cb", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", + "fungibleTotals": [] + }, + "recipient": { "address": "0x4af4569e174ce8f4a0ab3f7ec484bb1abe4d4e59", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_RECIPIENT_NO_PAYMENT", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN"] + }, + { + "blockchainEvent": { + "txHash": "0x69e010c9165bdbf51918c6f91e34d06b87e3d58f0ff2f7ced74201a9873b2c63", + "logIndex": "409", + "seqIndex": "0", + "blockNumber": "16487209", + "blockTimestamp": "2023-01-25T23:47:59Z" + }, + "contractAddress": "0x23581767a106ae21c074b2276d25e5c3e136a68b", + "tokenId": "8304", + "tokenType": "TYPE_ERC721", + "quantity": "1", + "sender": { "address": "0x4af4569e174ce8f4a0ab3f7ec484bb1abe4d4e59", "type": "TYPE_OWNER" }, + "senderReceived": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_NO_PAYMENTS", + "fungibleTotals": [] + }, + "recipient": { "address": "0x20271cbda9d84fbd9dde6d1e4a77a83d6dc0653e", "type": "TYPE_OWNER" }, + "recipientPaid": { + "totalNative": "0", + "totalUsd": "0", + "nativeTransfersTotal": "0", + "fungibleTransfersTotal": "0", + "attributedBy": "ATTRIBUTED_BY_RECIPIENT_NO_PAYMENT", + "fungibleTotals": [] + }, + "labels": ["LABEL_BURN"] + } + ] +} diff --git a/tests/fixtures/opensea/collection_stats.json b/tests/fixtures/opensea/collection_stats.json index 2c2f9eb56..997b864f7 100644 --- a/tests/fixtures/opensea/collection_stats.json +++ b/tests/fixtures/opensea/collection_stats.json @@ -1,5 +1,5 @@ { - "stats": { + "total": { "one_minute_volume": 1.38, "one_minute_change": 0, "one_minute_sales": 1, @@ -52,7 +52,7 @@ "thirty_day_sales": 535, "thirty_day_average_price": 1.3788450356990878, "thirty_day_difference": -329.5518732519888, - "total_volume": 288921.60507629754, + "volume": 288921.60507629754, "total_sales": 53698, "total_supply": 9998, "count": 9998, diff --git a/tests/fixtures/opensea/collection_stats_floor_price_null.json b/tests/fixtures/opensea/collection_stats_floor_price_null.json index 06efb2cb0..d281c4ba5 100644 --- a/tests/fixtures/opensea/collection_stats_floor_price_null.json +++ b/tests/fixtures/opensea/collection_stats_floor_price_null.json @@ -1,5 +1,5 @@ { - "stats": { + "total": { "one_minute_volume": 0, "one_minute_change": 0, "one_minute_sales": 0, @@ -52,7 +52,7 @@ "thirty_day_sales": 0, "thirty_day_average_price": 0, "thirty_day_difference": 0, - "total_volume": 0.00309342362905652, + "volume": 0.00309342362905652, "total_sales": 1, "total_supply": 1, "count": 1, diff --git a/tsconfig.json b/tsconfig.json index e2c070933..849682fa5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "forceConsistentCasingInFileNames": false, "module": "ESNext", "moduleResolution": "Node", "esModuleInterop": true, @@ -16,9 +17,9 @@ "paths": { "@/*": ["resources/js/*"], "@icons/*": ["resources/icons/*"], - "@images/*": ["resources/images/*"] - } + "@images/*": ["resources/images/*"], + }, }, "include": ["resources/**/*.ts", "resources/**/*.d.ts", "resources/**/*.tsx", "./vitest.setup.tsx"], - "exclude": ["node_modules", "**/*.spec.ts", "**/*.blade.php"] + "exclude": ["node_modules", "**/*.spec.ts", "**/*.blade.php"], }